본문 바로가기

도서,강의 요약/모두를 위한 머신러닝

lec 07-1: 학습 rate, Overfitting, 그리고 일반화 (Regularization)

해당 자료는 "모두를 위한 머신러닝/딥러닝 강의"를 보고 개인적으로 정리한 내용입니다.

http://hunkim.github.io/ml/

 

모두를 위한 머신러닝/딥러닝 강의

 

hunkim.github.io

 

learning rate

cost function 의 그래프

  • gradient descent 알고리즘에 의해 learning rate 만큼 이동

learning rate를 큰 값을 주는 경우

  • cost가 가장 작은 곳으로 이동하지 못하고 결국 더 큰 cost 값으로 발산
  • overshooting

learning rate를 작은 값을 주는 경우

  • cost가 가장 작은 곳으로 이동하지 못하고 중단
  • 보통 cost 값이 변경되지 않는 것처럼 보임

적절한 learning rate를 산정하는 방법

  • 없음
  • 보통 0.01 정도로 cost값을 추출. 발산하거나 변동이 없다면 값을 변경

 

Data preprocessing

X변수가 2개여서 W변수가 2개인 이차원의 cost 그래프

  • 특정한 점에서 시작하여 가장 최저점으로 이동

X변수의 분포 차이가 심한 경우

  • x1, x2 값의 분포 차이가 큼
  • 불규칙한 타원형 원이고, 이런 경우 최저점을 찾지 못함

Data preprocessing 방법

  • zero centered data : 값의 분포를 가운데로 이동
  • normalized data: 특정 범위에 분포하도록 값을 변경

normalized data 공식

  • x 변수에 평균을 뺀 값을 분산으로 나눔

 

Overfitting

학습 데이터를 잘 일반화 하여 나눈 경우

  • 다른 데이터가 유입되어도 일반화되어 있기 때문에 맞출 수 있음

학습 데이터에 정확하게 일치하게 나눈 경우

  • 다른 데이터가 유입되면 일반화 되어 있지 않기 때문에 맞출 수 없음
  • overfitting

overfitting을 줄이는 방법

  • 학습 데이터를 더 많이 제공
  • 피쳐의 수를 축소
    • 예: 중복된 것 삭제
  • 일반화(regularization)
    • Cost function를 변경
    • 기존의 Cost function에 weight 조정 값을 추가로 더 해줌
    • weight 조정값이 더해진 cost function를 최적화 해야함

일반화 방정식

  • W의 제곱의 합에 상수(regularization strength)를 곱하여 조절
  • 상수를 0.001 처럼 적게 주면 W값의 비중을 줄임
  • 상수를 0으로 주면 일반화 하지 않음
  • 상수를 1000 처럼 크게 주면 W값의 비중을 늘림