Convolutional Neural Networks (CNN) in Machine Learning
**Convolutional Neural Networks (CNN)**는 주로 이미지와 같은 그리드 구조의 데이터를 처리하는 데 특화된 딥러닝 모델입니다. CNN은 이미지 분류, 객체 탐지, 이미지 생성 등 다양한 컴퓨터 비전 작업에서 매우 효과적입니다.
CNN의 주요 구성 요소
- Convolutional Layer (컨볼루션 레이어):
- 역할: 입력 이미지에서 특징을 추출합니다.
- 작동 원리: 필터(또는 커널)를 사용하여 입력 이미지와의 합성곱 연산을 수행합니다.
- 필터: 작은 크기의 행렬로, 이미지 전체를 스캔하며 각 위치에서 국소적 특징을 추출합니다.
- 출력: 필터가 이동하며 생성한 특징 맵(feature map).
- Pooling Layer (풀링 레이어):
- 역할: 특징 맵의 공간 크기를 줄여 계산량을 감소시키고, 모델의 불변성을 증가시킵니다.
- 작동 원리: 특징 맵의 일부분을 집계(최대값 또는 평균값)하여 축소된 맵을 생성합니다.
- 유형: Max Pooling(최대 풀링)과 Average Pooling(평균 풀링)이 일반적입니다.
- Fully Connected Layer (완전 연결 레이어):
- 역할: 컨볼루션과 풀링 레이어에서 추출된 특징을 기반으로 최종 출력을 생성합니다.
- 작동 원리: 입력 벡터를 받아 모든 노드가 서로 연결된 형태로 출력을 계산합니다.
- 출력: 주로 분류 작업에서 각 클래스에 대한 확률을 출력합니다.
CNN의 주요 개념 및 작동 원리
- 합성곱 연산 (Convolution Operation):
- 필터가 입력 이미지 위를 슬라이딩하며, 각 위치에서 필터와 입력 이미지 부분 간의 점곱(dot product)을 계산합니다.
- 필터의 크기는 보통 3×3 , 5×5 와 같이 작습니다.
- 패딩(Padding)을 사용하여 입력 이미지의 크기를 유지하거나 축소할 수 있습니다.
- ReLU Activation Function (Rectified Linear Unit):
- 활성화 함수로 주로 ReLU를 사용하여 비선형성을 추가합니다.
- ReLU 함수는 입력이 0 이상이면 그대로 출력하고, 0 이하이면 0으로 출력합니다.
- Stride:
- 필터가 이동하는 간격을 의미합니다. Stride가 1이면 필터가 한 칸씩 이동하며, Stride가 2이면 두 칸씩 이동합니다.
- Stride를 통해 출력 크기를 조절할 수 있습니다.
- 패딩 (Padding):
- 입력 이미지의 가장자리에 추가적인 픽셀을 채워 넣는 방법입니다.
- Zero Padding이 일반적이며, 이를 통해 출력 크기를 조절하거나 가장자리 정보를 보존할 수 있습니다.
- 풀링 연산 (Pooling Operation):
- Max Pooling: 각 필터 영역에서 최대값을 선택하여 크기를 줄입니다.
- Average Pooling: 각 필터 영역에서 평균값을 계산하여 크기를 줄입니다.
CNN의 대표적 아키텍처
- LeNet:
- 최초의 CNN 중 하나로, 손글씨 숫자 인식을 위해 설계되었습니다.
- 여러 개의 컨볼루션과 풀링 레이어, 그리고 완전 연결 레이어로 구성됩니다.
- AlexNet:
- 이미지넷 챌린지에서 우승한 모델로, 대규모 이미지 분류에 사용되었습니다.
- ReLU, 드롭아웃(Dropout), 데이터 증강(Data Augmentation) 등의 기술을 도입했습니다.
- VGGNet:
- 심층 네트워크로, 작은 크기의 필터(3x3)를 사용하여 깊이를 깊게 쌓은 구조입니다.
- 단순하면서도 깊은 네트워크 구조가 특징입니다.
- ResNet:
- 잔차 연결(Residual Connection)을 도입하여 매우 깊은 네트워크의 학습을 가능하게 합니다.
- 그래디언트 소실 문제를 해결하여 성능을 크게 향상시켰습니다.
- Inception (GoogLeNet):
- 다양한 크기의 필터를 병렬로 사용하여 다양한 크기의 특징을 추출합니다.
- 연산 효율성을 높이기 위해 1x1 컨볼루션을 사용합니다.
CNN의 응용 분야
- 이미지 분류: 이미지가 특정 클래스에 속하는지 분류합니다.
- 객체 탐지: 이미지 내의 객체를 탐지하고 위치를 지정합니다.
- 이미지 생성: GAN(Generative Adversarial Network)과 결합하여 새로운 이미지를 생성합니다.
- 의료 영상 분석: 의료 이미지를 분석하여 질병을 진단합니다.
- 자율 주행: 카메라 영상을 분석하여 도로 상황을 인식합니다.
CNN은 그리드 구조의 데이터를 효과적으로 처리하며, 다양한 컴퓨터 비전 문제를 해결하는 데 있어 매우 강력한 도구입니다.
'Machine Learning' 카테고리의 다른 글
[머신러닝 기법] Decision Tree, AdaBoost, Gradient Boosting, XGBoost, LightGBM의 주요 차이점 (0) | 2024.05.05 |
---|---|
6wk_Decision Tree(의사결정나무) (0) | 2024.04.12 |
5wk_Regularization (0) | 2024.04.06 |
4wk_예측값과 실제값 비교 : MSE · RMSE · MAE · R2 (0) | 2024.03.31 |
1wk_Machine Learning_Python Packages (0) | 2024.03.09 |