Skip to main content

모형 훈련

훈련

# 훈련 설정
model.compile(optimizer=keras.optimizers.SGD(learning_rate=0.0001),
loss='binary_crossentropy', metrics=['accuracy'])

# 훈련
model.fit(x_train_binary, y_train_binary, epochs=5, batch_size=32)

경사하강법 gradient descent

  • 기존의 파라미터를 바탕으로 예측 ŷ을 출력
  • 실제 y와 비교하여 손실을 계산 L(y,ŷ)
  • 손실을 줄이는 방향으로 파라미터를 수정
  • 위의 과정을 반복

학습률 learning rate

  • 파라미터는 한 번에 경사 × 학습률만큼 수정
  • 경사가 0에 가까울 수록 오차는 최소에 가까워짐
  • 경사에 비례하여 수정할 크기를 조정
  • 학습률이 크면 학습이 빠르지만 최소점 근처에서 수렴하지 않을 수 있음

경사하강법의 문제점

  • 한 단계의 가중치 수정을 위해 전체 데이터셋에 대해 계산
  • 국소최소점(local minima: 근방에서만 최소인 점)에 수렴
  • 안장점(saddle point: 경사가 0이지만 최소나 최대가 아닌 점)에서 업데이트 불가

확률적 경사하강법 Stochastic GD

  • 하나의 사례를 바탕으로 경사를 계산
  • 극소점을 향해 바로 가지 않고 지그재그로 이동하게 됨
  • 한 번의 업데이트를 위한 계산량이 적음
  • 국소최적화를 피할 가능성이 있음
  • 업데이트 방향이 불안정하므로 더 많은 업데이트가 필요할 수 있음

미니배치(Mini-batch) 경사하강법

  • 전체 데이터의 일부(=미니배치)만을 사용하여 경사하강법
  • 경사하강법과 확률적 경사하강법을 장점을 융합
  • 일반적으로 확률적 경사하강법이라고 하면 실제로는 미니배치 경사하강법을 가리킴

손실 함수 loss function

  • 비용 함수 cost function 또는 오차 함수 error function라고도 함
  • 예측과 실제의 차이를 계산
  • 손실 ≥ 0
  • 손실을 최소화할 수록 성능이 개선

MSE mean squared error

  • 오차 제곱의 평균(오차 = 실제 – 예측)
  • 연속변수의 예측에 사용
MSE=1Ni=1N(yiy^i)2\text{MSE} = \frac{1}{N} \sum_{i=1}^{N} (y_i - \hat{y}_i)^2
  • 이상치(outlier)에 민감

교차 엔트로피 cross entropy

  • 두 확률 분포의 차이를 계산
  • 범주형 변수의 예측에 사용
H(p,q)=xXp(x)logq(x)=ylog(y^)(1y)log(1y^)H(p,q) = -\sum_{x \in X} p(x) \log q(x) = -y \log(\hat{y}) - (1 - y) \log(1 - \hat{y})
  • p와 q 두 확률 분포가 비슷할 수록 작아짐
  • 높은 확률로 예측했을 때 맞고, 낮은 확률로 예측했을 때 틀려야 감소

퀴즈

사용자 정보 입력
퀴즈를 시작하기 전에 이름과 소속을 입력해주세요.

Q&A