본문 바로가기

AI/AI 라이브러리

[Tensorflow] Optimizer / Loss Function / Metric

728x90
반응형

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

MomentumRMSprop를 결합한 알고리즘으로, 많은 경우에 효과적으로 사용된다.

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

 

728x90
반응형