본문 바로가기
Deep Learning

합성곱신경망 CNN(Convolutional Neural Network)

by wave_m 2020. 9. 10.
728x90

CNN이란?

영상 처리에 많이 활용되는 합성곱을 이용하는 인공신경망 기술

합성곱을 이용해 가중치 수를 줄여 연산량을 줄이면서도 이미지 처리를 효과적으로 할 수 있음

 

CNN의 원리 ?

합성곱 필터를 이용하여 신경망 동작을 수행

여러 작은 필터가 이미지 위를 돌아다니면서 특징점들을 찾아 그 합성곱 결과를 다음 계층으로 보냄

적은 수의 가중치로 이미지 처리를 효율적으로 할 수 있음

 

합성곱 계층 : 특징점을 효과적으로 찾는데 활용

완전 연결 은닉 계층 : 찾은 특정점을 기반으로 이미지를 분류하는 데 주로 활용

 

2차원이나 그 이상 차원의 데이터 처리에 적합

DNN은 이미지를 1차원 벡터로 변환하여 전 계층이 1차원 방식으로 신호를 처리하기 때문에 2차원 특성을 처리하기에는 한계가 있는 반면, CNN2차원 합성곱으로 각 노드를 처리하기 때문에 이미지에 더 적합

CNN은 이미지의 높이와 넓이를 생각하면서 2차원 처리를 수행

컬러 이미지를 다룰 경우 컬러에 대한 계층은 깊이라는 별도의 차원으로 관리

 

CNN의 장점 ?

합성곱 계층을 이용하여 적은 가중치 수로도 이미지 분류에서 높은 성능을 냄

가중치 수가 적기 때문에 과적합의 가능성도 낮아짐

 

CNN의 구조

 

합성곱 계층이 끝나면 맥스풀링(Max-pooling) 계층을 이용해 각 지역별로 최댓값을 찾아주는데 특징점의 위치가 약간씩 달라져도 딥러닝을 제대로 수행

 

맥스 풀링 : Activation Map을 MxN의 크기로 잘라낸 후, 그 안에서 가장 큰 값을 뽑아내는 방법

특징의 값이 큰 값이 다른 특징들을 대표한다는 개념을 기반

풀링은 액팁이션 함수마다 매번 적용하는 것이 아닌, 데이터의 크기를 줄이고 싶을 때 선택적으로 사용

 

맥스 풀링의 장점 ?

- 전체 데이터의 사이즈가 줄어들기 때문에 연산에 들어가는 컴퓨팅 리소스가 적음

- 데이터의 크기를 줄이면서 소실이 발생하기 때문에 오버피팅을 방지

 

 

Maxpooling2D의 동작 원리 (이미지 출처 : https://www.youtube.com/watch?v=2-75C-yZaoA&feature=youtu.be)

 

 

728x90