[TIL]Convolutional Neural Network(CNN)

lena_log·2022년 3월 10일
0

Codestates Section4

목록 보기
9/12
post-thumbnail

CNN(합성곱 신경망)과 CNN의 구조

  • 이미지는 위치에 맞는 공간적인 특성을 가지고 있음
  • 합성곱층은 이미지의 일부분을 훑으면서 연산이 진행되며 특징을 잡아내어 학습하기 때문에 층이 깊어지더라도 공간적 특성을 최대한 보존할 수 있음

CNN 구조


출처: 코드스테이츠

합성곱

  • 합성곱 층에서는 합성곱 필터 또는 슬라이딩하며 이미지 부분부분의 특징을 읽어나감

패딩(padding)

  • 패딩은 이미지 외부를 특정한 값으로 둘러싸서 처리해주는 방식
  • 0으로 둘러싸주는 제로-패딩이 가장 많이 사용함
  • 연산되어 나오는 output, 즉 feature map의 크기를 조절하고 실제 이미지 값을 충분히 활용하기 위해 사용됨

스트라이드

  • stride를 조절하면 슬라이딩 시에 몇칸씩 건너 뛸지를 나타냄

풀링

  • 가로,세로 방향의 공간을 줄이기 위한 풀링을 수행

1. 최대풀링

  • 정해진 범위내에서 가장 큰 값을 꺼내오는 방식

2. 평균 풀링

  • 정해진 범위내에 있는 모든 요소의 평균을 가져오는 방식
  • 일반적으로 이미지 처리할 떄는 각 부분의 특징을 최대로 보존하기 위해서 최대 풀링 사용
    특징: 학습해야할 가중치가 없으며 채널 수가 변하지 않는다는 특징이 있음

완전 연결 신경망

  • 이전에 구축했던 다층 퍼셉트론 신경망으로 구성되어 있으며 풀어야하는 문제에 따라 출력층을 잘 설계해 주는 것이 좋음

CNN의 학습

  • 학습되는 가중치가 있는 부분: convolution 층에 있는 filter의 가중치

전이학습

  • 대량의 데이터를 학습한 사전학습 모델의 가중치를 그대로 가져온 뒤 분류기, 즉 완전 연결 신경망 부분만 추가로 설계해서 사용

  • 일반적으로 사전학습 가중치는 학습되지 않도록 고정한 채로 진행되기 때문에 빠르게 좋은 결과를 얻을 수 있다는 장점이 있음

이미지 분류를 위한 주요 사전 학습 모델

VGG, Inception, Resnet

VGG 특징


출처: 코드스테이츠

그림 설명

  • 가장 왼쪽이 인풋임, 이미지의 크기 224*224인데 딥러닝 기준 큰 편, 컬러 이미지라서 3개의 채널
  • 검정색 선으로 된 사각형이 conv2d
  • 빨간색 선으로 된 사각형이 maxpool2d
  • 3*3 컨볼류션을 두번하고 64개의 필터를 사용하고 맥스 풀을 진행하고 이미지 사이즈가 절반으로 줄어듦
  • 3*3 컨볼류션 두번 하고 128개의 필터를 사용하고 맥스 풀 진행하고 이미지 사이즈가 절반으로 줄어듦
  • 3*3 컨볼류션 세번 하고 256개의 필터를 사용하고 맥스 풀 진행하고 이미지 사이즈가 절반으로 줄어듦
  • 33 컨볼류션 세번 하고 512개의 필터를 사용하고 맥스 풀 진행하고 이미지 사이즈가 절반으로 줄어듦
    -3
    3 컨볼류션 세번 하고 512개의 필터를 사용하는데 컨볼류션 필터갯수를 더 늘리지 않았고 맥스 풀 진행하고 이미지 사이즈가 절반으로 줄어듦
  • flatten으로 일렬로 늘려줌(114096)
  • 아웃풋은 1000개 이고 그 이유는 이미지넷 첼린지가 1000개의 클래스를 분류하기 때문임
    -즉, dense 4096, dense 1000
  1. 모든 합성곱층에 3*3 필터를 사용
  • 대신 층을 깊게 쌓음으로서 기조 77, 1111 크기의 필터 이상의 표현력을 가질수 있도록 함
  1. 활성화 함수로 relu를 사용하고 가중치 초깃값으로 He 초기화를 사용
  • 층을 깊게 쌓았음에도 기울기 소실 문제가 발생하지 않음
  1. 마지막으로 완전 연결층에 dropout을 사용하여 과적합 방지 및 옵티마이저는 Adam 사용

Google net


출처: 코드스테이츠

  • 기본적인 합성곱 신경망이 결합된 형태
  • 세로 방향의 깊이 뿐만 아니라 가로 방향으로도 넓은 신경망 층을 가지고 있다는 것이 특징
  • 가로 방향으로 층을 넓게 구성한 것을 이넵션 구조라고 하는데 이 구조를 활용해 크기가 다른 필터와 풀링을 병렬적으로 적용한 뒤 결과를 조합

Resnet


출처: 코드스테이츠

  • 위 이미지에서 층을 넘어 이어지는 화살표를 볼 수 있는데 화살표는 resnet의 특징인 Residual connection(=skipped connection)임
  • 층은 거친 데이터 출력에 거치지 않은 출력을 더해줌

이미지 증강

  • 물체가 기울여져있거나 뒤집어진 이미지에서는 잘 예측을 못하기 때문에 일반화가 잘되는 모델을 만들기 위해서 학습 데이터 셋에 있는 이미지를 일부로 회전하거나 기울여서 나타내는데 이러한 방법을 이미지 데이터 증강이라고 함

합성곱 출력 데이터 크기 계산

입력 데이터 높이: H
입력 데이터 폭: W
필터 높이: FH
필터 폭: FW
Strid 크기: S
패딩 사이즈: P

문제
조건1) 입력되는 데이터의 크기는 (256, 256, 3)입니다.
조건2) 필터 하나의 크기는 (5, 5)입니다.
조건3) 필터는 총 3개입니다.
조건4) 스트라이드는 2입니다.
조건5) 패딩은 적용하지 않습니다.


(126, 126, 3)


profile
안녕하세요. 기억보다 기록을 믿는 레나입니다!

0개의 댓글