본문 바로가기
Artificial Intelligence/Deep Leaning

Neural Network in Practice: Optimization(실제 신경망: 최적화)

by YUNZEE 2024. 1. 11.
728x90

전에 설명했던 신경망 훈련의 핵심 알고리즘인 역전파 알고리즘에 대해 다시 정리하자면 손실 함수의 기울기를 계산하여 가중치를 업데이트하고, 체인 룰을 반복적으로 적용하여 효과적으로 기울기를 계산한다. 

실제 신경망 훈련의 복잡성은 경사하강법만 사용하지 않고, 실제로는 더 복잡한 최적화 기법과 알고리즘을 사용한다. 딥 뉴런망은 매개변수 수가 많고 가중치 공간이 매우 차원이 높다.

 

훈련 복잡성에 대한 몇 가지 예시

vanishing gradient: 기울기가 지나치게 작아져 학습이 느려지거나 막힐 수 있다.

exploding gradient: 기울기가 지나치게 커져 가중치가 불안정하게 업데이트될 수 있다.

saddle points: 국소 최소점에 빠져 최적 해결책을 찾지 못할 수 있다.

overfitting: 훈련 데이터에 과적합하여 일반화 성능이 떨어질 수 있다.

 

손실 함수를 최적화하기 어려울 수 있다.

학습률 설정의 어려움:

- 적절한 학습룰을 찾는 것은 매우 어렵다.

- 신경망의 구조, 데이터의 특성, 손실 함수의 형태 등에 따라 적절한 학습률의 범위가 달라진다.

 

학습률의 중요성:

- 학습률은 경사하강법에서 가중치를 업데이트하는 정도를 결정하는 중요한 매개변수이다.

- 학습률이 너무 크면 가중치가 크게 바뀌어 최적점을 건너뛰거나 발산할 수 있다. 

- 학습률이 너무 작으면 가중치 변화가 미미하여 최적점을 도달하지 못할 수 있다.

- 학습률은 신경망 훈련의 성패를 좌우하는 핵심 요소이다.

 

위 이미지는 신경망 훈련에서 학습률이 미는 영향을 보여준다.

왼쪽은 학습률에 따라 가중치가 어떻게 업데이트 되는지업데이트되는지 보여주고 오른쪽은 학습률에 따라 가중치가 어떻게 업데이트되는지 보여준다.

파란색 선: 학습 과정

파란색 점: 학습률이 너무 낮은 경우

빨간색 점: 학습률이 너무 높은 경우

별: 가중치의 업데이트 방향

 

학습률이 너무 낮을 때의 문제점은:

- 학습 속도가 느려진다. (이미지에 있는 파란색 선이 느리게 움직이게 된다.)

- 국소 최소점에 빠질 수 있다. (이미지에서 오른쪽 아래에 있는 국소 최소점에 빠질 수도 있다.)

- 전역 최소점에 도달하지 못할 수 있다.

 

학습률이 너무 높을 때의 문제점은:

- 최적점을 지나쳐 버릴 수 있다. 

- 가중치가 업데이트 되는 속도가 너무 빨라진다. 이로 인해 가중치가 최적점을 지나쳐 버릴 수 있다. 또한, Gradient Explosion이 발생하여 신경망이 학습되지 못할 수도 있다.

 

적절한 학습률:

적절한 학습률은 설정하면 가중치가 최적점에 수렴할 수 있다. 이미지에서 파란색 선이 중앙에 있는 최소점에 도달하는 것을 확인할 수 있다.

신경망 훈련에서 학습률 설정 방법

위에 내용처럼 적절한 학습률을 적용하기 위해 여러가지 방법이 있다. 

- 학습률은 신경망 훈련에 중요한 매개변수로 가중치 업데이트 속도를 결정한다.

- 적절한 학습률 설정하는 것은 중요하며, 잘못 설정하면 성능 저하가 발생할 수 있다.

 

첫 번째 방법: 여러 학습률 시도해보기

가장 간단한 방법은 여러 학습률을 시도해 보고 성능이 가장 좋은 값을 선택하는 것이다. 여러 가지 학습률을 격차 형태로 설정하여 신경망을 훈련하고 성능을 비교한다. 시간과 자원이 많이 소요될 수 있다.

 

두 번째 방법: 적응 학습률 사용

학습 경과에 따라 자동으로 학습률을 조정하는 방법이다. 학습 지형도의 특징, 기울기 크기, 학습 속도 등 다양한 요소를 고려한다. 

 

*주의:

- 학습률이 너무 크면 가중치가 불안정하게 변하고 최적점을 놓칠 수 있다.

- 학습률이 너무 적으면 학습 속도가 느려지고 최적점에 도달하기 어려울 수 있다.

- 적응 학습률은 이러한 문제를 해결하기 위해 사용되지만 구현이 복잡하고 성능 향상을 보장하지는 않는다.

728x90