Tech & TIL

02 - Neural-Network (MLP - Multi-Layer Perceptron) 본문

Boostcamp - AI tech/DL Basic

02 - Neural-Network (MLP - Multi-Layer Perceptron)

Jadon Yang 2021. 8. 10. 00:00

Linear Neural Networks

Linear Neural Network에서는 Data가 주어졌을 때, Data들을 가장 잘 표현할 수 있는 y = wx + b 식을 근사해야 하는 것이다. 모든 점들을 가깝게 지나가는 직선을 구하기 위해서는 기울기와 y절편을 구해야 한다. 먼저, 모든 데이터를 모델 식에 대입한 후 y_hat 벡터를 구한다. y_hat과 실제 output 값인 y의 차를 제곱해서 평균을 낸 값을 Loss로 정의하고 Loss를 줄이기 위해 Backpropagation 기법을 사용해서 Loss를 최소화한다.

Loss를 최소화하기 위해서는 Loss를 각각 w와 b에 대해 편미분을 해줘서 편미분된 값을 활용해서 Loss function을 극소값을 찾아 데이터를 가장 잘 표현하는 y = wx + b 식을 찾을 수 있다.

 

Layer를 무작정 많이 깊게 쌓는 것이 유의미할까?

위 그림은 input layer와 hidden layer, output layer로 구성된 네트워크이다. Input에서부터 2번의 가중치 곱셈이 일어나는데 이 과정은 단지 선형적 특성만 갖게 된다. 쉽게 말하자면 input 값에 숫자를 곱해서 그냥 숫자만 달라지는 것이다. 아무리 히든 레이어를 추가해서 weight를 수 백번 곱해줘도 x*0.2 -> x*5 -> x*0.5와 같은 무의미한 곱셈만 발생하게 된다. 어떠한 유의미한 연산 과정이 존재하지 않는다. 따라서 비선형성을 가진 Activation function을 추가해주는 것이다.

Mean Squared Error는 Regression Task에서 항상 옳은 Loss function일까?

MSE는 Regression Task에서 주로 사용되는 Loss function이다. 하지만 MSE는 데이터에 Outlier가 있다면 오차를 너무 크게 만들어버려서 학습에 도움이되지 않을 수 있다.

 

boostcamp-ai-tech

 

부스트캠프

개발자의 지속 가능한 성장을 위한 학습 커뮤니티

boostcamp.connect.or.kr

'Boostcamp - AI tech > DL Basic' 카테고리의 다른 글

06 - Computer Vision Applications  (0) 2021.08.13
05 - 1x1 Convolution의 중요성  (0) 2021.08.12
04 - Convolution은 무엇일까?  (0) 2021.08.11
03 - Optimization  (0) 2021.08.10
01 - Deep Learning Introduction & History  (0) 2021.08.09
Comments