PROGRESS
7 / 14
단원
데이터 구조화: AI 전처리 17
데이터의 규칙: 예측 로직 14
옷의 시너스: 판단 로직 1
예와 아니오: 판단 로직 6
닮은꼴 찾기: 관계 로직 7
최적의 경로: 강화 로직 7
층층이 지능: 신경망 로직 7
전체 목록
QUESTION 07 #409
경사하강법에서 학습률(Learning Rate)이 너무 크면 발생하는 문제는?
다음 중 옳은 것을 고르세요
경사하강법과 학습률
경사하강법(Gradient Descent)은 산을 내려가듯이 손실의 "낮은 지점"을 찾아가는 방법입니다.
산 내려가기 비유
↑ 손실
|
높음 |\ /
| \ /
| \ /
| \ /
최저| \/ ← 우리가 찾는 곳!
+────────→ w
학습 = 손실이 가장 낮은 w와 b를 찾는 과정
학습률(Learning Rate)이란?
한 번에 얼마나 큰 걸음으로 내려갈지 결정하는 값입니다.
새로운 w = 현재 w - 학습률 × 기울기
↑
얼마나 갈지
학습률에 따른 학습 결과
1. 학습률이 적당할 때 (이상적)
*
|\
| *
| *
| * ← 차근차근 최저점에 도착 ✅
| *
2. 학습률이 너무 크면 (발산)
* * * ← 너무 크게 뛰어서
|\ /|/ 최저점을 계속 지나침!
| \ / |
| \ / | 점점 더 심해짐 ❌
| \___/ |
문제: 최적값을 지나쳐 버림 → 학습이 불안정하거나 실패
3. 학습률이 너무 작으면 (느림)
*
|·
|· ← 한 걸음이 너무 작아서
| ·
| · 너무 오래 걸림
| ·
| ·
문제: 학습이 너무 느림 → 1만 번 학습해도 끝나지 않음
적절한 학습률 선택
| 학습률 | 결과 | 비유 |
|---|---|---|
| 0.01 (작음) | 안전하지만 느림 | 산을 한 발씩 내려감 |
| 0.1 (중간) | 적당함 (가장 일반적) | 산을 보통 걸음으로 |
| 1.0 (큼) | 발산 위험 | 산을 점프로 내려감 (위험!) |
실제 학습 과정
# 학습률 = 0.1로 설정
learning_rate = 0.1
w = 0 # 초기값
for i in range(100): # 100번 반복
gradient = 손실의_기울기_계산(w)
w = w - learning_rate * gradient
print(f"{i}번째: w = {w}")
# 출력:
# 0번째: w = 0.5
# 1번째: w = 0.9
# 2번째: w = 1.4
# ...
# 99번째: w = 3.0 (최적값 도달!)
비유로 정리
학습률 큼: 엘리베이터로 한 번에 내려감 (위험할 수 있음)
학습률 적당: 계단으로 한 걸음씩 안정적으로 내려감
학습률 작음: 한 발씩 느릿느릿 내려감 (시간이 오래 걸림)
실무에서의 조정
- 시작값: 0.01 또는 0.001로 작게
- 테스트: 학습이 안 되면 더 크게, 발산하면 더 작게
- 고급: 학습 진행에 따라 점점 줄이는 "학습률 스케줄링"
💡 핵심: 학습률이 너무 크면 최적값을 지나쳐 학습이 망가지고, 너무 작으면 학습이 너무 느려집니다. 적절한 값을 찾는 것이 핵심입니다.