합성곱(CNN)
- 마치 입력 데이터에 마법의 도장을 찍어서 유용한 특성만 드러나게 하는 것.
ANN 동작 원리
- 인공 신경망은 처음에 가중치 W1 - W10과 절편 b를 랜덤하게 초기화
- 에포크를 반복하면서 경사 하강법 알고리즘 사용하여 손실이 낮아지도록 최적의 가중치와 절편을 찾는다.
- 밀집층에 뉴런이 3개 있다면 출력 3개 / 패션 MNIST 이미지에 있는 784개의 픽셀을 입력받는 은닉층의 뉴런 개수가 100개면 출력 100개 생성

CNN 동작 원리
- 입력 데이터 전체에 가중치 적용하지 않으며, 일부에 가중치를 곱한다.
- 중요 point
- 첫 번째 합성곱에 사용된 가중치 W1 - W3과 절편 b가 두 번째 합성곱에도 동일하게 사용.
- 한 칸씩 아래로 이동하면서 출력을 만듬
- 뉴런의 가중치가 3개이기에 모두 8개의 출력 생성
- 합성곱 층의 뉴런에 있는 가중치 개수는 정하기 나름 => 하이퍼파라미터
- 필터 / 커널
- 커널: 입력에 곱하는 가중치
- 필터: 뉴런 개수를 표현할 때 사용
CNN 장점 => 2차원 입력으로 확장
- 중요 point
- 입력이 2차원 배열이면 필터(도장)도 2차원
- 오른쪽 이동 & 합성곱 수행 => 입력의 너비가 4이므로 더 이상 오른쪽 이동 불가능 => 아래로 한 칸 이동 & 합성곱 => 오른쪽 이동 & 합성곱
- 4개의 출력 => 특성 맵(feature map)
합성곱 층에서도 여러개 필터 사용 => DNN 여러개의 뉴런
- 여러 개의 필터를 사용하면 만들어진 특성 맵은 순서대로 차곡차곡 쌓은다.
- (2, 2) 크기의 특성 맵을 쌓으면 3차원 배열이 된다. => (2, 2, 3) 크기 & 3차원 배열
- 2차원 구조를 그대로 사용하기 때문에 합성곱 신경망이 이미지 처리 분양에서 뛰어난 성능을 발휘
- 합성곱 층에 있는 필터의 가중치(커널)도 모두 다르게 setting.
'Deep Learning with Python' 카테고리의 다른 글
Data Augmentation (0) | 2023.04.15 |
---|---|
Train, Test and Validation 구분: take() & skip() (0) | 2023.04.10 |
TensorFlow with 모델 학습 과정 by GPU (0) | 2023.04.08 |
13_케라스 합성곱 층 (0) | 2022.08.17 |