y = ax+b 로 선형 회귀식을 구할 때, 기울기 a에 따라 오차가 변한다.
이렇게 기울기가 커져도 오차가 커지고, 기울기가 작아도 오차가 커지기 때문에 오차가 최소인 적당한 기울기 a를 찾아야 한다.
기울기 a에 따른 오차 변화를 나타낸 그래프이다.
우리가 원하는 a는 오차가 최소가 되는 지점에서의 값이다.
이를 찾기 위해 미분을 사용한다.
a1에서 미분을 구하고, 기울기의 반대 방향으로 이동시켜서 a2에서 또 미분을 구하고, 이 과정을 반복한다.
경사 하강법은 이렇게 기울기 a를 변화시키면서 최적의 a를 찾아내는 과정이다.
그런데 a값을 이동시킬 때 너무 많이 이동시키면 값이 위로 튀어버린다.
그래서 학습률이라는 값을 적절히 결정해줘야 한다.
tensorflow를 이용해 경사하강법을 구현해본 코드이다.
책이 좀 옛날거라 tensorflow 버전이 바뀌면서 함수들이 많이 바뀐 문제를 해결하기 위해
예전 버전을 import한 것이 맨 위의 두줄이다.
다중 선형 회귀도 같은 방식을 사용한다.
독립변수가 x1, x2로 2개가 있을 때 y = a1x1 + a2x2 + b 에서 a1과 a2를 찾는다.
다중 선형 회귀 구현 코드이다.
선형 회귀와 거의 똑같은데 독립변수 x가 x1, x2로 늘어났다.
'인공지능' 카테고리의 다른 글
모두의 딥러닝 - 6장 ~ 9장(신경망) (0) | 2025.03.17 |
---|---|
모두의 딥러닝 - 5장(로지스틱 회귀) (0) | 2025.03.05 |
모두의 딥러닝 - 3장(선형 회귀) (0) | 2025.03.03 |
카카오톡 전송 api 개발 (0) | 2024.08.13 |
모두의 딥러닝 - 2장(처음 해 보는 딥러닝) (1) | 2024.07.17 |