스물두줄

컴퓨터시스템응용기술사 · 인공지능 및 머신러닝

CNN 합성곱 신경망 설명

CNN은 합성곱 연산으로 입력의 공간적 특징을 추출해 분류하는 심층 신경망이다. 사진을 작은 돋보기로 조금씩 훑어 모서리와 질감을 찾고, 그 특징을 모아 무엇인지 맞힌다. 일반 신경망과 달리 가까운 픽셀끼리의 관계를 그대로 보존한다. 입력 영상은 합성곱과 ReLU를…

주요 장면

  1. 0:02 CNN이란
  2. 0:23 계층 구조
  3. 0:51 출력 크기 계산
  4. 1:19 가중치 공유
  5. 1:54 헷갈리는 점
  6. 2:18 정리

대본

CNN이란

CNN은 합성곱 연산으로 입력의 공간적 특징을 추출해 분류하는 심층 신경망이다.

사진을 작은 돋보기로 조금씩 훑어 모서리와 질감을 찾고, 그 특징을 모아 무엇인지 맞힌다.

일반 신경망과 달리 가까운 픽셀끼리의 관계를 그대로 보존한다.

계층 구조

입력 영상은 합성곱과 ReLU를 거쳐 풀링으로 줄고, 완전연결 층과 소프트맥스로 분류된다.

합성곱 층은 필터로 특성 맵을 만들며, 필터 하나가 특성 맵 하나를 만든다.

ReLU는 음수를 0으로 바꿔 비선형성을 준다. 풀링 층은 가중치 없이 크기만 줄인다.

마지막 소프트맥스는 클래스별 확률을 출력한다. 학습은 역전파로 가중치를 갱신한다.

출력 크기 계산

출력 크기는 입력, 패딩, 필터, 스트라이드로 정해지며 값이 정수여야 한다.

입력 32, 필터 5, 패딩 2, 스트라이드 1을 넣으면 출력은 32가 된다.

결과가 입력과 같아 세임 패딩 조건이 성립한다. 패딩을 0으로 두면 28이 된다.

스트라이드를 2로 바꾸면 16.5가 되어 정수가 아니다. 설계에서 패딩과 스트라이드를 조정해야 한다.

가중치 공유

완전연결 신경망은 영상을 평평한 픽셀 배열로 펼쳐, 이웃 픽셀의 공간 구조를 잘 잡지 못한다.

CNN은 필터를 입력 전체에 공유하고, 작은 수용 영역만 연결해 매개변수를 줄인다.

입력 채널 3, 5×5 필터, 출력 채널 16인 합성곱 층은 가중치 1200개와 편향 16개뿐이다.

헷갈리는 점

정답은 20이다. 패딩 1을 주면 출력이 입력 크기와 같게 유지된다.

흔한 실수는 풀링을 가중치가 있는 층으로 설명하는 것이다. 풀링은 가중치 없이 크기만 줄인다.

소프트맥스는 중간 층으로 쓰지 않는다. 최종 출력층에서 클래스별 확률을 만든다.

드롭아웃은 훈련 시에만 적용하고, 예측 때는 적용하지 않는다.

정리

CNN의 핵심은 지역 연결성, 공유 가중치, 계층적 특징 추출 세 가지다.

출력 크기 식의 결과가 정수가 되도록 패딩과 스트라이드를 정해야 한다.

과적합은 드롭아웃, 데이터 증강, 전이학습으로 줄일 수 있다.

시험에서는 구성 요소 설명, 층별 출력 계산, 다른 신경망과의 비교가 자주 나온다.

같은 장의 영상