1. 손실 함수(Loss function)
-> 손실 함수는 실제값과 예측값의 차이를 수치화해주는 함수
이 두 값의 차이. 즉, 오차가 클 수록 손실 함수의 값은 크고 오차가 작을 수록 손실 함수의 값은 작아진다.
회귀에서는 평균 제곱 오차,
분류 문제에서는 크로스 엔트로피를 주로 손실 함수로 사용한다.
[손실 함수의 값을 최소화]하는 두 개의 매개변수인 가중치 w와 편향 (bias) 의 값을 찾는 것이 딥 러닝의 학습 과정이므로 손실 함수의 선정은 매우 중요하다.
회귀에서 사용하는 MSE는 아래와 같다.
1) MSE(Mean Squared Error, MSE) = 평균 제곱 오차
2) 이진 크로스 엔트로피(Binary Cross-Entropy)
이항 교차 엔트로피라고도 부르는 손실 함수, 출력에서 Sigmoid 함수를 사용하는 이진 분류의 경우
사용, 로지스틱 회귀분석에 사용된 손실 함수이다.
3) 카테고리칼 크로스 엔트로피(Categorical Cross-Entropy)
범주형 교차 엔트로피라고 불리는 손실 함수 softmax 함수를 사용하는 다중 클래스 분류에서 사용한다.
2. 배치 크기(Batch Size)에 따른 경사 하강법
손실함수를 줄여가면서 학습 하는 방법은 어떤 optimizer를 사용하느냐에 따라 달라진다.
배치는 가중치 등의 매개 변수의 값을 조정하기 위해 사용하는 데이터의 양이다.
전체 데이터를 갖고 매개변수를 조정할 수 있고, 정해준 데이터를 갖고 매개변수를 조정할 수 있다.
1) 배치 경사 하강법(Batch Gradient Descent)
배치 경사 하강법은 optimizezr의 옵션 중 하나로 오차를 구할 때 모든 데이터를 고려한다.
딥 러닝에서는 전체 데이터에 대한 한 번의 훈련 횟수를 1 에포크라고 하는데,
배치 경사 하강법은 한 번의 에포크에 모든 매개변수 업데이트를 단 한 번 수행한다.
전체 데이터를 고려해서 학습하므로 한 번의 매개 변수 업데이트에 시간이 오래 걸리며, 메모리를 크게 요구한다는 단점이 있다.
2) 배치 크기가 1인 확률적 경사 하강법(Stochastic Gradient Descent, SGD)
확률적 경사 하강법은 매개변수의 변경폭이 불안정하고,
때로는 배치 경사 하강법보다 정확도가 낮을 수도 있지만 하나의 데이터에 대해서만 메모리에 저장하면 되므로 자원이 적은 컴퓨터에서도 쉽게 사용가능 하다.
1) model.fit(X_train, y_train, batch_size=1)
3) 미니 배치 경사 하강법(Mini-Batch Gradient Descent) *
전체 데이터도, 1개의 데이터도 아닐 때, 배치 크기를 지정하여 해당 데이터 개수만큼에 대해서 계산하여 매개 변수의 값을 조정하는 경사 하강법 전체 데이터를 계산하는 것보다 빠르며, SGD보다 안정적이라는 장점이 있다.
3. 옵티마이저(Optimizer)
1) 모멘텀(Momentum)
모멘텀(Momentum)은 관성이라는 물리학의 법칙을 응용한 방법이다.
모멘텀 경사 하강법에 관성을 더 해준다. 모멘텀은 경사 하강법에서 계산된 접선의 기울기에 한 시점 전의 접선의 기울기값을 일정한 비율만큼 반영한다.
이렇게 하면 마치 언덕에서 공이 내려올 때, 중간에 작은 웅덩이에 빠지더라도 관성의 힘으로 넘어서는 효과를 줄 수 있습니다.
전체 함수에 걸쳐 최솟값을 글로벌 미니멈(Global Minimum) 이라고 하고,
글로벌 미니멈이 아닌 특정 구역에서의 최소값인 로컬 미니멈(Local Minimum) 이라고 한다.
로컬 미니멈에 도달하였을 때 글로벌 미니멈으로 잘못 인식하여 탈출하지 못하였을 상황에서
모멘텀. 즉, 관성의 힘을 빌리면 값이 조절되면서 현재의 로컬 미니멈에서 탈출하고 글로벌 미니멈 내지는 더 낮은 로컬 미니멈으로 갈 수 있는 효과를 얻을 수도 있다.
1) tf.keras.optimizers.SGD(lr=0.01, momentum=0.9)
2) 아다그라드(Adagrad)
매개변수들은 각자 의미하는 바가 다른데, 모든 매개변수에 동일한 학습률(learning rate)을 적용하는 것은 비효율적이다
아다그라드는 각 매개변수에 서로 다른 학습률을 적용시킨다.
이때 변화가 많은 매개변수는 학습률이 작게 설정되고 변화가 적은 매개변수는 학습률을 높게 설정한다.
3) 알엠에스프롭(RMSprop)
아다그라드는 학습을 계속 진행한 경우에는, 나중에 가서는 학습률이 지나치게 떨어진다는 단점이 있는데 이를 다른 수식으로 대체하여 이러한 단점을 개선하였다.
아다그라드의 단점 보완 버전
4) 아담(Adam) *
아담은 알엠에스프롭과 모멘텀 두 가지를 합친 듯한 방법으로, 방향과 학습률 두 가지를 모두 잡기 위한 방법.
'DeepLearning' 카테고리의 다른 글
DeepLearning - GREEDY LAYER-WISE Training (1) | 2022.10.28 |
---|---|
DeepLearning -레이어 , 활성화 함수 (0) | 2022.10.27 |
DeepLearning - 타이타닉 생존자 예측 (0) | 2022.10.26 |
DeepLearning - 신경망 코드 이해 (0) | 2022.10.26 |
DeepLearning - Tensorflow 다층 퍼셉트론, 역전파 (0) | 2022.10.26 |