CNN(Convolutional Neural Network) 초보자 가이드
게시 됨: 2021-07-05지난 10년 동안 인공 지능과 더 똑똑한 기계의 엄청난 성장이 있었습니다. 이 분야는 인간 지능의 독특한 측면을 전문으로 하는 많은 하위 분야를 발생시켰습니다. 예를 들어, 자연어 처리는 인간의 말을 이해하고 모델링하려고 시도하는 반면 컴퓨터 비전은 기계에 인간과 같은 시각을 제공하는 것을 목표로 합니다.
Convolutional Neural Networks에 대해 이야기할 것이기 때문에 주로 컴퓨터 비전에 초점을 맞출 것입니다. 컴퓨터 비전은 기계가 세상을 우리처럼 볼 수 있게 하고 이미지 인식, 이미지 분류 등과 관련된 문제를 해결할 수 있도록 하는 것을 목표로 합니다. Convolutional Neural Networks는 컴퓨터 비전의 다양한 작업을 수행하는 데 사용됩니다. CNN 또는 ConvNet이라고도 하는 이 시스템은 인간 두뇌의 뉴런 패턴 및 연결과 유사한 아키텍처를 따르며 두뇌에서 발생하는 다양한 생물학적 프로세스에서 영감을 받아 커뮤니케이션이 이루어집니다.
목차
복잡한 신경망의 생물학적 중요성
CNN은 우리의 시각 피질에서 영감을 받았습니다. 우리 뇌의 시각 처리에 관여하는 대뇌 피질의 영역입니다. 시각 피질에는 시각 자극에 민감한 다양한 작은 세포 영역이 있습니다.
이 아이디어는 1962년 Hubel과 Wiesel에 의해 확장되었습니다. 실험에서 서로 다른 별개의 뉴런 세포가 특정 방향의 뚜렷한 가장자리의 존재에 반응(발화)된다는 것이 발견되었습니다. 예를 들어, 일부 뉴런은 수평 가장자리를 감지할 때 실행되고, 다른 뉴런은 대각선 가장자리를 감지할 때 실행되며, 일부 뉴런은 수직 모서리를 감지할 때 실행됩니다. 이 실험을 통해. Hubel과 Wiesel은 뉴런이 모듈 방식으로 구성되어 있으며 모든 모듈이 함께 시각적 인식을 생성하는 데 필요하다는 것을 발견했습니다.
이 모듈식 접근 방식(시스템 내부의 특수 구성 요소에 특정 작업이 있다는 아이디어)이 CNN의 기초를 형성합니다.
이 문제가 해결되면 CNN이 시각적 입력을 인식하는 방법을 학습해 보겠습니다.
길쌈 신경망 학습
이미지는 숫자 0과 255 사이의 표현인 개별 픽셀로 구성됩니다. 따라서 보는 모든 이미지는 이 숫자를 사용하여 적절한 디지털 표현으로 변환할 수 있습니다. 컴퓨터도 이미지를 사용하여 작동합니다.
다음은 CNN이 이미지 감지 또는 분류를 학습하도록 하는 몇 가지 주요 작업입니다. 이것은 CNN에서 학습이 어떻게 일어나는지에 대한 아이디어를 줄 것입니다.
1. 컨볼루션
컨볼루션은 수학적으로 서로 다른 기능의 영향을 알아내거나 서로를 수정하기 위해 두 개의 서로 다른 기능을 결합한 통합으로 이해할 수 있습니다. 수학 용어로 정의할 수 있는 방법은 다음과 같습니다.
컨볼루션의 목적은 이미지에서 선, 가장자리, 색상, 그림자 등과 같은 다양한 시각적 특징을 감지하는 것입니다. CNN이 이미지의 특정 기능을 학습하면 나중에 이미지의 다른 부분에서 해당 기능을 인식할 수 있기 때문에 이것은 매우 유용한 속성입니다.
CNN은 커널 또는 필터를 사용하여 이미지에 있는 다양한 기능을 감지합니다. 커널은 특정 기능을 감지하도록 훈련된 고유한 값(인공 신경망의 세계에서는 가중치라고 함)의 행렬일 뿐입니다. 필터가 전체 이미지를 이동하여 특징이 있는지 여부를 확인합니다. 필터는 컨볼루션 연산을 수행하여 특정 기능이 존재한다는 확신을 나타내는 최종 값을 제공합니다.
이미지에 특징이 있는 경우 컨볼루션 연산의 결과는 값이 높은 양수입니다. 기능이 없으면 컨볼루션 연산은 0 또는 매우 낮은 값의 숫자가 됩니다.
예를 들어 이것을 더 잘 이해합시다. 아래 이미지에서 필터는 더하기 기호를 감지하도록 훈련되었습니다. 그런 다음 필터가 원본 이미지 위에 전달됩니다. 원본 이미지의 일부에는 필터가 훈련된 것과 동일한 기능이 포함되어 있으므로 해당 기능이 있는 각 셀의 값은 양수입니다. 마찬가지로, 컨볼루션 연산의 결과도 많은 수가 됩니다.
그러나 동일한 필터가 기능 및 가장자리 집합이 다른 이미지에 전달되면 컨볼루션 연산의 출력이 낮아져 이미지에 더하기 기호가 강력하게 존재하지 않음을 의미합니다.
따라서 곡선, 가장자리, 색상 등과 같은 다양한 기능을 가진 복잡한 이미지의 경우 N개의 이러한 기능 감지기가 필요합니다.
이 필터가 이미지를 통과하면 기본적으로 이미지의 다른 부분에 대한 이 필터의 회선을 저장하는 출력 행렬인 기능 맵이 생성됩니다. 많은 필터의 경우 3D 출력으로 끝납니다. 이 필터는 합성곱 연산이 발생하기 위해 입력 이미지와 동일한 수의 채널을 가져야 합니다.
또한 필터는 stride 값을 사용하여 다른 간격으로 입력 이미지에 대해 슬라이드할 수 있습니다. 보폭 값은 필터가 각 단계에서 얼마나 움직여야 하는지 알려줍니다.
따라서 주어진 컨볼루션 블록의 출력 레이어 수는 다음 공식을 사용하여 결정할 수 있습니다.
2. 패딩
컨볼루션 레이어로 작업할 때 발생하는 한 가지 문제는 원본 이미지 주변에서 일부 픽셀이 손실되는 경향이 있다는 것입니다. 일반적으로 사용되는 필터는 작기 때문에 필터당 손실된 픽셀은 몇 개일 수 있지만 서로 다른 컨볼루션 레이어를 적용함에 따라 더해져 많은 픽셀이 손실됩니다.
패딩의 개념은 CNN의 필터가 이미지를 처리하는 동안 이미지에 추가 픽셀을 추가하는 것입니다. 이것은 이미지를 0으로 채워 커널이 전체 이미지를 덮을 수 있는 더 많은 공간을 허용함으로써 이미지 처리에서 필터를 돕는 한 가지 솔루션입니다. 필터에 제로 패딩을 추가하면 CNN의 이미지 처리가 훨씬 더 정확하고 정확해집니다.
위의 이미지를 확인하십시오. 패딩은 입력 이미지의 경계에 0을 추가하여 수행되었습니다. 이를 통해 픽셀 손실 없이 모든 고유한 기능을 캡처할 수 있습니다.
3. 활성화 맵
특성 맵은 본질적으로 비선형인 매핑 함수를 통해 전달되어야 합니다. 특징 맵은 편향 항과 함께 포함된 다음 비선형 활성화(ReLu) 기능을 통해 전달됩니다. 이 기능은 감지되고 검사되는 이미지도 본질적으로 다른 객체로 구성되는 비선형이기 때문에 CNN에 어느 정도의 비선형성을 가져오는 것을 목표로 합니다.
4. 풀링 단계
활성화 단계가 끝나면 CNN이 컨볼루션된 기능을 다운샘플링하여 처리 시간을 절약하는 풀링 단계로 이동합니다. 이것은 또한 Convoluted Neural Networks에 많은 정보가 제공되는 경우 발생할 수 있는 이미지의 전체 크기, 과적합 및 기타 문제를 줄이는 데 도움이 됩니다. 특히 해당 정보가 이미지를 분류하거나 감지하는 데 너무 관련성이 없는 경우에 그렇습니다.
풀링은 기본적으로 최대 풀링과 최소 풀링의 두 가지 유형이 있습니다. 전자는 설정된 stride 값에 따라 이미지에 윈도우를 넘기고, 매 단계마다 윈도우에 포함된 최대값을 출력 행렬에 합산한다. 최소 풀링에서 최소값은 출력 행렬에 풀링됩니다.
출력의 결과로 형성된 새로운 행렬을 풀링된 피쳐 맵이라고 합니다.
최소 및 최대 풀링 중에서 최대 풀링의 한 가지 이점은 CNN이 모든 뉴런에 초점을 맞추는 대신 높은 값을 가진 몇 개의 뉴런에 집중할 수 있다는 것입니다. 이러한 접근 방식을 사용하면 훈련 데이터를 과적합할 가능성이 매우 낮아지고 전반적인 예측과 일반화가 잘 됩니다.
5. 평평하게 하기
풀링이 완료되면 이미지의 3D 표현이 이제 특징 벡터로 변환되었습니다. 그런 다음 출력을 생성하기 위해 다층 퍼셉트론으로 전달됩니다. 병합 작업을 더 잘 이해하려면 아래 이미지를 확인하십시오.
보시다시피 행렬의 행은 단일 특징 벡터로 연결됩니다. 여러 입력 레이어가 있는 경우 모든 행이 연결되어 더 길고 평평한 특징 벡터를 형성합니다.
6. 완전 연결 계층(FCL)
이 단계에서 평면화된 맵이 신경망에 제공됩니다. 신경망의 완전한 연결에는 입력 계층, FCL 및 최종 출력 계층이 포함됩니다. 완전 연결 계층은 은닉 계층과 달리 이 계층이 완전히 연결되어 있다는 점을 제외하고 인공 신경망에서 은닉 계층으로 이해될 수 있습니다. 정보는 전체 네트워크를 통과하고 예측 오차가 계산됩니다. 그런 다음 이 오류는 시스템을 통해 피드백(역전파)으로 전송되어 가중치를 조정하고 최종 출력을 개선하여 더 정확하게 만듭니다.
신경망의 위 레이어에서 얻은 최종 출력은 일반적으로 1이 되지 않습니다. 이러한 출력은 [0,1] 범위의 숫자로 줄여야 합니다. 그러면 각 클래스의 확률이 나타납니다. 이를 위해 Softmax 기능이 사용됩니다.
조밀한 계층에서 얻은 출력은 Softmax 활성화 함수에 제공됩니다. 이를 통해 모든 최종 출력은 모든 요소의 합이 1이 되는 벡터에 매핑됩니다.
완전 연결 계층은 이전 계층의 출력을 확인한 다음 특정 클래스와 가장 상관관계가 높은 기능을 결정하는 방식으로 작동합니다. 따라서 프로그램이 이미지에 고양이가 포함되어 있는지 여부를 예측하는 경우 4개의 다리, 발, 꼬리 등과 같은 기능을 나타내는 활성화 맵에서 높은 값을 갖게 됩니다. 마찬가지로 프로그램이 다른 것을 예측하는 경우 다른 유형의 활성화 맵이 있습니다. 완전 연결 계층은 가중치와 이전 계층 간의 계산이 정확하도록 특정 클래스 및 가중치와 밀접한 상관 관계가 있는 다양한 기능을 처리하고 개별 출력 클래스에 대한 올바른 확률을 얻습니다.
CNN 작업에 대한 간략한 요약
다음은 CNN이 어떻게 작동하고 컴퓨터 비전에 도움이 되는지에 대한 전체 프로세스에 대한 간략한 요약입니다.
- 이미지의 다른 픽셀은 컨볼루션 레이어에 공급되며 여기서 컨볼루션 연산이 수행됩니다.
- 이전 단계에서는 복잡한 맵이 생성됩니다.
- 이 맵은 정류기 함수를 통해 전달되어 수정된 맵을 생성합니다.
- 이미지는 다른 기능을 찾고 감지하기 위해 다른 컨볼루션 및 활성화 함수로 처리됩니다.
- 풀링 레이어는 이미지의 특정 부분을 식별하는 데 사용됩니다.
- 풀링된 계층은 평면화되어 완전 연결 계층에 대한 입력으로 사용됩니다.
- 완전 연결 계층은 확률을 계산하고 [0,1] 범위의 출력을 제공합니다.
결론적으로
CNN의 내부 기능은 매우 흥미롭고 혁신과 창조를 위한 많은 가능성을 열어줍니다. 마찬가지로 인공 지능이라는 우산 아래 있는 다른 기술도 매력적이며 인간의 능력과 기계 지능 사이에서 작동하려고 합니다. 이에 따라 서로 다른 영역에 속한 전 세계 사람들이 이 분야에 대한 관심을 깨닫고 첫 발을 내디뎠다.
운 좋게도 AI 산업은 매우 환영하며 학력에 따라 구분하지 않습니다. 기본 자격과 함께 기술에 대한 실무 지식만 있으면 모든 준비가 완료됩니다!
ML 및 AI의 핵심을 마스터하려는 경우 이상적인 행동 과정은 전문 AI/ML 프로그램에 등록하는 것입니다. 예를 들어, 머신 러닝 및 AI의 Executive Program은 데이터 과학 지망생을 위한 완벽한 과정입니다. 이 프로그램은 통계 및 탐색적 데이터 분석, 기계 학습 및 자연어 처리와 같은 주제를 다룹니다. 또한 13개 이상의 산업 프로젝트, 25개 이상의 라이브 세션 및 6개의 캡스톤 프로젝트가 포함됩니다. 이 과정의 가장 좋은 점은 전 세계의 동료들과 교류할 수 있다는 것입니다. 아이디어 교환을 촉진하고 학습자가 다양한 배경을 가진 사람들과 지속적인 관계를 구축하도록 돕습니다. 우리의 360도 경력 지원은 ML 및 AI 여정에서 탁월하기 위해 필요한 것입니다!