Normalization
- 정규화 되지 않은 데이터는 원하는 값을 찾는데에 X, Y 축이 다른 분포를 가지지 때문에 각각의 반영이 다르게됨.
- 정규화가 된 데이터는 같은 분포를 가지기에 원하는 값을 빨리 도출함.
Batch Normalization
- 배치는 샘플들의 묶음.
- 한 레이어를 통과했을때 같이 존재하는 샘플들을 평균내는것.
- 한 배치에 들어있는 한 픽셀의 평균값
- x = sample (ex : MNIST = 28*28 이미지. 이미지 하나당 차원 = 784, )
- 각 픽셀당 표준편차.
- 위 두 식은 이미지와 차원이 같음.
- 위 두 식은 배치마다 새로운 값들이 형성이됨
- 정규화 식.
- 정규화 식에 새로운 Distribution으로 변경.
- 베타, 감마를 통해 학습시키는 식.
Layer Normalization
- 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 |
댓글