본문 바로가기

연구 노트/머신러닝

[TIL] 210325 - Deep LearniNg (~C1W2L03)

이 글은...

Andrew Ng 교수의 Deep Learning 강좌 C1W2L03 까지의 내용을 정리한 것이다. 로지스틱 회귀와 비용 함수에 대한 내용을 다룬다.

내용 요약

신경망 학습방법

  • 정방향 전파
  • 역방향 전파
  • 이 두가지가 어떻게 다른지는 이후에 다루게 됨
  • 일단은 이런 것이 있다는 것을 알고 넘어감

이진분류(Binary Classification)

  • yes or no로 분류하는 것
    • 고양이가 맞다. / 고양이가 아니다.
  • 로지스틱 회귀(Logistic regression)라는 알고리즘을 사용함

표기법 정리

  • $m$: 학습을 위한 데이터 세트 수
    • ${(x^{(1)}, y^{(1)}), (x^{(2)}, y^{(2)}), ... (x^{(m)}, y^{(m)}), }$
  • $n$: 입력 데이터 하나의 원소 개수
  • $x$: 입력 데이터 하나
  • $X$: 입력 데이터
    • $X = \begin{bmatrix}x^{(1)}_1 & x^{(2)}_1 & \cdots & x^{(m)}_1 \ \vdots & \vdots & \ddots & \vdots \ x^{(1)}_n & x^{(2)}_n & \cdots & x^{(m)}_n\end{bmatrix}$
    • X.shape = (n, m)
  • $y$: 출력 데이터 하나
  • $Y$: 출력 데이터
    • $Y = [y^{(1)}, y^{(2)}, ... y^{(n)}]$
    • Y.shape = (1, m)
  • $\hat{y}$: 예측값
    • 0과 1 사이의 확률값으로 나타남

로지스틱 회귀

입력 특성(x)에 대한 실제값(y)을 가지고 예측값($\hat{y}$)을 구하고 그 예측값과 실제값의 오차가 최소가 되도록 하는 파라미터($W$, $b$)를 구해야 함

  • $W$: $x$와 크기가 같은 $n$차원의 벡터
  • $b$: 상수

예측값은 아래와 같이 구함

$\hat{y} = \sigma(W^TX+b)$

Sigmoid 함수

  • 위 식에서 $\sigma$가 하는 역할은 예측값이 0에서 1사이가 되도록 만드는 역할
  • $\sigma(z) = {1 \over 1 + e^{-z}}$
    • $z$가 클 수록 1로 수렴
    • $z$가 작을 수록 0으로 수렴
  • Sigmoid 함수 그래프
  • 따라서 $\hat{y}$는 항상 0에서 1 사이의 값을 갖는다.

손실함수

한 세트에 대한 예측값($\hat{y}$)과 실제값($y$)의 오차를 구하는 함수

  • $L(y, \hat{y}) = -(y\log{\hat{y}}+(1-y)\log(1-\hat{y}))$
  • 실제값($y$)이 0이냐 1이냐에 따라서 오차를 구하는 식이 달라진다.
    • $y=0$일 때: $L(y, \hat{y}) = -y\log{(1-\hat{y})}$
    • $y=1$일 때: $L(y, \hat{y}) = -y\log{\hat{y}}$
    • 그래프로 표현

비용함수

모든 입력세트에 대한 오차를 구하는 함수

  • $J(W, b) = -{1 \over m}\sum_{i=1}^m(y^{(i)}\log{\hat{y}^{(i)}}+(1-y^{(i)})\log(1-\hat{y}^{(i)}))$

로지스틱 회귀 모델을 학습한다는 것은 비용 함수 $J$를 최소로 만드는 $W$와 $b$를 찾는 것을 의미