23 Fri
딥러닝 CNN 완벽 가이드 - Fundamental 편
손실(Loss) 함수의 이해와 크로스 엔트로피(Cross Entropy) 상세 - 01
손실 함수
손실 함수 = 비용 함수 = 목적 함수
loss = cost = objective
네트워크 모델이 얼마나 학습에 데이터에 잘 맞고있는지에 대한 척도
크로스 엔트로피 로스
소프트맥스에 기반한 손실 함수이다.
Categorical CE Loss와 Binary CE Loss가 있다.
손실(Loss) 함수의 이해와 크로스 엔트로피(Cross Entropy) 상세 - 02
정확도를 비교하는 것 만으로는 예측의 신뢰도를 파악하기 어렵다. 그리고 계단함수 모양으로 정확도가 개선된다. 비용함수는 신뢰도를 파악하기 좋고 연속적인 모양으로 정확도가 개선된다.
크로스 엔트로피와 스퀘어 에러
스퀘어 에러는 잘못된 예측에 대해서 상대적으로 높은 비율의 페널티가 부여되어 Loss값의 변화가 심하다.
이 점 때문에 크로스 엔트로피에 비해 수렴이 어렵다
또, 아주 잘못된 예측에 대해 낮은 비율의 페널티가 부여된다.
옵티마이저(Optimizer)의 이해 - Momentum, AdaGrad
최적화, Optimizer
GD를 최적으로 적용하는 방법
Loss 함수가 매우 많은 변수와 함수로 이루어져 있기 때문에 수렴하지 않을 가능성도 존재한다. => 최적화가 필요한 이유
주요 Optimizer

Momentum
과거의 있던 가중치를 고려하는 식
감마는 모멘텀 계수라고 하며, 보통 0.9의 값을 가진다
지역 최소점에 빠져서 못나오는 현상을 해결한다
좀 더 빨리 전역 최소점에 도착할 수 있도록 한다.

AdaGrad, Adaptive Gradient
그동안 적게 변화된 가중치는 보다 큰 학습률을 적용하고, 많이 변화된 가중치는 보다 작은 학습률을 적용하는 원리
엡실론은 분모가 0이 되는 것을 막기 위함
처음에는 큰 학습률이 적용되지만 최저점에 가까울 수록 학습률이 작아진다
Iteration이 증가하면서 분모값이 커져서(St 값이 커짐) 학습률이 아주 작게 변환되는 문제점이 있다.
이 문제점을 RMSProp이 해결한다
옵티마이저(Optimizer)의 이해 - RMSProp, Adam

RMSProp
지나치게 학습률이 작아지는 것을 막기 위해 Gradient 제곱값을 단순히 더하는 것이 아니라 지수 가중 평균법으로 구한다.
과거의 영향을 줄일 수 있도록 설정하며 보통 0.9를 적용

ADAM, Adaptive Momnet Estimation
RMSProp의 방법을 유지하되 모멘텀만 지수 가중 평균법으로 변경
케라스에서의 사용
SGD
keras.optimizers.SGD(lr=0.01, momentum=0.0, decay=0.0, nesterov=False)lr : 학습률
momentum : 0보다 크거나 같은 관성 매개변수
decay : 업데이트마다 적용되는 학습률의 감소율
RMSProp
keras.optimizers.RMSprop(lr=0.01, rho=0.9, epsilon=None nesterov=False)rho : gamma 값
Adam
keras.optimizers.Adam(lr=0.01, beta_1=0.9, beta_2 = 0.999, epsilon=None, decay=0.0, amsgrad=False)amsgrad : adam의 변형인 amsgrad의 적용여부를 설정
학습률 최적화 유형
optimizer 방식
weight update시에 학습률을 동적으로 변경
한번 세팅하면 그대로 사용 가능
Learning Rate Scheduler 방식
에포크 마다 성능 평가 지표 등에 따라 동적으로 학습률을 변경
Last updated
Was this helpful?