딥 러닝 (Deep learning) 이란 무엇인가?
정의
딥 러닝(Deep Learning)은 머신 러닝(Machine Learning)의 특정한 한 분야로서 인공 신경망(Artificial Neural Network)의 층을 연속적으로 깊게 쌓아올려 데이터를 학습하는 방식을 말합니다. Deep 하다는 의미는 층을 연속적으로 쌓아올렸기 때문에 붙은 단어라고 보시면 쉽게 이해가 됩니다. 딥 러닝이 화두가 되기 시작한 것은 2010년대의 비교적 최근의 일이지만, 딥 러닝의 기본 구조인 인공 신경망의 역사는 생각보다 오래되었습니다. 이번 글에서는 딥 러닝의 역사부터 layer를 깊게 쌓아 학습하는 원리, 그리고 실제 산업에 적용되는 사례와 데이터/ 학습에서 주요하게 고려할 점을 다루어 보도록 하겠습니다.

딥 러닝의 layer 계층 유형
딥 러닝이라고 해서 복잡하고 심오한 개념이 들어있을 것 같지만, 실제로 머신러닝 이론과 크게 다르지 않습니다. 그럼에도 불구하고, 왜 우리는 딥 러닝에 열광하고 기술 변화에 주목하고 있을까요?

신경계에는 엄청난 수의 뉴런이 포함되어 있고, 서로 매우 복잡한 구조로 얽혀 거대한 망을 구성합니다. 이를 ‘신경망’이라고 하죠. 머신러닝 과학자들은 신경망의 구조에 착안하여 퍼셉트론을 하나의 빌딩 블록 (Building block) 이라 생각하고, 여러 개의 퍼셉트론을 연결하여 인공 신경망이라는 개념을 고안해냈습니다. 딥 러닝의 딥 (deep) 이란, 이처럼 연결된 구조로 만들어진 층(layer)에서 표현을 학습한다는 개념을 의미합니다.
- 노드의 입력 계층에서 정보를 수신하여 이를 기저 노드로 전송하고, 여기에 네트워크가 중요도에 따라 로컬 대비 패턴을 고정합니다.
- Hidden layer에 있는 노드들이 바로 연산이 일어나는 곳입니다. 이 레이어에서 로컬 대비 패턴을 이용하여 유사점들을 보정합니다.
- 출력 노드 계층에는 연산 결과가 표시됩니다. 이 계층에서 특징이 템플릿에 적용됩니다.
최근 인공지능 고도화와 딥 러닝 발전의 영향으로 많은 산업이 앞다퉈 AI 도입을 추진하고 있습니다. 특히 딥 러닝은 바둑 챔피언으로부터의 승리나 질병을 파악하는 모습 등 괄목할 만한 성과를 거두면서 사람들로부터 엄청난 믿음을 얻게 되었죠. Generative AI 처럼 딥 러닝을 통한 다양한 성과로 인해, 데이터만 있으면 딥 러닝으로 엄청난 결과를 얻을 수 있을 것이라고 생각하시는 분들도 많죠. 그러나 어떤 산업이든 반드시 인공지능을 투입한다고 해서 성과를 거둘 수 있는 것은 아닙니다. 이 글에서는 딥 러닝에 대해 자세히 살펴보고, 장단점과 활용 방안 및 실제 산업에서 중요한 것을 확인해 보겠습니다.
👉 머신러닝을 관리하고 MLOps에 대한 A to Z
딥 러닝이 중요한 이유

최근 딥 러닝은 방대한 양의 데이터로 훈련할 때, 높은 정확도를 보이면서 인기를 얻고 있습니다. 넷플릭스와 유튜브의 추천 알고리즘, 페이스북의 얼굴 인식 기능 등이 여기에 포함됩니다. 또는 고객 서비스 담당자가 고객 경험 자동화 및 만족도 향상을 위해 딥 러닝을 사용합니다. 딥 러닝은 이렇게 모든 규모의 응용 분야로 발전하고 있습니다.
전 세계적으로 생성되고 저장되는 데이터의 양이 증가함에 따라, 데이터가 비즈니스 자산으로서 중요성이 점점 더 커지고 있습니다. 자동화 시스템을 구축하면 방대한 양의 데이터를 수집하고 관리하는 절차가 용이해집니다. 인공지능, 머신러닝, 딥 러닝을 통해 조직은 수많은 데이터에서 가치를 추출하고 시스템 기능을 개선할 수 있습니다.
딥 러닝은 앞으로 수십 년간 사회를 변화시킬 기술 소재로 주목 받고 있습니다. 신경망은 주가에서 날씨에 이르기까지, 모든 것을 예측하는 데에 더욱 능숙해지고 있습니다.
딥 러닝의 역사
딥 러닝은 1986년 리나 데커가 소개한 머신러닝 커뮤니티에 제공되었으며, 그 이후로 인공지능의 판도를 바꾸며 새로운 수준의 능력과 이해력을 선보였습니다. 이 문단에서는 딥 러닝의 역사에 대해 소개하겠습니다. 만약 인공지능의 전체적인 역사에 대해 자세한 내용이 궁금하시다면, 이 글을 참고하시길 바랍니다.

- 사전 딥 러닝 시대 (~1960년대)
1965년에 영어로 기능적인 대화를 할 수 있는 ELIZA가 공개되면서 인공지능과 인간 사이의 의사 소통에 대한 가능성이 제기되었습니다. 1967년에 개발된 ‘The nearest neighbor algorithm’은 Pattern recognition 기술의 시작이 되었습니다. 이 알고리즘은 처음에 경로 매핑에 사용되었습니다. 또한 다층 인공 뉴런 네트워크 설계의 발견으로 새로운 상황에 적응하기 위해 숨겨진 레이어를 조정할 수 있는 backpropagation 개발의 시초가 되었습니다.
- 머신 러닝의 부상 (~1980년대)
1980년대에 머신러닝은 AI에 대한 새로운 접근 방식으로 등장했습니다. 머신러닝 알고리즘은 명시적으로 프로그래밍하지 않고도 데이터로부터 학습할 수 있어 전문가 시스템보다 유연하고 적응력이 뛰어납니다. 딥 러닝 알고리즘은 원시 입력에서 점진적으로 더 높은 수준의 기능을 추출하기 위해 여러 계층을 사용합니다. 이 시기는 딥 러닝의 초기였지만 backpropagation 알고리즘을 컨볼루션 신경망에 적용하면서 가능성을 확인했습니다.
- 딥 러닝 혁명 (~2010년대)
2010년대에는 머신러닝의 일종인 딥러닝 알고리즘이 이미지 인식 분야에서 획기적인 발전을 이루었습니다. 이후 딥러닝은 자연어 처리, 음성 인식, 로봇 공학 등 다양한 문제에 적용되었습니다. 2017년, Ashish Vaswani와 그의 팀원들이 Transformer 모델을 도입하면서 딥 러닝의 판도가 바뀌었죠. 그들은 입력 데이터 각 부분의 중요성을 평가하기 위해 자가 주의를 사용하는 딥 러닝 모델을 보여주었습니다. 이는 NLP 작업 속도를 개선했을 뿐만 아니라, 현대에 가장 주목 받는 대형 언어 모델의 시조가 되었습니다.
- 주류가 된 인공지능
우리는 산업 사례 전반에 걸쳐 AI의 접근성과 적용이 놀라울 정도로 급증하는 현재를 목격하고 있습니다. 2022년 11월 30일 ChatGPT가 출시되었으며, 2023년에는 Stable diffusion, DALL-E, Mid journey와 같은 Generative AI가 세상에 모습을 드러냈습니다. NVIDIA, Microsoft, Google, Amazon 등 AI 중점 기업은 이 물결을 적극적으로 활용하며 새로운 기술 개발에 전념하고 있습니다.
딥 러닝 (Deep learning) 작동 원리
작동 방식
딥 러닝은 컴퓨터가 인간의 뇌에서 영감을 얻은 방식으로 데이터로부터 학습하도록 가르치는 머신 러닝 기법입니다. 딥 러닝은 인간 두뇌의 뉴런이 서로 연결되고 소통하는 방식을 모방한 인공 신경망을 생성하는 방식으로 작동합니다.

대부분의 딥 러닝 방식은 신경망 아키텍처를 사용합니다. ‘딥’이라는 용어는 뉴럴 네트워크를 구성하는 숨겨진 레이어(Hidden layer)의 수를 의미합니다. 기존 뉴럴 네트워크는 숨겨진 레이어가 2-3개에 불과했으나, 딥 네트워크는 150개에 이르는 경우도 있죠. 딥 러닝 모델은 수동으로 특징을 추출했던 기존 머신러닝 기법과 달리, 데이터에서 직접 기능을 학습하는 신경망 아키텍처와 함께 레이블링된 대단위 데이터를 활용하여 훈련합니다.
신경망은 상호 연결된 일련의 Nodes로 구성되며, 이는 뉴런을 나타냅니다. 각 Nodes에는 가중치가 있으며, 가중치는 해당 노드가 네트워크의 출력에 얼마나 많은 영향을 미치는지를 결정하는 값입니다. 가중치는 네트워크가 데이터를 학습하면서 시간이 지남에 따라 조정됩니다.
이 내용을 조금 더 자세히 설명하면 다음과 같습니다.
딥 러닝 네트워크의 Nodes
- 딥 러닝 네트워크에는 일반적으로 여러 계층의 Nodes가 있습니다.
- 첫 번째 Nodes 계층은 입력 데이터를 받아들이고, 이후의 각 계층은 데이터에서 점점 더 높은 수준의 특징을 추출합니다.
학습 방법
- 레이블이 지정된 이미지로 구성된 대규모 데이터 세트를 학습하여 객체를 인식하는 방법을 학습합니다.
- 데이터 세트의 각 이미지에 대해 네트워크에 이미지 속 객체에 대한 올바른 레이블이 지정됩니다.
- 이후, 예측된 레이블과 올바른 레이블 사이의 오차를 최소화하기 위해 가중치를 조정합니다.
네트워크가 학습되면 새 이미지를 분류하는 데 사용할 수 있습니다. 네트워크는 먼저 새 이미지에서 특징을 추출한 다음, 해당 특징을 사용하여 이미지의 객체를 예측합니다.
머신러닝 VS. 딥 러닝
머신러닝과 딥 러닝은 인공지능의 분야에서 비슷한 개념으로 사용하지만 차이점도 분명합니다. 머신러닝은 입력 데이터와 출력 데이터 사이의 관계를 학습하는 것에 초점을 둡니다. 즉, 데이터를 분석하고 모델을 만들어 결과를 예측하는 것이 목적입니다. 따라서 수학적 모델을 사용하여 데이터를 분석하고, 데이터셋의 특징을 파악한 뒤 모델을 만들어 새로운 데이터를 예측합니다. 반면, 딥 러닝은 인공 신경망을 사용하여 입력 데이터를 처리하여 결과를 예측합니다. 딥 러닝은 머신러닝보다 더 복잡한 데이터를 처리할 수 있습니다. 이미지나 음성, 언어 등 다양한 종류의 데이터에서 더 좋은 성능을 보여주고 있습니다.

딥 러닝과 머신러닝의 차이점을 볼 수 있는 예제를 들자면 아래와 같습니다.
- 머신러닝: 이미지의 특징을 추출하고 이를 기반으로 분류 모델을 만들어 예측
이미 정해진 알고리즘으로 이미지의 특징을 추출하고 이를 토대로 Decision Tree, SVM (Support Vector Machine), Random Forest 등의 분류 알고리즘을 사용하여 분류 작업을 수행
- 딥 러닝: 인공 신경망이 학습 데이터와 정답과의 관계를 통해 이미지의 특징을 스스로 학습하고 분류 결과를 예측
입력 데이터와 출력 데이터 사이의 복잡한 관계를 스스로 학습하여 예측하기 때문에 더욱 정확한 결과를 제공
물론 그렇다고 해서 모든 분야에서 머신러닝보다 딥 러닝이 우위에 있는 것은 아닙니다. 모델이 복잡하다는 것은 학습에 필요한 데이터의 양과 학습 시간이 많이 필요하다는 뜻이기 때문이죠. 따라서 데이터가 적거나 작은 모델이 필요한 경우, 혹은 결과 해석이 필요하거나 시간과 자원의 제한이 있는 경우 딥 러닝보다 머신러닝이 유리한 선택일 수 있습니다.
딥 러닝 모델 종류 (ANN, RNN, CNN)
딥 러닝은 방대한 양의 연산을 필요로 하기 때문에, 하드웨어가 발달하지 않았던 초기와 달리 기술이 발전한 현재에는 슈퍼컴퓨터를 기반으로 문제점을 해결할 수 있었습니다. 특히 병렬연산에 최적화된 GPU가 개발되면서 딥 러닝 기술이 본격적으로 발전하게 되었죠.
ANN 기법의 여러 문제가 해결되면서 모델 내에 은닉층을 많이 늘려 학습의 결과를 향상시키는 방법으로 등장한 DNN (Deep Neural Network)이 있습니다. 컴퓨터가 스스로 분류레이블을 만들어 내고, 공간을 왜곡하고 데이터를 구분 짓는 과정을 반복하여 최적의 구분선을 도출할 수 있습니다. 많은 데이터와 반복학습이 필요하며, 사전 학습과 오류역전파 기법을 통해 현재 널리 사용되고 있습니다. CNN, RNN, LSTM, GRU 등의 방법론이 DNN을 응용한 알고리즘입니다.
이 문단에서는 ANN, 그리고 DNN을 응용한 RNN과 CNN에 대해 설명하겠습니다.
1. ANN (Artificial Neural Network)

- 기존의 생물학적 신경망에서 영감을 받아 만들어진 알고리즘
- 입력과 출력 사이의 연결된 뉴런 계층으로 구성된 기본적인 인공 신경망
- 입력 데이터에서 특징을 학습하고 이를 토대로 분류 등의 작업을 수행
- 복잡한 비선형 관계를 학습할 수 있음
- 입력 데이터 간의 순서나 시간적 의존성을 고려하지 않기 때문에, 시계열 등의 데이터 처리에는 한계
2. RNN (Recurrent Neural Network)

- 자신의 이전 상태를 입력으로 받고 출력으로 내보내면서 구성되는 순환 구조를 가진 신경망
- 시계열 데이터 등과 같이 같이 입력 간 순서나 시간적 의존성이 반영되어야 하는 문제에 적합
- 이전 시간 단계의 정보를 현재 시간 단계로 전달하여 과거의 정보를 활용할 수 있음
- 문장 생성, 기계 번역 등의 작업에 적용되며, 시간적인 흐름을 갖는 데이터에 적합
3. CNN (Convolution Neural Network)

- 입력 데이터에 대해 커널 (Convolutional Kernel)을 적용하여 이미지의 특징을 추출
- 추출한 이미지의 특징은 다시 다중 신경망을 거쳐 요약 되어 출력으로 사용
- 주로 이미지 처리에 사용되는 알고리즘
- 합성곱과 풀링 등의 연산을 통해 공간적인 구조를 파악하고, 이미지의 특징을 활용하여 정확한 예측
이 중에서 CNN (Convolutional Neural Networks, ConvNet)은 현재 가장 널리 사용되는 신경망 유형입니다. CNN을 이용하면 수동으로 특징을 추출할 필요가 없어지기 때문에, 이미지를 분류하는 데 사용할 특징을 식별하지 않아도 됩니다. 자동화된 특징 추출은 Object classification (객체 분류)와 같은 컴퓨터 비전 작업에서 딥 러닝 모델을 매우 정확하게 구현한다는 장점이 있습니다.
딥 러닝 훈련 방법

인공 신경망(ANN)을 훈련할 때 초기 초점은 무작위로 설정됩니다. 결과에 대한 평가의 정확성을 의미하는 ANN의 궁극적인 효과는 훈련에서 사용되는 예시 데이터에 큰 영향을 받습니다.
기본적인 딥러닝의 방식에서 훈련은 Neural Network, 신경망에 샘플이 입력되면 초기에는 target, 결과물을 랜덤으로 설정합니다. 그리고 나서 샘플 데이터가 서서히 추가됩니다. 학습 규칙은 입력 데이터 및 예상 결과에 따라 관계의 weight, 가중치를 조정하게 됩니다.
이를 얼마나 잘 예측하고 조정하는지가 핵심이기 때문에 loss function, 손실 함수가 신경망의 예측과 진짜 타깃(신경망의 출력으로 기대하는 값)의 차이를 점수로 계산합니다. 이 점수를 피드백 신호로 사용하여 현재 샘플의 손실 점수가 감소되는 방향으로 가중치 값을 조금씩 수정하게 됩니다. 데이터가 추가되면서 랜덤한 변환을 연속적으로 일어날 경우 자연스럽게 출력은 기대한 것과 멀어지고 손실 점수가 매우 높을 것입니다.
하지만 네트워크가 모든 샘플을 처리하면서 가중치가 조금씩 올바른 방향으로 조정되고 손실 점수가 감소합니다. 이를 훈련 반복 (training loop) 이라고 하며, 충분한 횟수만큼 반복하면(일반적으로 수천 개의 샘플에서 수십 번 반복하면) 손실 함수를 최소화하는 가중치 값을 산출합니다. 최소한의 손실을 내는 네트워크가 타깃에 가능한 가장 가까운 출력을 만드는 모델이 됩니다.
일반적으로 훈련 내용에 변동성이 높은 예시 데이터가 많이 포함될수록 추론에서 더 정확한 결과를 얻을 수 있습니다. 매우 유사하거나 반복적인 데이터를 사용하여 훈련을 수행하는 경우, ANN은 예시 데이터와 다른 분야의 데이터를 추정할 수 없게 됩니다. 이 경우 overfit, 과적합 되었다고 표현합니다.
👉 강화학습, Reinforcement Learning이 궁금하다면?
딥 러닝 (Deep learning) 활용 방안
최근 몇 년간 딥 러닝은 다양한 분야에서 많은 문제를 해결하는 데에 사용되었습니다. 이 글에서는 많은 분야에서 사용되는 딥 러닝의 예제 중 일부를 소개해보겠습니다.
Computer vision, Pattern Recognition
딥 페이크 (Deep Fake)

워싱턴의 한 대학에서 오디오를 이용해 비디오의 입술 움직임을 합성한 결과물을 소개했습니다. 자세한 결과물은 비디오를 통해 확인할 수 있고, 영상에 대한 논문은 여기에서 확인하실 수 있습니다.
이미지/영상 복원

Let there be color! 는 자동으로 흑백사진을 색이 있는 사진으로 바꿔주는 웹사이트입니다. 딥 러닝 네트워크는 사진에서 일어나는 실제 패턴을 학습하는 방법으로 사진을 복원합니다. 사진에서 객체를 식별하고 실제 세계의 특징을 학습한 뒤, 인간의 개입 없이 과거 경험을 바탕으로 스스로 학습하는 것입니다. 이 때 주로 사용되는 모델은 Places2 모델입니다. 이 모델은 대규모 이미지 데이터 세트에 대해 학습되었으며, 사실적인 방식으로 이미지의 색상을 지정하는 방법을 학습했습니다.

이외에도 Google Brain 연구자들이 딥 러닝 네트워크를 이용해 얼굴 이미지를 저해상도로 변환시킨 후, 각 이미지가 무엇과 유사한 형태를 갖고있는지 예측하기도 했습니다. 이를 Pixel Recursive Resolution이라고 하는데, 사진의 해상도를 극명하게 강화시키는 것을 뜻합니다.
실시간 행동 분석
딥 러닝 네트워크는 사진 속 상황을 인지하고 설명할 뿐만 아니라, 사람들의 자세도 예상할 수 있습니다. DeepGlint 라는 곳에서 공개한 영상에 의하면, 딥 러닝을 이용하면 차량이나 사람, 다른 물체들의 상태를 인지할 수 있다고 하죠. 위 사진에서 볼 수 있듯이 은행에서 대기하는 사람들의 행동을 예측할 수도 있습니다.
멸종위기 동물 분류하기

위에서 설명했듯이 CNN (Convolutional Neural Networks)는 이미지 분류에 뛰어난 성능을 보이는 딥 러닝 신경망입니다. 이를 이용해 생물학이나 천문학 등의 다양한 분야에서 활용되고 있습니다. 예를 들어, 바다 속에서 촬영된 고래의 사진을 보고 고래의 종류를 분류함으로써 멸종 위기에 처한 동물들을 보호하고 더 많은 관심을 줄 수 있습니다.
Robot, autonomous driving
자율주행 자동차

테슬라의 차량에는 방대한 양의 데이터를 수집하는 수많은 센서와 카메라, 레이더가 장착되어 있습니다. 딥 러닝 모델은 이 데이터를 사용하여 실제 주행 시나리오를 더 잘 이해하고 정확한 주행 결정을 내릴 수 있도록 훈련합니다.
또한 테슬라는 CNN (컨볼루션 신경망) 과 같은 딥 러닝 알고리즘을 사용하여 원시 센서 데이터를 처리하고 물체나 차선, 교통 표지판 및 기타 관련 도로 요소를 식별하고 있습니다. 이를 통해 시스템이 차량의 환경을 정확하게 이해하고 적절한 주행 결정을 내릴 수 있죠. 테슬라가 자율주행에 딥 러닝을 활용하는 방법에 대한 자세한 내용은 이 글과 이 글을 참고하시면 됩니다.
로보틱스
딥 러닝은 로보틱스에서 다양한 측면에서 활용되어 로봇의 성능을 향상시키고, 더 복잡한 작업을 수행할 수 있도록 하고 있습니다.
- CNN과 같은 딥 러닝 알고리즘이나 최근 많이 사용하는 Vision Transformer를 사용하면 이미지나 비디오, LiDAR 등의 센서 데이터를 처리하면서 객체를 탐지하고 추적할 수 있습니다.
- 딥 러닝 모델을 사용하면 로봇 팔이나 그리퍼 등을 제어하고 정확한 움직임을 계획할 수 있습니다. 모델은 서로 다른 상황에서 물체를 잡거나 놓는 데 필요한 힘과 각도를 학습하여 더 정확하게 작업을 수행할 수 있습니다.
- 로봇이 알려지지 않은 환경에서 경로 계획을 수립하고 장애물을 회피할 수 있습니다. 특히 순환 신경망 (RNN) 과 강화 학습 (Reinforcement Learning)은 센서 데이터를 기반으로 안전한 경로를 찾는 데에 도움이 됩니다.
- 로봇은 예측과 제어에서 강화 학습 알고리즘을 사용하여 행동을 최적화하고 보상 시스템을 통해 배울 수 있습니다. 이러한 방식을 활용하면 로봇은 상황에 맞게 적응하고 어려운 작업을 수행할 수 있는 능력을 향상시킬 수 있습니다.
- 딥 러닝 모델은 로봇의 성능을 시험하기 위한 가상 환경에서 훈련할 수 있습니다. 이를 통해 개발자는 모델을 안전하게 실험하고 개선할 수 있습니다.
LLM
대규모 언어 모델 (LLM) 에서 딥 러닝은 방대한 텍스트 데이터 세트를 가지고 모델을 훈련하는 데 사용됩니다. 이 데이터 세트는 책과 기사부터 소셜 미디어 게시물과 채팅 대화에 이르기까지 무엇이든 될 수 있습니다. 모델은 텍스트의 패턴을 식별하고 데이터 세트의 텍스트와 유사한 텍스트를 생성하는 방법을 학습합니다.
앞에서 설명했듯이, 대규모 언어 모델은 그 자체만으로 방대한 양의 데이터를 필요로 하기 때문에 계산 시간 및 비용이 많이 듭니다. 따라서 사전 훈련된 언어 모델을 파인 튜닝하고 전이 학습을 수행하는 것이 표준화된 방식이 되었습니다. 따라서 딥 러닝이 적용된 LLM을 이해하기 위해서는 파인 튜닝의 방법과 개요에 대해서 알아야 할 필요가 있습니다.

Full fine-tuning
- 가장 일반적인 유형의 파인 튜닝
- 언어 모델의 모든 매개 변수가 학습 중에 업데이트
- 계산 비용이 많이 들 수 있지만 최상의 결과를 획득
Partial fine-tuning
- 언어 모델 매개변수의 일부만 학습 중에 업데이트
- 더 빠르고 효율적으로 파인 튜닝할 수 있지만 Full fine-tuning 보다는 성능이 떨어짐
Linear fine-tuning
- 언어 모델의 매개 변수가 학습 중에 선형적으로 업데이트
- 매개변수가 작은 단위로 업데이트하여 모델이 과도하게 적합해지는 것을 방지
Adaptive fine-tuning
- 언어 모델의 학습 속도가 훈련 중에 조정
- 모델이 잘 학습할 때는 학습 속도가 빨라지고 그렇지 않을 때는 학습 속도가 저하
- 파인 튜닝 프로세스 효율성 개선에 특화
Task-specific fine-tuning
- 텍스트 분류 또는 질문 답변과 같은 특정 작업에 맞게 언어 모델을 파인 튜닝
- 작업과 관련된 레이블이 지정된 데이터 세트를 사용
파인 튜닝 방법론의 선택은 언어 모델의 크기와 복잡성, 사용 가능한 데이터의 양, 원하는 성능 등 여러가지 요인에 따라 달라질 수 있습니다. 다만 사전 훈련된 모델을 파인 튜닝할 때에 실질적인 문제는 소규모 데이터 세트에서 서로 다른 실행 간에 성능이 크게 달라질 수 있다는 것입니다. 최근 많은 방법들이 파인 튜닝의 불안정성을 완화하고자 하고 있습니다.
최근에 가장 주목 받는 것은 Generative AI (생성 모델) 의 파인 튜닝을 통해 일관성과 연관성을 갖춘 출력을 생성하는 모델을 만들고자 하는 것입니다. 방대한 양의 데이터에 대해 사전 훈련을 받은 모델은 인간의 언어와 유사한 텍스트를 생성할 수 있기 때문이죠. 그러나 사전 훈련된 모델은 특정 애플리케이션이나 도메인에 대해 최적의 성능을 발휘하지 못하기 때문에, Generative AI는 파인 튜닝에 더욱 유의해야 합니다.
일반적으로 Generative AI 응용 프로그램을 위해 사전 훈련된 모델의 종류와 특징은 다음과 같습니다.
- GPT-3 (OpenAI) : 인간 언어로 입력된 프롬프트를 이해하고 인간과 같은 텍스트를 생성하기 위해 대량의 텍스트에 대해 사전 교육을 받았습니다.
- DALL·E (OpenAI) : 이미지 및 설명의 대규모 데이터 세트에 대해 교육을 받아, 설명과 일치하는 이미지를 생성할 수 있습니다.
- BERT (Google) : 대량의 텍스트 데이터로 훈련을 받았으며 특정 언어 작업을 처리하도록 파인 튜닝할 수 있습니다.
- StyleGAN (NVIDIA) : 동물, 얼굴 및 기타 물체의 고품질 이미지를 생성합니다.
- VQGAN + CLIP (Electrother) : 생성 모델 (VQGAN) 과 언어 모델 (CLIP) 를 결합하여 텍스트 프롬프트를 기반으로 이미지를 생성합니다.

여기서 가장 많은 사람들에게 알려져 있는 GPT-3의 모델을 파인 튜닝하기 위한 가이드를 확인하실 수 있습니다. 과정을 간단하게 요약하자면 [ API 키 받기 → 데이터 세트 선택 → 학습 스크립트 생성 → 모델 학습 → 평가 ] 로 설명할 수 있습니다. GPT-3 모델을 파인 튜닝할 때 엔지니어가 주의해야 할 것이 있다면 아래와 같습니다.
- 데이터 집합이 클수록 모델의 성능이 향상됩니다.
- 배치 크기가 작으면 모델이 과적합되는 것을 방지하는 데에 도움이 됩니다.
- 학습 속도가 높으면 모델이 분산될 수 있습니다.
- 충분한 수의 에포크에 대해 모델을 훈련하면 더 나은 성능을 발휘합니다.
Generative AI는 사전 훈련된 모델을 필요에 따라 프롬프트 튜닝 또는 파인 튜닝하는 방식으로 구체화하고 여러 용도로 활용할 수 있습니다. 이에 따라 음악, 미술, 작문 등 다양한 분야에서 생성 모델이 사용되기 시작했습니다.
예측
Gebru et ai는 5천만 장의 구글 Street view 사진을 딥 러닝 네트워크에 입력한 결과, 컴퓨터가 자동차를 현지화하고 인식하는 과정에서 각 지역의 인구 통계를 예측할 수 있다는 사실을 발견했습니다. 또한 이를 가지고 흥미로운 인사이트들을 소개하기도 했습니다. 예를 들어, “15분동안 지나가는 차를 지켜봤을 때 세단의 수가 픽업 트럭의 수보다 많다면 그 도시는 다음 대통령 선거 때 민주당을 뽑을 가능성이 더 높다. (88%의 확률) 만약 그 반대라면, 공화당을 뽑을 확률이 더 높을 것입니다. (82%의 확률)” 인구 통계와 성향을 가지고 딥 러닝 네트워크가 예측한 것입니다.
또한 하버드 과학자들은 딥 러닝을 사용하여 컴퓨터에 점탄성 계산을 수행하도록 가르쳤습니다. 이 결과는 지진 예측에 사용되었습니다. 딥 러닝을 적용한 덕분에 계산 시간을 50,000%까지 개선했다고 하죠.
딥 러닝 활용에서 중요한 것은?
딥 러닝 장단점
딥 러닝은 인공지능 분야에서 매우 강력한 도구로 사람들의 신뢰를 받아왔습니다. 하지만 매력적인 강점 뒤에 숨겨진 뚜렷한 약점도 있기 마련이죠.
먼저 딥 러닝의 강점에 대해 살펴보겠습니다.
- 높은 정확도
딥 러닝은 대규모 데이터 세트를 기반으로 훈련하기 때문에 매우 뛰어난 정확도를 가지고 있습니다. 이는 이미지 및 음성 인식 (Image/audio recognition), 자연어 처리 (NLP) 등 다양한 분야에서 유용성을 입증했고, 많은 문제를 해결하고 있습니다. - 복잡한 문제 해결
딥 러닝은 다양한 입력 및 출력 사이의 복잡한 관계를 모델링하기 때문에, 인간이 쉽게 해결할 수 없는 복잡한 문제를 처리하는 데에 능숙합니다. 심층 신경망 내에 은닉층의 개수를 증가시킬 수록, 최적 요인의 표현 방법도 더욱 효과적으로 학습할 수 있습니다. - 자동화
딥 러닝은 데이터에 대한 사전 정의가 필요하지 않고, 훈련 데이터에서 패턴을 배울 수 있으므로 자동화된 학습과 예측이 가능합니다. 기존 규칙 기반 알고리즘 (Rule-based algorithm) 혹은 전통적인 머신러닝 알고리즘보다 딥 러닝 모델이 가지는 자동화 요인 추출 기능으로 제품의 자동화 구현까지 필요한 리소스와 규칙을 빠르게 찾아내고 제품에 커스터마이징 할 수 있습니다. - 일반화 능력
딥 러닝 모델은 비슷한 패턴을 갖는 다른 데이터에 대해서도 예측할 수 있는 능력을 가지고 있습니다. 이는 새로운 데이터에 대해서도 높은 성능을 발휘할 수 있게 해줍니다. - 도메인 지식을 필요로 하는 피쳐 엔지니어링의 영향을 받지 않습니다.
- 잘못된 예측 및 제품 결함으로 인한 비용 리스크를 줄일 수 있습니다.
- 모델이 모델을 구성하는 매개변수 학습에 걸리는 시간을 완화할 수 있습니다.
![Feature visualization of convolutionalnet trained on ImageNet from [Zeiler & Ferugs 2013]](https://global-uploads.webflow.com/6434d6a6071644318551fd72/64c0e5299cd5636e59084aef_18%20what%20is%20deep%20learning_datahunt.webp)
특히 딥 러닝의 문제 해결 능력에 대해서는 여전히 많은 연구가 이루어지고 있습니다. 과거 머신러닝 과학자들이 컨볼루션 신경망의 은닉층 (Hidden layer) 이 많을수록 사물에 대한 구체적인 분석이 이루어진다는 것을 알 수 있었습니다. 이는 이미지 인식 (Image recognition) 분야에서 중대한 발전을 가져다준 계기가 되었죠.
물론 산업에 딥 러닝을 적용하기 위해서는, 주의해야 할 단점도 알고 있어야 합니다.

- 대량의 데이터 필요
딥 러닝은 대규모 데이터 세트로부터 훈련되므로, 충분한 양의 데이터가 필요합니다. 부족하거나 낮은 품질의 데이터는 모델 성능 저하로 이어질 수 있습니다. - 계산 리소스 요구
딥 러닝 모델은 많은 수의 연산과 계산 리소스를 필요로 합니다. 따라서 훈련 및 추론을 위한 강력한 하드웨어가 필요할 수 있습니다. - 블랙박스 모델
딥 러닝 모델은 사람들이 내부 작동 방식을 이해하기 어렵게 만드는 블랙박스 형태일 수 있습니다. 이는 모델의 의사 결정 과정을 설명하기 어렵게 만들 수 있습니다.
우리가 잘 아는 딥 러닝 모델은 대부분 천문학적인 비용을 들여 학습 데이터를 구성 및 정제하고, 이를 가지고 훈련한 결과로 구축된 모델일 가능성이 높습니다. 하지만 사람들은 이면에 있는 것보다 결과만을 보고 열광하기 때문에, 쉽게 생각하는 경우도 많죠. 만약 우리 산업이 당장 많은 데이터를 수집할 수 없는 경우, 오직 딥 러닝 만으로는 성과를 보기 어려울 수도 있습니다. 딥 러닝에서 데이터가 중요한 이유에 대해서는 아래에서 더 자세하게 설명하겠습니다.
딥 러닝에서 데이터가 중요한 이유
초기의 딥 러닝은 모델을 중심으로 연구가 지속되었지만 (model-centric), 현재의 딥 러닝 판도는 데이터 중심(data-centric)이라고 할 수 있습니다. 특히 실전에서 데이터를 활용해 모델을 교육하는 프로젝트를 진행하면, 데이터의 품질에 따라 머신러닝의 성능이 판가름나기도 합니다.
전문가들은 딥 러닝 구축의 문제들에 대해 코드를 개선하기 보다는 데이터를 개선하는 쪽으로 사고 방식을 바꿔야 한다고 설명합니다. 머신러닝 작업의 80%는 데이터 정리라고 말하고 있으며, AI 프로젝트의 성패 역시 데이터 정리에서 결정된다고 해도 과언이 아니라고 말했죠.
.gif)
테슬라는 자율주행차의 핵심 기술인 객체 인식 및 예측, 주행 등을 실현하기 위해 딥 러닝과 데이터를 활용하고 있습니다. 테슬라는 자율주행차를 운전하는 동안 수집되는 다양한 데이터를 활용하여 딥러닝 모델을 학습하고 있습니다. 이 데이터에는 카메라, 레이더, 라이다 등에서 수집된 이미지와 센서 데이터가 포함됩니다. 테슬라는 이 데이터를 활용하여 자율주행차가 주변 환경을 인식하고, 주행을 제어할 수 있도록 학습하고 있습니다.
다른 데이터는 갖지 못한, 테슬라 주행 데이터만의 ‘차이’가 있다면 무엇일까요?
- 컴퓨터 비전 인식: 실제 주행 데이터를 기반으로 하여 물체를 감지
부정확성 감지 - 상황 스냅샷 저장 - 데이터 라벨링 - 재훈련 및 배포 - 예측: 실제 주행 데이터 기반으로 이벤트 시퀀스 앞 뒤 상황을 비전 데이터로 저장
과거 시점부터 되감기하며 라벨링하며, 결론이 정해져 있으므로 오토 라벨링도 가능
비전 데이터의 크기는 신경망으로 간소화하여 저장하며, 오토 라벨링과 데이터 간소화를 통해 학습 데이터 규모를 크게 확장할 수 있음 - 경로 계획 및 실운전: 속도 제한 유지, 차선 변경, 저속 차량 추월 등이 가능
현실 세계에서 인간의 주행 궤도를 모방하는 학습 방식을 적용
라벨러의 수동적인 라벨링 과정이 불필요
따라서 테슬라는 자사 차량으로부터 수집한 방대한 주행 데이터를 테슬라만의 방식으로 빠르고 정확하게 가공하여 그것을 모델에게 학습시킵니다. 이렇게 학습한 모델은 실제 도로 위에서 맞이한 변수에도 유연하게 대응할 수 있으며, 인간의 주행 방식을 모방하여 자연스러운 운전을 가능하게 했죠. 만약 테슬라가 모든 주행 데이터를 가공 과정 없이 raw data 상태로 학습 시켰다면 이런 성과는 거둘 수 없었을 것입니다. 부정확하거나 온전하지 않은 데이터가 포함되어 있을 것이기 때문이죠.
결론: 다양한 방면에서 딥 러닝을 활용하기 위한 사업 역량을 갖추는 것이 중요
“방대한 데이터가 필요”, “Inference에 연산이 많이 필요” 이 두 가지는 과거 딥 러닝의 한계로 지적 되었던 문제입니다. 그러나 과거보다 하드웨어 성능이 개선되면서 연산 속도가 빨라지고 모델의 성능이 개선되면서 한계를 점차 극복하고 있다는 평가입니다. 그러나 여전히 딥 러닝은 시작 단계에서부터 데이터를 필요로 하기 때문에, 학습 데이터의 품질 중요성에 대해서는 여러 번 말을 해도 부족합니다.
하지만 분야에 따라, 딥 러닝에 활용할 데이터를 무제한으로 만들어낼 수 있는 영역이 있고 그렇지 않은 영역이 있습니다. 이럴 때에 일반적으로 시뮬레이션으로 만든 데이터를 활용할 수도 있습니다. 기업은 우수한 품질의 데이터를 가져가는 것을 기본값으로 하고, 데이터를 가지고 모델을 활용하는 접근 방식을 고민하고 intuition 할 수 있는 역량이 중요해지고 있습니다.
또한 딥 러닝의 활용 방안은 매일 더 다양해지고 있으며, 여러 산업에 걸쳐 개발되고 있습니다. 인공지능이 세상을 바꾸고 있다는 말도 이젠 익숙한 표현이죠. 따라서 기업은 딥 러닝을 활용할 것인가에 대한 선택지보다, 어떻게 활용할 것인가에 대해 고민해야 합니다. 비즈니스에 적용할 모델을 결정했다면 그것을 효과적으로 수행할 수 있도록 고도화된 모델을 구축해야 합니다. 여기에서 고품질 데이터 구축 사업의 중요성이 드러납니다.
데이터헌트는 과학기술정보통신부가 주최하고 한국지능정보사회진흥원이 주관하는 ‘인공지능 학습용 데이터 구축사업’의 인공지능 학습용 데이터 품질관리 가이드라인 및 구축 안내서를 기반으로 고객사의 데이터 품질을 관리하고 있습니다. 국내 숙련된 데이터 라벨러를 고용하고 교육하여 고품질의 데이터를 구축하고 있습니다. 또한 동 라벨러를 최소화하려는 테슬라의 노력처럼 Auto-labeling을 도입하기도 했죠. 모든 기업이 모델 훈련 과정에서 데이터 품질의 중요성을 인지하고 시사할 수 있도록 데이터헌트의 여정도 계속 진행될 것입니다.