본문 바로가기
Deep Learning

1.1 Neural Networks Basics

by yu901 2023. 2. 7.

 

 

이미지가 고양이 이미지인지(1) 아닌지(0) 구분하는 binary classification이 있다고 하자.

이미지는 64 pixels X 64 pixels이며, 각 픽셀은 RGB로 표현된다.

binary classification의 input feature vector의 shape는 (1, 64*64*3)이고

input size(\(n_x\))는 64*64*3, output size(\(n_y\))는 1이다.

 

\(m\)개의 이미지를 분류하는 경우, input matrix \(X\)의 shape는 (\(n_x\), \(m\))이고

label matrix \(Y\)의 shape는 (\(n_y\), \(m\))이다.

 

 


 

\(i\)번째 example(\(X\) 의 \(i\)번째 column)은 \(x^{(i)}\),

\(i\)번째 example의 output label은 \(y^{(i)}\) 으로 표현한다.

 

분류기의 예측 결과(\(\hat{y}\))는 이미지가 고양이일 확률( \(\hat{y}=P(y=1|x)\))이고, 다음과 같이 계산된다.

\(\hat{y}=\sigma(w^Tx + b)\)

\(w \in \mathbb{R}^{n_x}\), \(b \in \mathbb{R}\)

 

sigmoid(\(\sigma\))함수는 \(z=w^Tx + b\)를 0부터 1 사이의 값을 가지도록 제한하는 함수로 아래와 같다.

\(\sigma(z) = {1\over1+e^{-z}}\)

 

 

정확히 말하자면 \(i\)번째 example(\(x^{(i)}\))에 대한 예측 결과(\(\hat{y}^{(i)}\))는 다음과 같다.

\(\hat{y}^{(i)}=\sigma(w^Tx^{(i)} + b)\)

 

 


 

input \(x\)에 대한 정답 \(y\)가 주어질 때, 예측값 \(\hat{y}\)에 대한 Loss function은 다음과 같다.

\(L(\hat{y}, y) = - (y \log \hat{y} + (1-y) \log (1-\hat{y}))\)

더보기

정답 y가 1이면, \(L(\hat{y}, y) = - \log \hat{y}\)으로 \(\hat{y}\) 값이 클수록 Loss가 작아진다.

정답 y가 0이면, \(L(\hat{y}, y) = - \log (1-\hat{y})\) 으로 \(\hat{y}\) 값이 작을수록 Loss가 작아진다.

 

 

Cost function은 전체 예측결과에 대한 Loss function의 평균으로 다음과 같다.

\(J(w, b) = {1 \over m}\sum_{i=1}^{m} L(\hat{y}^{(i)},y^{(i)})\)

\(= -{1 \over m}\sum_{i=1}^{m}[y^{(i)} \log \hat{y}^{(i)} + (1-y^{(i)}) \ log (1-\hat{y}^{(i)})]\)

 

좋은 분류기는 Cost function \(J(w, b)\) 값이 작은 분류기이다.

Cost function을 최소화하는 \(w\), \(b\)를 찾는 방법 경사하강법(Gradiant Desent)함수의 기울기를 구하고 경사의 반대 방향으로 계속 이동시켜 극값에 이를 때까지 반복시키는 알고리즘이다.

현재 \(w\), \(b\)에서의 기울기 \({dJ(w, b)\over dw}\), \({dJ(w, b)\over db}\)(각각을 \(dw\), \(db\)라고 표현하기도 함)에 반대되는 방향으로 \(w\), \(b\)를 업데이트하는 것이다. \(\alpha\)는 learning rate를 의미한다.

 

 


 

2개의 feature(\(x_1, x_2\))를 가진 데이터 한 개에 대한 \(dw, db\)는 다음과 같이 계산할 수 있다.

\(dw_1 = x_1dz, dw_2 = x_2dz, db = dz\)

\(w_1 := w_1 - \alpha dw_1\)

\(w_2 := w_2 - \alpha dw_2\)

\(b := b - \alpha db\)

더보기

\({da\over dz}=a(1-a)\) 인 것은 sigmoid 함수를 미분해 보면 된다.

\({d(1+e^{-z})^{-1}\over dz} = -1*(1+e^{-z})^{-2}*(-e^{-z}) = {1\over 1+e^{-z}}{e^{-z}\over 1+e^{-z}}={1\over 1+e^{-z}}(1-{1\over 1+e^{-z}})\)

 


 

\(m\)개의 데이터에 대한 \(dw_1, dw_2, db\)는 \({1\over m}\sum_{i=1}^{m}dw_1^{(i)}, {1\over m}\sum_{i=1}^{m}dw_2^{(i)}, {1\over m}\sum_{i=1}^{m}db^{(i)}\)와 같다.

(\(J(w, b) = {1 \over m}\sum_{i=1}^{m} L(\hat{y}^{(i)},y^{(i)})\))

 

각각의 \(dw_1, dw_2\) 대신 (\(n_x\), 1) shape인 하나의 vector \(dw\)를 사용하여로 \(dw\) += \(x^{(i)}dz^{(i)}\) 와 같이 식을 간소화하고, \(i\)번째 column이 \(x^{(i)}\)인 matrix \(X \in \mathbb{R}^{n_x\times m}\)를 사용함으로 반복문을 제거할 수 있다.

 


 

 

'Deep Learning' 카테고리의 다른 글

2.3 Hyperparameter Tuning, Batch Normalization  (0) 2023.03.27
2.2 Optimization Algorithms  (0) 2023.03.14
2.1 Practical Aspects of Deep Learning  (0) 2023.02.28
1.3 Deep Neural Networks  (0) 2023.02.21
1.2 Shallow Neural Networks  (0) 2023.02.14

댓글