[Deep Learning] Shallow NN (2 layer)

이수빈·2023년 4월 20일
0

why) 소개하는가? DNN에 앞서 shallow NN을 먼저 설명

1. What is NN?

인간의 뇌의 구조와 기능에서 영감을 받은 Machine learning 모델의 유형
Neuron(Regressor) 으로 이루어짐.

❓ For) Data 내부의 패턴을 학습 || 그러한 패턴에 기반한 예측
❕ How) Learn in each Neuron
→ log. R과 forward prop., back prop.을 이용해 Cost function을 최소화하는 방향으로 w, b를 업데이트함.
1. forward propagation (추정값 y^\hat y 도출)
2. loss 함수 정의: L(y^,y)L(\hat y, y) where y=ground truth
3. back propagation (뒤로 가며 미분)
➰ Ex) Feedforward NN, CNN, RNN, etc

  • noation:
    • [i]: i-th layer
    • (i): i-th example

2. 2 Layer NN (Shallow NN)

Neural Net. Representation

  • [0] Input layer
  • [1] hidden layer
  • [2] output layer

why) Transpose 사용?
→ Matrix Multiplication의 편의성

❕ how) Computing NN’s Output

  • notation
    • Transpose 기호 생략. 그러나 Transpose되어 있는 거임.

각 Neuron에서는 다음과 같은 연산이 이루어짐
Given input xx :

z[1]=W[1]x+b[1]a[1]=σ(z[1])z[2]=W[2]a[1]+b[2]a[2]=σ(z[2])z^{[1]} = W^{[1]}x +b^{[1]} \\ a^{[1]} = \sigma(z^{[1]}) \\ z^{[2]} = W^{[2]}a^{[1]} +b^{[2]} \\ a^{[2]} = \sigma(z^{[2]}) \\

👍🏻 gd) Vectorizing across multiple examples (Mat. Mult.)

🥲 Pb) m개의 data에 대하여 Log. R 따로 계산하면 (for-loop 사용하면) inefficient → Sol) x→ vector, W → matrix로 만들어주면, GPU로 병렬 연산이 가능해서 효율성 gd

➰ ex) 2NN, Deep-NN

1) 2 Layered NN by Gradient Descent
하나의 hyperplane는 linearly seperable한 함수에 대해서만 표현할 수 있다.
NN은 위와 같은 한 평면에 있는 (위와 같은) red, blue를 분류할 수 있는 모델을 만들 수 있다.

2) Another Ex.; Deep NN by GD
다음과 같은 복잡한 형태도 가능

3. Activation Function

  • 여러 가지가 있으므로 모델링 시마다의 option

  • Sigmoid -> 이진 분류

  • tanh -> 다중 분류

    sigmoid function을 늘린 버전

    • 일반적으로! works better than sigmoid
    • 🥲 pb) vanishing gradient: z값이 커지거나, 작아지면 gradient는 거의0
      → sol) ReLU
  • ReLu :

    gradient가 0 | 1

    • 👍🏻 계산량이 많지 않음에도 학습이 더 잘 되더라~
  • Leaky ReLU

▶️ Binary Classification → output layer에서는 sigmoid가 일반적. ReLU는 무한히 커지므로 확률값을 표현하기가 어렵.

why) Act. Func. 으로 non-linear를 쓰는가?

  • simple linear func.으로 학습하면 결국 linear combination이 되므로 경계 부분에서 급격하게 변하는 모델 → 실제 data와 다르다.
  • linear가 적용되면, 그 layer가 없는 경우와 표현력이 크게 다르지 않음.

gd) Derivatives of act. func.

미분값이 적당하고 직관적임.

  • sigmoid →
    • dy=y(1y)dy = y(1-y)
  • tanh →
    • dy=(1+y)(1y)dy = (1+y)(1-y)
  • ReLu →
    • 0  if z<01  if z>=00 \ \ if\ z<0\\ 1\ \ if\ z>=0
  • Leaky ReLu →
    • 0.01  if z<01  if z>=00.01 \ \ if\ z<0\\ 1\ \ if\ z>=0

0개의 댓글