Post

딥러닝 | CNN(합성곱신경망) 개요

딥러닝 | CNN(합성곱신경망) 개요

1. CNN 이란?

Convolutional Neural Network의 줄임말로, 격자 이미지와 같은 데이터를 설계하기 위해 고안된 인공 신경망

  • 합성곱(convolution) 연산을 통해 이미지의 공간적 특징을 추출(feature map)한다.
  • 특징
    • vision 분야에서 성능 우수
    • 이미지 데이터를 인식하고 패턴을 찾는데 유용
    • 데이터를 학습하고 패턴을 사용하여 이미지를 분류함

1-1 CNN 모델 발전

  • LeNet
  • AlexNet
  • VGGNet
  • ResNet
  • EfficientNet

2. CNN의 구조

Convolution과 Pooling을 반복하면서 특징을 찾고, 그 특징을 fully connected NN의 입력 데이터로 사용함으로써 Classification을 수행함

2-1 CNN Layer

CNN의 Layer는 크게 3가지로 나눌 수 있다.

  1. Convolutional Layer
  2. Pooling Layer
  3. Fully-connected Layer

2-1-1. Convolutional Layer

alt text

  • 이미지 데이터는 3차원 tensor로 표현됨

이미지 input을 받아, 필터와 합성곱 연산을 통해 특징이 두드러지도록 feature map을 생성한다. 위키독스에서 가져옴

  • filter(kernel) : 필터를 통과한 이미지는 선, 색상, 형태, 경계등 이미지를 구분지을 수 있는 요소가 뚜렷해짐
    • 필터가 많을 수록 더 많은 이미지 feature를 추출할 수 있음
  • stride : 필터의 이동량
  • padding : 이미지에 합성곱 연산을 수행하면 출력 이미지의 크기가 입력이미지의 크기보다 작아지는 문제 발생 -> 이미지 가장자리에 특정 값으로 픽셀 추가
    • 예) Zero-padding : 가장 자리를 0 pixel로 채움
    • alt text
  • feature map(=activation map이라고도 함) alt text

2-1-2. Pooling Layer

feature map의 feature를 유지하면서, 이미지의 크기를 줄이는 다운사이징 기법

  • 일반적으로, 이미지 데이터는 인접 픽셀들 간 유사도가 높다는 특징을 이용
  • 기법 3가지
    • Max Pooling : 가장 큰 신호에 값으로 반응 -> 노이즈 감소, 속도가 빠름, 영상의 분별력이 좋아짐
    • Average Pooling
    • Min Pooling

2-1-3. Activation Function

각 뉴런(노드)의 입력 값을 처리한 후에 출력값을 결정하는 함수

  • 입력 값을 다음 층으로 출력을 전달할 지를 결정함
 a=f(z) 
 \\ z = w \times X + b 
  • 활성화 함수 종류: ReLU, Sigmoid, Tanh, Leaky ReLU 등

활성화 함수 사용 이유?

  • 비선형성: 신경망에 비선형성을 도입하여 단순한 선형 변환으로는 해결할 수 없는 문제 해결
  • 출력 범위 조정
  • 신경망의 학습 속도에 영향
This post is licensed under CC BY 4.0 by the author.