딥러닝(텐서플로우)

경사하강법

Dean83 2023. 3. 28. 16:35

딥러닝은 학습을 진행하고, 실제 정답 데이터와 비교하여 얼마나 정답률이 높은가가 관건이다. 

 

즉, 실제 정답 데이터와 학습 후 예측 혹은 분석한 데이터의 격차가 작을 수록 정답률이 높은것이다. 

 

경사하강법이란,  이 격차가 가장 작은 구간을 찾는 기법이다. 

 

기울기 값이 마이너스인 경우, 다음 스텝으로 진행하면서 골짜기로 들어가고, 기울기가 +가 되는 시점에 멈추게 된다.

(매번 그런것은 아니다)

 

바로 앞전 스텝이 가장 적은 편차를 갖은 값이므로 종료를 하게 되는것이다. 

 

 

그러나 여기에는 문제점이 있다. 

 

첫번째는, step의 폭을 너무 좁게 할 경우, 골짜기에 다다르기 전에 끝나고, step의 폭이 너무 클경우, 골짜기를 벗어나게 되므로 적잘한 step을 찾는게 중요하다. 

 

두번째로는 local 골짜기에 빠질 수 있다. 예를들어 최소값이 10인 골짜기가 있고, 그 우측으로는 값이 증가하다가

절벽으로 떨어져 최소값이 1인 골짜기가 있다고 가정한다면,  local 골짜기가 해답인줄 알고 멈추어 버릴 수도 있다.

 

 

이런 문제점들을 해결하기 위한 여러 알고리즘이 있고, 이는 이전 페이지에서 서술한 알고리즘들이 있다.

이전에 살펴본 페이지의 keras.Sequential(..).compile(..optimizer='알고리즘 명'..) 에서 서술하였고, 
알고리즘에는 보통 adam을 사용한다고 하였다.  이외 다른 알고리즘들도 있다. 

 

'딥러닝(텐서플로우)' 카테고리의 다른 글

Predict  (0) 2023.03.31
이미지 (영상) 딥러닝 CNN  (0) 2023.03.30
Keras 를 이용한 딥러닝 구현법 간단 설명(분류, FNN기준)  (0) 2023.03.28
딥러닝 개요  (0) 2023.03.23
신경망 종류  (0) 2023.03.23