일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- java
- 경사하강법
- 딥러닝공부
- 파이썬강좌
- 지도학습
- 자바강좌
- 백준 알고리즘
- c언어 오목
- supervised learning
- unsupervised learning
- python강좌
- 인공지능
- 머신러닝공부
- 머신러닝 강의
- 비용함수
- 선형회귀
- Python강의
- 효묘블로그
- 딥러닝
- C언어
- 자바
- Gradient Descent
- 자바시작하기
- 머신러닝 강좌
- JAVA강좌
- 파이썬강의
- feature scaling
- 머신러닝
- 비지도학습
- acmicpc.net
Archives
- Today
- Total
컴공과컴맹효묘의블로그
수알못의 머신러닝 공부 : 경사하강법 Python으로 구현해보기 본문
반응형
지금까지 공부한 선형회귀를 수식적으로 표현한 후에 Python으로 구현해볼려고 합니다.
아래의 수식들은 이전 포스팅에서 자세히 다뤘습니다.
바로가기
일단 점들을 지나는 직선을 표현해보겠습니다.
그리고 오차를 구합니다.
위 수식의 오차는 쓸모가 없습니다.
이유는 만약, 2개의 데이터셋에서 오차가 각각 -1, 1이 나온다면, 오차들의 평균은 0이기때문에 적절한 오차를 구할 수 없습니다. 따라서 절댓값 혹은 제곱을 씌워줍니다.
절댓값은 미분 불가능한 점이 나올 수 있기때문에 제곱을 씌워줍니다.
그리고 데이터셋의 개수인 m으로 나누고, 미분하면 2가 떨어지니 1/2을 또 곱합니다.
비용함수를 구했습니다. 이제 비용함수의 극소값을 구하기 위해서 경사하강법을 사용합니다.
(세타값은 임이의 수로 초기화 해줍니다.)
모든 매개변수를 각각 편미분해줍니다.
이제 이 수식들을 모두 파이썬으로 구현합니다.
출력된 그래프를 봅니다.
노란색 직선은 이전 업데이트의 흔적입니다.
파란색 직선이 학습을 모두 마친 후의 직선입니다.
반응형
'컴퓨터 > 머신러닝' 카테고리의 다른 글
수알못의 머신러닝 공부 : 행렬과 벡터_행렬곱 (0) | 2019.06.27 |
---|---|
수알못의 머신러닝 공부 : 행렬과 벡터_표현 (0) | 2019.06.25 |
수알못의 머신러닝 공부 : 경사하강법 (0) | 2019.06.17 |
수알못의 머신러닝 공부 : 비용함수 (2) | 2019.06.16 |
머신러닝 기초 : 머신러닝이란? (0) | 2019.06.16 |
Comments