딥러닝 네트워크 학습 과정
레이어
선형 레이어
입력 데이터에 선형 변환을 적용한 후 , 결과를 출력한다.
Y = Wx + b
단순히 여러 선형 레이어를 쌓는 것은 알고리즘이 새로운 것을 학습하는데 도움이 되지 않는다.
이러한 문제를 해결하기 위해 비선형 함수를 사용한다.
비선형 활성 함수
•
Sigmoid
•
Tanh
•
ReLU
•
Leaky ReLU
Sigmoid
Input : R
output : 0 ~ 1
출력 값이 0 또는 1에 가까워지면, sigmoid 함수의 앞 레이어 기울기는 0에 근사한다.
결과적으로 가중치가 조정되지 않는 현상이 발생함.
tanh
Input : R
output : -1 ~ 1
Tanh 도 sigmoid 처럼 출력 값이 -1 ~ 1 에 가까워질 때, 기울기가 0에 근사해 가중치가 조정되지 않는 현상이 발생한다.
하지만, Tanh 함수의 출력 값은 0을 중심으로 만들어지기 때문에 sigmoid와 비교 반환값의 변화폭이 크다.
ReLU
f(x) = max(0,x)
음수 입력 → 0 출력
양수 입력 → 그대로 반환
•
ReLU는 옵티마이저가 더 빨리 올바른 가중치를 찾도록 돕는다.
•
연산 비용이 저렴하다. ReLU는 임계값을 가질 뿐이며, 시그모이드 함수와 같은 연산을 하지 않는다.
•
역전파를 진행하면서 기울기가 큰값을 ReLU에 전달하면 종종 응답이 없어진다. → 학습률을 잘 설정
Leaky ReLU
ReLU 함수에서 음수가 입력될 때 0으로 출력 되는 것을 0.0001처럼 매우 작은 수로 반환한다.
다양한 모델 아키텍쳐
•
회귀 Regression : 가격을 예측하는 것과 같은 회귀 문제의 경우, 1개의 숫자를 출력하는 선형 레이어를 사용한다. 이 선형 레이어는 연속 값을 출력한다.
•
이진 분류 Binary classfication : 입력된 이미지를 2가지로 분류하는 문제에서는 마지막 레이어로 sigmoid 함수를 사용한다.
•
다중 분류 Multi-class classfication : 입력된 이미지를 여러가지로 분류하는 문제에서 마지막 레이어로 softmax 함수를 사용한다. 소프트 맥스 레이어는 이전 선형 레이어의 출력값을 입력으로 받고, 입력 데이터가 각 클래스로 분류될 확률을 반환한다. 각 분류 확률의 전체 합은 항상 1이다.
오차 함수
•
회귀 : MSE (Mean Square Error; 평균 제곱 오차) 이다.
•
분류 : Cross-entropy loss; 교차 엔트로피 오차
확률을 예측하는 분류 네트워크의 오차를 계산한다. 유사하다면 크로스 엔트로피 오차는 낮아짐
L1 Loss | 정규화에 주로 사용 |
MSE Loss | 회귀 문제를 다룰 때 주로 사용 |
Cross-entropy Loss | 이진 분류와 다중 분류 문제에서 사용 |
NLL Loss | 분류 문제에서 특정 가중치를 사용해 데이터 셋 불균형을 처리할 때 사용 |
NLL Loss2d | 주로 이미지 분할과 관련된 문제에서 픽샐단위 분류에 사용 |