210721 FUNDAMENTAL 15. 신경망

문소정·2021년 7월 21일
0

AIFFEL

목록 보기
14/66

목표 : Numpy만을 이용한 신경망 훈련과정 구현

1. 신경망 구성

  • 인공신경망(Artificial Neural Network)
    • 우리 뇌 속의 신경망 구조에 착안해서 퍼셉트론(Perceptron)이라는 형태를 제안하며 이를 연결한 형태
    • = DNN(Deep Neural Network)

1) 다층 퍼셉트론(Multi-Layer Perceptron; MLP)

< 그림 >

< 구현화면 >

  • 총 3개의 레이어로 구성된 퍼셉트론 ⇨ 실제는 총 2개의 레이어(hidden layer를 세지 않음)
    • 2개 이상의 레이어를 쌓아서 만든 것, 은닉층이 많을 수록 'Deep'함
  • 은닉층 H개의 노드, 출력층 K개의 노드가 존재하는 인공신경망
    • +1 노드 = bias(편향) : 훈련가능한 상수값, bias를 사용하면 활성화 함수를 left/right 이동 할수 있음

Parameters/Weights

  • 입력층-은닉층, 은닉층-출력층 사이에는 각각의 행렬(Matrix)이 존재
    • ex) 입력값이 100개, 은닉 노드가 20개 라면 = 100x20 형태의 행렬, 10개의 클래스를 맞추는 문제를 풀기 위해 출력층이 10개의 노드를 갖는다면 은닉층-출력층 사이에는 20x10형태 행렬이 존재
  • 이 행렬들이 Parameter/Weight
    y=WX+by = WX + b

활성화 함수(Activation Functions)

  1. Sigmod = logistic
    σ(x)=11+e1\sigma(x)= \frac{1}{1+e^{-1}}
  1. Tanh
    tanh(x)=exexex+e(x)tanh(x)=\frac{e^x-e^{-x}}{e^x+e^(-x)}
  • 문제점
    • 함수의 중심값을 0으로 옮겨 sigmoid의 최적화 과정이 느려지는 문제를 해결
    • 여전히, vanishing gradient 문제 존재
  1. RelU
    f(x)=max(0,x)f(x)=max(0,x)
  • sigmoid, tanh 함수에 비해 학습이 빠름
  • 연산 비용이 적고 구현이 간단함

0개의 댓글