티스토리 뷰
# Convolutional Neural network의 레이어 구성
여기서, FullyConnectedLayer는 있는 경우도 있고 없는 경우도 있다.
대충 앞에서 다 봤으니 빠르게 알아보자
# ImageInputLayer
- input size를 정의하고, 데이터를 정규화한다.
(정규화는 데이터의 평균값을 구해서 빼는 방식)
# Convolution Layer
- Feature Extraction 하기 위해 사용된다. CNN에서 가장 핵심 레이어.
- input 파일에 필터를 씌운다(Sliding Filter)
- 필터 내부 값(가중치 값)은 내가 정하지 않음. 훈련을 통해 특징을 잘 찾아내도록 계속 수정해 가는 것.
- 필터 사이즈만 정해주면 내부 가중치는 학습을 통해 만들어진다.
- Transfer Learning을 할 경우 필터값이 이미 다 훈련 되있기 때문에 별도의 훈련 과정이 필요가 없음.
* 필터가 움직이는 간격을 stride라고 한다 (기본값 = 1)
- stride가 1이면 한칸씩 오른쪽으로 움직이고 stride가 2면 두칸씩 움직이는 방식.
- 테두리 데이터를 위해 패딩(Padding)을 씌워주기도 함. (이미지가 작을 때 유용)
- 각 뉴런(노드)들은 서로 모두 연결되어있음.
- 각 뉴런은 가중치와 bias값을 학습한다
- 뉴런 하나에 필터 하나라고 생각하면 된다
<Hyper Parameter> - 변경되지 않음
- 필터 크기 = 7x7
- 채널 개수 = 3 (R, G, B)
- Stride = [2, 2] = 두칸씩 움직인다
- PaddingSize = [3, 3, 3, 3] = 상 하 좌 우에 Zero-Padding 3칸씩.
- DilationFactor = 필터에 0을 추가, 필터 사이즈를 크게 한다. 보는 영역을 확대.
* Weight, Bias는 학습되면서 계속 변경된다
- Weight: (하나의 필터 7x7 x 3 채널 input) + output 64개 = (7x7x3) x 64
- Bias: 각각의 output에 대해 하나씩 존재 = 1x1x64
# ReLu Layer
- Rectified Linear Unit
- 필터를 씌우고 난 후, 0보다 작은 데이터가 있으면 0으로 만든다.
- 의미없는 부분은 다 새까맣게 칠해버려서 남은 특징이 더 부각되도록 만든다고 생각하면 된다.
- 이름은 거창한데 막상 하는일은 별거 없다
# Pooling Layer
- 이미지 다운샘플링. 특징을 더 부각되도록 만들어준다.
- nxn 프레임 중에서 max값을 찾아서 추출하면 maxPoolingLayer가 된다.
# FullyConnected Layer
- outputClass를 뽑아내기 위해 2d 배열을 1차원 배열로 평탄화
- Convolution/ReLu/Pooling 을 거쳐 특징을 추출한 데이터에 점수를 매겨 outputClass를 예측하기 위한 첫 과정.
- 내가 데이터를 6종류의 클래스로 분류하고 싶다 -> FC 레이어의 개수를 6개로 설정하면 된다
- 내가 데이터를 개와 고양이 두 클래스로 분류하고 싶다 -> FC 레이어의 개수를 2개로 설정하면 된다.
- 솔직히 뭔가 확 와닿게 이해가 안됨. 그냥 그런갑다 하자
# Softmax Layer
- FC Layer로 평탄화한 데이터에 점수를 매긴다
(Normalized Exponential function)
- 점수의 총 합은 1이다
# Classification Layer
- Softmax Layer에서 가장 높은 점수를 가진 outputClass를 output으로 예측한다.
'학교공부 > 인공지능' 카테고리의 다른 글
매트랩으로 배우는 인공지능 - 8 | Regression (0) | 2021.11.17 |
---|---|
매트랩으로 배우는 인공지능 - 7 | Training Option (0) | 2021.10.11 |
매트랩으로 배우는 인공지능 - 5 | Training from scratch (0) | 2021.09.30 |
매트랩으로 배우는 인공지능 - 4 | Convolution, ReLU, Pooling (0) | 2021.09.30 |
매트랩으로 배우는 인공지능 - 3 | 전이학습2, Image Datastore (0) | 2021.09.28 |