합성곱 신경망: 두 판 사이의 차이
IT 위키
편집 요약 없음 |
편집 요약 없음 |
||
| 18번째 줄: | 18번째 줄: | ||
*대표적으로 max pooling, average pooling 등이 있다. | *대표적으로 max pooling, average pooling 등이 있다. | ||
*예: 2×2 영역에서 최대값을 취하는 max pooling 방식이 흔히 사용된다. | *예: 2×2 영역에서 최대값을 취하는 max pooling 방식이 흔히 사용된다. | ||
===완전 연결층 (Fully Connected Layer)===*최종적으로 추출된 특징 벡터를 입력으로 받아 분류(classification) 또는 회귀(regression)를 수행하는 층이다. | |||
=== 완전 연결층 (Fully Connected Layer) === | |||
* 최종적으로 추출된 특징 벡터를 입력으로 받아 분류(classification) 또는 회귀(regression)를 수행하는 층이다. | |||
*소프트맥스(softmax) 계층을 통해 확률 분포로 변환되는 경우가 많다. | *소프트맥스(softmax) 계층을 통해 확률 분포로 변환되는 경우가 많다. | ||
===기타 기법들=== | ===기타 기법들=== | ||
2025년 10월 2일 (목) 02:50 판
- Convolutional Neural Network; 합성곱 인공 신경망; 합성곱신경망
- 합성곱 신경망(Convolutional Neural Network, CNN)은 입력 데이터의 공간적 구조(spatial structure)를 보존하면서 특징(feature)을 자동으로 추출하는 심층 신경망의 한 종류이다.
개요
CNN은 주로 이미지, 영상, 음성, 시계열 데이터 등에서 사용되며, 필터(또는 커널)를 이용해 국소 영역(local receptive field) 내의 패턴을 인식하고 계층적으로 특징을 쌓아 나간다. 다층 퍼셉트론(MLP)이 모든 입력 노드와 연결되는 반면, CNN은 지역 연결성(local connectivity)과 가중치 공유(weight sharing)를 활용하여 파라미터 수를 줄이고 일반화를 향상시킨다.
작동 원리
CNN은 일반적으로 다음과 같은 층들로 구성된다.
합성곱 층 (Convolution Layer)
- 입력의 국소 영역에 작용하는 작은 필터(커널)를 사용하여 합성곱 연산을 수행한다.
- 커널이 입력 위를 슬라이딩하면서 입력과 커널 간의 내적을 취해 특징 맵(feature map)을 생성한다.
- 스트라이드(stride), 패딩(padding), 커널 크기 등이 하이퍼파라미터로 사용된다.
- 여러 개의 필터를 사용하면 여러 개의 출력 채널(feature map)을 얻을 수 있다.
활성화 함수 (Activation)
- 일반적으로 ReLU(Rectified Linear Unit)가 많이 쓰이며, 입력 값을 비선형으로 변환하여 비선형 표현력을 부여한다.
- 다른 활성화 함수도 사용 가능하다 (sigmoid, tanh 등).
풀링 층 (Pooling Layer)
- 공간 크기를 감소시켜 연산량을 줄이고 특징의 불변성(invariance)을 강화한다.
- 대표적으로 max pooling, average pooling 등이 있다.
- 예: 2×2 영역에서 최대값을 취하는 max pooling 방식이 흔히 사용된다.
완전 연결층 (Fully Connected Layer)
- 최종적으로 추출된 특징 벡터를 입력으로 받아 분류(classification) 또는 회귀(regression)를 수행하는 층이다.
- 소프트맥스(softmax) 계층을 통해 확률 분포로 변환되는 경우가 많다.
기타 기법들
- 드롭아웃(dropout), 배치 정규화(batch normalization) 등을 통해 과적합(overfitting)을 방지
- 전이 학습(transfer learning)을 위해 사전 학습된 CNN을 활용
- 다운샘플링을 위한 스트라이드 사용
- 확장 합성곱(dilated convolution), 전치 합성곱(transposed convolution) 등 다양한 변형
역사 및 발전
- 최초의 합성곱 신경망 개념은 “네오코그니트론(Neocognitron)”에서 출발하였다.
- LeNet-5는 손글씨 숫자 인식용으로 1990년대에 제안된 초기 CNN 모형이다.
- 2012년, AlexNet은 GPU 학습을 활용해 ImageNet 대회에서 큰 성능 향상을 보이며 딥러닝 붐을 이끌었다.
- 이후 VGG, ResNet, Inception, EfficientNet 등 다양한 구조가 등장하였다.
응용 분야
CNN은 다음과 같은 분야에서 널리 응용된다.
- 이미지 분류 및 인식 (예: 개/고양이 구분)
- 객체 검출 (object detection)
- 이미지 분할 (semantic segmentation)
- 스타일 변환(style transfer), 이미지 생성
- 의료 영상 처리 (예: MRI, CT 영상 분석)
- 음성 및 시계열 데이터 처리
장점과 한계
장점
- 공간 구조를 보존하면서 특징을 추출 가능
- 파라미터 수가 상대적으로 적어 학습이 효율적
- 지역 특징과 계층적 특징을 자동 학습
한계 및 도전 과제
- 많은 데이터와 연산 자원이 필요
- 입력 위치 변화에 대한 민감성 (약한 불변성)
- 과적합 문제
- 해석 가능성 문제 (왜 특정 필터가 학습되었는지 설명이 어려움)
최근 동향 및 변형 모델
- 완전 합성곱 신경망(fully convolutional network, FCN)은 입력 크기에 관계없이 출력 맵을 만드는 구조로 세그멘테이션 등에 사용된다.
- 확장 합성곱(dilated convolution) 및 심층 분리 합성곱(depthwise separable convolution)
- 그룹 합성곱(group convolution), G-CNN 등의 대칭성 기반 일반화 기법
- U-Net 등 구조는 의료 영상 분할 분야에서 특히 많이 쓰인다.
CNN 처리 과정 도식화
- 실제 이미지 CNN 처리 과정 예시
구성 및 절차
- 대상을 채널별로 나누고, 정보 손실 방지를 위해 패딩을 적용한 후, 필터를 이용해 스트라이드 단위로 합성곱을 해서 피처 맵을 만들어냄. 빠른 처리를 위해 풀링 적용
- 채널(Channel)
- 패딩(Padding)
- 필터(Filter), 커널(Kernel)
- 합성곱(Convolution)
- 스트라이드(Strid)
- 액티베이션 맵(Activation Map)
- 풀링(Pooling) 레이어
- 피처 맵(Feature Map)
채널
- Channel
- 컬러 그림의 RGB 구분
- Red 채널, Green 채널, Blue 채널
패딩
- Padding
- 데이터 소실 및 경계 표현을 위한 테두리
필터
- Filter; 커널(Kernel)과 같은 의미로 쓰임
- 이미지의 특징을 찾아내기 위한 공용 파라미터
합성곱
- Convolution
- 이미지에 필터를 합성곱으로 적용
- 각 행렬 값을 곱하여 합산
풀링과 피처 맵
- Pooling & Feature Map
- 컨볼루션 레이어의 출력 데이터(Activation Map)의 크기를 줄이거나 특정 데이터를 강조
- Max Pooling과 Average Pooling, Min Pooling이 있는데, Max Pooling을 많이 사용
합성곱 생성 절차
효율 향상 모델
EfficientNet
- Compound Scailing을 통해 적은 파라미터 수로 정확성과 효율성을 향상시킨 분류 모델
- AutoML 및 모델 확장을 통해 정확성과 효율성 향상
EfficientDet
- EfficientNet을 backbone으로 하고 BiFPN과 Compound Scailing을 조합
- 적은 파라미터로 효율적인 성능을 보이는 Object Detection 모델






