티스토리 뷰

study

ML — 응용과 몇가지 팁 1

kmk_sweetlife 2023. 10. 9. 18:26
반응형

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