-> loss 함수를 미분해서 구하면 loss 값을 최소화할 수 있는 값이 나옴
-> y=2x : 2일때 최솟값을 가짐
🔷 사진과 같이 일반화되고 복잡함 함수들이 있는 상황에서 어떻게 optimization을 할 수 있는가?
-> 복잡한 neural network
-> 선 하나의 weight or parameter (각각마다 모형의 parameter들이 다 할당되어있는 모습)
💥 Loss 함수는 굉장히 복잡하고 고차원에 있다 -> 암튼 복잡하다
-> 복잡한 능선 위에서 어떻게 하면 효율적으로 내가 가진 함수를 minimize할지 고민하는 과정이 중요
: 산 정상에서 눈을 가리고 산의 가장 낮은 부분까지 잘 내려가는 과정
-> 함수값, 미분결과(기울기=Gradient)는 알 수 있음
✒️ 경사도가 가파르게 낮아지는 방향이 잇으면 한번 가보고, 또 내려가는 부분이 있으면 가보고 (반복적으로)
-> 가파르게 기울기를 해서 함숫값이 굉장히 작아지는 방향을 찾고 그 방향으로 내려가는 방법
💥 경사를 구하고 함숫값을 가장 빠르게 줄일 수 잇는 방향으로 계속 내려간다
ex) y=Wx 함수 정의
-W는 보통 랜덤하게 Initialization함
-랜덤하게 Initialize된 상황에서 출발해서 함수를 최소화하는 과정
테일러 급수 전개: 모든 일반적인 함수들의 경우에는 무한대에 수렴하는 다항식으로 근사가 가능하다는 것을 이론적으로 연구
-> 이차 다항식을 이용해서 알지 못하는 함수를 근사적으로 표현할 수 있지 않을까??
-> 근사된 이차함수는 미분해서 0 되는 지점을 찾기 쉬움
💥 위의 과정에서 사용하는 수식 표현: Quadratic approximation
🔷 L(w) : loss 함수 - 변수
🔷 L(Wc) : 현재 위치에서의 W값 - 고정된 값
🔷 ▽L(W-Wc) : 기울기
: 함수의 기울기(경사)를 구하고 경사의 반대 방향으로 계속 이동시켜 극값에 이를 때까지 반복시키는 것
: 딥러닝 알고리즘 학습 시 사용되는 최적화 방법 중 하나
: 예측값과 정답값 간의 차이인 손실 함수의 크기를 최소화시키는 파라미터를 찾는 것
🎈-> 무한 차원상에서도 쓰일 수 있고 무든 차원과 모든 공간에서 적용이 가능
🎈-> 정확성을 위해 극값으로 이동하기 때문에 매우 많은 단계를 거쳐야 함
🎈-> 주어진 함수에서의 곡률에 따라 거의 같은 위치에 시작해도 완전히 다른 결과를 가져올 수 있음
* 문제점 2개
🎈1. Local Minimum 문제
: 경사 하강법은 비볼록 함수의 경우, 파라미터의 초기 시작 위치에 따라 최적의 값이 달라진다는 한계
🎈2. Saddle Point(안장점) 문제
: 안장점은 기울기가 이지만 극값이 아닌 지점을 의미
: 경사 하강법은 미분이 0일 경우 더이상 파라미터를 업데이트하지 않기 때문에, 이러한 안장점을 벗어나지 못하는 한계
❤️출처: https://heytech.tistory.com/380
❤️출처: K-MOOC 실습으로 배우는 머신러닝