[DL] CNN 합성곱 신경망

최윤진·2023년 3월 1일
0

DL

목록 보기
5/5

📌 CNN에서 나오는 용어 정리

  • Tensor (텐서) : 다차원의 배열, 데이터의 배열

  • Channel (채널) : 이미지는 (높이,너비,채널)이라는 3차원 텐서인데,
    높이는 이미지의 세로 방향 픽셀수, 너비는 이미지의 가로 방향 픽셀 수, 채널은 색성분으로 입력되는 이미지 데이터가 단일 색상인 경우 채널은 1, RGB인 경우 채널은 3이다.

  • Covolution operation (합성곱 연산) :

    • 커널/필터라는 nxm 크기의 행렬로 높이x너비 크기의 이미지를 처음부터 끝까지 훑음
    • 겹쳐지는 부분의 각 이미지와 커널의 원소 값을 곱해서 모두 더한 값을 출력하는 것
  • Feature map (특성 맵) : 위의 합성곱 연산을 통해 나온 결과(=모두 더한 값)를 말한다.
    이 특성맵에서 숫자가 높으면 그 위치가 필터와 유사하다는 것을 말한다!

  • Stride (스트라이드) : 커널의 이동범위

  • Padding (패딩) : 합성곱 연산 전 입력의 가장자리에 지정된 개수의 폭만큼 행과 열을 추가 해주는 것

    • 합성곱 연산의 결과로 얻은 특성 맵은 입력보다 크기가 작아진다는 특징이 있음 (위의 출력 결과를 보면 입력보다 크기가 훨씬 작아졌음!)
    • 합성곱 연산 이후에도 특성 맵의 크기가 입력의 크기와 동일하게 유지되도록 하고 싶으면 이때 패딩을 사용한다!
      ( 쉽게 말해, 테두리를 추가 해주는 것 )
  • 편향
    합성곱 신경망에도 편향(bias)를 추가할 수 있는데, 커널을 적용한 뒤에 더해진다.

  • Pooling (풀링) : 데이터의 크기를 줄이는 다운샘플링의 일종으로, 특성 맵을 다운샘플링 해 특성 맵의 크기를 줄임
    풀링을 하는 이유는?
    데이터의 차원 감소를 통해 학습에 필요한 비용을 줄이는 것이 풀링 계층을 사용하는 이유이다!

    • 최대 풀링(max pooling)
    • 평균 풀링(average pooling)

📌CNN의 처리과정

1. 숫자 2가 input으로 들어온다.
2. 이렇게 총 6개의 필터를 합성곱 연산해준다.
3. 그럼 서로 다른 패턴을 뽑아낸 6개의 특성 맵이 나오게 된다.
4. (맥스) 풀링으로 특성 맵의 크기를 줄인다.
5. 다음 층에서 17개의 필터로 합성곱 연산과 (맥스) 풀링을 해준다.
(=> 상위 층으로 올라갈수록 사람은 이해하기 힘든 고차원적인 특징으로 변한다.)
6. 특성 맵의 출력을 쭉 일렬로 이어 붙여서 완전연결 신경망으로 최종 클래스를 분류하게 된다!
( 출력은 0~9까지의 원핫인코딩 형식이기 때문에 숫자2가 00100000000 👈 이런식으로 표시된다.)

profile
yunjin.log

0개의 댓글