이미지 인식과 음성 인 식 등 다양한 곳에서 사용되는데,
특히 이미지 인식 분야에서 딥러닝을 활용한 기법은 거의 다 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)크기의 출력 데이터가 생성된다.
2나 3 등 원하는 정수로 설정할 수 있다.
만약 패딩 을 2로 설정하면 입력 데이터의 크기는 (8, 8 )이 되고 3으로 설정하면 (10, 10 )이 된다.
CNN을 이용한 MNIST 데이터셋 모델링 과정
Conv2D, max pooling, Dropout, Flatten CNN 개념 이미지 인식과 음성 인 식 등 다양한 곳에서 사용되는데, 특히 이미지 인식 분야에서 딥러닝을 활용한 기법은 거의 다 CNN을 기초로 한다. ‘합성곱 계층 Conv
oaho.tistory.com
Reference
: 밑바닥부터시작하는 딥러닝 / 사이토고키 / 한빛미디어
'AI > DeepLearning' 카테고리의 다른 글
CNN을 이용한 MNIST 데이터셋 모델링 과정 (0) | 2023.03.17 |
---|---|
Conv2D, max pooling, Dropout, Flatten (0) | 2023.03.17 |
multi-input & Concatenate layer / Add layer (0) | 2023.03.06 |
딥러닝 파라미터, 라이브러리 정리 (0) | 2023.03.06 |
딥러닝 - 로지스틱 회귀(Logistic Regression) (0) | 2023.03.01 |