-
[NLP] 모두를 위한 딥러닝 : "Linear Regression cost함수 최소화"ML/NLP 2020. 5. 26. 16:45
Linear regression에서 Cost function 최소화
1. Cost function 그래프 개형 알아보기
위의 결과를 그래프로 찍어보면 다음과 같다.
그래프에서 y축이 cost이니까, 그 점의 값이 최소인 점을 찾는 것이 Linear Regression 학습의 목표!
즉, 점 (1, 0)을 기계적으로 찾아내야 함
그걸 찾을 수 있는 방법 -> Gradient descent algorithm
2. Gradient descent algorithm
- 최소 지점을 찾기 위해 경사를 따라 내려가는 알고리즘 ex. 등산에서 하산할 때 경사가 낮은 곳으로 계속 가면 되는 것처럼!
- cost function을 최소화함
- 많은 최소화 문제에 사용됨
- 주어진 cost function( = cost(W, b) )을 최소화하기 위해 W, b를 찾아냄
- 더 일반적인 function에도 적용 가능함 ex. cost(w1, w2, ...)
3. Gradient descent algorithm 작동법
1) 아무 점에서나 시작 가능
ex. (0, 0)에서 시작
2) 매번 파라미터(W, b)를 바꿀 때마다, cost(W, b)를 줄일 수 있는 경사도를 선택함
3) local minimum으로 갈 때까지 반복
4. 경사도(Gradient)를 구하는 방법
1) 계산을 깨끗하게 하기 위해 cost function에 1/2를 곱해줌 -> 그래도 최소값은 여전히 같은 W, b에서 찾아짐
2) 경사도에 따라 W(아까 본 cost function 그래프에서 x축)를 얼마나 바꿀 것인지 결정 (단, α는 상수)
3) 미분 절차
마지막 식이 바로 gradient descent algorithm의 핵심 수식
추가. Convex function
문제점:
cost function이 이렇게 생기면, 어느 점에서 시작하느냐가 어느 minimum에서 멈춰질 지 결정하게 됨하지만 cost function이 밥그릇을 뒤집어 놓은 형태(convex function)라면 하나의 극소점으로 모이게 됨
그래서 cost function이 convex function이라는 것을 확인해주기만 하면 gradient descent algorithm의 동작을 보장할 수 있음<Reference>
'ML > NLP' 카테고리의 다른 글
[ICLR 2022] Learning Strides in Convolutional Neural Networks - 아는 만큼 읽기 (0) 2022.06.20 [NLP] 모두를 위한 딥러닝 : "Linear Regression 의 개념" (0) 2020.05.26 [NLP] 모두를 위한 딥러닝 : "머신러닝의 개념과 용어" (0) 2020.05.26 [NLP] 합성곱 신경망 CNN : 합성곱/풀링 계층 구현 (1) 2020.05.12 [NLP] 합성곱 신경망 CNN : 합성곱 연산, 배치 처리, 풀링 계층 (1) 2020.05.10