정지홍 2023. 1. 29. 14:38

CNN

-입력->합성곱층->풀링층->전결합층->출력 으로 구성

-합성곱층에서 반복하고 (합성곱층->풀링층)과정 반복하고 전결합층에서 반복하고 출력을 한다.

-합성곱층에서는 입력 img를 여러 필터로 처리, 처리를 하면 입력 이미지의 특징이 강조된 것으로 변환 및 크기 감소

-풀링층에서는 이미지의 크기가 축소(맥스 풀링 or 평균 풀링)

 

 

패딩

-합성곱층 및 풀링층에서 사용되며 이미지의 주위에 값이 0인 픽셀을 배치하여 합성곱 및 풀링에 의해 이미지 크기가 작아지는 것을 방지

 

스트라이드

-합성곱에서 필터가 이동하는 간격을 의미 

 

 

im2col

-순전파에서 합성곱층,풀링층에서 사용

-코드를 간단하고 실행 속도를 높이기 위하여 사용

-만약 이미지 픽셀을 행렬의 열로 변환하면 필터는 행으로 변환한다.

단순한 im2col구현 결과

 

col2im

-역전파에서 합성곱층,풀링층 전파에 사용

 

풀링의 구현

이미지의 특징은 손상하지 않고 크기만 줄였다.


Keras의 데이터 셋을 이용하여 CNN의 구현

우선 데이터 셋을 읽어 들인다.

 

케라스의 Conv2D함수를 이용하여 cnn모델 구축


모델을 훈련시켰다


훈련용 데이터의 오차는 학습이 진행되며 매끄럽게 감소하지만 테스트용 데이터는 그렇지않고 오히려 증가했으며  이를 통하여 과적합이 발생했음을 알 수 있다. 이러한 현상을 해결하려면 과적합을 막기위한 대책은 드롭아웃이나 데이터 확장등 다양한 방법이 있으며 이를 사용하여 해결해야한다.