Processing math: 75%
본문 바로가기
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(nx)는 64*64*3, output size(ny)는 1이다.

 

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

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

 

 


 

i번째 example(Xi번째 column)은 x(i),

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

 

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

ˆy=σ(wTx+b)

wRnx, bR

 

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

σ(z)=11+ez

 

 

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

ˆy(i)=σ(wTx(i)+b)

 

 


 

input x에 대한 정답 y가 주어질 때, 예측값 ˆy에 대한 Loss function은 다음과 같다.

L(ˆy,y)=(ylogˆy+(1y)log(1ˆy))

더보기

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

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

 

 

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

J(w,b)=1mmi=1L(ˆy(i),y(i))

=1mmi=1[y(i)logˆy(i)+(1y(i)) log(1ˆy(i))]

 

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

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

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

 

 


 

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

dw1=x1dz,dw2=x2dz,db=dz

w1:=

w2:=w2αdw2

b:=bαdb

더보기

dadz=a(1a) 인 것은 sigmoid 함수를 미분해 보면 된다.

d(1+ez)1dz=1(1+ez)2(ez)=11+ezez1+ez=11+ez(111+ez)

 


 

m개의 데이터에 대한 dw1,dw2,db1mi=1mdw1(i),1mi=1mdw2(i),1mi=1mdb(i)와 같다.

(J(w,b)=1mi=1mL(y^(i),y(i)))

 

각각의 dw1,dw2 대신 (nx, 1) shape인 하나의 vector dw를 사용하여로 dw += x(i)dz(i) 와 같이 식을 간소화하고, i번째 column이 x(i)인 matrix XRnx×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

댓글