Epoch / Batch Size / Iteration?

Epoch : 전체 학습 데이터를 1 학습 완료 했을 1 Epoch이라고 한다
> 높은 Epoch수는 동일 학습 데이터를 여러번 학습 시키는 것이므로 Overfitting 일어날 가능성이 있으며 반대는 Undefitting 일어나기 쉽다.

Batch Size : 1번에 학습 시키는 데이터의 ,  Batch Size 20이면 20개의 데이터를 번에 학습시킨다.

> 1 Batch Size만큼 학습을 시키기 위한 Loss, Back Propagation 등이 일어나므로 Batch Size 작게 잡으면 학습은 빠르게 일어날 있지만 부정확한 학습을 있음 : Outlier들을 다른 샘플 데이터들과 함께 학습시키지 않고 개별 Propagation 시키는 일들이 많이 발생할 것이므로.

> 가용 메모리가 적고, 학습을 빠르게 시켜야 한다 : Batch Size 상대적으로 작게

> 가용 메모리가 크고, 학습의 안정화를 시켜야 한다 : Batch Size 상대적으로 크게

 

Iteration : 1 Epoch Data / Batch Size

> 2000개의 Data, 20 Batch Size라면 100 Iteration

 

 

Generalization / Regularization / Standardization / Normalization?

Generalization

  • 한정된 정보로 세상에 편견을 가지는 것을 막기 위함. 
  • 딥러닝이나 머신 러닝은 한정된 데이터(샘플 데이터) 학습하여 똑똑한 모델(기계) 만드는 것이 목표. 한정된 데이터가 학습하려는 대상의 특징을 적절히 반영하고 있다면 다행이지만 그렇지 않은 경우가 많음.(Outlier들을 포함).
  • 데이터의 양을 늘리는 것이 제일 좋은 방법이지만 양질의 데이터를 구하기 쉽지 않고 / 학습 시간이 오래 걸림.
  • 이런 Generalization 하기 위해 다양한 방식(ex Regularization) 도입함.

Regularization : Overfitting 막는 방법(= Generalization 시키기 위함)

  • 기계학습의 방향은 Cost Function이나 Error Function 작아지는 방향.
  • 하지만 단순히 최대한 작은 Error 만들기 위해서 Error Function Sample Data 맞게 구한다면 Overfitting 발생하며, Outlier들까지 케어 하기 위해 특정 Weight값이 커지는 현상이 발생한다.
  • 이렇게 특정 Weight값이 너무 커지는 것을 방지하기 위해 Cost Function 변화시켜 Weight값이 작아지는 방향(weight decay)으로 학습 시키도록 한다.

> L1 Regularization / L2 Regularization

L1 : Cost function 뒤에 1차항을 붙여 Weight 대한 편미분식이 W 감소 시키도록 만듬.
- 상수단위로 작아지기 때문에 중요한 Weight 말고는 0 가까이 . 몇개의 의미있는 값을 끌어내기 위해서는 이를 선택.

L2 : Cost function 뒤에 2차항을 붙여 편미분 식이 W 감소 시키도록 만듬

 

Feature Scaling (Normalization, Standardization)

Data Normalization혹은 Feature Scaling으로 불리는 작업은 변수의 범위를 일정하게 하여 비교 가능하게 하고, Outlier들의 값들을 상쇄 시켜 주는 역할을 한다.

Standardization : 변수에서 평균을 빼고 표준편차로 나누는 . 속성들을 같은 분포를 따를 있도록 .

Normalization : 아래와 같이 변수의 범위를 0~1 제한 시키는 방식이나 log 취해 값을 줄이는 방식등이 있다.

 

Loss function 종류

1. 평균 제곱 오차 ( MSE : Mean Squared Error )

MSE

(Yk 실제 , Tk 신경망에서 내놓은 분류 결과)

2. 교차 엔트로피 에러 ( CEE : Cross- Entropy Error )

CEE

 예측이 틀렸을 경우 - tk[1,0,0] / yk[0,1,0] 경우 : inifinity 

 예측이 정확히 맞았을 경우 - tk[1,0,0] / yk [1,0,0] 경우 : 0

 

Supervised Learning / Unsupervised Learning / Reinforcement Learning

Supervised Learning(지도학습)?

Labeled Data 학습하는 방식.

> CNN, RNN등을 활용, Continuous Regression / Discrete Classification

 

Unsupervised Learning(비지도학습)?

Unlabeled Data 학습하는 방식.

> Clustering, AutoEncoder

 

Reinforcement Learning(강화학습)?

에이전트(Agent) 주어진 상황(State)에서 특정 행동(Action) 하고 보상(Reward) 받으며 학습하는 방식. 에이전트가 최대의 보상(Max Reward) 받을 있도록 학습한다.

> Q - Learning, Deep-Q-Network

 

 

BackPropagation, Gradient Descent

Backpropagation

딥러닝에서 오차를 줄이기 위해서 Weight값과 Bias값을 조정해야 하는데, BackPropagation은 결과값을 통해 조절되어져야 할 Weight값을 각 weight로 전달하는 과정이라 볼 수 있다.

Gradient Descent

오차를 줄이기 위해 w 각각 얼마나 어떤 방향으로 조절되어야 하는가? 이걸 오차 함수의 기울기(=Gradient) 판단하고 Gradient만큼 이동하는걸 Gradient Descent라고 한다.

 

 

Neural Network의 기본 이해

참고한 비디오 : https://www.youtube.com/watch?v=aircAruvnKk

신경망이란 무엇인가? 딥러닝에 대해서

 

AI의 Hello World인 MNIST데이터를 기본으로 정리하자.

[Neural Network] Neuron + Network

MNIST(0~9까지 적힌 손글씨 데이터)를 넣으면 원하는 출력값이 나오는 네트워크

 

Neuron : Things that hold a number ( 0.0~1.0의 수를 담는 공간, 0.37 같은 해당 숫자는 Activation이라 부른다. )입력레이어 - 히든 레이어 - 출력 레이어로 구성된다.

Input Layer는 28X28 픽셀의 밝기값을 벡터에 담아 펼친 값

- MNIST데이터는 28*28 의 픽셀로 이뤄진 이미지 데이터이므로, 첫 레이어를 784로 잡는다.

- 연결 : 이를 다음 레이어에 연결할 때 Weight를 곱하고 Bias를 더해 다음 출력값을 연결한다.

EX) H1 = (W1)X(I1) + bias1 + (W2)(I2) + Bias2 + ..... (W784)(I784) + Bias 784

Hidden Layer : 임의의 값으로 히든 레이어를 둘 수 있고, 히든 레이어의 뉴런의 개수도 임의로 둘 수 있다.

Output Layer : 우리의 목적이 0~9의 손글씨 데이터를 구별해 내는 것이므로 0~9까지 10개의 output레이어를 둔다. 각각의 Output 값은 손글씨 데이터가 해당 숫자일 확률을 나타낸다.

뉴럴네트워크에서 우리가 학습해야 하는 것?

Weight와 Bias의 값.

어떻게 학습할 수 있는지?

Gradient Decent / BackPropagation 

 

+ Recent posts