AI/DeepLearning

CNN 개념

oaho 2023. 3. 14. 23:28
반응형

이미지 인식과 음성 인 식 등 다양한 곳에서 사용되는데,

특히 이미지 인식 분야에서 딥러닝을 활용한 기법은 거의 다 CNN을 기초로 한다.

 

 

‘합성곱 계층 Conv ’과 ‘풀링 계층 Pooling ’이 추가된다.

Conv-ReLU-(Pooling )’ 흐름으로 연결된다. (풀링 계층은 생략하기도 한다.)

 

기존에 구조들(완전 연결 계층)의 단점 :

형상을 무시하고 모든 입력 데이터를 동등한 뉴런(같은 차원의 뉴런)으로 취급하여 형상에 담긴 정보를 살릴 수 없다.

 

But 합성곱 계층은 형상을 유지한다.

이미지도 3차원 데이터로 입력 받으며, 마찬가지로 다음 계층에도 3차원 데이터로 전달한다.

=> CNN에서는 이미지처럼 형상을 가진 데이터를 제대로 이해할 (가능성이 있는)것이다.

 

특징 맵(feature map) : CNN에서 합성곱 계층의 입출력 데이터

  • input feature map : 입력데이터
  • output feature map : 출력 데이터 

 

 

합성곱 연산

 

 

합성곱 연산은 입력 데이터에 필터를 적용한다.

데이터와 필터의 형상을(높이, 너비)로 표기하며, 위 예에서는 입력은 (4, 4), 필터는 (3, 3), 출력은 (2, 2)가 된다.

 

이렇게 해서 새롭게 만들어진 층 = "컨볼루션(합성곱)층"

컨볼루션 층을 만들면 입력 데이터가 가진 특징을 대략적으로 추출해서 학습을 진행할 수 있다.

이러한 커널이 여러 개 만들 경우 여러 개의 컨볼루션 층이 만들어진다.

 

🔸 합성곱 연산의 계산 순서

 

 

=>   첫번째 연산 : (1*2) + (2*0) + (3*1) + (0*0) + (1*1) + (2*2) + (3*1) + (0*0) + (1*2) =15

 

 

 

편향은 필터를 적용한 후의 데이터에 더해진다. 

편향은 하나(1 X 1)만 존재한다.

그 하나의 값을 필터를 적용한 모든 원소에 더하는 것이다.

 

 

 

패딩

 

합성곱 연산을 수행하기 전에 입력 데이터 주변을 특정 값(0)으로 채우기도 한다. = "패딩(padding)"

 

 

 

입력 데이터 주위에 0을 채우면 (4, 4)인 입력 데이터에 패딩 추가 => (6, 6)

이 입력에 (3, 3) 크기의 필터를 걸면 (4, 4)크기의 출력 데이터가 생성된다.

23 등 원하는 정수로 설정할 수 있다.

만약 패딩 2로 설정하면 입력 데이터의 크기는 (8, 8 )이 되고 3으로 설정하면 (10, 10 )이 된다.

 

 

 

 

 

CNN을 이용한 MNIST 데이터셋 모델링 과정

Conv2D, max pooling, Dropout, Flatten CNN 개념 이미지 인식과 음성 인 식 등 다양한 곳에서 사용되는데, 특히 이미지 인식 분야에서 딥러닝을 활용한 기법은 거의 다 CNN을 기초로 한다. ‘합성곱 계층 Conv

oaho.tistory.com

 

 

 

 

Reference

: 밑바닥부터시작하는 딥러닝 / 사이토고키 / 한빛미디어

반응형