[Home] AI로 돌아가기

3) CNN (합성곱 신경망; Convolutional Neural Network) [YouTube]

...
합성곱(Convolution)에서 4×4 이미지를 2×2 이미지로 추출하는 모습
출처: 길벗
...
전체부분을 함께 학습하는 CNN
출처: 길벗

...

전연결(FC, Fully Connected) 층(Layer)만으로 구성된 인공 신경망의 입력 데이터는 1차원(배열) 형태로 한정된다.
한 장의 컬러 사진은 3차원 데이터이다.
하지만 배치 모드에 사용되는 여러 장의 사진은 4차원 데이터이다.

사진 데이터로 전연결 신경망을 학습시켜야 할 경우에, 3차원 사진 데이터를 1차원으로 평면화시켜야 한다. 사진 데이터를 평면화 시키는 과정에서 공간 정보가 손실될 수밖에 없다. 결과적으로 이미지 공간 정보 유실로 인한 정보 부족으로 인공 신경망이 특징을 추출 및 학습이 비효율적이고 정확도를 높이는데 한계가 있다. 이미지의 공간 정보를 유지한 상태로 학습이 가능한 모델이 바로 CNN이다.
출처: http://taewan.kim/post/cnn/

[예제] 합성곱(Convolution) 2×2 연산

합성곱 신경망을 정확하게 구현하려면 부분 데이터를 추출하는 과정에 좀 더 복잡한 단계가 필요하다. 더 자세히 설명하면 2×2 형태로 추출한 데이터를 어떤 값(필터, filter)으로 곱하고 특징적인 값을 찾아내는 과정이 필요하다. 이때 추출한 데이터필터할 때 합성곱 연산을 한다. 그래서 이 신경망 이름이 합성곱 신경망이다. 이러한 합성곱 연산을 사용하면 이미지의 어떤 (국소) 영역어떤 특징과 패턴이 있는지 알아낼 수 있다.


[예제] 합성곱(Convolution) 4×4 연산 (CNN 상세절차 포함)


...
CNN의 가장 큰 장점은 필터를 학습을 통해 스스로 만든다는 것이다.
출처: https://aidev.co.kr/deeplearning/782
...

일반적인 CNN의 아키텍처(구조)는
(1) 합성곱,
(2) 활성화,
(3) 풀링 계층(레이어)을 반복하고
(4) 마지막에 완전 연결 계층을 사용한다.
출처: https://doi.org/10.3390/electronics12112402


지금까지 배운 CNN을 정리하면 다음과 같다. 일반적인 인공신경망 모델은 완전연결층으로 이루어져 있다.

문제는 완전연결층 특성상 1차원 데이터만 입력으로 받는다는 것이다. 컬러 사진 데이터는 3차원 데이터이므로, 3차원 데이터를 완전연결층으로 구성된 신경망으로 학습시키려면 3차원의 데이터를 1차원으로 평면화시켜야 한다. 이때 이미지에 대한 공간 정보가 유실되어 특징을 잘 추출하지 못하면 학습에 비효율적일 수 있는데, CNN은 이러한 문제를 해결할 수 있는 모델이다.