머신러닝, 딥러닝 ML, DL/이론

[Deep Learning] 8. 합성곱 신경망, CNN의 구조

킹남지 2021. 8. 11. 19:30
반응형

이번 포스팅에서는 합성곱 신경망(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 구조의 예시는 아래와 같습니다.

CNN의 예시

합성곱 계층과 풀링 계층이 추가됐고, 출력에 가까운 층은 Affine-Relu, Affine-Softmax 조합을 그대로 사용하고 있습니다.

 

CNN을 크게 두 부분으로 나누면 

1. 특징을 추출하는 단계

2. 분류 단계

로 나눌 수 있습니다.

 

위 CNN의 구조 예시 그림에서 부분을 나눠본다면 아래 그림처럼 나눠집니다.

이렇게 단순하게 분류기로만 구성된 FCN과는 달리

CNN은 특징을 추출하는 부분이 추가돼 이미지 인식과 같은 분야에서 강점을 보입니다. (Conv-Relu-Pooling 으로 구성된 앞 부분)

 

이번에는 가볍게 구조만 알아보고, 다음 포스팅부터 CNN을 자세히 알아보겠습니다.

읽어주셔서 감사합니다. ^^

 

 

 

[참고자료]

[1] 밑바닥부터 시작하는 딥러닝1 (사이토 고키)

[2] https://blog.naver.com/laonple/220608018546

반응형