딥러닝

딥러닝이란?

스마트 엔지니어링 시스템의 설계에 딥러닝 적용

딥러닝은 머신러닝의 한 분야로, 신경망을 사용하여 인간에게 자연스러운 학습 방법, 즉 예시를 통해 배우는 방식으로 컴퓨터가 학습하게 하는 방법입니다. 딥러닝에서 모델은 영상, 텍스트 또는 소리 등의 데이터에서 직접 분류 또는 회귀 작업을 수행하는 방법을 학습합니다. 딥러닝 모델은 최첨단의 정확도를 달성할 수 있으며, 종종 인간 수준의 성능을 뛰어넘기도 합니다.

딥러닝의 작동 방식

딥러닝 모델은 신경망 아키텍처를 기반으로 합니다. 인간의 뇌에서 영감을 받은 신경망은 입력을 올바른 출력과 연결하는 계층 구조 속의 상호 연결된 노드 또는 뉴런으로 구성됩니다. 신경망의 입력 계층과 출력 계층 사이에 위치한 뉴런을 은닉 계층이라고 합니다. '심층' 또는 '딥'이라는 용어는 일반적으로 신경망의 은닉 계층 수를 나타냅니다. 딥러닝 모델에는 수백 개의 또는 심지어 수천 개의 은닉 계층이 있을 수 있습니다.

딥러닝 신경망은 상호 연결된 뉴런으로 이루어진 계층으로 구성됩니다.

일반적인 신경망 아키텍처의 그림.

딥러닝 모델은 레이블이 지정된 대규모 데이터셋을 사용하여 훈련되며, 종종 수작업으로 특징 추출을 수행할 필요 없이 데이터에서 직접 특징을 학습할 수 있습니다. 최초의 인공 신경망은 1958년에 이론으로 제시되었지만, 딥러닝에 필요한 상당한 연산 능력은 2000년대가 되어서야 현실적으로 가능해졌습니다. 이제 연구원들은 수백 개의 연결과 뉴런으로 신경망을 구축하고 훈련시킬 수 있는 연산 리소스를 이용할 수 있습니다.

고성능 GPU는 딥러닝에 효율적인 병렬 아키텍처를 갖추고 있습니다. 클러스터 또는 클라우드 컴퓨팅과 결합하면 개발팀은 딥러닝 신경망의 훈련 시간을 몇 주에서 몇 시간 이내로 단축할 수 있습니다.

딥러닝 모델의 유형

딥러닝 모델의 3가지 유형은 CNN(컨벌루션 신경망), RNN(순환 신경망) 및 트랜스포머 모델입니다.

CNN: CNN은 입력 데이터로 훈련된 특징을 컨벌루션하고 2차원 컨벌루션 계층을 사용하므로, 영상과 같은 2차원 데이터의 처리에 적합한 아키텍처입니다. CNN은 영상에서 직접 특징을 추출하는 방식으로 작동합니다. 신경망이 영상에 대해 훈련하는 동안 적절한 특징이 학습됩니다. 이러한 자동화된 특징 추출을 통해 딥러닝 모델의 영상 분류 작업 정확도가 대폭 향상됩니다. CNN은 시계열 및 텍스트와 같은 다른 유형의 데이터를 분류하기 위한 용도로도 사용할 수 있습니다.

딥러닝을 위한 컨벌루션 신경망은 입력 영상에서 특징을 자동으로 학습하고 각 클래스에 대한 확률을 계산합니다.

컨벌루션 신경망의 예의 시각화.

RNN: RNN(순환 신경망)은 시계열 또는 순차 데이터를 예측하는 딥러닝의 신경망 아키텍처입니다. RNN은 다양한 길이의 순차 데이터로 작업하고 자연 신호 분류, 언어 처리, 비디오 분석 등의 문제를 해결하는 데 특히 효과적입니다. LSTM(장단기 기억) 신경망은 단순한 RNN과 비교하여 장기 종속성에 대한 학습력이 더 우수한 특수한 유형의 RNN입니다.

트랜스포머: 트랜스포머는 순차 데이터에서 관계를 추적하도록 설계되었습니다. 입력과 출력 사이의 전역 종속성을 수집하기 위해 셀프 어텐션 메커니즘을 활용합니다. 자연어 처리에 사용되는 경우가 많으며, BERT 및 ChatGPT™와 같은 LLM(대규모 언어 모델)의 기반이 됩니다.

딥러닝 모델 생성 방법

딥러닝 모델을 처음부터 새로 만들거나 사전 훈련된 딥러닝 모델로 시작하여 작업에 맞게 적용하거나 조정할 수 있습니다.

처음부터 훈련: 딥러닝 모델을 처음부터 훈련시키려면 레이블이 지정된 대규모 데이터셋을 수집하고 특징과 모델을 학습할 신경망 아키텍처를 설계해야 합니다. 이는 새롭거나 특정한 응용 사례 또는 더 일반적으로는 기존 모델이 존재하지 않는 응용 사례에 적합한 접근법입니다. 이 접근법의 주요 단점은 ground truth가 주석 처리된 대규모 데이터셋이 필요하며, 작업과 연산 리소스에 따라 훈련 시간이 몇 시간에서 몇 주까지 소요될 수 있다는 점입니다.

전이 학습: 영상 분류, 컴퓨터 비전, 오디오 처리, 자연어 처리와 같은 딥러닝 응용 분야에서는 일반적으로 전이 학습 접근법이 사용됩니다. 이 접근법은 사전 훈련된 딥러닝 모델을 미세 조정하는 작업을 수반합니다. 영상 분류를 위한 SqueezeNet 또는 GoogLeNet과 같은 기존 모델로 시작하여 이전에 볼 수 없었던 클래스가 포함된 새 데이터를 입력합니다. 신경망을 조정한 후에는 이제 1,000가지의 서로 다른 객체 대신 개 또는 고양이만 분류하는 등의 새로운 작업을 수행할 수 있습니다. 또한, 전이 학습의 경우 필요한 데이터의 양이 훨씬 적으므로 훈련 시간이 대폭 단축된다는 장점도 있습니다.

사전 훈련된 딥러닝 모델을 특징 추출기로 사용할 수도 있습니다. 계층 활성화를 특징으로 사용하여 SVM(서포트 벡터 머신)와 같은 다른 머신러닝 모델을 훈련시킬 수 있습니다. 또는 사전 훈련된 모델을 다른 딥러닝 모델의 구성요소로 사용할 수도 있습니다. 예를 들어, 영상 분류 CNN을 객체 검출기를 위한 특징 추출기로 사용할 수 있습니다.

딥러닝과 머신러닝의 차이점

딥러닝은 머신러닝의 특수한 형태이며, 딥러닝과 머신러닝 모두 AI(인공 지능) 분야의 일부입니다. 머신러닝은 응용 사례, 처리할 데이터 크기 및 해결하려는 문제 유형에 따라 선택할 수 있는 다양한 기법과 모델을 제공합니다.

인공 지능, 머신러닝, 딥러닝의 정의가 보이는 그림.

인공 지능 응용 사례에서 딥러닝 또는 머신러닝 알고리즘 간에 무엇을 선택할지는 시스템의 목표와 요구사항에 따라 달라집니다.

머신러닝이 아닌 딥러닝을 선택하는 이유는 무엇일까요? 한 마디로 말하자면 정확도입니다. 딥러닝은 일반적으로 머신러닝보다 더 높은 정확도를 달성하고 더 많은 확장 워크플로의 자동화를 제공합니다. 딥러닝 모델의 주요 단점은 더 복잡하고 더 큰 훈련 데이터셋이 필요하므로, 훈련에 더 오랜 시간이 걸린다는 점입니다. 이러한 단점을 극복하거나 최소한 그 영향을 줄일 수 있는 방법이 있습니다.

특징 엔지니어링 자동화

머신러닝 워크플로는 데이터에서 적절한 특징을 직접 추출하는 것으로 시작합니다. 이렇게 추출된 특징은 새로운 데이터를 예측할 수 있는 모델을 구축하는 데 사용됩니다. 영상 인식컴퓨터 비전 등의 응용 사례에서 딥러닝 워크플로를 통해 영상 데이터에서 적절한 특징을 자동으로 추출할 수 있습니다. 신호 또는 텍스트 데이터를 처리할 때 딥러닝은 요구되는 데이터 전처리를 줄일 수 있습니다.

차량 분류에 대한 머신러닝(왼쪽)과 딥러닝(오른쪽)의 접근법 비교.

훈련 데이터 및 시간

딥러닝의 정확도는 데이터 규모에 비례합니다. 즉, 훈련 데이터가 커질수록 딥러닝 성능은 지속적으로 향상된다는 의미입니다. 통상적으로, 딥러닝은 모델을 훈련시키기 위해 매우 많은 양의 데이터(예: 영상 분류를 위해서는 수천 장의 영상이 필요)가 필요합니다. 고성능 GPU를 사용하면 훈련 시간을 대폭 단축할 수 있습니다. 이에 대한 대안으로 전이 학습을 통해 사전 훈련된 신경망을 수정하고 재훈련시키는 방법은 일반적으로 신경망을 처음부터 훈련시키는 방법보다 훨씬 빠르고 더 적은 레이블 지정 데이터를 요구합니다.

사용할 수 있는 훈련 데이터가 충분하지 않은 경우에는 합성 데이터를 사용하여 기존 데이터를 보완할 수 있습니다. 합성 데이터는 GAN(생성적 적대 신경망)을 사용하거나 물리 시스템의 모델을 생성하고 시뮬레이션하여 생성할 수 있습니다.

모델 크기 및 복잡도

머신러닝 모델과 비교하여, 딥러닝 모델은 수백 개의 상호 연결된 계층으로 구축되기 때문에 훨씬 더 복잡하고 큽니다. 딥러닝 기술이 지속적으로 발전함에 따라 딥러닝 신경망 아키텍처의 복잡도도 지속적으로 증가하고 있습니다. 복잡도와 크기는 딥러닝이 달성할 수 있는 정확도에 영향을 미칩니다.

딥러닝 모델은 복잡도로 인해 해석 가능성이 부족한 '블랙박스'로 간주되는 경우가 많습니다. 설명 가능한 AI로 불리는 새로운 분야에서는 딥러닝 모델의 동작을 인간의 용어로 설명하는 것을 목적으로 하는 기법을 제공합니다. 예를 들어, Grad-CAMLIME을 사용하여 영상 분류 작업에서 딥러닝 모델의 예측 결과를 설명할 수 있습니다.

딥러닝 모델은 더 이상 데스크탑에만 존재하지 않습니다. 지속적으로 커지고 복잡해지는 딥러닝 모델을 리소스가 한정된 기기에 배포하는 것은 점점 더 많은 딥러닝 실무자들이 직면하고 있는 문제입니다. 딥러닝 모델을 압축하는 다양한 기법이 있으며, 이러한 기법을 통해 높은 정확도를 유지하면서도 딥러닝 모델이 디스크에서 차지하는 크기, 런타임 메모리, 추론 시간 등을 줄일 수 있습니다.

투영을 사용한 완전 연결 계층 압축. 계층 연산은 그림 아래에 설명되어 있습니다.

완전 연결 계층의 투영. 투영은 신경망 압축 방법입니다.

딥러닝이 중요한 이유

딥러닝은 무인 자동차가 정지 신호를 인식하거나 가로등 기둥과 보행자를 구분할 수 있게 해주는 핵심 기술입니다. 휴대폰, 태블릿, TV, 핸즈프리 스피커와 같은 소비자 기기에서 음성 제어의 핵심이기도 합니다. 딥러닝은 최근 많은 관심을 받고 있으며, 그러한 관심에는 타당한 이유가 있습니다. 딥러닝을 통해 컴퓨터와 시스템은 높은 정확도 및 자동화로 복잡한 작업을 수행할 수 있습니다.

딥러닝 응용 사례

딥러닝은 컴퓨터 비전, 영상 처리, 자율주행, 신호 처리 등 다양한 영역에 적용되고 있습니다. 각 딥러닝 응용 사례에는 여러 하위 응용 사례를 포함할 수 있습니다. 예를 들어, 영상 분류, 객체 검출, 의미론적 분할은 컴퓨터 비전의 하위 응용 사례입니다. 새로운 딥러닝 방법과 기술이 개발됨에 따라 딥러닝 응용 사례는 지속적으로 확장될 것이며, 딥러닝을 통해 정확도를 개선할 수 있는 새로운 하위 응용 사례가 발견될 것입니다.

딥러닝의 실례

외관 검사는 카메라가 테스트 대상 부품을 스캔하여 고장 및 품질 결함을 검사하는 영상 기반 부품 검사입니다. 딥러닝과 컴퓨터 비전 기법을 사용하면 생명공학기술, 자동차, 반도체 등 다양한 산업에서 제조 결함 검출을 위한 외관 검사를 자동화할 수 있습니다.

EEG(뇌전도) 신호는 가장 접근이 쉬우며, 따라서 가장 많이 연구되고 있는 뇌 신호입니다. 딥러닝을 사용하여 간질을 자동으로 진단하고 EEG 신호에서 간질 발작을 예측할 수 있습니다.

실시간 모니터링 및 제어가 필요하고 물리 센서를 사용하기에는 비실용적이거나 비용이 많이 드는 모든 시스템에 가상 센서를 사용할 수 있습니다. 딥러닝과 모델 기반 설계를 결합하여 가상 센서를 설계할 수 있습니다.

암 연구에 적용된 딥러닝

Moffit Cancer Center에서 딥러닝을 통해 과학적 발견을 가속화하고 치료 계획을 개인화한 사례에 대해 읽어볼 수 있습니다.

MATLAB®은 영상 및 라디오믹스에 AI를 성공적으로 적용하는 데 필요한 모든 툴을 제공했습니다. MATLAB은 데이터 전처리, 잡음 제거, 영상 분할 등의 작업에 사용되었습니다.

MATLAB을 사용한 딥러닝

Deep Learning Toolbox™와 함께MATLAB을 사용하면 딥러닝 신경망을 설계하고 분석하며 시뮬레이션할 수 있습니다. 추가적인 툴박스(예: Computer Vision Toolbox™, Signal Processing Toolbox™Text Analytics Toolbox™ 등)를 사용하여 딥러닝 워크플로를 다양한 응용 사례(예: 컴퓨터 비전, 신호 처리, 자연어 처리)로 확장할 수 있습니다.

딥러닝 워크플로에는 데이터 전처리 및 레이블 지정, AI 모델 구축, 모델의 의사결정 시각화, AI 시스템 시뮬레이션, 타겟으로의 배포 등이 포함됩니다.

데이터 준비부터 배포에 이르는 딥러닝 워크플로 시각화.

딥러닝을 위한 데이터

딥러닝에는 양질의 대규모 데이터가 필요합니다. 데이터저장소를 사용하여 한 번에 메모리에 담을 수 없이 큰 데이터를 편리하게 관리할 수 있습니다. 로우코드 앱과 내장 함수를 사용하여 데이터 품질을 개선하고 ground truth 레이블 지정을 자동으로 수행할 수 있습니다.

딥러닝 모델 설계

 

처음부터 구축하는 신경망

  • 몇 줄의 코드만으로 CNN, LSTM, GAN 및 트랜스포머와 같은 딥러닝 신경망을 구축할 수 있습니다.
  • 여러 GPU, 클라우드 또는 클러스터를 사용하여 훈련 속도를 높일 수 있습니다. 딥러닝 모델을 훈련시킬 때 MATLAB은 가능한 경우 GPU를 명시적으로 프로그래밍하지 않고도 GPU를 사용할 수 있습니다.
몇 줄의 MATLAB 코드만으로 LSTM 딥러닝 신경망을 구축할 수 있습니다.

프로그래밍 방식으로 LSTM 신경망 구축.

사전 훈련된 신경망

  • 작업에 사전 훈련된 모델을 직접 적용하고 전이 학습을 수행하여 이를 조정하거나 특징 추출기로 사용할 수 있습니다.
  • MATLAB Deep Learning Model Hub에서 카테고리별로 최신 모델에 액세스하고 명령줄에서 사전 훈련된 모델을 불러올 수 있습니다.
  • 가져오기 함수를 사용하여 TensorFlow™, PyTorch®, ONNX™ 모델을 MATLAB 신경망으로 변환할 수 있습니다. Deep Learning Toolbox의 훈련된 신경망과 훈련되지 않은 신경망을 TensorFlow 및 ONNX로 내보낼 수 있습니다.
  • 재훈련을 위한 계층 교체 및 학습률 조정 관련 내장 함수를 사용하여 전이 학습을 손쉽게 수행할 수 있습니다.

사전 훈련된 모델을 가져와 딥러닝 작업에 적합하도록 조정.

로우코드 앱

  • 심층 신경망 디자이너 앱을 사용하여 신경망을 대화형 방식으로 설계하고 분석하며 수정할 수 있습니다. Deep Learning Toolbox, TensorFlow, PyTorch에서 사전 훈련된 신경망을 가져올 수도 있습니다.
  • 실험 관리자 앱을 사용하면 여러 딥러닝 실험을 관리하고, 훈련 파라미터를 추적하고, 결과를 분석하고, 서로 다른 실험의 코드를 비교할 수 있습니다.
CNN 딥러닝 신경망의 계층을 보여주는 심층 신경망 디자이너 앱의 스크린샷.

심층 신경망 디자이너를 통해 시각적으로 딥러닝 신경망 설계, 분석 및 수정.

엔지니어를 위한 딥러닝

설명 가능하고 견고한 딥러닝

MATLAB을 사용하면 딥러닝 모델과 그 예측 결과를 시각화하고 검증할 수 있습니다.

  • 딥러닝 모델의 훈련 진행 상황을 모니터링하고 성능 메트릭을 플로팅할 수 있습니다.
  • Grad-CAM, 가림 민감도, LIME, 딥 드림과 같은 설명 가능성 기법을 적용하여 딥러닝 모델의 출력을 시각화할 수 있습니다. 이를 통해 딥러닝 모델이 예측하는 방식을 이해할 수 있습니다.
  • 견고한 딥러닝 모델을 훈련시키고 모델의 견고성을 검증할 수 있습니다. 신경망의 견고성 속성을 검증하고, 신경망 출력 범위를 계산하고, 적대적 표본을 찾고, 분포 범위를 벗어난 데이터를 검출하고, 업계 표준을 준수하는지 검증할 수 있습니다.

시스템 수준 시뮬레이션

Deep Learning Toolbox 블록을 사용하여 훈련된 신경망을 Simulink® 시스템에 통합할 수 있습니다. 이를 통해 딥러닝 모델과 시스템의 다른 부분과의 통합을 테스트할 수 있습니다.

타겟에 배포

딥러닝 모델을 에지 기기, 임베디드 시스템 또는 클라우드에 배포할 수 있습니다. 배포하기 전, 양자화, 투영 또는 가지치기를 수행하여 모델을 압축할 수 있습니다.

자료

문서, 예제, 비디오 등을 통해 여러분의 지식을 확장할 수 있습니다.