[세미나 발표 3] 머신러닝 세미나 1팀 - CNN

머신러닝단계 세 번째 세미나가 10월 12일 열렸습니다.

머신러닝 1팀은 문지은 회원, 서혜빈 회원, 손유진 회원, 장석우 회원, 정재욱 회원으로 구성되어 있습니다.

이 날 발표는 문지은 회원, 장석우 회원이 담당하였는데요.

세미나 발표주제는 'CNN'입니다.

위와 같은 순서로 발표를 진행해주셨습니다.

먼저, CNN의 등장 배경과 정의에 대해 살펴보겠습니다.

CNN을 설명하기 앞서, ANN, DNN에 대해 설명해주셨습니다.

DNN을 응요한 대표적인 알고리즘인 CNN은 사람의 시신경 구조를 모방한 구조입니다.

이제 CNN의 구조에 대해 살펴보겠습니다.

구성 요소에 대해 간단하게 살펴보면 위와 같습니다.

CNN에서 가장 중요한 구성 요소는 합성곱 층입니다.

패딩이란 이미지 주위에 수를 추가하는 것입니다.

스트라이드란 한 수용장과 다음 수용장 사이의 간격입니다.

패딩이 1, 스트라이드가 1인 CNN을 예로 들어 설명해주셨습니다.

필터란 가중치의 세트입니다.

수직 필터와 수평 필터를 보겠습니다. 각 해당 필터에 적용했을 때 나오는 output을 특성맵이라고 합니다.

정리하자면 하나의 input 이미지에 대해 여러 필터가 작용하는데, 1개의 필터가 1개의 특성맵을 구성합니다.

마지막으로 CNN의 구성 요소인 Pooling Layer에 대해 살펴보았습니다.

이번에는 숫자 2를 예로 들어보았습니다.

input이 feature map을 구성하면서 크기가 점점 줄어듭니다. 이미지의 크기를 줄이면 연산량을 줄일수 있습니다.

합성곱층의 사이즈를 조절하여 새로운 레이어를 얻는 것을 Pooling이라고 합니다.

Pooling의 예로는 Max Pooling과 Average Pooling이 있습니다.

종합해보면 합성곱층을 지나고 만들어진 feature map에서 max pooling을 거칩니다. 합성곱층과 pooing layer를 만드는 과정을 반복되고, 최종 단계에서 1차원으로 만드는 과정을 거치면 FC Layer가 됩니다.

다음은 CNNN의 활용 분야입니다.

CNN이 유용한 이유는 다음과 같은 세 가지 이유 때문입니다.

CNN의 활용분야입니다.

간단한 코드를 통해 더 자세히 살펴보겠습니다.

Mnist란 손으로 쓴 숫자들로 이루어진 대형 데이터베이스입니다.

Mnist 데이터를 트레이닝 데이터와 테스트 데이터로 만듭니다.

첫 번째로, 이미지 값이 어떤 식으로 보이는지 확인해보았습니다.

9라는 숫자를 1차 합성곱, 2차 합성곱을 통해 이미지가 어떤 식으로 저장되는지 보실 수 있습니다.

파이썬의 텐서플로를 이용하여, 간단하게 CNN을 구현한 코드입니다.

세미나를 준비한 ML1팀 모두 고생하셨습니다. :>