2020. 12. 31. 06:13ㆍ언어영역/Machine Learning
Datafit의 과정 (회귀모형에서), 수치의 가중치는 어떻게 찾는 걸까?
이전 과정에서 나는 인공지능이 퍼셉트론, 즉 y=xw+x2w2+...+xnwn+b의 형태로 나타난다는 것을 배웠다. 그렇다면 이 식에서 w와 b는 어떻게 결정되는 걸까? 이번 영상은 그 원리에 대해서 다룬다.
- 가중치(w)와 편향(b)를 랜덤으로 설정한다.
- 첫 번째 케이스를 바탕으로 MSE(오차 제곱의 평균, 분산)를 구한다.
- 가중치와 편향이 늘거나 줄 때 변하는 Loss값을 관찰한다. (dL/dw 또는 dL/db)
- 0.1보폭(Learning Rate)으로 움직이며 Loss값이 최소가 되는 지점을 찾는다.
간단하다. 하지만 간단하지 않다. 연구를 시작하기에 앞서 첫째, 회귀모형이 Convex Function인지 알아놓아야 한다. 다시 말해서, 우리가 구한 Cost(Loss) Function이 '아래로 볼록'한 데이터의 형태를 취해야 한다는 것이다.
Convex Function
아래로 볼록한 함수라는 뜻이다. Cost Function(변수에 다른 오차를 나타내는 함수)가 이러한 형태를 취해야 하는 이유는 Gradient Discent Algorithm 때문이다. 이 알고리즘은 아래로 볼록한 함수의 최솟값에서 기울기가 0이 된다는 사실을 바탕으로 어느 점에서든, Cost가 더 낮은 곳으로 향하도록 설계되어 있다. 하지만 Cost function에 위로 볼록한 함수가 있다면 초기의 약간의 위치 변경으로 인해 완전히 다른 방향으로 결론이 나는 게 가능하다. 초기값에 의해 완전 별개의 모델이 형성되는 것이다.
마치 등산객들이 하산하는 느낌이라고 보면 된다. 위에서 아래로 내려갈 때, 움푹 파인 지형이 아니라면 등산객들은 다른 방향에서 하산을 완료하게 될 것이다.
반면 아래로 볼록한 그래프는 마치
이런 팽이장 같은 느낌이다. 어디서 출발하든 간에(팽이장 안에 넣기만 한다면) 결국에는 맨 중앙으로 내려간다. 여기서도 x,y축은 w,b에, 또 z축은 Loss(Cost)에 대응된다고 보면 된다.
0.1 보폭?
특정 w와 b에 따른 기울기를 알아냈다고 하자. 만약 아래로 볼록한 이차방정식같은 형태라면, 기울기가 음수일 때 오른쪽으로, 기울기가 양수일 땐 왼 쪽으로 가게 설정된다. 그런데 w와 b는 도대체가 얼마만큼 움직여야 하는가? 이 때 등장하는 게 바로 보폭(Learning Rate)이다. 이 보폭은 너무 커서도 너무 작아서도 안되는데, 일반적으로 0.1만큼 수치가 변경되도록 하는 것이 관례라고 한다. 하지만 데이터셋에 따라서 보폭을 달리해야겠다.
참고
'언어영역 > Machine Learning' 카테고리의 다른 글
Mahcine Learning 야학 102 - 1~4, 차원 알아보기 (0) | 2021.01.10 |
---|---|
TensorFlow101-14~16 Sigmoid와 Softmax의 차이점 (0) | 2021.01.02 |
TensorFlow 101-1~101-12 (0) | 2020.12.30 |
TensorFlow 101 공부 시작! (0) | 2020.12.26 |
머신 러닝 (①) 필기 (0) | 2020.12.26 |