- LeNet 구현
- Weight initialization
- Convolution 종류
- 딥러닝
- SPP-Net
- object detection
- deep learning
- Optimizer
- overfeat
- image classification
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Today
- Total
I'm Lim
Multi Layer Perceptron 본문
Paper
Gardner, M. W., & Dorling, S. R. (1998). Artificial neural networks (the multilayer perceptron)—a review of applications in the atmospheric sciences. Atmospheric environment, 32(14-15), 2627-2636.
논문이 가지는 의미
인공지능망이 어떤 프로세스를 거쳐서 학습이 되는지 또 인공지능망을 적용한 예시 등을 보여줌으로써 기초적인 딥러닝의 학습방식을 이해할 수 있다.
논문의 내용
1. 딥러닝의 장점
1) 입력 데이터 분포에 대한 사전지식이 없어도 된다.
기존의 statistical model (e.g., Linear Regression, Logistic Regression, etc.)은 데이터의 분포를 파악하고, feature engineering등의 수많은 preprocessing 과정을 거친 입력을 사용한다. 이 과정은 결국 해당 분야의 전문가들만 접근할 수 있는 영역이다. 그러나, deep learning은 무수히 많은 non-linear functioin의 결합으로 이루어져있기 때문에 데이터의 분포에 관한 사전 지식이 없어도 학습이 가능하다.
2) Statistical Model보다 성능이 더 좋다.
예를 들어 linear function이라면 당연히 statistical model을 사용하는 것이 더 좋지만, 함수가 점차 non-linear해질수록 사람이 이에 대한 statistical model을 생성하는 것은 불가능에 가까워진다. real world에서는 대부분의 문제들이 non linear하기 때문에 deep learning 모델이 더 좋은 성능을 내는 경우가 많다.
3) feature extraction 과정이 필요없다.
기존의 statistical model의 입력으로 사용되는 벡터들은 전문가들의 손을 거쳐 raw data에서 중요한 feature들이 추출된 데이터들이다. 그러나, deep learning은 이 feature들을 hidden layer가 무수히 많은 non linear function의 결합으로 추출하므로 입력데이터에서 feature extraction 과정이 필요없다.
2. 딥러닝의 단점
1) layer와 node 개수의 무작위성
layer와 node의 개수에 대한 명확한 규칙이 존재하지 않는다. 그런데, 이 개수가 너무 많아지면 딥러닝 모델이 입력데이터의 노이즈까지 fitting시키는 overfitting 문제가 발생할 것이고, 너무 적다면 입력데이터를 충분히 설명하지 못해서 underfitting이 발생한다.
2) 해석하기가 어렵다.
Hidden layer에서 feature extraction과정을 처리해주므로 딥러닝 모델이 성능이 뛰어나지만, 어떤 feature를 추출하는지 알 수 없다. 이는 결과에 대한 근거를 알 수가 없음을 의미한다. 따라서, 딥러닝 모델을 "Black Box"로 보는 경우가 많은데, 이는 검은 상자에 입력을 넣었더니 좋은 결과가 나온다는 뜻으로 해석하기 어려움을 의미한다.
최근에는 딥러닝 모델을 해석하기 위해서 XAI 연구가 이루어지고있다.
3. 딥러닝 모델의 구조
1) Layer
딥러닝에서 layer는 input layer, hidden layer, output layer로 나뉜다. input layer는 입력데이터가 들어가는 layer를 뜻하고, output layer는 실제 prediction한 값들이 나오는 layer이다. 그 외 모든 layer는 hidden layer라 한다.
2) Multi Layer Perceptron
여러개의 layer를 가지는 model을 의미한다. 즉, hidden layer가 하나 이상이라면 MLP라고 할 수 있다.
3) Fully connected layer
모든 node들이 완전히 상호연결되어있는 레이어를 의미한다.
4. 딥러닝 연산과정
1) input layer로 입력이 들어간다.
2) 각 connection의 weight와 bias의 합이 계산된다.
3) 각각의 값들이 activation function을 거쳐 다음 layer로 전달된다 (Activation function이 없으면 deep learning 모델은 선형결합이므로 선형성을 띈다).
위와 같이 딥러닝 모델은 이전 레이어로부터 값을 받고, 그 값을 연산하여 다음 레이어로 전달하는 구조이다. 즉, 데이터가 feedback하지 않는다. 따라서, feed forward network라고 한다.
5. Back propagation
Back propagation 논문에서도 나오듯 이 algorithm은 weight를 업데이트 시키기 위해 사용된다.
1) 가중치 초기화
가중치를 초기화 할 때, 무작위로 초기화 할 수도 있지만 He Initialization, Xavier Initialization을 주로 사용한다.
2) 입력벡터를 딥러닝모델에 넣고, 예측값을 추출
3) 예측값과 실제값과의 error를 계산
회귀문제는 MSE Loss, 분류문제는 Cross Entroy Loss를 주로 사용한다.
4) 업데이트할 weight 계산 및 조정
가중치를 어떠한 방식으로 시킬지는 optimizer가 결정한다. (e.g., Stochastic Gradient Descent, Momentum, RMSprop, Adam, etc.) 가중치를 얼마나 업데이트 시킬지는 learning rate가 결정한다. 보통 학습할 때, learning rate는 고정되어 있는 것이 아니라 변하는데 이를 leanring rate schedule이라고 한다.
5) 위 과정을 error가 작아질 때까지 반복
여기서 error는 test error를 의미.
6. train set, validataion set, test set
딥러닝의 단점중 첫번쨰에서 layer와 node의 개수를 설명하면서 overfitting과 underfitting에 대해 이야기했다. 이를 방지하기 위해 실제로는 어떤 dataset을 train set과 valid set, 그리고 test set으로 나눈다. train set은 모델을 학습시키기 위해 사용되고, valid set은 학습된 모델을 평가하기 위해 사용된다. test set은 실제 예측을 위해 사용된다. train error는 계속 낮아지는데 validation error가 낮아지다가 높아진다면 overfitting이 된다라고 할 수 있고, 이 때 학습을 멈추는 것을 early stopping기법이라고 한다.
7. 입력 데이터 스케일링
딥러닝이 preprocessing이 필요없다고는 하지만 실제로는 입력 벡터의 scale이 맞지않으면 weight의 scale도 달라지기 때문에 입력 데이터를 standardization하는게 바람직하다.
'Deep Learning > Fundamental' 카테고리의 다른 글
Vanishing gradient / Exploding gradient (0) | 2022.11.29 |
---|---|
Activation function / Overfitting problem (0) | 2022.11.28 |
Global Minima / Local Minima / Saddle Point (0) | 2022.09.18 |
Back Propagation (0) | 2022.08.08 |
The Perceptron (0) | 2022.08.08 |