Optimizer
딥러닝 모델을 학습할 때 다양한 최적화 알고리즘을 적용해야한다.
이러한 최적화 알고리즘은 모델의 가중치와 편향을 조정하여 손실 함수를 최소화하고 모델의 성능을 향상시키는 역할을 한다.
tf.keras.optimizers에 정의되어 있다.
Optimizer - Gradient Descent Optimization
가장 기본적인 최적화 알고리즘이다.
learning rate를 조정하여 최적화의 속도와 안정성을 조절할 수 있다.
tf.keras.optimizers.legacy.SGD 클래스를 사용하여 구현 가능하다.
optimizer = tf.keras.optimizers.legacy.SGD(learning_rate = 0.01)
model.compile(optimizer=optimizer)
Optimizer - Momentum Optimization
경사 하강법의 단점인 Local Optima에 빠지는 문제를 해결하기 위해 도입된 알고리즘이다.
이전 업데이트의 관성을 사용하여 빠르게 수렴하고, Local Opitma에서 벗어날 수 있도록 도움을 준다.
tf.keras.optimizers.legacy.SGD 클래스의 momentum 매개변수를 설정하여 구현 가능하다.
momentum_opt = tf.keras.optimizers.legacy.SGD(learning_rate=0.001, momentum=0.9)
model.compile(optimizer=momentum)
Optimizer - RMSprop Optimization
학습률을 동적으로 조정하여 학습 과정을 안정화시키는 알고리즘이다.
기울기 제곱의 이동 평균으로 학습률을 조절하므로, 경사가 급격히 변하는 경우에도 안정적으로 학습 할 수 있다.
tf.keras.optimizers.legacy.RMSprop 클래스를 사용하여 구현 가능하다.
rmsp = tf.keras.optimizers.legacy.RMSprop(learning_rate=0.001)
model.complie(optimizer=rmsp)
Optimizer - Adam Optimization
Momentum과 RMSprop를 결합한 알고리즘으로, 많은 경우에 효과적으로 사용된다.
Momentum으로 이전 업데이트의 관성을 고려하고, RMSprop으로 학습률을 조절한다.
tf.keras.optimizers.legacy.Adam 클래스를 사용하여 구현 가능하다.
adam = tf.keras.optimizers.legacy.Adam(learning_rate=0.001)
model.complie(optimizer=adam)
Loss Function
모델의 예측값과 실제값의 차이를 계산하여 모델의 성능을 평가하는 데 사용되는 함수이다.
손실 함수의 값이 작을수록 모델의 예측이 실제값에 더 가깝다고 볼 수 있다.
tf.keras.losses에 정의되어 있다.
Loss Function - MSE(Mean Squared Error)
예측값과 실제값 사이의 평균 제곱 오차를 계산한다.
회귀 문제에서 주로 사용된다.
mse = tf.keras.losses.MeanSquaredError()
model.complie(optimizer=opt,loss=mse)
Loss Function - Binary Crossentropy
예측값과 실제값이 각각 0 or 1 인 경우에 사용한다.
이진 분류 문제에서 사용되는 손실 함수이다.
bc = tf.keras.losses.BinaryCrossentropy()
model.complie(optimizer=opt,loss=bc)
Loss Function - Categorical Crossentropy
예측값과 실제값이 원-핫 인코딩된 형태일 때 적합하다.
다중 클래스 분류 문제에서 사용하는 함수이다.
cct = tf.keras.losses.CategoricalCrossentropy()
model.compile(optimizer=opt,loss=cct)
Loss Function - Sparse Categorical Crossentropy
예측값은 확률 분포를, 실제값은 정수 형태로 주어질 때 적합하다.
다중 클래스 분류 문제에서 사용하는 함수이다.
scc = tf.keras.losses.SparseCategoricalCrossentropy()
model.complie(optimizer=opt,loss=scc)
Metric
Metric은 모델의 성능을 평가하기 위한 지표이다.
각 Metric은 예측 결과와 실제값을 비교하여 정확도, 정밀도, 재현율 등 다양한 지표를 계산한다.
tf.keras.metrics에 정의되어 있다.
Metric - Accuracy(정확도)
예측값과 실제값이 일치하는 비율을 계산하는 메트릭이다.
tf.keras.metrics.Accuracy()로 설정할 수 있다.
accuracy = tf.keras.metrics.Accuracy()
model.complie(optimizer=opt,loss=loss_func,metric=[accuracy])
Metric - Precision(정밀도)
양성으로 예측한 샘플 중에서 실제로 양성인 샘플의 비율을 계산하는 메트릭이다.
tf.keras.metrics.Precision()로 설정할 수 있다.
precision = tf.keras.metrics.Precision()
model.complie(optimizer=opt,loss=loss_func,metric=[precision])
Metric - Recall(재현율)
실제 양성인 샘플 중에서 양성인 샘플의 비율을 계산하는 메트릭이다.
tf.keras.metrics.Recall()로 설정할 수 있다.
recall = tf.keras.metrics.Recall()
model.complie(optimizer=opt,loss=loss_func,metric=[recall])
Metric - Mean Absolute Error(평균 절대 오차)
예측값과 실제값의 절대 오차의 평균을 계산하는 메트릭이다.
tf.keras.metrics.MeanAbsoluteError()로 설정할 수 있다.
mae = tf.keras.metrics.MeanAbsoluteError()
model.complie(optimizer=opt,loss=loss_func,metric=[mae])
Optimizer&Loss_func.ipynb
Colaboratory notebook
colab.research.google.com
'AI > AI 라이브러리' 카테고리의 다른 글
[Tensorflow] 전이학습(Transfer Learning) (0) | 2024.01.14 |
---|---|
[Tensorflow] Callback 알아보기 (0) | 2024.01.10 |
[Tensorflow] 모델 컴파일, 학습, 예측 (0) | 2024.01.09 |
[Tensorflow] 모델 만들기 (0) | 2024.01.09 |
[Tensorflow] Tensorflow 입문 (0) | 2024.01.08 |