Basics of Neural Network Programming
Binary Classification
바이너리(0 또는 1)로 분류하는 것을 의미한다.
예를 들어 고양이의 이미지를 보고 고양이인지(1) 아닌지(2)를 판단해 라벨을 다는 것은 binary classification이다.
Notation
nxnx features : xx, output yy
x∈Rnx, y∈0,1
m개의 training example : (x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))
X = [x(1) x(2) ... x(m)]
\
X \cdot shape = (n_x,m)
Feature Vector X는 nx×m matrix이다.
다른 표기에서는 X를 transpose하여 만드는 경우도 있지만, 코드 작성의 편의를 위해 위와 같이 표기한다.
Y = [y(1) y(2) ... y(m)]
\
Y \cdot shape = (1,m)
Logistic Regression
x가 주어졌을 때, ˆy=P(y=1∣x) (y=1일 확률)을 구한다.
- 파라미터b∈R
- w∈Rnx
- 출력
- ˆy=σ(wTx+b) =σ(z)=11+e−z

Logistic Regression cost function

Training set(x(i),y(i))이 주어졌을 때,
알고리즘의 y=1일 확률이 실제와 비슷해지기를 원한다. (ˆy(i)≈y(i))
- Loss (error) Function :오차 함수가 최대한 작게 만들기를 원한다.
- −(ylogˆy+(1−y)log(1−ˆy))

- Cost Function파라미터 w,b를 조절해서 cost function J가 최소가 되도록 하는 w,b를 찾는다.
- J(w,b)=1mm∑i=1[y(i)logˆy(i)+(1−y(i))log(1−ˆy(i))]
Gradient Descent

이를 통해 cost function의 global optimum을 찾고 이때의 w,b를 구한다.

수렴할 때까지 다음 식을 반복한다.
w:=w−α∂J(w,b)∂w
b:=b−α∂J(w,b)∂b
Derivatives

More derivatives examples

Computation Graph
변수의 관계와 흐름을 파악할 수 있는 그래프이다.
오른쪽으로 가면 어떤 변수가 어디에 들어가는지, 왼쪽으로 가면 미분할 때 유용하게 사용할 수 있다.

Derivatives with a Computation Graph

u=bc, v=a+u, J=3v 일 때

- J=3v 이므로∴dJdv=3
- v=11→11.001 이 되면, J=33→33.003 이 된다.

- v=a+u 이므로연쇄법칙 (chain rule)에 의해서,∴dJdb=dJdu⋅dudb=3×c
- ∴dJdc=dJdu⋅dudc=3×b
- ∴dJda=dJdv⋅dvda=3×1
- a=5→5.001, v=11→11.001, J=33→33.003
또한, 이 강의에서 d[FindOutputVar]d[var]=d[var] 로 약속하고 사용한다.
Logistic Regression - Gradient Descent
Logistic Regression recap

Logistic Regression derivatives

[da]=dL(a,y)da=−ya+1−y1−a
[dz]=dL(a,y)dz=a−y
Gradient descent on m examples
J(w,b)=\frac 1 m \sum^m_{i=1}L(a^{(i)},y^{(i)})
\
\to a^{(i)}=\hat{y}^{(i)}=\sigma(z^{(i)})=\sigma(w^Tx^{(i)}+b)
∂∂w1J(w,b)=1mm∑i=1∂∂w1L(a(i),y(i))
Initialize values : J=0, dw1=0, dw2=0, db=0
For i=1 to m:
z(i)=wTx(i)+b
a(i)=σ(z(i))
J←J+−[y(i)loga(i)+(1−y(i))log(1−a(i))]
dz(i)=a(i)−y(i)
dw1←dw1+x(i)1dz(i)
dw2←dw2+x(i)2dz(i)
db←db+dz(i)
Compute Average:
J/m, dw1/m, dw2/m, db/m
dw1=∂J∂w1
For
w1:=w1−αdw1
w2:=w2−αdw2
b:=b−αdb
for문이 이중으로 반복되기 때문에 비효율적이라는 단점이 있다.
이후 Vectorization을 통해 이를 해결할 수 있다.
Source
Neural Networks and Deep Learning
신경망 및 딥 러닝
deeplearning.ai에서 제공합니다. In the first course of the Deep Learning Specialization, you will study the foundational concept of neural networks and ... 무료로 등록하십시오.
www.coursera.org