컨볼루션 신경망 설명

컨볼루션 신경망에 대하여 알아보기

인공 지능은 인간과 기계의 능력 사이의 격차를 해소하는 데 엄청난 발전을 보이고 있습니다. 연구원과 마니아들은 모두 놀라운 일이 일어나도록 현장의 여러 측면에서 일합니다. 그러한 많은 분야 중 하나는 Computer Vision의 영역입니다. 이 분야의 의제는 기계가 인간처럼 세상을 볼 수 있게 하고 비슷한 방식으로 세상을 인식하며 이미지 및 비디오 인식, 이미지 분석 및 분류, 미디어 레크리에이션, 권장 시스템과 같은 다양한 작업에 대한 지식을 사용하는 것입니다. 자연어 처리 등 딥러닝을 통한 컴퓨터 비전의 발전은 시간이 지남에 따라 주로 하나의 특정 알고리즘 인 Convolutional Neural Network를 통해 구축되고 완성되었습니다. 컨볼루셔널 신경망은 다양한 측면에 사용되며, 할당 중요성 및 이미지에 해당됩니다. 입력 영상에 포함되는 다른 하나를 구별할 수 있는 깊은 학습 알고리즘입니다. ConvNet에 필요한 사전 처리는 다른 분류 알고리즘에 비해 훨씬 낮습니다. 원시적 방법에서는 필터를 수동으로 설계하고 충분한 교육을 받으면 ConvNet은 이러한 필터의 특성을 배울 수 있습니다. ConvNet의 아키텍처는 인간 두뇌의 뉴런 연결 패턴과 유사하며 Visual Cortex의 구성에서 영감을 받았습니다. 개별 뉴런은 수용 영역으로 알려진 시야의 제한된 영역에서만 자극에 반응합니다. 이러한 필드 모음은 전체 가시 영역을 덮기 위해 겹칩니다. 이미지는 픽셀 값의 행렬에 지나지 않습니다. 그렇다면 왜 이미지를 평평하게 하고 (예를 들어 3×3 이미지 매트릭스를 9×1 벡터로) 분류 목적으로 멀티 레벨 퍼셉트론에 공급하지 않습니까? 왜 그럴까요? 매우 기본적인 이진 이미지의 경우, 이 방법은 클래스의 예측을 수행하는 동안 평균 정밀도 점수를 표시할 수 있지만 전체적으로 픽셀 종속성이 있는 복잡한 이미지에 대해서는 정확도가 거의 또는 전혀 없습니다. ConvNet은 관련 필터를 적용하여 이미지의 공간 및 시간 종속성을 성공적으로 캡처할 수 있습니다. 이 아키텍처는 관련된 매개 변수의 수가 줄어들고 가중치의 재사용성으로 인해 이미지 데이터 세트에 더 잘 맞습니다. 다시 말해, 이미지의 정교함을 더 잘 이해하도록 네트워크를 훈련시킬 수 있습니다. 그림에서 RGB 이미지는 빨강, 녹색 및 파랑의 세 가지 색상 평면으로 구분되어 있습니다. 이미지가 존재하는 그레이 스케일, RGB, HSV, CMYK 등의 여러 색상 공간이 있습니다. 8K 이미지와 같이 이미지가 치수에 도달하면 계산 집약적인 것들이 어떻게 될지 상상할 수 있습니다. ConvNet의 역할은 좋은 예측을 얻는 데 중요한 기능을 잃지 않고 이미지를 처리하기 쉬운 형태로 줄이는 것입니다. 이는 학습 기능이 우수할 뿐만 아니라 대규모 데이터 세트로 확장 가능한 아키텍처를 설계할 때 중요합니다. 이에 대한 예시로 이미지 크기 = 5 (높이) x 5 (폭) x 1 (채널 수) (예: RGB)가 있습니다. 위의 데모에서 녹색 섹션은 5x5x1 입력 이미지 I와 유사합니다. 컨볼루셔널 레이어의 첫 번째 부분에서 컨볼루션 작업을 수행하는 데 관련된 요소를 커널 그리고 필터 K라고하며 노란색으로 표시됩니다. K를 3x3x1 행렬로 선택했습니다. 커널은 Stride Length = 1 (Non-Strided)이기 때문에 9번 이동합니다. K와 커널이 호버링 되는 이미지의 P 부분 사이에서 행렬 곱셈 연산을 수행할 때마다 필터는 전체 폭을 구문 분석할 때까지 특정 보폭으로 오른쪽으로 이동합니다. 계속해서 동일한 보폭으로 이미지의 시작 왼쪽으로 내려가 전체 이미지가 통과될 때까지 프로세스를 반복합니다. 여러 채널(예: RGB)이 있는 이미지의 경우 커널은 입력 이미지의 깊이와 동일한 깊이를 갖습니다. 행렬 곱셈은 Kn과 In 스택 사이에서 수행되며 모든 결과는 편향과 합산되어 찌그러진 1 깊이의 채널 Convoluted Feature Output을 제공합니다. 컨볼루션 연산의 목적은 입력 이미지에서 가장자리와 같은 고급 특징을 추출하는 것입니다. ConvNet은 하나의 Convolutional Layer로 제한될 필요는 없습니다. 일반적으로 첫 번째 ConvLayer는 가장자리, 색상, 그라디언트 방향 등과 같은 하위 수준 기능을 포착하는 역할을 합니다. 계층이 추가되면 아키텍처가 고급 기능에도 적용되어 완전히 이해가 가능한 네트워크를 제공합니다. 데이터 세트에 있는 이미지의 수연산에는 두 가지 유형의 결과가 있습니다. 하나는 입력과 비교하여 볼록한 피쳐가 차원에서 감소하고 다른 하나는 차원이 증가하거나 동일하게 유지되는 것입니다. 전자의 경우 유효한 패딩을 적용하거나 후자의 경우 동일한 패딩을 적용하면 됩니다. 5x5x1 이미지를 6x6x1 이미지로 확장 한 다음 3x3x1 커널을 적용하면 복잡한 행렬의 크기가 5x5x1 임을 알 수 있습니다. 따라서 동일 패딩입니다. 반면 패딩 없이 동일한 작업을 수행하면 커널 (3x3x1) 자체의 유효한 패딩 크기를 갖는 행렬이 표시됩니다. 다음 리포지토리에는 패딩과 보폭이 어떻게 작동하여 우리의 요구와 관련된 결과를 얻는지 이해하는 데 도움이 되는 많은 GIF가 있습니다. Convolutional Layer와 유사하게 Pooling 레이어는 Convolved Feature의 공간 크기를 줄이는 역할을 합니다. 이는 차원 축소를 통해 데이터를 처리하는 데 필요한 계산 비용을 감소시키기 위한 것입니다. 또한, 회전 및 위치 불변인 지배적 특징을 추출하여 모델의 효과적인 훈련 과정을 유지하는 데 유용합니다.

Leave a Comment