Programmers 인공지능 데브코스 - Week 8 Day 1 - CNN

donchanee·2021년 1월 25일
0
post-thumbnail

CNN

영상인식에 많이 쓰이고, 이를 각종 필터로 특징 분류.
특징을 배우는 것 - 표현 학습, 이를 신경망을 통해서 해결하는 것이 딥러닝이고, 영상에 특화된 것이 CNN입니다.

컴퓨터 비전이 어려운 점은 주어진 사진이 카메라의 각도나 빛의 관점에 따라 차이가 생겨, 보호색 등을 컴퓨터가 구분하지 못하는 문제가 생깁니다.

특이한 자세의 고양이의 경우도 분류하기가 어렵다, 같은 종이라도 색이 다른 특징 등의 다양한 난관이 있습니다.

이를 모두 해결할 수 있는 것이 CNN 입니다.

완전연결을 부분연결으로 바꾸는 것이 MLP와의 차이입니다.

DMLP와 CNN의 비교

입력이 들어왔을 때, 가중치가 너무나도 많아지면 학습에 의해 결정되어야 하는 매개변수가 많아지고 이는 학습이 어려워진다는 것을 의미합니다. 이러한 일들은 오버피팅으로 이어질 수 있습니다.

CNN의 차이점은 부분연결을 사용해서 필터를 이동시키면서 출력값을 만드는 형태입니다. 들어오는 입력 자체가 이미지이기 때문에, 이같은 것이 가능한 것입니다. 사진은 인접한 픽셀이 연관성, 지역성이 있기 때문에 더 쉽게 희소한 영역만을 뽑아낼 수 있습니다.

격자 구조를 갖는 데이터에 적합합니다. (eg. 영상, 음성)

CNN은 필터를 이동시키기 때문에, 매개변수를 정해두고 사용할 수 있습니다.

CNN과 완전 연결 신경망과의 차별점

완전 연결 신경망은 모든 요소를 연결하고, CNN은 필터(커널)들을 사용, 파라미터를 공유함으로써 완전연결 신경망 대비 학습 파라미터가 매우 적습니다.

피쳐맵이라는 것이 뽑혀져서 나옵니다.

추출된 영상의 특징을 요약하고 강화하는 층을 POOL층이라고 하는데, 이 풀링은 최근에는 많이 사용하지 않는 추세입니다. 사진을 줄여도 사진에는 특징이 그대로 있다는 점을 활용한 방법입니다.

e.g. transcranial.github.io/keras-js

컨볼루션이라고 하는 것은 각각의 픽셀에 필터를 대서 각각의 연산을 하고, 값을 더해 결과값을 내는 것입니다.

비춰보는 투사체가 각각의 필터, 각각의 차원마다 생성이 되고 피쳐맵이 생성이 됩니다.

Weight Sharing, 가중치가 변하지 않고 유지되는 성질

컨볼루션 필터들을 사용하면서 사이즈가 줄어드는 것을 방지하기 위해 패딩이라는 방식을 쓰는데 데이터의 가장자리에 0이나 다른 값으로 채워주는 것입니다. 주로 0을 많이 사용합니다.

CNN은 빌딩 블록을 이어 붙여 깊은 구조로 확장시킵니다.

CNN 시각화 eg. poloclub.github.io/cnn-explainer

0개의 댓글