인공지능_컨볼루션 신경망

Yeons·2022년 12월 11일

스터디

목록 보기
8/8

컨볼루션 신경망

시각적 영상을 분석하는 데 사용되는 다층의 피드-포워드적인 인공신경망의 한 종류이다. 필터링 기법을 인공신경망에 적용하여 이미지를 효과적으로 처리할 수 있는 심층 신경망 기법으로 행렬로 표현된 필터의 각 요소가 데이터 처리에 적합하도록 자동으로 학습되는 과정을 통해 이미지를 분류하는 기법이다.

출처 : https://ardino.tistory.com/39

1950년대 허블(Hubel)과 비셀(Wiesel)은 고양이의 시각 피질 실험에서 고양이 시야의 한 쪽에 자극을 주었더니 전체 뉴런이 아닌 특정 뉴런만이 활성화되는 것을 발견했다. 또한 물체의 형태와 방향에 따라서도 활성화되는 뉴런이 다르며 어떤 뉴런의 경우에는 저수준 뉴런의 출력을 조합한 복잡한 신호에만 반응한다는 것을 관찰했다. 이 실험을 통해 동물의 시각 피질 안의 신경세포(뉴런)들은 일정 범위 안의 자극에만 활성화되는 ‘근접 수용 영역’(local receptive field)을 가지며 이 수용 영역들이 서로 겹쳐져 전체 시야를 이룬 다는 것을 발견했다.

이러한 아이디어에 영향을 받은 얀 르쿤(Yann Lecan) 교수는 인접한 두 층의 노드들이 전부 연결 되어있는 기존의 인공신경망이 아닌 특정 국소 영역에 속하는 노드들의 연결로 이루어진 획기적인 인공신경망을 고안해 냈다. 이것이 바로 합성곱 신경망(Convolutional Neural Network, CNN)이다. CNN은 이미지를 인식하고 처리하는 컴퓨터 비전 분야에서 오늘날까지 인기있는 신경망 모델이다.

CNN은 입력으로 받은 자동차 사진을 ‘필터링’과 ‘분류’의 과정을 거쳐 결과라고 출력하는데 이 과정을 멀리서 본다면 필터링 단계는 입력 받은 원본 데이터를 바로 분류하는 것보다 성능을 좋게 할 무언가를 만드는 단계라고 볼 수 있다. 이때 필터링을 거친 원본 데이터를 피처맵(feature map)이라고 하며 필터를 어떻게 설정할지에 따라 피처맵이 달라지므로 CNN에서 학습시켜야 할 대상은 바로 이 필터가 된다.

※ 자료에 따라 필터(filter)를 커널(Kernel)이라고 부르기도 하며 CNN에서 두 용어는 같은 의미를 가진다.

컨볼루션 신경망
전반부 : 컨볼루션 연산을 수행하여 특징 추출
후반부 : 특징을 이용하여 분류
영상분류, 문자 인식 등 인식 문제에 높은 성능

이미지의 공간 정보란 말 그대로 이미지가 가지는 ‘공간적인 정보’를 말한다. 이미지를 이루는 가장 작은 단위를 픽셀(pixel)이라고 하는데 거리가 가까운 픽셀들은 서로 연관을 띠게 된다. 이는 곧 사진에서 음영, 선, 질감 등으로 보여지는 것이며 다시 말하면 이런 픽셀들의 연관성이 이미지가 가지는 공간정보라고 할 수 있다. CNN은 완전 연결 신경망과 다르게 입력 데이터의 원래 구조를 유지해서 입력 받고 다음 단계로 전달할때에도 이 구조를 유지한다. 이렇게 입력 데이터의 공간정보를 잃지 않으므로 이미지 데이터를 잘 이해할 수 있는 것이다.

이제 CNN의 첫번째 단계인 필터링 과정을 보자. 필터링은 입력 받은 이미지를 잘 분류하기 위해 이미지에 필터를 씌워 특징을 찾는 작업이다. ‘필터를 씌우는 것’은 CNN에서 합성곱 연산이라고 하는 계산을 통해 이루어 진다.

컨볼루션

일정 영역의 값들에 대해 가중치를 적용하여 하나의 값을 만드는 연산

먼저 합성곱 연산을 위해서는 재료가 되는 입력 데이터와 필터가 필요하다. 사이즈는 (높이, 너비)로 표현하며 필터는 주로 (3,3) 또는 (5,5) 와 같은 정방행렬을 사용한다. 미리 언급했듯이 CNN의 학습 대상은 필터의 값(weight)이므로 적절한 초기 값을 설정할 필요가 있다. 이때 우리가 1장에서 다루었던 초기화 방법들이 CNN의 필터 값을 초기화 할때에도 사용이 된다.

패딩

컨볼루션 결과의 크기를 조정하기 위해 입력 배열의 둘레를 확장하고 0으로 채우는 연산

스트라이드

사전적으로 ‘보폭’이라는 의미를 갖는다. 커널을 다음 컨볼루션 연산을 위해 이동시키는 칸 수

특정지도

  • 컨볼루션 필터의 적용 결과로 만들어지는 2차원 행렬
  • 특징지도의 원소값
  • k개의 컨볼루션 필터를 적용하면 k개의 2차원 특징지도 생성

폴링

일정 크기의 블록을 통합하여 하나의 대표값으로 대체하는 연산

  1. 최대값 폴링 : 지정된 블록 내의 원소들 중에서 최대값을 대푯값으로 설정
  2. 평균값 폴링 : 블록 내의 원소들의 평균값을 대표값으로 사용
  3. 확률적 폴링 : 블록 내의 각 원소가 원소값의 크기에 비례하는 선택 확률을 갖도록 하고, 이 확률에 따라 원소 하나를 선택

역할

  • 중간 연산 괒어에서 만들어지는 특징지도들의 크기 축소
  • 일정 영역 내에 나타나는 특징들을 결합하거나, 위치 변화에 강건한 특징 선택

컨볼루션 신경망의 구조

  • 특징 추출을 위한 컨볼루션 부분

    • 컨볼루션 연산을 하는 Conv층
    • ReLU연산을 하는 ReLU
    • 풀링 연산 Pool(선택)
      -->반복
  • 추출된 특징을 사용하여 분류 또는 회귀를 수행하는 다중 퍼셉트론 부분

    • 전방향으로 전체 연결된(fully connected)FC층 --> 반복
    • 분류의 경우 마지막 층에 소프트맥스(softmax)을 하는 SM 연산 추가

가중치의 학습

  • 미분 구현의 방법
    • 수치적 미분
    • 기호적 미분
    • 자동 미분
profile
공부중

0개의 댓글