Learing rate decay

Learning rate decay의 개념은 아래 링크를 참고하자. 여기서는 텐서플로로 구현하는 방법만 살펴본다.

학습 스케줄링

Deep Learning Specialization

is_decay = True     # learning_rate decay를 사용
starter_learning_rate = 0.1     # 최초의 learning rate

# is_decay 여부에 따라 학습 스케줄링 여부가 달라짐.
if(is_decay):
    learning_rate = tf.keras.optimizers.schedules.ExponentialDecay(initial_learning_rate=starter_learning_rate,
                                                                   decay_steps=1000,
                                                                   decay_rate=0.96,
                                                                   staircase=True)
    optimizer = tf.keras.optimizers.SGD(learning_rate)

else:
    optimizer = tf.keras.optimizers.SGD(learning_rate=starter_learning_rate)     

tf.keras.optimizers.schedules.ExponentialDecay()를 사용하면 계속 같은 비율로 학습률을 감소시켜 준다. staircase=True로 설정하면 decay_steps까지는 학습률을 감소시키지 않다가, 그 이후부터 감소시키기 시작한다.


특성 스케일링

아래 링크를 참고하자.

Python for ML 1

Python for ML 2

Hands-On ML


잡음 처리

잡음을 처리하면 데이터 분석을 더 효과적으로 할 수 있다. 예를 들어 다음과 같은 인물의 얼굴을 인식한다고 해보자.


왼쪽의 머리 전부를 사용한다면 그만큼 효율이 떨어질 것이다. 오른쪽처럼 얼굴 부분만 확대하여 학습에 사용해야 더 효율적으로 학습을 할 수 있다.



별도의 출처 표시가 있는 이미지를 제외한 모든 이미지는 강의자료에서 발췌하였음을 밝힙니다.

댓글남기기