반응형

20210923

CNN 또는 ConvNet

이미지 안의 물체를 인식하거나 이미지의 장면을 글로 요약하는 데는 합성곱 신경망(CNN)구조가 많이 사용됩니다.

한 예로 스탠퍼드 대학교의 비전 랩에서는 2015년 말 이미지의 장면을 글로 요약해주는 덴스캡(DenseCap)을 개발해 공개했습니다.

2015년 구글은 딥드림(DeepDream)이라는 합성곱 신경ㅇ망 구조를 선보였습니다.

 

딥러닝의 특별한 케이스이며 컴퓨터 비전 분야에 아주 커다란 영향을 주어왔습니다.

cnn의 전형적인 특징은 거의 항상 입력 데이터로 이미지를 받는다는 점입니다 . 

덕분에 신경망을 효율적으로 구현할 수 있고 필요한 매개변수의 수를 줄일 수 있습니다. 

 

주요 목적: 테두리, 선, 색 등 이미지의 시각적 특징 characteristic 이나 특성 feature을 감지하는 것입니다. 

입력 계층과 연결된 은닉계층에 의해 처리됩니다. 

CNN은 재미있게도 입력 데이터가 첫 번쨰 은닉 계층의 뉴런에 완전 연결되어 FULLY CONNECTED 있지는 않습니다.

이미지의 픽셀 정보를 저장하는 입력 뉴런의 작은 일 부 영역만이 첫 번째 은닉 계층의 한 뉴런과 연결돕니다.

 

20210928

합성곱 계층

convolutional layer

특징맵들이 모여 있는 것

 

20200105

합성곱  Convolution 

합성곱 신경망의 C는 합성곱 을 의미합니다.

2개의 함수 중 하나를 평행 이동시키면서 합성곱을 취한 적분 값을 계산합니다. 

다양한 기능을 포함한 이미지 편집 소프트웨어는 행렬에 따라서 매개변수를 지정해 화소 값을 편집(합성곱 필터 적용)합니다. 

 

합성곱 신경망의 구성:

특징맵

완전 연결 계층

출력층

패팅 등 

 

출처 :

텐서플로 첫걸음

처음 배우는 인공지능

반응형

'개념 정리' 카테고리의 다른 글

비용함수_20210910  (0) 2021.10.06
텐서플로 서빙 이란 ?_20210905  (0) 2021.09.25
심층 신경망 이란?_20210903  (0) 2021.09.25
추론 이란?_20210902  (0) 2021.09.25
딥러닝 이란?_2021901  (0) 2021.09.25
반응형

밑바닥부터 시작하는 딥러닝을 참조하여 정리한 내용이다.

 

합성곱 신경망 (Convolutional neural network , CNN) : 

이미지 인식과 음성 인식 등 다양한 곳에서 사용되는데 , 특히 이미지 인식 분양에서 딥러닝을 활용한 기법은 거의 다 CNN을 기초로 한다.

 

7.1 전체 구조 

합성곱 계층 Convolutional layer

풀링 계층 pooling layer

 

완전연결 fully -connected, 전결합: 인접하는 계층의 모든 뉴런과 결합되어 있었습니다. 

완전히 연결된 계층을 Affine계층이라는 이름으로 구현했습니다.

 

 

7.2 합성곱 계층

cnn에서는 패딩, 스트라이드 등 cnn고유의 단어가 있다.

각 계층 사이에는 3차원 데이터 같이 입체적인 데이터가 흐른다는 점에서 완전연결 신경망과 다릅니다.

 

7.2.1 완전연결 계층의 문제점

완전연결 계층(Affine 계층) : 인접하는 계층의 뉴런이 모두 연결되고 출력의 수는 임의로 정할 수있습니다.

 

완전연결 계층 문제점:  데이터의 형상이 무시된다.

 

입력 데이터가 이미지인 경우를 예로 들면 ,이미지는 통상 세로 , 가로 , 채널(색상) 로 구성된 3차원 데이터입니다.

완전연결 계층으로 할 때는 3차원이 1차원으로 flatten 해줘어야 합니다.

이미지는 3차원 형상이며, 이 형상에는 소중한 공간적 정보가 담겨 있죠 . 

완전연결 계층은 형상을 무시하고 모든 입력 데이터를 동등한 뉴런(같은 차원의 뉴런)으로 취급하여 형상에 담긴 정볼르 살릴 수 없습니다.

 

cnn은 형상을 유지합니다.

3차원 데이터  입력 -> 3차원 데이터로 전달

 

cnn에서는 합성곱 계층의 입출력 데이터를 특징 맵feature map이라고도 합니다.

합성곱 계층의 입력 데이터를 입력 특징 맵 input feature map, 출력 데이터를 출력 특징 맵 output feature map이라고  한다.

 

7.2.2 합성곱 연산

이미지 처리에서 말하는 필터 연산에 해당

 

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

필터( 높이, 너비) -> 커널 kernel

 합성곱 연산은 필터의 윈도우 를 일정 간격으로 이동해가며 입력 데이터에 적용

원소끼리 곱한 후 그 총합을 구합니다.(단일 곱셈- 누산 fused multiply-add, FMA이라 합니다.)

결과를 출력의 해당 장소에 저장

 

 

 

완전연결 신경망에서는 가중치 매개변수와 편향이 존재하는데 , cnn에서는 필터의 매개변수가 그동안의 '가중치'에 해당됩니다.

 

 

 

7.2.3 패딩padding

합성곱 연산을 수행하기 전에 입력 데이터 주변을 특정값으로 채우기도 합니다.

패딩은 주로 출력 크기를 조정할 목적으로 사용합니다.

 

7.2.4 스트라이드 stride

필터를 적용하는 위치의 간격을 stride라고 합니다.

stride를 키우면 출력 크기는 작아집니다.

 

7.2.5 3차원 데이터의 합성곱 연산

특징맵

 

채널 쪽으로 특정맵이 여러개 있다면 입력 데이터와 필터의 합성곱 연산을 채널마다 수행하고 , 그 결과를 더해서 하나의 출력을 얻습니다.

 

3차원의 합성곱 연산에서 주의할 점은 입력 데이터의 채널수와 필터의 채널 수가 같아야 한다는 것입니다. 

 

7.2.5 블록으로 생각하기

3차원의 합성곱 연산은 데이터와 필터를 직육면체 블록이라고 생각하면 쉽습니다.

 

7.2.5 배치 처리

(데이텃, 채널 수 , 높이 , 너비) 순으로 저장

 

 

 

 

 

7.3 풀링 계층

풀링은 세로 가로 방향의 공간을 줄이는 연산입니다.

 

max pooling  최댓값을 구하는 연산

 

7.3.1 풀링 계층의 특징"

학습 해야 할 매개변수가 없다.

채널수가 변하지 않는다.

입력의 변화에 영향을 적게 받는다.(강건하다.)

 

반응형

' > 밀바닥부터 시작하는 딥러닝' 카테고리의 다른 글

07-3 합성곱 신경망(CNN)  (0) 2020.12.18
07-2. 합성곱 신경망(cnn)  (0) 2020.12.09
06. 학습 관련 기술들  (0) 2020.10.20
05. 오차역전파법  (0) 2020.10.16
04. 신경망 학습  (0) 2020.09.25

+ Recent posts