2. Neural Networks - MLP

ysw2946·2022년 5월 11일
0

인공신경망


  • 인공신경망도 시작은 인간의 뇌를 모방하여 신경망의 형태를 나타내었지만, 꼭 항상 사람이나 동물의 뇌를 모방할 필요는 없다.

  • 지금의 딥러닝 혹은 인공신경망이 ‘인간의 뇌를 모방하기 때문에 잘 작동한다’ 라는 해석보다는 이 모델이 왜 잘 작동하는지 수학적으로 분석하는 것이 더 옳다고 생각된다.

  • function approximators 와 함께 nonlinear transformations가 반복적으로 일어나는 모형을 인공신경망이라 한다.

Linear Neural Networks


  • Linear regression은 입력이 1차원이고 출력이 1차원일 때 이 두개를 연결하는 모델을 찾는 것.
  • 선형이기 때문에 기울기와 절편이라는 parameter를 찾는 모형
  • 주로 선형회귀에서의 Loss function 은 MSE를 사용

  • w와 b라는 parameter를 찾는 방법은 여러가지가 있음
  • 역전파를 이용하여 Loss function을 줄이는 것을 목표로 parameter를 update한다.
  • parameter의 update는 Loss fucntion을 각각의 parameter(선형 회귀에서는 w와 b)로 편미분 한 값을 찾아서 현재의 parameter에 적절한 값(학습률)을 곱해서 빼주는 방식으로 최적의 parameter를 찾는다. (gradient descent)

  • 학습률이 너무 높거나 작으면 학습이 잘 이루어지지 않기 때문에, 적절하게 조절해줘야 할 필요가 있다.

Beyond Linear Neural Networks


  • 네트워크의 층을 깊게 쌓기 위해서는 비선형 활성화 함수가 필요하다.

  • 아래 그림의 네트워크는 W1과 W2의 곱으로 이루어져 있지만, 이것은 단순 행렬 곱이기 때문에 1단 짜리의 네트워크와 다를 것이 없다.

  • 하지만 비선형 함수를 이용한다면 x와 y간의 mapping의 표현을 극대화 시킬 수 있다

  • 어떤 Nonlinear function을 사용할지는 상황과 문제마다 따라 다르지만, Nonlinear function을 사용해야지만 네트워크를 깊게 쌓았을 때 의미가 있다고 할 수 있다.

Multi - Layer Perceptron


  • 입력이 주어져 있고 여러 개의 hidden layer와 출력으로 이루어져 있는 것을 Multi - Layer Perceptron 이라 한다.

  • 항상 Loss function을 최소화 하는 것이 우리의 목적을 달성 시켜주지는 않는다. 예를 들어, MSE의 경우 데이터에 이상값이 존재할 경우 크게 영향을 받기 때문에 내가 원하는 function을 찾는데 도움이 되지 않을 수 있다.

  • 분류 문제에서의 output은 onehot vector로 표현되며, Loss function으로는 일반적으로 cross entropy를 사용한다.

  • 만약, 내가 찾고 싶은 라벨이 10개면 10차원의 벡터가 output으로 나타나며, 강아지를 찾고 싶을 경우 그에 해당하는 demention만 1이고 나머지는 0이 된다.

  • cross entropy를 minimize 한다는 것은 내 네트워크의 output 중에서 해당하는 label의 출력값만 높이는 것을 의미하며, 분류를 할 때 d개의 output 중 가장 큰 숫자를 가진 인덱스 만을 고려한다.

0개의 댓글