딥 러닝은 인공지능(AI)과 머신 러닝(ML)의 하위 집합으로, 다층 인공 신경망을 사용하여 개체 탐지, 음성 인식, 언어 번역 등과 같은 작업에서 최첨단 정확도를 제공합니다.
딥 러닝은 머신 러닝의 하위 집합이지만, DL 알고리즘은 사람의 도메인 지식을 도입하지 않고도 이미지, 비디오, 텍스트 등의 데이터에서 표현을 자동으로 학습할 수 있다는 점에서 차이가 있습니다. 딥 러닝에서 '딥'이라는 단어는 데이터의 패턴을 인식하는 데 사용되는 알고리즘 또는 신경망의 여러 층을 나타냅니다. DL의 매우 유연한 아키텍처는 인간의 두뇌가 작동하는 방식과 유사하게 원시 데이터에서 직접 학습할 수 있으며, 더 많은 데이터가 제공될수록 예측 정확도를 높일 수 있습니다.
또한 딥 러닝은 음성 인식, 언어 번역, 개체 탐지와 같은 작업에서 높은 정밀도와 정확도를 가능하게 하는 주요 기술로, 최근 AI 분야에서 Google DeepMind의 AlphaGo, 자율주행차, 지능형 음성 비서를 비롯한 많은 혁신을 불러일으켰습니다.
딥 러닝은 입력과 출력 사이에 여러 '은닉층'의 노드가 존재하는 네트워크인 다층 인공 신경망(ANN)을 사용합니다.
인공 신경망은 입력의 가중합에 비선형 함수를 적용하여 입력 데이터를 변환합니다. 변환은 신경층이라 하고, 함수는 신경 단위라고 합니다.
한 층의 중간 출력은 특징이라고 하며, 다음 층의 입력으로 사용됩니다. 신경망은 반복적인 변환을 통해 여러 층의 비선형 특징(예: 가장자리와 모양)을 학습한 다음, 최종 층에서 이를 결합하여 (더 복잡한 개체에 대한) 예측을 생성합니다.
오차가 경사 하강이라는 프로세스 내에서 역전파를 통해 다시 신경망 전체로 전달되면 가중치가 조정되고 모델이 개선됩니다. 신경망은 신경망의 예측과 원하는 값 사이의 차이를 최소화하도록 네트워크의 가중치 또는 매개변수를 변경하는 방식으로 학습합니다. 발생하는 오차에 대응하여 모델의 가중치를 조정하는 이 프로세스는 오차를 더 이상 줄일 수 없을 때까지 수천 번 반복됩니다. 인공 신경망이 데이터에서 학습하는 이 단계를 훈련이라고 합니다. 이 과정에서 층들은 모델을 위한 최적의 특징을 학습하므로, 특징을 미리 결정할 필요가 없다는 장점이 있습니다.
구조적으로 볼 때, CPU는 단 몇 개의 코어와 많은 캐시 메모리로 구성되어 있어 한 번에 처리할 수 있는 소프트웨어 스레드가 적습니다. 반대로 GPU는 수백 개의 코어로 구성되어 있어 수천 개의 스레드를 동시에 처리할 수 있습니다.
최첨단 딥 러닝 신경망의 경우 역전파를 통해 조정해야 하는 매개변수가 수백만 개에서 10억 개 이상에 이를 수 있습니다. 또한 높은 정확도를 얻기 위해 많은 양의 학습 데이터가 필요합니다. 즉, 수십만에서 수백만 개에 이르는 입력 샘플을 순방향 패스 및 역방향 패스 양쪽으로 실행해야 합니다. 신경망은 수많은 동일 뉴런에서 생성되기 때문에 본질적으로 병렬성이 매우 높습니다. 이러한 병렬성은 자연스럽게 GPU로 매핑됩니다. GPU는 CPU만 사용하는 훈련에 비해 월등히 높은 연산 속도를 제공하므로 복잡한 대규모 신경망 기반 시스템을 훈련시키기 위한 플랫폼으로 선택되어 왔으며, 병렬성이 특징인 추론 작업 또한 GPU에서 실행하기에 매우 알맞습니다.
딥 러닝은 컴퓨터 비전, 대화형 AI 및 추천 시스템 분야의 앱에 일반적으로 사용됩니다. 컴퓨터 비전 앱은 딥 러닝을 사용하여 디지털 이미지와 동영상에서 지식을 얻습니다. 대화형 AI 앱은 컴퓨터가 자연어를 이해하고 자연어로 소통할 수 있도록 돕습니다. 추천 시스템은 이미지, 언어, 사용자의 관심사를 사용하여 의미 있고 관련성 높은 검색 결과와 서비스를 제공합니다.
딥 러닝은 자율주행차, 스마트 개인 비서, 더 스마트한 웹 서비스를 지원하고 있습니다. 사기 탐지, 공급망 현대화와 같은 딥 러닝의 응용 사례는 세계 최고 수준의 팀과 조직에서 활용되고 있습니다.
딥 러닝 알고리즘에는 다음과 같은 다양한 변형이 있습니다.
딥 러닝의 이점 중 하나는 다양한 데이터 세트에 대한 근사(approximation) 방법을 개발할 수 있는 고유한 유연성입니다. 데이터 사이언티스트는 딥 러닝과 신경망을 사용하여 거의 모든 것에 대한 근사 방법을 개발할 수 있습니다. 방대한 양의 데이터로 훈련하는 경우, 딥 러닝의 예측 및 분석 정확도는 타의 추종을 불허합니다.
머신 러닝과 비교할 때 딥 러닝의 뚜렷한 이점은 특징 공학을 스스로 실행할 수 있는 능력에 있습니다. 딥 러닝을 사용하면 알고리즘이 데이터를 탐색하고 상관관계가 있는 특징들을 찾아낸 다음 이를 결합할 수 있어, 사람의 개입 없이도 더 빠르게 학습할 수 있습니다.
NVIDIA GPU 가속 딥 러닝 프레임워크를 사용하면 연구자와 데이터 사이언티스트가 딥 러닝 훈련을 크게 가속화할 수 있습니다. 며칠에서 몇 주가 걸렸을 작업을 몇 시간에서 몇 일로 단축할 수 있습니다. 모델을 배포할 준비가 되었다면 개발자는 클라우드, 임베디드 장치 또는 자율주행차를 위한 GPU 가속 추론 플랫폼을 사용하여 가장 연산 집약적인 심층 신경망의 고성능 저지연 추론을 지원할 수 있습니다.
GPU 가속 딥 러닝 프레임워크는 맞춤형 심층 신경망을 유연하게 설계하고 훈련할 수 있는 기능과 파이썬, C/C++와 같이 일반적으로 사용되는 프로그래밍 언어를 위한 인터페이스를 제공합니다. MXNet, 파이토치, 텐서플로 등과 같이 널리 사용되는 딥 러닝 프레임워크는 고성능 멀티 GPU 가속 훈련을 제공하기 위해 NVIDIA GPU 가속 라이브러리를 사용합니다.