일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 코드잇 TIL
- 코딩공부
- 경사하강법
- CSS
- 데이터분석
- 판다스
- 다항회귀
- 오늘도코드잇
- matplotlib
- 나혼자코딩
- 영국석사
- 유학생
- 윈도우함수
- sql연습문제
- 코드잇TIL
- 로지스틱회귀
- 머신러닝
- 코딩
- 파이썬
- 선형회귀
- 행렬
- Seaborn
- SQL
- HTML
- 런던
- numpy
- 결정트리
- for반복문
- 코드잇
- 코딩독학
- Today
- Total
영국 척척석사 유학생 일기장👩🏻🎓
(Machine Learning) 학습률 알파 본문
경사 하강법을 하기 위해서는 두 변수 theta_0, theta_1을 아래와 같이 계속 업데이트 하면 된다고 이전 글에서 설명하였습니다.
이때 학습률 알파a는 경사를 내려갈때마다 얼마나 많이 그 방향으로 갈 건지를 결정하는 변수입니다.
이번 글에서 학습률 알파를 잘 못 고를 때 생기는 문제점에 대해서 알아보겠습니다.
이해를 쉽게 하기 위해 손실함수 J가 하나의 변수, thata로만 이루어졌다고 가정해보겠습니다.
1. 학습률 a가 너무 큰 경우
알파가 크면 클수록 경사 하강을 한 번을 할 때마다 thata의 값이 많이 바뀝니다. 그럼 아래와 같이 왼쪽과 오른쪽으로 성큼성큼 왔다갔다 하면서 진행이 됩니다. 심지어 a가 너무 크면 경사 하강법을 진행할수록 손실 함수 J의 최소점에서 멀어질 수도 있습니다.
2. 학습률 a가 너무 작은 경우
반대로 알파가 작으면 theta가 조금씩 움직입니다. 너무나도 작게 되면 최소 지점을 찾는 데 너무 오래 걸리게 됩니다. 1분 만에 할 수 있는 작업이 5분 10분, 그거보다 더 오래 걸릴 수도 있게 됩니다.
3. 적절한 학습률
1.2와 같은 상황 때문에 알파를 적당한 크기로 설정하는게 중요합니다.
가장 적절한 학습률은 상황과 문제에 따라 다릅니다. 경사 하강을 하면서 손실이 줄어들고 있는걸 그래프로 표현해보면 만약, 적절한 학습률이라면 손실그래프가 아래와 같이 나옵니다.
학습률이 너무 크면 경사 하강법을 할수록 손실 그래프가 커지게 됩니다.
작을 때에는 iteration 수가 많아집니다.
일반적으로 1.0~0.0 사이의 숫자로 정하고 (1, 0.1, 0.01, 0.001 또는 0.5, 0.05, 0.005 이런식으로) 여러 개를 실험해보면서 경사 하강을 제일 적게 하면서 손실이 잘 줄어드는 학습률을 선택하면 됩니다.
'코딩공부 > Machine Learning' 카테고리의 다른 글
(Machine Learning) 다중 선형 회귀 (0) | 2023.08.21 |
---|---|
(Machine Learning) 모델 평가하기 (0) | 2023.08.14 |
(Machine Learning) 선형 경사 하강법 구현하기 (0) | 2023.07.12 |
(Machine Learning) 경사 하강법 계산 (0) | 2023.07.11 |
(Machine Learning) 손실 함수 (loss function) (0) | 2023.07.11 |