CNN(Convolution Neural Network)
- 이미지 처리에 특화된 딥러닝 아키텍처
- 이미지의 공간적 특성을 효과적으로 학습
합성곱신경망 구조
입력이미지 -> 합성곱층 -> 풀링층 -> 완전연결계층-> 출력층
합성곱층(Convolution Layer)
Kernel을 기준으로 입력 데이터를 컨볼루션 연산을 진행하여 특징을 뽑는다.
이때, 다음과 같은 옵션을 추가할 수 있는데
채널(Channel)
- 흑백(GrayScale) : 1
- 칼라(RGB) : 3
커널(kernel) (==필터)
- 이미지에서 특징을 추출하는 작은 행렬
스트라이드(Stride)
- 커널이 이동하는 간격
패딩(Padding)
- 경계 부분의 정보 손실을 방지하기 위해 0을 추가
풀링층(Pooling Layer)
- 특징 맵을 축소하여 계산량을 줄이고, 중요한 특징만 유지한다.
- 노이즈와 같은 약간의 변화에도 덜 민감하게 설정
- 최대 풀링(Max Pooling): 영역 내 최댓값을 선택
- 평균 풀링(Average Pooling): 영역 내 평균값을 선택
드롭아웃층(Dropout Layer)
- 과적합을 방지하기 위해 일부 뉴런을 무작위로 제거
플래튼층 (Flatten Layer)
- CNN의 출력을 1차원 벡터로 변환하여 완전 연결층(Dense Layer)에 전달한다.
완전연결층(Fully Connected Layer)
특징을 클래스와 연결하여 학습하는 역할
출력층(Output Layer)
마지막에 로그함수인 sigmoid or softmax를 이용하여 결론을 짓는다.
예시
# CNN 모델 정의
model = keras.Sequential([
layers.Conv2D(32, (3,3), activation='relu', input_shape=(300, 300, 3)),
# kernel_size:(3,3), channel : 3
layers.MaxPooling2D(2,2),
layers.Conv2D(64, (3,3), activation='relu'),
layers.MaxPooling2D(2,2),
layers.Conv2D(128, (3,3), activation='relu'),
layers.MaxPooling2D(2,2),
layers.Flatten(),
layers.Dense(512, activation='relu'),
layers.Dense(1, activation='sigmoid')
])
참고
Convolutional Neural Networks — Definition, Architecture, Types, Applications, and more
In the evolution of computer science, we’ve shifted from manually crafted programs to machine learning-driven solutions. The recent…
medium.com
장점과 단점(with ChatGPT)
✅ 장점
- 최소 3개 이상의 층을 사용하므로 높은 정확도를 보장함
- 수동 특징 추출(feature extraction)이 불필요하여 자동화된 학습이 가능
- 기존 네트워크를 재학습(retraining) 하여 새로운 인식 작업 수행 가능
- 이미지, 영상, 오디오 신호에서 패턴을 감지할 수 있음
- 적절한 정규화 기법을 적용하면 잡음(noise)에 강하고 과적합(overfitting)이 적음
❌ 한계
- 패턴 인식 도구이므로 의미나 문맥(context)을 이해하는 데 한계가 있음
- 예: 소셜 미디어 콘텐츠 검열에서 거짓 긍정(false positive) 발생
- 문맥을 벗어난 이미지나 처음 보는 객체에서 오류 발생 가능
- 예: 자동차 뒤에 자전거가 부착된 경우, 마차를 본 경우 혼란스러워함
- 대량의 잘 레이블링된(training data) 데이터 필요, 데이터 확보가 어려움
- 적대적 공격(adversarial attack)에 취약
- 인간이 인식하지 못하는 작은 변화(노이즈)도 네트워크에 큰 영향을 줄 수 있음
- 특히 자율주행 자동차 같은 응용 분야에서는 치명적인 문제 발생 가능
- 계산 비용이 높고 많은 컴퓨터 메모리 필요
- 딥러닝의 특성상 해석이 어려움
'AI > DeepLearning' 카테고리의 다른 글
[DL] RNN(순환신경망) 맛보기 (0) | 2025.02.18 |
---|---|
[DL] 딥러닝 훓어보기 (0) | 2025.02.10 |