2023_Summer_Seminar_3_CNN

Bigjoo·2023년 8월 1일
0

2023_Summer_Seminar

목록 보기
3/3
post-thumbnail

3차 세미나

2023년 7월 20일에 진행한 세미나에 대해 정리하려고 한다.

3주차에는 지도교수님의 기계학습 강의를 완강하였고, 강의에서 등장했던
CNN에 대해 추가적인 공부를 진행하고, Pytorch로 실습까지 해보았다.

발표 Contents는 다음과 같다.
1. DMLP와 CNN 비교
2. CNN 구조
3. Feature Learning층
4. Classification층

1. DMLP와 CNN 비교

DMLP

  • DMLP는 입력층, 3개 이상의 은닉층, 출력층으로 이루어져 있다.
  • Layer의 모든 노드가 다음 Layer의 모든 노드들과 연결된 완전 연결 구조 이다.
  • 완전 연결 구조로 인해 매개변수가 매우 많아 계산량이 매우 많다.

CNN

  • CNN은 Convolution 연산을 이용한 부분 연결 구조로 매개변수의 양이 감소하였다.
  • Convolution 연산이 이미지의 좋은 특징을 추출한다.
  • 이미지 특징을 추출하는 Feature Learning층과 이미지를 분류하는 Classification층으로 나눠진다.

DMLP vs CNN

2. CNN 구조

  • 이미지 특징을 추출하는 Feature Learning층과
    이미지를 분류하는 Classification층으로 나눠진다.

CNN 학습 과정

  • 모델의 파라미터인 Kernel과 Fc Layer의 가중치(W)와 bias를 갱신하며 최적의 파라미터 학습

3. Feature Learning층

  • Convolution 계층, 활성함수(ReLU), Pooling계층 과정을 반복하여 이미지의 특징을 추출
  • 다중 커널을 사용하여 다중 특징 맵을 추출

Convolution 연산

  • Convolution 계층에서 수행되는 연산
  • 입력 데이터의 특징을 추출하는 역할
  • Kernel은 NxM크기의 행렬로 이루어져 입력 이미지를 처음부터 끝까지 훑으면서
    겹쳐지는 부분의 각 이미지와 Kernel의 요소끼리 곱하고 결과를 모두 더하는 연산
  • Stride - Kernel의 이동 간격을 의미

Padding

  • Convolution 연산으로 얻은 특징 맵은 입력보다 크기가 작아진다.
  • 가장자리의 정보 소실을 방지하기 위해 특정 값으로 주변을 채워 특징 맵의 크기 조절

Pooling 계층

  • 특정 영역의 픽셀 중에서 해당 영역을 대표하는 픽셀 하나로 축소하여 나타내는 연산
  • 특정 feature를 강조

CNN 모델 구성 예시

(반드시 직접 손으로 써가면서 왜 특징 맵의 크기가 이렇게 나오는지 확인해보길 바람)

4. Classification층

  • Flatten, Fully connected Layer, Softmax function을 통해 이미지 Class 분류 수행

Flatten

  • Feature Learning층에서 추출된 특징 맵이 FC Layer에 입력값으로 들어간다.
  • 추출된 특징 맵은 2차원 형태이고, FC Layer의 입력은 1차원 형태여서
    특징 맵을 벡터화(Flatten)하는 과정이 필요하다

Classification

  • Flatten하는 과정을 거친 특징 맵은 Fc Layer를 통과한다.
  • 최종적으로 Softmax함수를 거쳐 Class Label에 대한 예측을 수행한다.

마무리

CNN에 대한 전체적인 개념에 대해 알아 보았다.
CNN은 DMLP와 달리 2차원 형태의 Kernel을 사용하여 2차원이라는 특징을 갖는 이미지에서 특징을 추출하는데 이점을 가져온 모델이다.
CNN의 등장으로 딥러닝 분야의 이미지 데이터 작업은 많은 발전을 이루었다.

세미나 리뷰

지도 교수님

CNN의 개념을 이해하는 것은 당연히 할 수 있어야 하고, 이를 기반으로 코드로 직접 구현할 줄 알아야 한다.
결국 딥러닝 분야는 다양한 task에 대해 잘 만들어진 모델을 불러와 좋은 성능을 내는 것이 전부이기에 코드와 친해지는 것이 매우 중요하다.

후기

CNN에서 가장 중요한 것은 Convolution연산이라고 생각한다.
Convolution연산의 등장으로 이미지를 다루는 딥러닝 작업에서 비약적인 성능 향상이 이루어졌고, Convolution연산의 특징을 이용한 다양한 모델들이 발전하였기에 Convolution연산의 이점이 무엇인지 정확하게 아는 것이 중요한 것 같다.
여태 딥러닝 개념만 공부를 하다가 CNN 모델에 대해 공부하면서 평소 관심이 있던 이미지 작업을 수행하니 매우 흥미로웠다.

profile
ComputerVision 누구냐 넌

1개의 댓글

comment-user-thumbnail
2023년 8월 1일

유익한 글이었습니다.

답글 달기