[AI] Optimize : Scikit - Learn

Ik·2022년 7월 17일
0

Data

목록 보기
12/34

Optimize : 최적화

Optimize?

  • 모델이 예측한 결과와 정답간의 차이(오차)를 가장 적게 만드는 Parameter를 찾는 과정
  • 모델의 예측값과 실제 값의 차이를 계산하는 함수를 만들고 그 값이 최소가 되는 지점을 찾는 작업
  • 방법
    • Gradient Descent : 경사하강법
      • 일반적인 최적화 알고리즘
      • 손실함수를 최소화하는 파라미터를 찾기위해 반복해서 조정
      • 과정
        • 파라미터 벡터 𝑊에 대해 손실함수의 현재 gradient(경사,기울기)를 계산한다.
        • gradient가 감소하는 방향으로 벡터 𝑊를 조정
        • gradient가 0이 될때 까지 반복(gradient=0이 손실함수 최소화하는 지점)
          • gradient는 weight와 loss의 관계를 나타냄
            • gradient = 양수 : loss 줄이기 위해 weight 줄여야된다
            • gradient = 음수 : loss 줄이기 위해 weight 커져야 한다
      • parameter
        • Learning rate
          • 기울기에 따라 이동할 step의 크기
          • 너무 작은 경우 시간이 오래걸리거나 gradient = 0이 되기 전에 멈춤
          • 너무 큰 경우 gradient = 0 지점보다 큰 값, 작은 값 반복하다 발산하게됨

목적함수(Object Function), 손실함수(Loss Function), 비용함수(Cost Function), 오차함수(Error Function)

  • 모델의 예측한 값과 실제값 사이의 차이를 정의하는 함수로 모델이 학습할 때 사용
  • 이 함수의 반환값(Loss)을 최소화 하는 파라미터을 찾는 것이 최적화의 목적
  • 해결하려는 문제에 맞춰 loss 정의
    • Classification(분류) : cross entropy
    • Regression(회귀) : MSE(Mean Squared Error)

Optimize - (Logistic Regression - GridSearchCV)

  • parameter
param = {
    'C':[0.001, 0.01, 0.1, 1]   # 규제강도(default : 1), 작을수록 규제가 강하다
}
gs = GridSearchCV(LogisticRegression(random_state=0), 
                  param,
                  cv=5, 
                  scoring='accuracy', 
                  n_jobs=-1)

0개의 댓글