딥러닝이란?
인공지능, 머신러닝과 딥러닝 정의
- `인공지능(Artificial Intelligence)` : 문제를 인식하고 해결하는 능력인 지능을 구현하는 기술
- ` 머신러닝(Machine Learning)` : 기계 스스로 학습하여 지능을 습득하는 기술
- 학습 알고리즘을 통해 데이터에 숨겨진 정보와 규칙을 기계 스스로 습득하고 그 결과를 이용해서 새로운 것을 예측하고 추론하는 기술
- `딥러닝(Deep Learning)` : 생체 신경망을 모방해서 만든 `인공 신경망(Artifical Neural Network, ANN)`을 이용하여 복잡한 데이터 관계를 찾아내는 머신러닝 기법
- 인공 신경망이 `깊은 신경망(Deep Neural Network)`으로 발전하여 딥러닝이라는 이름 명명
머신러닝과 딥러닝의 관계
전통적인 머신러닝 기법들은 특정한 문제에 맞게 알고리즘이 특화되어 있다. 이에 비해 딥러닝 모델은 데이터의 복잡한 관계를 잘 표현하기 때문에 다양한 문제에 보편적으로 사용이 가능하다. 따라서 작은 규모의 단순한 문제를 풀 때는 기존 머신러닝 기법으로 빠르고 가볍게 해결하고, 기존 머신러닝 기법으로 해결할 수 없는 수준으로 문제가 커지고 복잡해지면 딥러닝 모델을 적용할 수 있을지 검토해 보는 것이 좋다.
머신러닝 기법 구분
- `지도 학습(Supervised Learning)` : 입력 데이터에 대한 정답을 사전에 정의해서 학습 데이터 제공하는 것
- 모델은 자신의 예측과 정답의 차이를 보고 오차를 줄이도록 학습
- `분류(classification)`, `회귀(regression)`
- `비지도 학습(Unsupervised Learning)` : 전문가의 개입 없이 순수하게 데이터만으로 학습하는 방법
- `클러스터링(Clustering)` : 비슷한 데이터끼리 묶어줌
- `차원 축소(Dimension Reduction)` : 고차원 데이터를 저차원 데이터로 변환
- `표현 학습(Representation Learning)` : 데이터의 핵심적인 정보를 낮은 차원의 잠재 데이터로 표현
- `데이터 생성(Data Generation)` : 새로운 데이터를 생성
- `연관 규칙(Association Rule)` : 데이터 간의 규칙을 찾아냄
- `협업 필터링(Collaborative Filtering)` : 사람의 행동을 분석하여 관심 항목을 추천
- `강화 학습(Reinforcement Learning)` : 순차적인 의사 결정 문제(Sequential Decision Problem)을 다루는 방법
- 현재의 의사 결정이 미래에 영향을 미칠 때 목표를 달성하기 위한 순차적인 의사 결정 방법을 학습
- 행동 심리학의 '보상과 강화가 행동의 형성 과정에 큰 영향을 미친다'는 행동강화 이론을 토대로 보상을 최대화하는 행동을 선택하도록 학습하는 방식
딥러닝의 장점과 한계
딥러닝의 장점
① 함수를 근사하는 능력이 뛰어나다
딥러닝은 범용적인 함수 근사 능력을 갖추고 있어 기존 머신러닝 기법으로는 한계가 있는 클래스 간의 경계가 아주 복잡한 데이터를 분류하거나 복잡한 형태의 `비선형 함수(nonlinear function)`를 근사할때 매우 뛰어난 성능을 보인다.
② 특징을 자동으로 추출한다
기존 머신러닝 기법을 사용할 때는 도메인 전문가가 모델에 입력할 `특징(feature)`을 설계하고 데이터에서 직접 `특징 추출(feature extraction)`을 수행해야 했다. 그러나 인공 신경망의 경우 중요한 특징에는 높은 `가중치(weight)`를, 중요하지 않은 특징에는 낮은 가중치를 부여함으로써 특징을 자동으로 추출한다. 이를 통해 사람의 `편향(bias)`으로 생기는 오류를 배제할 수 있고, 사람의 개입 없이 `종단간(end-to-end)`으로 진행할 수 있어 추론 시간이 빨라지고 성능도 높아진다.
③ 모델의 확장성이 뛰어나다
딥러닝 모델은 뉴런 연결로 구성되어 있기 때문에 복잡한 문제를 해결하기 위해 큰 모델을 구성하려면 뉴런 수를 늘리면 된다. 또한 뉴런을 실행할 때 병렬처리가 가능한 구조로 되어 있어 모델을 대규모로 확장하기 쉽다.
④ 기존 머신러닝보다 훨씬 좋은 성능을 보인다
딥러닝은 이미지 처리, 자연어 처리, 음성 인식 등의 분야에서 성능이 급격히 발전하였으며, 광범위한 분야에실용적으로 접목되고 있다.
딥러닝의 한계
① 파라미터가 많기 때문에 상대적으로 많은 학습 데이터가 필요하다
딥러닝은 기본적으로 모델 파라미터가 많고 학습 데이터가 많이 필요하지만, 데이터의 양이 증가할수록 모델의 크기를 늘려줄 수 있으므로 성능도 그에 비례하여 향상한다.
② 훈련을 위한 시간과 비용이 많이 든다
훈련 과정에서 데이터가 많이 필요하기 때문에 후련 시간과 컴퓨팅 자원도 증가한다. 이러한 훈련 시간과 비용을 줄이고 효율을 높이기 위해 다양한 연구가 진행 중이다.
- `전이 학습(Transfer Learning)` : 처음부터 학습하지 않고 대용량 데이터로 사전에 학습된 모델을 이용해 빠르게 학습
- 적은 양의 데이터로 모델을 빠르게 튜닝해서 새로운 목적에 맞게 사용 가능하며 모델의 성능까지 보장
- `메타 학습(Meta Learning)` : 인간과 같이 빠르게 학습하는 능력을 만들기 위해 여러 작업의 학습 방식을 학습한 후에 유사한 작업을 적은 데이터로 빠르게 학습
- `평생 학습(Lifelong Learning)` : 한 번 학습한 내용을 잊지 않고 계속해서 새로운 것을 누적해서 학습
- `액티브 학습(Active Learning)` : 성능에 큰 영향을 미치는 데이터를 선별 및 학습해 선별된 적은 데이터로 빠르게 학습
③ 설정 파라미터가 많아서 최적의 모델과 훈련 방법을 찾으려면 상당한 검색 시간과 튜닝 시간이 필요하다
이에 따라 최적의 딥러닝 모델을 자동으로 찾아주는 `신경망 구조 탐색(Neural Architecture Search, NAS)` 연구 개발이 활발하게 진행되고 있다.
④ 오류를 파악하거나 디버깅하기 어렵다
이러한 오류를 파악하고 디버깅하기 어려운 단점을 개선하기 위한 다양한 연구가 진행 중이다.
- 개발 과정의 편의를 돕는 프레임워크나 자동화, 시각화, 모니터링에 필요한 도구 개발이 활발하게 진행
- `설명 가능한 인공지능(eXplainable AI, XAI)` : 신경망 모델 내부에서 일어나는 내용을 확인하는 기법
- 딥러닝 모델 기반 서비스의 관리자나 사용자들이 인공 신경망이 어떻게 학습했는지, 어떤 입력이 출력에 큰 영향을 미치는지와 같은 내용을 이해할 수 있도록 정량화하고 시각화
⑤ 지도 학습에서는 타깃 데이터를 만드는 데 많은 비용이 발생한다
지도 학습에서 타깃 데이터를 만드는 데 많은 비용이 발생하는 것을 개선하기 위한 다양한 연구가 진행 중이다.
- `생성 모델(Generative Model)` : 훈련 데이터를 자동으로 생성해내는 방법
- `준 지도 학습(Semi-supervised Learning)` : 사람이 제공하는 힌트 데이터나 타깃 데이터를 이용하여 자동으로 타깃을 생성
- `자기 지도 학습(Self-supervised Learning)` : 학습 과정에 사람이 개입하지 않아도 되는 방법
이 포스팅은 '딥러닝 교과서' 책을 공부하고 정리한 글입니다.