딥러닝

MATLAB을 통한 딥러닝

딥러닝은 머신 러닝의 한 종류로써 데이터로부터 직접 유용한 대표적인 특징들을 학습하여 다중 비선형 처리 계층을 사용하는 것을 말합니다. 딥러닝의 모델은 사물 분류에 있어서, 때때로 사람의 능력을 뛰어넘을 정도의 현존하는 최고 수준의 정확성을 갖고 있습니다. 여러 계층을 포함하는 신경망 아키텍처와 함께 레이블링된 대단위 데이터를 활용하여 모델이 학습됩니다.

딥러닝은 다음과 같은 여러 문제에 적용할 수 있습니다.

  • 이미지 분류
  • 음성 인식
  • 자연어 처리

딥러닝 모델의 훈련

딥러닝 모델의 정확성은 모델을 훈련하기 위해 쓰여지는 데이터의 양에 달려 있습니다.  가장 정확한 모델을 얻기 위해서는 수천 또는 수백만 개의 샘플이 필요할 수도 있으며 동시에 훈련에 매우 많은 시간이 소모될 수 있습니다. 하지만, 한 번 훈련된 딥러닝 모델이 있는 경우에는 ADAS(첨단 운전자 지원 시스템)과 같은 보행자 감지 등과 같은 실시간 응용 프로그램에 활용될 수 있습니다.

나선 신경망(CNN)을 활용한 이미지 분류

나선 신경망(CNN)은 인기 있는 딥러닝 아키텍처입니다. 신경망은 상호 연결된 노드의 집합으로 구성되어 있는 계층으로 이뤄집니다. 나선 신경망은 입력 데이터를 통해 학습된 특징과 결합하고, 영상과 같은 2차원 데이터에 적합한 2D 나선 계층을 활용합니다.

이미지 분류 작업을 수행하기 위해 훈련된 나선 신경망을 통해 데이터 처리가 진행됩니다. 필터는 서로 다른 해상도의 각 훈련 이미지에 적용되고 각 나선 이미지의 출력은 다음 계층의 입력으로 활용됩니다. 이러한 필터는 계층이 점점 진행함에 따라 밝기값이나 에지와 같은 매우 단순한 특징으로부터 보다 복잡한 형태로까지 진행됩니다.

전이 학습

일반적인 이미지 분류 문제를 위해서는 수백만 가지의 가중치를 학습해야 하기 때문에 CNN 훈련에는 상당히 많은 데이터가 필요합니다. CNN의 어려운 점을 해결하기 위한 일반적인 대안으로는 새로운 데이터 집합로부터 자동적으로 특징을 추출하기 위한 사전 훈련 모델을 활용하는 것입니다. 이 전이 학습 방법은 대규모의 데이터 세트와 매우 긴 학습 시간이 없이도 딥러닝을 적용할 수 있는 편리한 방법입니다.

CNN을 처음부터 만드는 방식과 사전 훈련 모델을 활용하는 방식 간의 복잡성과 정확성 비교.

GPU를 활용한 하드웨어 가속

딥러닝 모델을 훈련하는데에는 몇 일에서부터 몇 주까지의 긴 시간이 필요합니다. 하지만, GPU 가속을 활용하면 괄목할만한 수준으로 처리 속도를 증폭할 수 있습니다. 이뿐만 아니라 GPU를 활용하면 신경망 훈련과 이미지 분류 문제를 위한 훈련 시간을 몇 일에서 몇 시간으로 단축시킬 수 있습니다.

CNN을 처음부터 만드는 방식과 전이 학습을 위해 사전 모델을 활용하는에 필요한 Neural Network Toolbox의 명령어.

딥러닝 모델의 훈련과 활용에 대해 보다 자세한 내용은 MATLAB®, Computer Vision System Toolbox™, Statistics and Machine Learning Toolbox™Neural Network Toolbox™를 참조바랍니다.


예제와 방법


참조 소프트웨어

See also: 머신 러닝, 객체 감지, 객체 인식, 특징 추출, 이미지 인식, 패턴 인식