본문 바로가기
AI/혼공머신

[혼공머신] 04-2 | 확률적 경사 하강법

by 뒹굴거리는프로도 2024. 10. 24.
반응형

 

키워드


확률적 경사 하강법

훈련 세트에서 샘플을 하나씩 꺼내서 손실 함수의 경사를 따라 최적의 모델을 찾는 알고리즘이다. 샘플을 하나씩 사용하지 않고 여러 개를 사용하면 미니 배치 경사 하강법이 된다. 한 번에 전체 샘플을 사용하면 배치 경사 하강법이 된다.

손실 함수

손실함수는 확률적 경사 하강법이 최적화할 대상이다. 대부분의 문제에 잘 맞는 손실 함수는 이미 정의되어 있다. 이진 분류에는 로지스틱 회귀(또는 이진 크로스 엔트로피) 손실 함수를 사용한다. 다중 분류에는 크로스 엔트로피 손실 함수를 사용한다. 회귀 문제에는 평균 제곱 오차 손실 함수를 사용한다.

에포크

확률적 경사 하강법에서 전체 샘플을 모두 사용한 횟수를 의미한다. 일반적으로 경사 하강법 알고리즘은 수십번에서 수백 번 에포크를 반복한다.

04-2 단원 내용


점진적인 학습

  • 앞서 훈련한 모델을 버리지 않고 새로운 데이터에 대해 조금씩 훈련하는 방법을 점진적 학습 또는 온라인 학습이라고 부른다. 대표적인 점진적 학습 알고리즘은 확률적 경사 하강법(Stochastic Gradient Descent)이다.

확률적 경사 하강법

  • 훈련 세트에서 랜덤하게 하나의 샘플을 골라, 가장 가파른 경사를 찾는 것이 확률적 경사 하강법이다.
  • 하나의 샘플을 선택해서 가파른 경사를 조금 내려가고, 그다음 훈련 세트에서 랜덤하게 또 다른 하나의 샘플을 선택해서 경사를 조금 내려간다. 이런식으로 전체 샘플을 모두 사용할 때까지 계속한다. 전체 샘플을 다 사용했음에도 산을 다 내려오지 못했으면, 처음부터 다시 시작한다. 훈련 세트에 모든 샘플을 다시 채워넣고, 만족할만한 위치에 도달할 때까지 계속 내려간다.

손실 함수

  • loss function은 머신 러닝 알고리즘이 어떤 문제에서 얼마나 엉터리인지 측정하는 기준이다.
  • 손실 함수의 값은 작을수록 좋다. 최솟값을 찾기 위해 가능한 많이 찾아보고, 적정한 수준이면 값을 찾았다고 생각하면 된다. 이 값을 찾아서 조금씩 이동하려면 확률적 경사 하강법이 잘 맞을 수 있다.
  • 손실 함수는 미분 가능해야 한다.

로지스틱 손실 함수

  • 로지스틱 손실 함수는 이진 크로스엔트로피 손실 함수라고도 부른다.
  • 양성 클래스(타깃=1)일 때 손실은 -log(예측 확률)로 계산한다. 이 예측 확률이 1에서 멀어져 0에 가까울수록 손실은 아주 큰 양수가 된다.
  • 음성 클래스(타깃=0)일 때 손실은 -log(1-예측 확률)로 계산한다. 이 예측 확률이 0에서 멀어져 1에 가까울수록 손실은 아주 큰 양수가 된다.
  • 다중 분류에서는 크로스엔트로피 손실함수를 사용한다.
  • 우리가 손실 함수를 직접 만드는 일은 없다. 이미 문제에 잘 맞는 손실 함수가 개발되어 있다.

SGDClassifier

  • 사이킷런에서 확률적 경사 하강법을 제공하는 대표적인 분류용 클래스이다.
  • 객체를 만들 때 2개의 매개 변수를 지정하는데 loss는 손실 함수의 종류를 지정하며, max_iter는 수행할 에포크 횟수를 지정한다.
  • SGDClassifier 객체를 이어서 훈련할 때는 partial_fit() 메소드를 사용한다. 이 메소드는 fit() 메소드와 사용법이 같지만, 호출할 때마다 1에포크씩 이어서 훈련할 수 있다.
  • SGDClassifier의 loss 매개변수 기본값은 'hinge'이다. 힌지 손실(hinge loss)는 서포트 벡터 머신(support vector machine)이라 불리는 또다른 머신러닝 알고리즘을 위한 손실함수이다.

에포크와 과대/과소 적합

  • 확률적 경사 하강법을 사용한 모델은 에포크 횟수에 따라 과소적합이나 과대적합이 될 수 있다.
    • 적은 에포크 횟수로 훈련한 모델은 훈련 세트와 테스트 세트에 잘 맞지 않는 과소적합 모델일 가능성이 높다.
    • 많은 에포크 횟수로 훈련한 모델은 훈련 세트에 너무 잘 맞아 테스트 세트에 잘 맞지 않는 과대적합 모델일 가능성이 높다.
  • 과대적합이 시작하기 전 훈련을 멈추는 것을 조기 종료(early stopping)라고 한다.

점진적 학습을 위한 확률적 경사 하강법

 

 

 


 
반응형