데브허브 | DEVHUB | [머신러닝+딥러닝 기초 강의] 21강. 합성곱 신경망을 사용한 이미지 분류[머신러닝+딥러닝 기초 강의] 21강. 합성곱 신경망을 사용한 이미지 분류
- 합성곱 신경망(CNN)은 이미지 분류에 특화된 모델로, 케라스(Keras)의
Conv2D 및 MaxPooling2D 층을 활용하여 구현됩니다. 🖼️
Conv2D 층은 필터 개수, 커널 크기(예: 3x3), 활성화 함수(예: ReLU), 패딩(예: 'same'으로 출력 크기 유지)을 주요 매개변수로 가집니다. ⚙️
- 필터의 깊이(depth)는 입력 채널 수에 자동으로 맞춰지며, 출력 특성 맵의 깊이는 필터 개수와 동일하게 설정됩니다. 📏
MaxPooling2D 층은 풀링 영역 크기(예: 2x2)를 지정하여 특성 맵의 높이와 너비를 줄이지만, 채널 깊이는 유지합니다. ⬇️
- 3차원 특성 맵을 완전 연결층(Dense layer)에 연결하기 위해
Flatten 층을 사용하여 1차원으로 펼칩니다. ↔️
- 모델은 여러
Conv2D 및 MaxPooling2D 층을 거쳐 이미지의 특징을 추출하고, 이후 Dense 층을 통해 분류를 수행합니다. 🏗️
- 과대적합(overfitting) 방지를 위해
Dropout 층을 중간에 삽입하며, 훈련 시 ModelCheckpoint와 EarlyStopping 콜백을 사용하여 모델 성능을 최적화합니다. 🛡️
- 훈련 코드는 일반적인 완전 연결 신경망과 유사하며,
compile 메서드에서 옵티마이저, 손실 함수(예: sparse_categorical_crossentropy), 지표를 설정합니다. 🏃♀️
- 다음 강의에서는 합성곱 신경망이 이미지를 처리하는 방식과 가중치가 학습하는 내용을 시각화하여 이해를 돕는 방법을 다룰 예정입니다. 💡