이번 포스팅에서는 합성곱 신경망(Convolutional Neural Network), CNN의 구조를 알아보겠습니다.
CNN은 신호 처리, 이미지 인식, 음성 인식 등 다양한 분야에서 사용됩니다.
FCN
CNN의 구조를 보기에 앞서 완전연결 신경망(Fully Connected Network)의 구조의 예시입니다.
Affine 계층과 활성화 함수를 조합한 구조입니다.
문제점
이미지를 인식 알고리즘을 만드는 경우에 FCN을 사용한다면 이미지가 갖는 데이터의 형상이 무시됩니다.
가장 많이 나오는 예시인 MNIST 손글씨 데이터의 경우 (28, 28)의 형상을 갖는 이미지지만,
FCN에 적용하려면 (28,28)의 형상을 한줄로 세워 (784)의 형태로 만들어 Affine 계층에 입력합니다.
그렇게 되면 공간적 정보를 무시할 뿐더러, 파라미터의 수도 엄청나게 많아져 오버피팅의 문제도 발생합니다.
CNN을 사용하면 이런 문제를 극복할 수 있습니다.
CNN
CNN은 합성곱 계층(Convolution Layer)와 풀링 계층(Pooling Layer)이 추가됩니다.
CNN 구조의 예시는 아래와 같습니다.
합성곱 계층과 풀링 계층이 추가됐고, 출력에 가까운 층은 Affine-Relu, Affine-Softmax 조합을 그대로 사용하고 있습니다.
CNN을 크게 두 부분으로 나누면
1. 특징을 추출하는 단계
2. 분류 단계
로 나눌 수 있습니다.
위 CNN의 구조 예시 그림에서 부분을 나눠본다면 아래 그림처럼 나눠집니다.
이렇게 단순하게 분류기로만 구성된 FCN과는 달리
CNN은 특징을 추출하는 부분이 추가돼 이미지 인식과 같은 분야에서 강점을 보입니다. (Conv-Relu-Pooling 으로 구성된 앞 부분)
이번에는 가볍게 구조만 알아보고, 다음 포스팅부터 CNN을 자세히 알아보겠습니다.
읽어주셔서 감사합니다. ^^
[참고자료]
[1] 밑바닥부터 시작하는 딥러닝1 (사이토 고키)
'머신러닝, 딥러닝 ML, DL > 이론' 카테고리의 다른 글
[Deep Learning] 10. CNN, 풀링 계층 (Pooling Layer) (0) | 2021.08.12 |
---|---|
[Deep Learning] 9. CNN, 합성곱 계층, 패딩, 스트라이드 (2) | 2021.08.11 |
[Deep Learning] 7.시그모이드 함수 역전파 (미분, 구현) (0) | 2021.08.11 |
[Deep Learning] 6. 경사 하강법, 기울기 (2) | 2021.08.04 |
[Deep Learning] 5. 배치, 미니배치, 수치 미분, 기울기 (0) | 2021.08.04 |