컨볼 루션 신경망 (CNN)의 이해 — 딥 러닝

신경망에서 컨볼 루션 신경망 (ConvNet 또는 CNN)은 이미지 인식, 이미지 분류를 수행하는 주요 범주 중 하나입니다. 물체 감지, 얼굴 인식 등은 CNN이 널리 사용되는 영역 중 일부입니다.

CNN 이미지 분류는 입력 이미지를 가져 와서 처리하고 특정 범주 (예 : 개, 고양이, 호랑이, 사자)로 분류합니다. 컴퓨터는 입력 이미지를 픽셀 배열로보고 이미지 해상도에 따라 다릅니다. 이미지 해상도에 따라 hxwxd (h = Height, w = Width, d = Dimension)가 표시됩니다. 예를 들어, RGB 행렬의 6 x 6 x 3 배열 이미지 (3은 RGB 값을 나타냄)와 회색조 이미지 행렬의 4 x 4 x 1 배열 이미지입니다.

그림 1 : RGB 매트릭스 배열

기술적으로 학습 및 테스트 할 딥 러닝 CNN 모델, 각 입력 이미지는 필터 (Kernals), 풀링, 완전 연결 레이어 (FC)가있는 일련의 컨볼 루션 레이어를 통과하고 Softmax 함수를 적용하여 확률 값이 0 인 개체를 분류합니다. 그리고 1. 아래 그림은 입력 이미지를 처리하고 값에 따라 객체를 분류하는 CNN의 전체 흐름입니다.

그림 2 : 컨볼 루션 레이어가 많은 신경망

컨볼 루션 레이어

Convolution은 입력 이미지에서 특징을 추출하는 첫 번째 레이어입니다. 컨볼 루션은 입력 데이터의 작은 사각형을 사용하여 이미지 특징을 학습함으로써 픽셀 간의 관계를 유지합니다. 이미지 행렬과 필터 또는 커널과 같은 두 가지 입력을받는 수학 연산입니다.

그림 3 : 이미지 매트릭스는 커널 또는 필터 매트릭스를 곱합니다.

아래에 표시된 것처럼 이미지 픽셀 값이 0, 1이고 필터 매트릭스 3 x 3 인 5 x 5를 고려하십시오.

그림 4 : 이미지 매트릭스는 커널 또는 필터 매트릭스를 곱합니다.

그런 다음 5 x 5 이미지 매트릭스의 컨볼 루션은 아래에 표시된 출력과 같이 "특징 맵" 이라고하는 3 x 3 필터 매트릭스와 곱 합니다.

그림 5 : 3 x 3 출력 매트릭스

필터가 다른 이미지의 컨볼 루션은 필터를 적용하여 가장자리 감지, 흐림 및 선명 화와 같은 작업을 수행 할 수 있습니다. 아래 예제는 다양한 유형의 필터 (Kernels)를 적용한 후 다양한 컨볼 루션 이미지를 보여줍니다.

그림 7 : 몇 가지 일반적인 필터

걷기

Stride는 입력 행렬에서 이동하는 픽셀 수입니다. 보폭이 1이면 필터를 한 번에 1 픽셀로 이동합니다. 보폭이 2이면 필터를 한 번에 2 픽셀로 이동하는 식입니다. 아래 그림은 컨볼 루션이 보폭 2로 작동 함을 보여줍니다.

그림 6 : 2 픽셀의 보폭

필터가 입력 이미지에 완벽하게 맞지 않는 경우가 있습니다. 두 가지 옵션이 있습니다.

  • 그림에 맞도록 0 (제로 패딩)을 채 웁니다.
  • 필터가 맞지 않는 이미지 부분을 드롭합니다. 이것을 유효한 패딩이라고하며 이미지의 유효한 부분 만 유지합니다.

ReLU는 비선형 연산을위한 Rectified Linear Unit의 약자입니다. 출력은 ƒ (x) = max (0, x)입니다.

ReLU가 중요한 이유 : ReLU의 목적은 ConvNet에 비선형 성을 도입하는 것입니다. 실제 데이터는 ConvNet이 음이 아닌 선형 값을 학습하기를 원할 것입니다.

그림 7 : ReLU 작업

ReLU 대신 사용할 수있는 tanh 또는 sigmoid와 같은 다른 비선형 함수가 있습니다. 성능면에서 ReLU가 다른 두 개보다 낫기 때문에 대부분의 데이터 과학자는 ReLU를 사용합니다.

풀링 레이어

풀링 레이어 섹션은 이미지가 너무 클 때 매개 변수의 수를 줄입니다. 서브 샘플링 또는 다운 샘플링이라고도하는 공간 풀링은 각 맵의 차원을 줄이지 만 중요한 정보를 유지합니다. 공간 풀링은 다양한 유형이 될 수 있습니다.

  • 최대 풀링
  • 평균 풀링
  • 합계 풀링
그림 8 : 최대 풀링

완전 연결 계층

우리가 FC 레이어라고 부르는 레이어는 행렬을 벡터로 평평하게 만들고 신경망처럼 완전히 연결된 레이어에 공급했습니다.

그림 9 : 풀링 레이어 후 FC 레이어로 평탄화

위의 다이어그램에서 특징 맵 행렬은 벡터 (x1, x2, x3,…)로 변환됩니다. 완전히 연결된 레이어를 사용하여 이러한 기능을 결합하여 모델을 만들었습니다. 마지막으로, 출력을 고양이, 개, 자동차, 트럭 등으로 분류하는 소프트 맥스 또는 시그 모이 드와 같은 활성화 함수가 있습니다.

그림 10 : 완전한 CNN 아키텍처

요약

  • 컨볼 루션 레이어에 입력 이미지 제공
  • 매개 변수를 선택하고 스트라이드가있는 필터를 적용하고 필요한 경우 패딩을 적용합니다. 영상에 컨볼 루션을 수행하고 행렬에 ReLU 활성화를 적용합니다.
  • 풀링을 수행하여 차원 크기 줄이기
  • 만족할 때까지 많은 컨벌루션 레이어 추가
  • 출력을 평탄화하고 완전히 연결된 레이어 (FC 레이어)로 공급
  • 활성화 함수 (비용 함수가있는 로지스틱 회귀)를 사용하여 클래스를 출력하고 이미지를 분류합니다.

참고 문헌 :

Suggested posts

IBM Watson Studio의 AutoAI 노트북으로 마술사 코드 깨기

IBM Watson Studio의 AutoAI 노트북으로 마술사 코드 깨기

가장 유명한 행동 강령 중 하나입니다. "마술사는 절대 비밀을 밝히지 않습니다." 그러나 청중이 너무나 놀라워 서 '방금 일어난 일'이라는 느낌에 놀라서 비밀을 밝히지 않는 것이 거의 잔인한 순간이 있습니다.

Python 코드 한 줄로 여러 시계열 예측 모델 학습

Auto-TS 라이브러리를 사용하여 ARIMA, SARIMAX, FB Prophet, VAR 및 ML 모델 개발

Python 코드 한 줄로 여러 시계열 예측 모델 학습

Automated Machine Learning (AutoML)은 기계 학습 파이프 라인의 일부 구성 요소를 자동화하는 것을 말합니다. AutoML은 일부 모델 개발 프로세스를 자동화하여 데이터 과학자의 워크 플로를 가속화합니다.