본문 바로가기
머신러닝

Batch Normalization 2 & Well - Known Models & Recurrent Neural Network

by 후닝훈 2021. 4. 28.
반응형

Normalization

- 정규화 되지 않은 데이터는 원하는 값을 찾는데에 X, Y 축이 다른 분포를 가지지 때문에 각각의 반영이 다르게됨.

- 정규화가 된 데이터는 같은 분포를 가지기에 원하는 값을 빨리 도출함.

Batch Normalization

- 배치는 샘플들의 묶음.

 

 

- 한 레이어를 통과했을때 같이 존재하는 샘플들을 평균내는것.

- 한 배치에 들어있는 한 픽셀의 평균값

- x = sample (ex : MNIST = 28*28 이미지. 이미지 하나당 차원 = 784, )

 

 

- 각 픽셀당 표준편차.

- 위 두 식은 이미지와 차원이 같음.

- 위 두 식은 배치마다 새로운 값들이 형성이됨

 

 

- 정규화 식.

 

- 정규화 식에 새로운 Distribution으로 변경.

- 베타, 감마를 통해 학습시키는 식.

Layer Normalization

LN 과 BN

- Batch 별로 하는 것이 아닌, Layer의 평균.

- 이 경우에는 위 식의 xi가 l1, l2, l3가 됨.

- 많이 사용하진 않음.

Well - Known Models

LeNet

ImageNet

- 140만개의 이미지, 1000개의 클래스

- ILSVRC : 이미지 140만개를 가지고 1000개 클래스를 맞추는 대회

- 2012 AlexNet이 처음으로 CNN을 사용했음.

- 2017년에 종료

AlexNet

- 인공지능의 유행을 만들게 함.

- 기본적인 구조는 CNN. 11*11 입력

- CNN 을 적용한 네트워크. 처음 제안한 것은 아니다.

VGG

- 여러가지 initialization을 사용.

- CNN의 커널 사이즈를 3*3 제한. (Depth가 깊기 때문에)

GoogleLeNet

- 여러가지 커널을 사용. 1*1, 3*3, 5*5, 3*3 with max pooling.

 

 

ResNet

- VGG보다 훨씬 깊어짐.

- Fully Connected를 제거하고 Avg Pooling에 천개를 바로 연결. 파라미터 개수가 줄음.

- 건너뛰기 기법을 이용. (Residual block)

- 건너뛰는 부분은 큰 골격을, 뛰지 않은 부분은 작은 디테일을 잡아줌.

- 오른쪽 그림은 파라미터 개수를 바로 줄여줌.

  > 계산량이 적어 다른 여러분야에 쓰이는 기초적인 모델이 됨. 이미지 분야에서 많이 쓰임

 

 

RNN (Recurrent Neural Network)

- MLP, 동영상, 시간과 관련된 모델에서 많이 사용함

- 입력을 시간별로 받고, 그것에 대한 결과물을 시간별로 도출해줌.

 

 

- x가 RNN에 들어오면, x*W값에 의해 유닛값이 결정되고, 그 유닛값이 다시 RNN에 들어온다.

RNN의 구조

- 첫번째 단계는 일반적인 NN이다.

- 두번째엔, 새로운 input + 전 input * 새로운 W값(U);

- 그 전의 입력값 + 새로운 입력값에 더해 새로운 출력값이 나오는 구조이다.

- 필요할때마다 OUTPUT을 가져다 쓰면 됨.

- 각각의 LOSS가 형성이 되고, 그 LOSS를 전부 더하는 방식으로 새로운 LOSS를 결정하면 됨.

- 일반 그래디언트 방식과 유사하게 보임.

- 따라서 입력을 시간에 따라 잘라 반영하는 방법을 사용함

 

반응형

'머신러닝' 카테고리의 다른 글

Maximum likelihood Estimation 1  (0) 2021.05.15
머신러닝이란?  (0) 2021.05.14
Batch Normalization & Overfitting & HyperParameter  (0) 2021.04.23
Initialization 2  (0) 2021.04.22
Optimizer 2  (0) 2021.04.21

댓글