Convolutional neural network(CNN 또는 ConvNet)란 데이터로부터 직접 학습하는 딥러닝의 신경망 아키텍처입니다.
CNN은 영상에서 객체, 클래스, 범주 인식을 위한 패턴을 찾을 때 특히 유용합니다. 또한, 오디오, 시계열 및 신호 데이터를 분류하는 데도 매우 효과적입니다.
예제로 시작하기
특징 학습, 계층 및 분류
CNN은 입력 계층, 출력 계층, 그리고 그 사이의 여러 은닉 계층으로 구성됩니다.
이러한 계층은 해당 데이터의 고유한 특징을 학습한다는 의도로 데이터를 변경시키는 연산을 수행합니다. 가장 일반적인 3가지 계층으로 컨벌루션 계층, 활성화 또는 ReLU 계층, 풀링 계층을 들 수 있습니다.
- 컨벌루션 계층은 입력 영상을 일련의 컨벌루션 필터에 통과시킵니다. 각 필터는 영상에서 특정 특징을 활성화합니다.
- ReLU(Rectified Linear Unit) 계층은 음수 값은 0에 매핑하고 양수 값은 그대로 두어서 더 빠르고 효과적인 훈련이 이루어지도록 합니다. 이때 활성화된 특징만 다음 계층으로 전달되므로 이를활성화라고도 합니다.
- 풀링 계층은 비선형 다운샘플링을 수행하여 신경망이 학습해야 하는 파라미터의 개수를 줄임으로써 출력을 단순화합니다.
이러한 연산이 수십 또는 수백 개의 계층에 대해 반복되며, 각 계층은 서로 다른 특징을 식별하도록 학습합니다.
공유 가중치 및 편향
전통적인 신경망과 달리, CNN에는 주어진 계층의 모든 은닉 뉴런에 대해 동일한 공유된 가중치 및 편향 값이 있습니다.
이는 모든 은닉 뉴런이 영상의 서로 다른 영역에 있는 동일한 특징(경계나 블롭 등)을 검출함을 의미합니다. 따라서 신경망은 영상에 있는 객체의 평행 이동을 허용합니다. 예를 들어, 자동차를 인식하도록 훈련된 신경망은 자동차가 영상의 어느 곳에 있어도 인식할 수 있습니다.
분류 계층
CNN 아키텍처는 여러 계층에 있는 특징을 학습한 후 분류 계층으로 넘어갑니다.
마지막에서 두 번째 계층은 K 차원의 벡터를 출력하는 완전 연결 계층이며(여기서 K는 예측 가능한 클래스의 개수) 분류되는 영상의 각 클래스에 대한 확률을 포함합니다.
CNN 아키텍처의 마지막 계층은 분류 계층을 사용하여 최종 분류 출력을 제공합니다.
의료 영상: CNN은 수천 건의 병리학 보고서를 검토하여 영상에서 암 세포의 유무를 시각적으로 검출할 수 있습니다.
오디오 처리: 마이크가 있는 모든 기기에서 키워드 검출을 사용하여 특정 단어나 문구("Hey Siri!")가 발화되었을 때 이를 검출할 수 있습니다. CNN은 키워드를 정확하게 학습하여 어떤 환경에서도 다른 모든 문구는 무시하고 키워드를 검출할 수 있습니다.
객체 검출: 자율주행에서는 표지판이나 다른 객체의 존재 여부를 정확하게 검출하고 출력을 바탕으로 결정을 내리는 데 CNN을 사용합니다.
합성 데이터 생성: GAN(생성적 적대 신경망)을 사용하여 얼굴 인식 및 자율주행을 비롯한 딥러닝 응용 분야에서 사용할 새로운 영상을 생성할 수 있습니다.
CNN을 사용해야 하는 경우
영상 데이터와 같이 복잡한 데이터가 대량으로 있을 때 CNN 사용을 고려할 수 있습니다. 또한 신경망 구조에서 작동하도록 전처리한 경우 신호 또는 시계열 데이터에도 CNN을 사용할 수 있습니다.
신호 및 CNN을 사용하는 다음 예제를 살펴보십시오.
사전 훈련된 모델의 사용
CNN으로 작업할 때 엔지니어와 과학자는 사전 훈련된 모델로 시작하는 방법을 선호하며, 이를 사용하여 새로운 데이터셋으로부터 특징을 학습하고 식별할 수 있습니다.
GoogLeNet, AlexNet, Inception과 같은 모델은 전문가들이 구축한 검증된 아키텍처를 활용하여 딥러닝을 살펴볼 수 있는 출발점을 제공합니다.
MATLAB을 사용한 CNN
MATLAB®을 Deep Learning Toolbox™와 함께 사용하면 CNN을 설계, 훈련 및 배포할 수 있습니다.
신경망의 설계 및 훈련
심층 신경망 디자이너를 사용하면 사전 훈련된 모델을 가져오거나 새 모델을 처음부터 구축할 수 있습니다.
앱에서 직접 신경망을 훈련시키고 정확도, 손실, 검증 메트릭 플롯을 사용하여 훈련을 모니터링할 수도 있습니다.
전이 학습에 사전 훈련된 모델 사용하기
전이 학습을 통해 사전 훈련된 신경망을 미세 조정하는 것이 처음부터 훈련시키는 것보다는 일반적으로 훨씬 더 빠르고 쉽습니다. 전이 학습에는 최소한의 데이터와 연산 리소스가 사용됩니다. 전이 학습은 한 가지 유형의 문제로부터 알게 된 지식을 사용하여 비슷한 문제를 해결합니다. 사용자는 사전 훈련된 신경망에서 시작하여 이를 새로운 작업을 학습하는 데 사용할 수 있습니다. 전이 학습의 이점은 사전 훈련된 신경망이 수많은 특징을 이미 학습했다는 데 있습니다. 예를 들어, 수백만 개의 영상에서 훈련된 신경망을 가져와서 수백 개의 영상만 사용하여 새로운 객체 검출을 위해 다시 훈련시킬 수 있습니다.
GPU를 사용한 하드웨어 가속
Convolutional neural network는 수백, 수천, 나아가 수백만 개의 영상에 대해 훈련됩니다. 다량의 데이터와 복잡한 신경망 아키텍처로 작업할 때 GPU를 사용하면 모델을 훈련시키는 데 소요되는 처리 시간을 크게 줄일 수 있습니다.
MATLAB을 사용한 딥러닝
딥러닝에 대한 MATLAB의 지원에 대해 알아볼 수 있습니다.
튜토리얼 및 예제
MATLAB을 사용한 머신러닝을 시작할 수 있습니다.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)