딥기초_0518

allzeroyou·2022년 5월 18일
0

딥러닝기초

목록 보기
18/22

이미지처리에 가장 많이 사용하는 머신 러닝 기법인 합성곱 신경망

CNN(Convolutional Neural Network)

합성 곱 신경망

  • 컬러 사진을 수치 데이터로 변경하면 데이터의 크기가 커짐
  • 대상에 대한 특징을 인식하는 방식을 모델링
  • 이미지 데이터를 다양한 방법으로 필터링하여 학습
  • 이미지 학습을 위한 효율적인 알고리즘

컴퓨터 비전 영역에서 많이 사용

시각은 인간의 가장 강력한 인지 기능임
다른 감각을 모두 합쳐도 시각이 가장 중요함, 그만큼 복잡한 내부 작용이 있음

자율주행차는 신호, 차선, 도로의 모양 등을 인지한 후 주행함
이때, 합성곱신경망을 이용해 파악함

인공지능이 그린 추상화
학습을 해서 기반으로 새로운 창조물을 만드는 과정도 인공지능의 한 분야임

이미지분석 => 특징 추출 => 새로운 입력 데이터를 조합해 또 다른 형태의 이미지 창조

학습의 역방향
출력으로 입력을 유추할때, 학습(매개변수)을 반대로 진행하면 정확하게 원본이 나오지 않음

사진을 분석한 후 사진에 대한 설명이 자동으로 달린다.

컴퓨터사람의 시각 능력을 대체하려고 할 때 합성곱 신경망을 사용함

퍼셉트론: 뇌의 지각기능 모방함(입력 => 뉴런 => 정보 만듦)

합성곱 신경망: 시신경의 운동 방식 모방함

안구의 수정체의 빛을 받아들이는 광수용세포들이 모여 수용장으로 구성

수용세포는 센싱한 빛의 강도를 화학신호로 변환해 수평세포와 양극세포에 전달
수평 세포와 양극 세포는 신호를 모아 발화 여부 결정

이에 따라 사람이 느끼는 것이 결정됨

합성곱 신경망의 구조

주로 입력 부근 계층들을 합성곱 계층으로 구성, 출력 부근 층들을 완전 연결 계층으로 구성

  • 2라는 숫자 => 픽셀(입력계층:affine)으로 Relu를 거침
  • 합성곱 => Conv 계층, 활성화함수, Pooling 계층
    합성곱 계층과 풀링계층이 새로 추가

완전연결 계층의 문제점

  • 완전연결 계층(Fully-connected)
    이전 계층의 모든 노드가 다음 계층의 모든 노드에 연결된 계층

인접하는 계층의 뉴런이 모두 연결되고 출력의 수는 임의로 정할 수 있음
입력데이터의 특성(데이터의 형상)이 무시되는 형태
3차원 데이터 => 공간적 정보 담겨있음
공간적으로 가까운 픽셀은 값이 비슷
RGB 각 채널은 서로 밀접하게 관련
거리가 먼 픽셀은 연관 X

입력: 1차원 데이터 => 출력: 1차원 데이터
서로 연결되어 있는 구조

  • 합성곱 계층
    현상유지
    입력: 3차원 데이터
    다음 계층에도 3차원 데이터를 전달

합성곱 연산

필터 연산을 통한 특징 추출 또는 신호 변환에 사용
입력 데이터에 필터를 적용해 일정 간격으로 이동해가며 입력 데이터에 적용함


컬러 이미지는 각 픽셀을 RGB 3개의 실수로 표현한 3차원 데이터로 3개의 채널로 구성

입력데이터 * 필터(커널) => 결과

입력데이터의 필터(커널)를 적용
입력데이터, 필터 모두 가로/세로 형상 가지고 있음

2차원 합성곱 연산

수평 에지 커널을 곱하면 수평 에지 특징 맵 도출
수직 에지 커널을 곱하면 수직 에지 특징 맵 도출

주요 특징

  • 커널에 따라 특징 맵 추출
  • 원본 영상과 같은 크기의 특징 맵 생성
  • 원본 영상 자체에 연산을 적용하므로 정보 손실 없음(형상 유지 cf. 다층 퍼셉트론의 경우 2차원 구조를 1차원 구조로 펼친 다음 입력해야 함)

합성곱 연산의 계산 순서

필터의 윈도우(window)를 일정 간격으로 이동해가며 입력 데이터에 적용

ex.
각각의 그룹에대한 특징 추출
한 단어로 표현하라고 할때 특징을 모은 후 그중 대표적인 속성 추출

필터 매개변수와 편향

완전 연결 신경망의 가중치와 매개변수의 역할

필터를 적용한 원소에 고정 값(편향)을 더해 출력

패딩(padding)

합성곱 연산을 하면 출력 이미지의 사이즈가 작아지게 된다.
합성곱 연산을 수행하기 전 입력데이터 주변에 특정값(보통 0)으로 채우는 것(값을 덧댄다)
합성곱 연산에서 출력 크기를 조정할 목적으로 사용, 출력 이미지 사이즈를 그대로 유지 가능 (합성곱 연산보다 출력 크기 키움)

스트라이드(stride)

입력데이터에 필터를 적용할 때 이동할 간격 조정하는 것

필터를 적용하는 위치의 간격
스트라이드를 키우면 출력의 크기가 작아짐

3차원 데이터의 합성곱 연산

이미지의 경우 실질적으로는 3차원

입력 특징 맵과 필터가 채널 수 만큼 존재

블록으로 생각

필터(가중치)를 다수 사용하기

정보를 키우고 싶다면 padding으로!
padding은 2차원데이터일때,
3차원에서는 필터(가중치) 다수 사용하기!

필터를 FN개 사용할 경우 출력 맵도 FN개
(FN, OH, OW)
필터를 FN개 사용할 경우 필터의 가중치 데이터는 4차원으로 구성
(FN,FC, FH, FW)

딥러닝이 스스로 특징을 찾아내기!

  • 합성곱 연산의 처리 흐름(편향 추가)
    편향은 채널 하나에 값 하나씩 구성
    (FN, 1, 1)

배치처리

풀링(pooling)

일정 영역의 정보를 축약하는 역할

가로, 세로 방향의 공간을 줄이는 연산
2X2 최대 풀링(2X2 윈도우 설정, 가장 큰 값 내놓음)
스트라이드 만큼 건너띄며 수행

윈도우 크기와 스트라이드 크기는 같은 값으로 설정하는 것이 보통

  • 최대 풀링(Max Pooling)
    각 Pixel에서 최댓값을 뽑아내는 과정

  • 평균 풀링(average pooling)
    각 Pixel에서 평균값을 뽑아내는 과정

  • 평탄화(Flatten)
    2/3차원의 행렬 구조를 1차원의 Vector로 변환

원래는 윈도우끼리 겹쳤으나 풀링을 통해 겹치지 않게 함

풀링 계층의 특징

  • 학습 매개변수 없음
    앞과 달리 필터가 없음
    대상 영역에서 최댓값이나 평균을 취하는 단순 연산

  • 채널 수 변하지 않음
    입력데이터의 채널 수 그대로 출력 데이터로 내보내짐(채널마다 독립적으로 계산)

  • 입력변화에 영향을 적게 받음(강건하다)
    특징 맵의 크기를 줄이고, 위치나 이동에 좀 더 강인한 성질을 갖는 특징을 추출할 수 있게됨
    입력데이터가 조금 변해도 풀링 결과는 변하지 않음

profile
모든 건 zero 부터, 차근차근 헛둘헛둘

0개의 댓글