Kim Seon Deok

pytorch chapter2-2인공신경망 본문

AI/Pytorch

pytorch chapter2-2인공신경망

seondeok 2021. 11. 20. 20:17

퍼셉트론

최초의 인공지능 모형

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
Comments