티스토리 뷰
Learning rate 를 조절하는 방법
보유한 데이터를 선처리 하는 방법
ML의 주요 문제 중 하나인 overfitting을 방지하는 방법에 대해 배운다.
Learning rate
cost를 최소화 하기 위한 gradient descent algorithm을 구현하는 과정에서 learning rate의 개념을 배웠다. 이 값을 보통 임의로 설정하게 되는데, 매우 큰 값으로 잡게 되면 그래프에서 하강하는 폭이 매우 크다는 것을 의미한다. 이 경우 학습이 이루어지지 않을 뿐만 아니라 최저점에 도달하는 것을 넘어서 그 반대 방향의 그래프에 도달할만큼 overshooting이 발생할 수 있다.
반대로 learning rate가 매우 작을 경우 최저점에 도달하는 데 까지 소요되는 시간이 길어지고, global minimum이 아닌 local minimum을 그래프의 최저점으로 인식할 수 도 있는 문제가 발생한다.
따라서 초반에 설정하는 learning rate 값에는 정답이 없다. 보통 0.01에서 부터 시작하여 cost 함수의 값을 관찰해본다.
Data(X)를 선처리 해야 하는 경우; for gradient descent
경사면을 따라 내려가서 최저점에 도달하는 것이 목표인데, 예를 들어 보유 데이터 간 차이가 과도하게 나는 경우 그래프 밖으로 튀어 나갈 가능성이 높음. 따라서 이 경우에는 보통 normalize 한다. 이 방법 중 하나가 Standardization이다.
Overfitting
트레이닝 데이터 셋에 매우 딱 맞는 모델을 만들어 냈을 때는 학습 데이터를 가지고 물어보면 답을 잘 하겠지만 실제로 사용해보거나 테스트할 때는 잘 안맞게 되는 경우 Overfitting 해결하는 방법
1) 트레이닝 데이터가 많으면 많을 수록 좋다
2) feature의 개수를 줄인다
3) 일반화 regularization
- weight을 너무 큰 값으로 설정하지 말자 (= 그래프를 구부리지 말고 좀 피자). 주어진 데이터에 비해 과도하게 복잡한 모델을 학습하게 된다면 overfitting이 일어날 확률이 높다. 그렇다고 너무 단순한 모델을 사용하더라도 부정확한 결과를 얻게 될 확률이 높다. 따라서 적당히 복잡하도록 원래의 cost function을 조정할 필요가 있는데 이를 regularization이라고 한다.
'study' 카테고리의 다른 글
ML — Sigmoid 대신 ReLU? 상황에 맞는 활성화 함수 사용하기 (0) | 2023.10.09 |
---|---|
ML — 응용과 몇가지 팁 2 (1) | 2023.10.09 |
ML — Basic concepts 7 (1) | 2023.10.09 |
ML — Basic Concepts 6 (0) | 2023.10.09 |
ML — Basic concepts 5 (1) | 2023.10.09 |
- Total
- Today
- Yesterday
- 파이썬디버거
- 아야진해변
- 안젤라유파이썬
- 선형대수
- higher lower game
- 파이썬전역범위
- 파이썬thonny
- 프랑스어문법
- higherlower게임
- 파이썬 게임 만들기
- 큐러닝
- 파이썬 안젤라유 강의
- 파이썬안젤라유
- 파이썬 초급강의
- 유데미파이썬강의
- 파이썬for문
- 파이썬반복문
- 파이썬안젤라유강의
- 파이썬초급강의
- 파이썬강의소개
- 아야진
- 복합과거
- qlearning
- 불어문법
- 고성
- 벡터
- 안젤라유강의
- 반과거
- 숫자업다운게임
- 파이썬디버깅
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |