지도학습: 합성곱 신경망 (CNN) 기본 개념

pppanghyun·2022년 7월 14일
0

Pytorch 기본

목록 보기
7/21

CNN(Convolution Neural Network)은 합성곱 신경망임. 주로 이미지와 비디오와 같은 데이터를 처리하는데 사용됨.

MLP가 fully-connected된 것과는 달리 CNN은 fully connected가 아님. CNN은 filter(kernel)을 통해 특징을 추출하고, 이를 통해 parameter-sharing을 가능하게함.

(뉴런들이 하나의 파라미터를 서로 '공유'함에 따라 파라미터를 효율적으로 줄일 수 있음)

또한 MLP는 이미지의 pixel이 한 칸씩만 움직여도 input으로 받는 데이터가 모두 달라지는 단점이 있기에 이미지 처리에 부적합함

이미지 데이터에서 MLP가 아닌 CNN을 사용하는 이유는 직관적으로 이해할 수 있음. 우선 MLP은 데이터를 1차원으로 flatten 시켜서 사용함. 이는 어떻게 생각하면 머신러닝에서 변수를 넣고 타겟을 추출하는 것과 같음.
(또 기본적으로 머신러닝은 input 데이터가 독립이라는 가정이 있음)

하지만 이미지 데이터는 독립성이 지켜지지 않는 데이터임. 즉, 가까이에 위치한 pixel은 pixel들끼리 지역 정보(region feature)을 가지고 있음. 따라서 지역적인 정보를 학습하기 위해 filter(kernel)을 사용하는 것임!

출처

https://www.researchgate.net/figure/The-common-architecture-of-MLP-and-CNN-designed-for-classification-and-regression-based_fig2_336358944
https://gomguard.tistory.com/188
https://dasher.wustl.edu/chem430/readings/simple-intro-cnn.pdf
https://bluediary8.tistory.com/m/87

profile
pppanghyun

0개의 댓글