TIL/프로젝트

cnn미니프로젝트 제출용 질문답변!

monawa 2022. 12. 11.
728x90

Q1. Convolution의 원리는 무엇인가요?

 
kernel을 사용하여 각 요소별 가중치를 줘서 특징을 추출한다는 것이다
  • 데이터의 특징을 추출하는 과정.
  • 데이터에 각 성분의 인접 성분들을 조사해 특징을 파악하고 파악한 특징을 한장으로 도출시키는 과정.
  • 도출된 층을 Convolution Layer라고 함.
  • 이 과정은 하나의 압축 과정이며 파라미터의 갯수를 효과적으로 줄여주는 역할을 함.

 

Convolution 에서 사용되는 몇 가지 용어로는 

  • 필터는 커널(kernel)이라고 불리기도 합니다.
  • 간격(stride)은 한 필터에서 다음 필터로 갈 때 몇 칸을 띄어서 가는지
  • 패딩(zero padding)은 양 옆으로 몇 개씩의 0을 붙일지

Q2.  Convolution층에서 padding의 역할을 설명해주세요

만약 커널의 크기가 더 크거나 Stride 값이 더 크다면 특성지도의 크기는 더 작아질 것이다. 따라서 이로 인해 출력 데이터가 줄어들게 되어 데이터 손실이 발생할 수 있다.(이미지 데이터 축소 )

이러한 문제점을 해결하기 위하여 패딩(Padding)이라는 개념을 도입하였다.패딩(Padding)은 이미지의 가장자리에 특정값으로 설정된 픽셀들을 추가함으로써 입력 이미지와 출력이미지의 크기를 같거나 비슷하게 만드는 역할을 수행한다. 이로써 단순히 데이터의 사이즈를 줄여주며, 노이즈를 상쇄시키고 미세한 부분에서 일관적인 특징을 제공한다 

 

 


Q3. CNN의 여러 모델에 대해서 설명해주세요(AlexNet, LeNet, ResNet 등등)

 

LeNet

LeNet는 이미지 분류용 CNN 중에 조상격으로 CNN초기에 CNN의 기본 구조를 정립

LeNet의 다양한 버전들(LeNet-1, LeNet-2,...)이 있으나 최종 버전은 LeNet-5입니다

https://velog.io/@lighthouse97/LeNet-5%EC%9D%98-%EC%9D%B4%ED%95%B4

  • Local receptive field의 개념을 활용하기 위해 5x5 Convolutional layer로 feature map을 생성
    전체 이미지가 같은 weight와 bias로 설정된convolutional kernel을 공유하는 shared weight개념을 적용
    Layer를 거쳐가면서 전체 이미지에서 의미있는 영역에 집중하기 위해 Average Pooling Layer로 Subsampling

 

 

ILSVRC에 사용된 알고리즘

AlexNet(2012)

  • 7 hidden layers, 650000 neruons, 60M parameters
  • GTX 580 3GB 2개로 1주일동안 훈련

ZFNet(2013)

  • AlexNet과 비슷하지만 Conv1(11x11 & stride 4 to 7x7 stride2), Con3~5의 필터수 변경
  • 에러를 더 줄여줌
  • CNN 작동원리에 대한 Visualization이 잘되어있음

VGGNet(2014)

  • VGG에 썼던 네트워크 구조가 현대까지도 이어지고 있음
  • receptive field(3x3 convolution layer를 여러층 쌓기) 개념 도입
  • 단순한 알고리즘이라 많이 사용되었음
  • 하지만, 사용량이 크다는 단점이 존재

GoogLeNet(2014)

  • 인셉션 모듈
  • Global average pooling

ResNet(2015)

  • 처음으로 사람보다 낮은 오차율을 보인 알고리즘
  • 깊은 층을 구성할 수록 오차율이 높아지는 것일 보완함
  • 현대에서도 많이 쓰이는 모듈

ResNeXt(2016)

  • 인셉션 모듈을 차용

Squeeze-and-Excitation Network(2017)

  • 가중치들을 변경해주는 모델
  • Attention
728x90

댓글