Multi-Layer Perceptron(MLP)

geunyeongii·2021년 12월 6일
0

인공지능

목록 보기
10/10

그동안 선형회귀, 선형분류라는 모델을 이용해서 머신러닝 기법들을 알아보았지만,이제는 또다른 형태인 Neural Network(NN)을 알아보며 또 어떻게 이것이 Deep Neural Network(DNN)이 되었는지에 대해서 알아볼 것입니다.

Neural Network(NN)란?

NN을 신경망네트워크라고 하는 이유는 지금껏 구현해보았던 선형 회귀 및 분류 문제들을 사람의 뇌가 작동하는 프로세스대로 해결할 수 있기 때문에 신경망네트워크라고 불리웁니다.

위와같이 인간의 뇌에 해당하는 프로세스를 수학적 모델링을 하여 만들수 있습니다.
입력으로 들어올 수 있는 신호들이 매우 다양하며 Cell body라는 곳을 중심으로 모든 신호가 들어오고 그 신호값들을 더합니다. activation function은 어떠한 기준을 만족한다면 1로 못한다면 0으로 신호를 출력하게끔 설계를 하면 됩니다.

퍼셉트론이라는 것은 선형분류기, Feedforward network라고 부를 수도 있지만 위의 사진과 같은 하나의 뉴런을 말합니다.
이런 뉴런을 여러개 쌓는 것이 바로 MLP라고 불려지는 것입니다. 실제 그림은 아래와 같습니다.

각 Input layer(입력층)의 노드들은 모두 Output Layer(출력층)에 대응하게 되며

그 사이에 끼어있는 층들은 은닉층(hidden layer)라고 불립니다.

여기서 이야기하고자 하는 핵심은 MLP는 앞서서 배웠던 Logistic Regression Unit을 쌓아서 만들 수 있다는 것입니다. 이말은 즉, 지금까지 배웠던 모델을 이용해서 신경망을 만들 수 있다는 것입니다.

Backpropagation(역전파)란?

예측된 값이 dog였지만 실제는 humman face 였습니다. 이 때 이 오차 값을 반대방향으로 전파시키면서 각각의 Layer인 W값을 모두 업데이트 시켜줍니다. 그럼으로써 좀 더 오차값(error)이 작아지는 방향으로 가는 것입니다.
이 과정을 계속 반복시켜 각 층의 가중치 W와 b를 업데이트 갱신하며 실제 값과 가깝도록 오차값을 줄이는 과정을 Backpropagation이라고 합니다.

DNN의 문제점이란?


하지만 가장 큰 문제는 사람의 뇌처럼 복잡하고 많은 신경망을 구현하기 위해서 많은 층을 쌓아야 하지만 많이 쌓으면 쌓을수록 Backpropagation과정에서 가중치 업데이트 할때 Gradient가 소실이 됩니다.
오차값을 반대방향으로 전파하여 끝까지 가야만 업데이트가 완료되고 모델이 점점 학습이 되는 것인데 층이 위의 사진 처럼 너무 많다보니 그 값이 끝까지 가지 못하는 현상이 생겼습니다. 이 현상을 Gradient Vanishing 문제라고 불리웁니다.

학자들은 이 문제를 두 가지 해결방법으로 해결해나갔습니다.

해결 방법

첫 번 째 방법은 W와 b의 초기화를 그동안 똑똑하게 하지 못했다는 결과가 발견이 되어서 초기화 방법을 발전시켰으며 두 번째 방법으로는 일부 노드를 랜덤으로 자르는 방법인 dropout 이라는 기술을 통해서 해결하였습니다.

이렇게 Deep Nets과 Deep Learning이라는 워딩으로 불려져 유명하게 되었고, 시간이 지나며 Graphic 기술의 발전과 전세계에 상상도 할 수 없는 많은 데이터가 축적이 되며 이 Neural Network가 매우 각광을 받게 되었습니다.
이후 Convolution Network의 탄생으로 이미지의 예측까지 성능이 기하급수적으로 발전하였고 자율주행자동차와 같은 기술들이 각광을 받게되는 이유라고 할 수 있습니다.

profile
✏️세상의 모든 기록 ✏️

0개의 댓글