티스토리 뷰
1 2 | optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01) train = optimizer.minimize(cost) | cs |
그리고, 선형 회귀 모델에서의 비용함수를 아래와 같이 정의할 수 있다.
이때, cost를 줄이기 위해 변경되는 W의 파라미터의 상관관계를 그래프로 나타낸다면..
cost의 값이 최소가 되는 것은 W의 값이 가운데로 수렴하게 된다는 것을 의미한다.
(편의상 추가적으로 더하는 항인 바이어스의 값은 제외 한다)
결국, 그래프 위에 랜덤하게 파라미터가 정해지면 해당 파라미터의 위치로 부터 최소값을 찾아 탐색하는 기준으로 경사도를 구해야한다.
이때 빨간점의 위치를 A라 하고 파란점의 위치를 B라 하자.
A의 위치에서의 경사의 기울기는 음수 이기 때문에 W의 값을 증가 시키게 되고 B의 위치에서의 경사의 기울기는 양수 이기 때문에 W의 값을 감소 시키게 된다.
여기서, 경사도를 구하기 위해서는 미분이 필요하게 되는데 이를 위해 식을 아래와 같이 변경한다.
그리고 경사 하강법의 수식을 가져온 후에 cost function의 식을 대입한다.
그리고 이것에 미분을 취해주게 되면,
다음과 같은 최종 식이 도출되게 된다.
해당 식을 여러번 실행 시키는 것이 경사 하강법 알고리즘의 핵심이다.
이를 통해서, cost가 최소화 되는 값을 가진다.
함수 최적화 방법인 경사하강법 알고리즘은 그리디 접근방식을 사용한다.
(알고리즘을 보다보면 그리디 알고리즘을 공부하게 되는데.... 읍...)
이것은 즉 휴리스틱(heuristic)한 탐색을 하기 때문에 국소 최적해(Local Minimum)을 가질 위험이 있다.
간단하게 예를 들어보자면, 어떤 사람이 등산을 할 때 정상을 향해서 등산을 하게 되는데 정상인 줄 알고 올라와봤더니 옆에 더 높은 봉우리가 있는 것이다.
이와 같이 정상이 어디인지 모르고 일단 사람이 판단했을 때 최적의 길로 올라 갔을 때 휴리스틱한 탐색을 한다하고 사람은 봉우리에 올라갔을 때 주변을 탐색할 수 있지만
기계는 그러지 못한다. 따라서 그를 해결하기 위한 매커니즘으로 Convex Function을 활용한다.
이를 활용하면 어디서 시작하든지 간에 우리가 원하는 지점에 갈 수 있는 것이다.
따라서 우리의 알고리즘은 항상 최적해를 보장해주고 이 cost의 값이 최소가 되는지 반드시 결과를 모니터링 해보아야한다.
'기계학습' 카테고리의 다른 글
기계학습(Machine Learning) - 로지스틱 회귀 (Logistic Regression) (0) | 2017.05.29 |
---|---|
기계학습(Machine Learning) - 선형 회귀 (Linear Regression) (0) | 2017.05.12 |
기계학습(Machine Learning)의 개념 설명 (0) | 2017.05.11 |
- Total
- Today
- Yesterday
- 머신러닝
- Machine Learning Concept
- linear regression
- 텐서플로우
- Machine Learning
- 선형회귀
- dynamodb #dynamodb stream #stream
- 선형회귀 구현
- 텐서플로우 아키텍쳐
- 머신러닝 개념
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |