Kim Seon Deok
pytorch chapter2-2인공신경망 본문
퍼셉트론
최초의 인공지능 모형
Feed - Forward Network모형의 가장 간단한 형태,
Input과 Output Layer만으로 구성된 선형분류모형의 형태를 띄고 있다.
퍼셉트론의 한계 : 비선형 분류 문제는 풀지 못한다.
활성화 함수(Activation Function)
특정 임계값의 초과 여부를 판단하는 함수
어떤 신호를 입력받아 이를 적절히 처리해 출력해주는 함수
1. Step Function
Input 값이 0 이상이면 1, 이상이 아니면 0을 출력
2. Sigmoid Function
Input 값이 0 이하이면 0.5 이하의 값, 0 이상이면 0.5 이상의 값을 출력
Back Propagation 과정 중 Gradient Vanishing 현상이 발생할 수 있다.
3. ReLU
MLP(Multi Layer Perceptron) = 신경망
퍼셉트론의 한계를 극복하기 위해 여러 Layer를 쌓아올림
Input과 Output Layer 중간에 Hidden Layer를 넣은 형태
여러 개의 퍼셉트론 조합과 이것들의 재조합으로 복잡한 비선형적인 모형을 만들어내는 것
딥러닝의 기본 구조 = 신경망
Feed Forward
신경망이 Input에서 weight와 Hidden을 거쳐 Output을 내보내는 과정
Back Propagation(역전파)
Feed Forward를 이용해 계산된 error(Output과 실제값의 차이)를 바탕으로 뒤의 weight부터 업데이트하는 과정
Epoch = 데이터를 여러 번 Feed Forward와 Back Propagation을 반복하며 학습하는 횟수
Gradient Descent Method = 기울기 경사 하강법
신경망 모형은 hidden layer가 깊어질수록, hidden node가 많아질수록 더욱 복잡해진다.
따라서 MSE를 신경망 모형의 weight로 미분해 기울기가 0이 되는 지점을 찾을 수 없다.
따라서 MSE를 신경망 모형의 weight로 미분해 기울기를 감소시켜 최소가 되는 지점을 찾아간다.
Stochastic Gradient Descent(SGD)
데이터를 쪼개 Gradient Descent Method 하는 방법 >> Optimizer
Epoch = 가지고 있는 데이터를 쪼개 Feed Forward와 Back Propagaion을 반복
Mini - batch = 쪼갠 데이터의 개수
Batch Size = 쪼갠 데이터의 크기
Learning Rate = Gradient의 크기를 조절해주는 상수 (0.01 아래로 작은 값을 주면서 여러 번 학습을 시도)
Universal Approximation Theorem
신경망 학습의 특성을 잘 나타내주는 이론
'hidden layer가 1개 이상인 신경망은 학습 데이터 내에서 어떤 함수든 근사(approximation)시킬 수 있다'
1.학습 데이터 내에서만 신경망은 엄청 좋은 결과값을 가질 수 있다. 실제 데이터에는 잘 맞는다는 보장을 할 수 없다.
>> 과적합의 문제로 이어짐
2. hidden layer가 1개 이상이면 효율적으로 모델링이 가능하다. 따라서 학습데이터 내에서 어떤 함수든 근사시킬 수 있다.
큰 장점이자 단점!!!
신경망 모형의 단점
1.과적합
2.Gradient Vanishing Problem
기울기가 사라지는 현상
Hidden layer가 깊어질수록 Hidden layer를 에러값에 곱해야한다.
sigmoid함수의 output범위 값은 0~1 사이이다. sigmoid함수를 미분한 값의 output최댓값은 0.25이다.
따라서 Hidden layer가 깊어질수록 이전의 Gradient를 구하기 위해서는 이 sigmoid를 미분한 값을 계속 곱해야 한다.>>0에 수렴하게 된다.
따라서 Hidden layer가 깊어질수록 weight의 변화가 없어진다.
*이론상 layer가 깊어질수록 신경망은 복잡한 모델을 만들 수 있다고 하였다.
Back Propagation 과정에서 Activation 함수를 미분하는 값을 곱해준다는 점에서 weight의 변화가 없어져 0에 수렴하게 되므로 실제로는 학습이 잘 이루어지지 않는다는 단점!
따라서 Gradient가 감소하지 않도록 여러 Activation 함수가 등장했다.
성능지표(performance Measurement)
MSE(Mean Squared Error) : 회귀모형에서 많이 사용하는 Loss이자 성능지표
예측값과 실제 값의 차이에 대해 평균 제곱합 >> 낮을수록 좋은 성능
MAPE (Mean Absolute Percentage Error) : MSE에 비해 절대적인 지표
예측값과 실제 값의 차이를 실제 값으로 나누어, 실제 값 대비 몇 % 정도의 오차가 있는지에 대한 성능 지표
정확도(Accuracy) : 분류문제(정밀도, 재현율, 특이도)에서 가장 많이 사용하는 성능지표
전체 데이터 중 실제로 잘 예측했는지에 대한 비율
F1-Measure(F1-score) : Class Imbalance 상황에서 많이 사용하는 성능지표
Precision과 recall의 조화평균으로 불량으로 예측했을 때 정확히 예측한 비율과 실제 불량 중 잘 예측한 비율
'AI > Pytorch' 카테고리의 다른 글
pytorch chapter3 (0) | 2021.11.22 |
---|---|
chapter2 pytorch2. Ai Background-2 (0) | 2021.11.20 |
chapter2 pytorch2. Ai Background-1 (0) | 2021.11.18 |
chapter1 pytorch 기초 (0) | 2021.11.11 |