cnn 2

김찬울·2021년 9월 10일
0

필터라는 것은 어떠한 특징에 대해 걸러내는 것이다.

간단하게는 대각선, 세로선, 가로선을 걸러낸다.

조금 더 자세하게 보자면

고양이를 찾는 모델의 필터에서는

어떤 필터는 고양이의 눈을 찾고,
어떤 필터는 고양이의 코를 찾고,
다른 필터는 수염,
또 다른 필터는 고양이의 몸통등을 알아내는 식으로 필터가 존재한다.

이런 필터가 많을 수록 특징을 많이 추출하는데 또 너무 많으면 과대적합이 일어난다.

이렇게 필터는 Conv2D를 하면 할 수록 늘어나는게 일반적이고
그만큼 커널 사이즈는 커지는 식으로 하여 아웃풋 사이즈 자체는 작아진다.

ex) (256, 256, 1) -> (128, 128, 16) -> (64, 64, 32) -> (32, 32, 64)
이런식으로 output의 사이즈를 줄이고 커널을 늘려서 특징을 추출해낸다.

이렇게 피쳐맵에 대해서 특징을 찾아내고 결과를 도출한다. 같은 특징에 대해서는 같은 weight을 갖기도 한다.

이미지 차원 유지

이미지를 평활화하면 문제점은 width에 대해서는 그대로 적용 되지만

이미지라는 것은 특성상 한 픽셀에 대해 좌우뿐만 아니라 상하역시 비슷한 속성을 지닌다.

이런 특성탓에 기존 모델이 아닌 CNN을 사용하는 이유는

차원형 데이터에 대해 가중치를 주기 때문이다.

필터

CNN에서는 필터를 통해 데이터를 축소화 함과 동시에 주변에 대한 가중치를 준다.

간단하다 엣지를 만나기 전의 데이터는 비슷한 데이터라는 것이다.

그러면 엣지를 만난다는 것은 형상에 변화가 생겨서 물체가 검출되거나 할 가능성이 매우 높다.

이로써 필터를 통해 엣지 검출과 동시에 비슷한 부류에 대하여 비슷한 값으로 요약할 수 있다.

하지만 요약을 한다는 것은 정보를 잃을 가능성이 있기에

padding

padding을 사용해서 기존 이미지의 사이즈를 넓히고 요약을 한다. 이러면 28, 28, 1 의 형태가 유지되므로 정보의 손실을 막을 수 있다.

profile
코린코린이

0개의 댓글