Deep Neural Networks

많은 갯수의 층을 가진 MLP 를 일컫는 말이다. 보통 단순한 MLP 보다는 더 크고 깊은 구조를 의미한다.

Advantages

DNN 의 장점은 다음과 같다.

  1. High-Dimensional raw data can be used directly in training

  2. SotA performance in many applications → 특정 분야에서는 사람보다 성능이 좋다.

    image.png

  3. Knowledge can be well transferred → general 한 상황에 적용 가능

Cross-Entropy Loss

다른 머신러닝 알고리즘들과 마찬가지로, 신경망도 훈련을 위해 손실 함수를 정의해야 한다. 분류 문제를 상정하고, DNN 에서의 일반적인 데이터 흐름을 살펴보자.

image.png

입력 데이터가 DNN 을 거쳐 출력값인 Logit 이 도출된다. Logit 을 바로 훈련에 이용해도 되지만, Softmax 활성화 함수를 이용해 이 값을 각 클래스에 속할 확률로 바꿔주면 Loss Landscape 가 부드러워져 원활한 훈련이 가능해진다.

이런 경우, 손실 함수로는 Cross-Entropy Loss 가 채택된다. $\text{softmax(logit)}$ 을 통해 얻은 확률 분포와, 실제 결과 사이의 엔트로피를 계산해 정답에 가까워지도록 하는 원리다.

$$ L=-\sum_c\bar{y_i}\log{y_i} $$

Cross-Entropy 의 동작 과정을 살펴보자.

image.png

실제 값의 확률인 1 에 로그를 취하면 0, 나머지 값의 확률인 0에 로그를 취하면 $\infin$ 으로 발산한다. 그러므로 실제 값의 확률 분포에 가까워질수록 Cross-Entropy 값이 작아진다.

계산 식의 계수를 보면 알 수 있듯이, 정답이 아닌 label 은 학습에 영향을 주지 않기 때문에 초반 학습이 느릴 수 있다.

Training

Issues With GD

일반적인 GD 는 DNN 에서 사용하기에 몇 가지 어려움이 있다.