나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2025-12-12 00:23:46

심층학습

딥러닝에서 넘어옴

[[인공지능|'''인공지능
{{{#!wiki style="font-family: Times New Roman, serif; display: inline"
]]
인공지능기계학습인공신경망딥 러닝
{{{#!wiki style="margin:0 -10px -5px; min-height:calc(1.5em + 5px)"
{{{#!folding [ 설명 펼치기ㆍ접기 ]
{{{#!wiki style="margin:-5px -1px -11px"
인공지능 - 인공지능 구현을 위한 몇 가지 기술이 존재한다.
기계학습 - 많은 매개변수를 넣어주면 모델이 스스로 규칙을 학습하는 방식의 인공지능 구현 방법이다.
인공신경망 - 인간의 뉴런 구조를 본떠 만든 기계학습 방법론이다.
딥 러닝 - 입력층과 출력층 사이에 있는 은닉층에 인공 뉴런을 여러 겹 쌓고 연결한 인공신경망 방법론 중 하나이다. 즉, 단일층이 아닌 실제 뇌처럼 다층 구조로 되어 있다. 21세기에 와서는 인공신경망이 곧 딥러닝이라고 이해해도 무방하다.
인지 컴퓨팅 - 기계학습을 이용하여 특정한 인지적 과제를 해결할 수 있는 프로그램 또는 솔루션을 이야기한다.
뉴로모픽 컴퓨팅 - 인공신경망을 하드웨어적으로 구현한 것이라고 생각하면 된다.
}}}}}}}}}

[[컴퓨터공학|'''컴퓨터 과학 및 공학
{{{#!wiki style="font-family: Times New Roman, serif; display: inline;"
]]
{{{#!wiki style="margin: 0 -10px -5px; min-height:calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
<bgcolor=#1282d7,#1282d7> 기반 학문 수학(해석학 · 이산수학 · 수리논리학 · 선형대수학 · 미적분학 · 미분방정식 · 대수학(환론 · 범주론) · 정수론) · 이론 컴퓨터 과학 · 암호학 · 전자공학 · 언어학(음운론 · 형태론 · 통사론 · 의미론 · 화용론) · 인지과학
하드웨어 SoC · CPU · GPU(그래픽 카드 · GPGPU) · ROM · RAM · SSD · HDD · 참조: 틀:컴퓨터 부품
기술 기계어 · 어셈블리어 · 바이오스 · 절차적 프로그래밍 · 객체 지향 프로그래밍 · 함수형 프로그래밍 · 해킹 · ROT13 · 일회용 비밀번호 · 사물인터넷 · 와이파이 · GPS · 임베디드 · 인공신경망 · OpenGL · EXIF · 마이크로아키텍처 · ACPI · UEFI · LinuxBoot · gRPC · 리버스 엔지니어링 · HCI · UI · UX · 대역폭 · DBMS · NoSQL · 해시(SHA · 브루트 포스 · 레인보우 테이블 · salt · 암호화폐) · RSA 암호화 · 하드웨어 가속
연구 및 기타 논리 회로(보수기 · 가산기 · 논리 연산 · 불 대수 · 플립플롭) · 정보이론 · 임베디드 시스템 · 운영체제(멀티태스킹 · 프로세스 스케줄링 · 데드락 · 식사하는 철학자 문제 · 뮤텍스 · 세마포어 · 인터럽트) · 데이터베이스 · 컴퓨터 언어 · 프로그래밍 언어{컴파일러(어셈블러 · JIT) · 인터프리터 · 유형 이론 · 어휘 분석 · 파싱 · 링커 · 난해한 프로그래밍 언어} · 마크업 언어 · 메타데이터 · 기계학습 · 빅데이터 · 폰노이만 구조 · 양자컴퓨터 · 행위자 모델 · 인코딩(유니코드 · MBCS) · 네트워크(네트워크 포트) · 컴퓨터 보안 · OCR · 슈퍼컴퓨터 · 튜링 머신 · FPGA · 딥러닝 · 컴퓨터 구조론 · 컴퓨터 비전 · 컴퓨터 그래픽스 · 인공지능 · 시간 복잡도(최적화) · 소프트웨어 개발 방법론 · 디자인 패턴 · 정보처리이론 · 재귀 이론 · 자연어 처리(기계 번역 · 음성인식) · 버전 (버전 관리 시스템) · 난수생성 · 놀람 최소화 원칙 · 프레임워크 · 라이브러리 · 모듈 · API · ABI · 이진 탐색
}}}}}}}}} ||

1. 개요2. 함수 모델3. 학습 과정4. 신경과의 유사성5. 역사6. 효율7. 은닉층 문제8. 비전공자의 인식9. MLP10. 응용11. 종류12. 딥 러닝 공부하는 법
12.1. 이해하기 위한 기본기12.2. 관련 사이트12.3. 관련 책·강의자료
12.3.1. 책12.3.2. 강의
13. 연구자14. 둘러보기

1. 개요

심층학습(深層學習) 또는 딥 러닝(deep learning)은 기계학습의 하위 분류 중 하나로, 인공신경망을 기반으로 한 학습 방법론이다. 퍼셉트론들이 층층이 쌓이고 서로 연결된 다층 신경망 구조를 사용하며, 이 구조를 주어진 데이터를 통해 학습하여 입력과 출력 사이의 복잡한 관계를 모델링하는 것을 목표로 한다.

현대 인공지능 기술의 핵심이자 생성형 인공지능의 발전 및 지능형 에이전트가 떠오르면서 앞으로 더더욱 각광받게 될 기술이다. 과거엔 후술된 은닉층 문제 및 연산 장치들의 성능 및 저장공간 부족으로 로 인한 한계로 인해 논문 및 이론상으로만 존재하고 구현 불가능한 기술이었다. 하지만 현대에 들어 은닉층 문제를 해결할 여러 기법들의 발명과 반도체의 성능 향상으로 인해 더 크고 복잡한 모델을 설계하고 학습할 수 있게 되었다.[1]

2. 함수 모델

회귀 분석을 상위 확장한 개념이라 볼 수 있다. 1차 함수인 [math(f(x) = ax + b)]가 있다고 하자. 회귀 분석은 우리가 입력과 출력 쌍 [math((x,y))], 즉 데이터 샘플들은 몇 개 알고 있지만, 이 둘의 관계를 나타내는 함수 [math(f(x) = ax + b)]는 모른다는 가정에서 출발한다. 이 예시에서 회귀 분석의 목표는 그 데이터 분포를 가장 잘 표현하는 a, b를 찾아내는 것이다.

[math(f(x) = ax + b)]와 같은 단순한 수식 형태를 미리 가정하고 그에 맞는 계수(a, b)를 찾는 방식이 회귀 분석의 기본 틀이지만,[2] 현실의 데이터는 직선이나 간단한 곡선으로는 설명할 수 없는 경우가 많다. 따라서 회귀 분석은 그 자체로 의미를 가지는 단순한 값들(집 값, 나이, 키 등)을 입력과 출력으로 가지는 함수를 예측하는 실행활 문제에서 많이 사용된다. [3]

반면, 딥러닝은 이러한 회귀 분석의 한계를 미리 가정하는 함수의 형태를 매우 복잡하게 만듦으로써 극복한다. 즉, 딥러닝은 단순한 선형 함수가 아니라, 입력과 출력 사이에 존재하는 복잡한 관계를 설명할 수 있도록 매우 유연하고 깊은 함수 구조인 인공신경망을 통해 우리가 찾고자 하는 함수를 모델링하고, 이를 데이터를 통해 학습하는 메커니즘으로 구성된다.

인공신경망은 입력층과 출력층 사이에 여러 개의 은닉층을 두고, 각 층마다 인공 뉴런인 퍼셉트론들을 완전 연결하는 구조이다. 각 층은 데이터, 혹은 그 이전 층에서 주어지는 입력 값과 입력 값에 각각 곱해지는 가중치 (weight), 그리고 편향 (bias)과 활성화 함수로 이루어진다. 더 상세한 구조는 인공신경망 참조.

많은 이들이 Transformer, MLP, RNN, CNN과 같은 인공신경망 구조 자체를 딥러닝 그 자체라고 착각하는데, 물론 이러한 모델 구조 역시 매우 중요한 요소인 것은 맞지만 이들이 딥러닝 그 자체는 아니다. 이는 위의 선형 회귀 예시에서 [math(f(x) = ax + b)]라는 함수가 "1차 함수"라는 사실만 가지고 "1차 함수는 회귀 분석이다!"라고 주장하는 것과 비슷하다. 딥러닝은 결국 이름처럼 "깊은 인공신경망을 학습시키는 학습 매커니즘"이며, 구조 + 데이터 + 학습 절차를 모두 포함한다.

인공신경망의 기본적인 학습 방법은 구조에 비해 오히려 단순한 편으로, 미분에 대한 지식만 있다면 고등학교 수학 수준에서도 쉽게 이해할 수 있다. 먼저 모델이 내뱉는 값과 실제 정답 사이의 오차를 계산할 수 있는 손실 함수(loss function)를 정의한다. 우리는 모델이 입력에 대한 결과를 잘 예측하기를 바라므로, 이 손실 함수의 값을 최소화 시킬 수 있는 가중치를 찾는 것이 학습의 목표가 된다.

3. 학습 과정

학습은 크게 다음과 같은 과정을 통해 이루어진다.
이러한 과정을 모든 학습 데이터에 대해 반복함으로써, 모델은 점차 가중치를 조정하여 손실 함수 값을 지속적으로 줄여나가게 된다. 일반적으로 딥러닝에서는 하나의 입력 데이터에 대해 단 한 번만 가중치를 업데이트하는 것이 아니라, 수천 번에서 수백만 번에 이르는 반복 학습을 통해 최적의 가중치 조합을 찾아간다. 이처럼 손실 함수가 최소화되도록 매 반복마다 모델이 조금씩 개선되면서, 결과적으로 새로운 입력에 대해서도 높은 예측 성능을 보이는 모델을 만들어낼 수 있다.

이러한 수학적 과정을 통해 인공신경망은 주어진 데이터에 대한 오차를 줄이도록 가중치를 반복적으로 조정하게 된다. 다만, 이와 같은 수치적 최적화 기법은 인공신경망이 본질적으로 생물학적 신경망의 학습 원리를 모방하고 있다는 점을 이해하면 더욱 직관적으로 받아들일 수 있다.

4. 신경과의 유사성

신경이 학습하는 원리는 다음과 같다. 생물학적 신경망에서는 어떤 사건이 일어났을 때 그에 대한 반응으로 특정 행동이 발생하며, 만약 그 행동이 부정적인 결과를 초래하면 해당 행동에 관여한 신경세포 경로가 덜 활성화된다. 반대로, 긍정적인 결과가 발생하면 관련된 신경세포 경로가 강화된다. 간단한 예시로 강아지 훈련을 생각해보자. 강아지가 잘못된 행동을 했을 때 혼내고, 올바른 행동을 했을 때 간식을 주는 보상과 처벌 과정을 반복함으로써, 시간이 지나면 별도의 강화 없이도 원하는 행동을 스스로 하게 되는 것과 유사하다고 생각할 수 있다.

5. 역사

파일:상세 내용 아이콘.svg   자세한 내용은 인공지능/역사 문서
#!if (문단 == null) == (앵커 == null)
를
#!if 문단 != null & 앵커 == null
의 [[인공지능/역사#s-|]]번 문단을
#!if 문단 == null & 앵커 != null
의 [[인공지능/역사#|]] 부분을
참고하십시오.
인공신경망 자체는 이미 1980년대부터 CNN, RNN 등의 모델이 활발히 연구될 정도로 역사가 깊은 개념이다. 하지만 당시 반도체의 연산 성능 한계로 인해 이론으로만 머물렀고, 이는 수십 년간 이어지는 AI 겨울로 이어졌다.

당시 인공신경망에 대한 학계의 분위기는 무관심을 넘어 혐오에 가까웠을 정도여서, 논문에 '인공신경망'이라는 단어만 들어가도 퇴짜를 맞는다는 소문이 돌았을 정도였다.실제로 암흑기 동안 인공신경망 연구자들은 '연결주의(Connectionism)', '계산 지능(Computational Intelligence)' 등 다른 용어를 사용하며 명맥을 유지해야 했다. 이런 상황 속에서 제프리 힌튼, 얀 르쿤, 요슈아 벤지오와 같은 소수의 소신 있는 연구자들만이 꿋꿋이 연구를 이어갔다.

이 길고 긴 암흑기를 끝낸 것은 2006년, 토론토 대학교제프리 힌튼 교수가 발표한 심층 신념망(Deep Belief Network, DBN)이었다. 이를 기점으로 딥러닝(Deep Learning) 기술이 다시금 부상하며, 2010년대 초반부터 인공지능은 폭발적인 부흥기를 맞이한다. 딥러닝의 위력은 산업계 전반을 뒤흔들었으며, 그 시작은 이미지 인식 분야에서 가장 극적으로 나타났다. 2012년 이미지넷(ImageNet) 물체 인식 대회에서 제프리 힌튼의 제자들이 만든 CNN 기반 모델 'AlexNet'이 압도적인 성능으로 우승하며 기존 컴퓨터 비전 알고리즘들을 모조리 순위권 밖으로 밀어내는 충격을 선사했다. 이후 페이스북이 발표한 얼굴 인식 모델 'DeepFace'는 인식률 97%를 돌파하며 인간의 능력에 근접하는 수준에 이르렀다.

이러한 혁신은 다른 분야로도 빠르게 확산되었다. 음성 인식 분야에서는 별다른 사전 지식 없이 딥러닝 모델을 그냥 가져다 박기만 했는데 인식률이 20% 이상 급상승했다는 전설같은 일화가 업계에 널리 퍼졌다. 구글 딥마인드스스로 게임 공략법을 터득하는 인공지능을 선보였고, 구글 브레인은 수많은 데이터 속에서 스스로 '고양이'의 개념을 학습하는 데 성공하며 세상을 다시 한번 놀라게 했다. 이러한 세계적인 흐름에 발맞춰 네이버, 카카오 등 국내 기업들 역시 딥러닝 기술 연구에 본격적으로 뛰어들고 있는 추세이다.

6. 효율

심층학습의 가장 큰 특징은 모델의 부피를 키우고, 데이터를 쏟아부으면 무조건적으로 그만큼의 성능향상을 보인다는 점이다. 다만, 거대한 심층학습 모델을 만들고 최적화하는 것은 절대 쉬운일이 아니므로 쉽게 생각해서는 안된다. 또한 쏟아 붓기에 적절한 데이터를 확보하는 것도 절대 쉬운 것이 아니다. 그리고 이 많은 데이터를 그 큰 모델에 넣으려면 그만큼 많은 연산서버가 필요하다. 즉 돈이 필요하다. 비좁은 방 안에서 내는 것과 큰 기업이 연구한 결과물 사이의 격차는 크다. 알맞은 조건에서 대부분의 노동력을 대체할 수 있다는 파급력과 엮여 괜히 자본가가 시장공급을 독점하고 많은 사람을 빈민으로 내몰 거라는 예상이 나도는 게 아니다. 네이버의 Deview2013에서 심층학습에 대한 세션이 있었는데 심층학습 이전과 이후를 각각 청동기 시대와 철기 시대에 비유할 정도로 심층학습을 높게 평가했다.

7. 은닉층 문제

심층학습이 일반적인 MLP에 비해 가장 문제가 되는 것 중 하나는 다수의 은닉층을 사용한다는 거다. 이게 무슨 뜻인지 간단하게 설명하자면, 매 층을 지날 때마다 정답을 낼 수 있는 공식의 교정과정이 일어난다고 보면 된다. 다만 그 교정과정이 1부터 0까지의 숫자를 계속 곱하여 수정하는 방식이기 때문에 깊은 은닉층인 경우 차츰 공식의 기울기가 0에 가까워지는 문제가 존재한다. 예를 들어 0과 1사이의 소수 0.9를 계속 곱하다 보면 결국 0에 가까운 값이 되어버린다. 후술하겠지만 이는 심층학습 자체의 문제라기보단, 레이어를 수정할 때 sigmoid 함수를 통해 수정하기 때문에 벌어지는 일이다. sigmoid함수는 모든 데이터를 0과 1사이의 값으로만 표현하기 때문이다. 이 때문에 기울기 소멸 문제는 한때 인공신경망 학계를 고사시킨 전례가 있는데, 다행히도 현재는 크게 다음과 같은 해결책이 있다. 현재 기준으로 자주 쓰이는 방식에는 굵은 체로 표기했다.

만약 노이즈가 제거된 정제한 데이터를 기계학습에 사용하면 레이어 수에 상관없이 일정한 값에 쉽게 수렴을 한다. 또한 그 예측력도 일반적으로 사용되고 있는 회귀모델에 비해서 결코 우수하지 않다. 물론 기존 기계학습의 끝판왕으로 알려졌었던 SVM 과 같은 회귀모델의 경우 심층학습의 기본인 퍼셉트론과 유사한 모델이기도 하고.

그러나 고전적인 회귀모델을 쓰지 않고 행렬방식의 인공지능을 쓰는 가장 큰 이유는, 첫째, 데이터 노이즈를 귀납적인 행렬연산으로 필터링할 수있고, 둘째, 고정된 수학적인 모델값이 아니라 데이터 변화에 대한 학습을 통해 예측모델을 진화시킬 수 있다는 점이다.일반적인 경우, 심층학습과 일반 기계학습과의 차이를 은닉층의 수로 설명하는 사례가 많은데 틀린 말은 아니나, 정확한 설명은 아니다.은닉층의 개수가 기계학습으로 최적해를 찾는 것을 도와주는 것이 아니라, 정제되지 않는 방대한 데이터의 노이즈를 해소하고 빠르게 예측된 해를 찾게 해 주는 것이다.

예컨대, 은닉층(hidden layer)이 많으면, 피드백 회수가 적더라도 수학적으로 빠른 수렴(최적의 해)을 할 수 있고, 데이터 노이즈에 별 영향을 받지 않고 최적 예측값을 구현할 수 있다. 은닉층의 역할은 복잡한 문제를 간단한 문제로 바꾸어 빠른 수렴을 가능하게 하는 것과 데이터 노이즈 영향을 어느 정도 회피할 수 있게 만드는 것이다. 이는 노를 젓는 사람이 많으면 물살에 영향을 극복하여, 빠른 속도로 배를 움직이게 하는 원리와 같다. 바꾸어 말하면 아무리 은닉층이 많다고 해도, garbage in garbage out (나쁜 데이터는 나쁜 결과가 나온다) 이다. 혹은 과잉수렴(overfitting)을 하게 되어 나쁜 결과를 예측할 수도 있다. 인공지능 프로그램들은 그러한 과잉수렴을 막기 위해 데이터 세트(set)를 해석(test)과 검증(validation) 데이터로 나누고, 해석 데이터로 예측모델을 만들어 검증용 데이터로 다시 예측모델을 평가하는 방법을 쓴다.

8. 비전공자의 인식

어떤 사람들은 심층학습을 다른 기계학습과 동떨어진, 마법의 기술처럼 착각하는 경향이 있는데, 사실 심층학습은 기계학습 알고리즘의 한 종류라고 볼 수 있다. 즉, 심층학습 ⊂ 기계학습이다. 예를 들어 심층학습 이전에 가장 유행했던 SVM도 결국 activation 없는 (linear) single layer perceptron에다 hinge loss function + Frobenius norm regularization 을 사용한 것이다. Logistic regression 은 말할 것도 없고. 또, 한번 언급되었지만, 인공신경망류 기법들은 통계학적으로 보면 아주 크고 복잡한 혼합 회귀 모델의 일종이라고 볼 수 있다.

실체를 모르는 윗사람에게 뭐든지 다 할 수 있는 마법의 기술처럼 취급되는 경향이 있다. 다만 실제 업계에서는 사용하기 가장 꺼려지는 방법 중 하나이다. 실제 현장에서 일하는 사람들은 그렇게 나오는지가 중요한데, 심층학습의 가장 큰 단점이자 장점은 설명이 힘든 블랙박스형 알고리즘이기 때문.

그냥 기계학습으로 여러 개의 모아둔 값에서 가장 많은 것을 또 오차계산해서 역계산, 조금씩 수정해서 정확한 윤곽을 만드는 기술이라고 말을 할 수 있다. 심층학습 책에 나오는 퍼셉트론 개념을 생각하면 이 말이 제일 정확한 표현이다. 전공자가 아닌 사람을 위해 설명하자면 참과 거짓을 가르는 경계값이라고 말하면 얼추 맞는다. 기계학습으로 학습한 가장 빈도수가 많은 값에 오차 보정 알고리즘을 더했다고 보면 된다. 수학적으로 왜 학습된 모델의 파라미터 값이 작동하는지는 설명할 수 없다. 그 이유는 백터행렬을 하나의 식으로 표현했기 때문이다. 그것도 최소 수만 개가 넘는 데이터들을 모두 백터와 행렬로 표현한 것이다. 이 말을 뒤집어보면 최소 수만개의 계산이 이루어진다는 것이고 당연히 수학적으로 설명이 불가능하다. 하지만, kernel trick 으로써 이해하면 된다. 심층학습 모델은 그 구조상 특징을 추출하는 feature extractor와, 이를 통해 추출된 feature map을 통해 실질적인 작업을 진행하는 linear layer의 조합으로 주로 이루어져 있는데, GAP 등의 FCN 모델 등을 제외하면 linear seperability를 갖게하는 feature map을 kernel regression으로 우회해서 학습하는 것이 아닌, 고차원으로의 feature map을 즉각적으로 학습하는 기술이다. 즉 비선형 데이터의 집합에 선형성을 부여해주는 projection matrix를 배우는 방법인 것이다.

9. MLP

MLP[11]는 기계학습의 한 종류이며 이때 은닉층의 수가 1개인 경우 ANN, 다수인 경우 DNN이라 구분한다. 심층학습의 '심층(deep)'이란 단어는 어떤 깊은 통찰을 얻을 수 있다는 것을 의미하는 것이 아니며, 은닉층의 수가 많다는 의미이다. MLP는 지도학습으로 분류되며, 심층학습 또한 지도학습이다.

예를 들어보자, 어느 특정한 아이스크림 판매량과 기온과의 상관관계를 이용하여 일기예보를 통해 아이스크림 수요를 예측하는 인공지능 예측 시스템을 구현한다고 하자. 일반적인 기계학습 기법을 사용하여 알고리즘을 만든다면,[12] 기상청에서 온도이력 데이터 수집하고, 과거 아이스크림 일 판매량 데이터를 매칭시켜

28도일 때 → 100개 판매
30도일 때 → 120개 판매라는 예측모델을 만들 수 있을 것이다.

그러나 심층학습적 방법은 여기서 논리적인 사고 학습을 하게끔 모델링을 시키는 것이다. 즉, 습도와 날씨 조건을 온도라는 학습데이터에 선택적으로 학습을 하여 예측하는 프로세스를 적용한다.[13]

if 비가 올 때 → 학습 1
if 비가 안 올 때 → 학습 2
if 습도가 높을 때 → 학습 3
if 습도가 낮을 때 → 학습 4

앞서 언급한 비지도학습[14]의 경우 최근 몇년 사이 심층학습에서 크게 발전한 분야라고 볼 수 있다. 지도학습에서 문제가 되는 것은 매번 레이블(label)이 필요하다는 점인데, 이를 일일이 사람손으로 달아주는 것은 매우 어렵고 시간 낭비가 크다고 할 수 있다. 따라서 데이터의 특징 자체를 배우고, 레이블 정보가 필요없는 비지도학습이 크게 유행하게 되었다. 자연어처리의 연구동향을 살펴보면 대부분이 언어 모형(language model)에 힘을 쏟는 것을 볼 수 있는데, 이 또한 비슷한 맥락이다. 레이블 데이터를 직접적으로 이용하는 것보다, 언어 자체를 이해하는데 많은 노력을 가하고있다 [15]. 이는 ULMFIT, ELMo, BERT로 이어지는 언어 모형의 차이를 보면 쉽게 이해가 가능하다. 또한, 이의 장점은 지도학습에 대한 fine-tuning시 수렴이 매우 빠르다는 점이다 [16]. BERT의 경우 아예 비지도학습을 통한 문장 수준의 임베딩부터 fine-tuning까지 하나의 구조로 이를 가능케함은 물론, 모든 자연어처리 task에서 최고 수준의 성능을 내기까지 했다. 그러나, 비지도학습이 심층학습과 기계학습을 나누는 근간이라고 보기는 어렵다.

앞서 말한 것처럼 분기가 심층학습과 기계학습의 가장 큰 차이라고 가정해보자. 그렇다면 tree계열의 기계학습과 그외 방법론의 차이는 무엇인가? Tree 분기가 MSE를 낮추거나 엔트로피를 낮추는 것과 별반 다를 것이 없어진다.

심층학습과 기계학습의 가장 큰 차이는 representation learning이라 불리는 것으로, 기계학습의 경우 명시적인 feature engineering 과정을 거치지만, 심층학습은 레이어와 비선형함수의 조합으로 이를 해결한다. 컴퓨터 비젼에서 backbone 혹은 feature extractor를 통해 object detection, video understanding 등의 task나, 자연어처리에서 tf-idf, LSA, LDA 등의 embedding 과정을 거치지 않고, look up table을 통해 embedding layer로 표현하는 것이 이러한 representation learning의 예시라고 할 수 있다. [17]

10. 응용

알파고는 바둑승률에 대한 역대 기보 데이터를 찾아 학습하고, 바둑의 행렬위치 (가로 세로 19 * 19) 별 다양한 기보속에서 학습한 결과에 대한 승률을 계산하여 승률이 가장 높은 위치 값에 바둑알을 놓은 방식을 구현한 것이다.[18] 말은 이렇게 쉽게 했지만,어려운데요 그 구현 방식은 매우 어려웠을 것이다. 실제 알고리즘도 알고리즘이지만, 심층학습의 핵심 작업인 기보 데이터의 전처리 과정만 생각해봐도 굉장히 고난이도의 준비작업이었을 것이다.

자율주행 자동차의 심층 이미지 학습에 의한 사물인지와, 사물속도(위치변화/시간), 주행차량 속도 3가지 큰 영역으로 나누고 1초 뒤 , 5초 뒤를 선 예측한 후, 가장 안정적인 방법으로 사물회피를 통해 안정적 주행을 위한 핸들링, 속도제어를 하는 것이다.[19]

크게 보면 이미지 학습과 인지 쪽에 인공지능이 많이 연계되어 있고, 나머지 주행영역은 예측제어 영역이다.

11. 종류

파일:상세 내용 아이콘.svg   심층학습 아키텍처의 종류에 대한 자세한 내용은 인공신경망/종류 문서
#!if (문단 == null) == (앵커 == null)
를
#!if 문단 != null & 앵커 == null
의 [[인공신경망/종류#s-5|5]]번 문단을
#!if 문단 == null & 앵커 != null
의 [[인공신경망/종류#|]] 부분을
참고하십시오.

12. 딥 러닝 공부하는 법

12.1. 이해하기 위한 기본기


회귀 분석을 공부하는 것 또한 중요하다. 현대의 인공지능은 주로 예측, 분류, 생성 등의 문제를 해결하는 데 특화되어 있고 이는 기계학습의 하위 분야인 심층학습도 예외가 아니다. 회귀 분석에서 배우는 선형 회귀, 로지스틱 회귀, 다중 회귀, 소프트맥스 회귀 등은 예로부터 예측과 분석 문제를 수학적으로 모델링해서 풀어 내는데 유용하게 쓰였으며, 현대 인공신경망의 기술적 원리이기도 하다. 참고로 대부분의 심층학습 라이브러리는 기본적인 데이터 셋을 가지고 있으니 이것을 통해 연습해보면 더 좋다. 정말 간단하게 공부하고 넘어가고 싶다면 선형 회귀, 로지스틱 회귀, 소프트맥스 회귀의 개념만 알고 넘어가도 좋다.

선형대수학, 확률 등 모든 개념들은 대학교 1학년 전공 기초 또는 교양 수준의 난이도이다. 강의로 공부하고 싶다면 역시 부스트코스의 확률론 기초, 모두를 위한 선형대수학을 추천한다. 진짜 본인이 수포자여서 수학을 공부하기가 겁난다 싶다면 서점에 가서 인공지능을 위한 수학류의 책을 하나씩 살펴보고, 가장 쉬운 책을 골라서 그거라도 공부하자.

혹여 기계학습, 심층학습에 있어 집중적으로 수학을 더 공부하고 싶다면, "Marc Peter Deisenroth, A. Aldo Faisal, Cheng Soon Ong" 공저의 "Mathematics for Machine Learning"이라는 원서를 추천한다.[20]

12.2. 관련 사이트

* Teachable Machine(https://teachablemachine.withgoogle.com/): 구글에서 만든 누구나 머신러닝 모델을 쉽고 빠르고 간단하게 만들 수 있도록 제작된 웹 기반 도구이다.

12.3. 관련 책·강의자료

12.3.1.

밑바닥부터 시작하는 딥러닝 시리즈 - 일본인이 쓴 책으로 심층학습의 교과서 급의 책. 심층학습에 대해서 제일 쉽게 풀이해놓고 내용도 알차다는 높은 평가를 받는다. 쉽다고 해서 내용이 얕은 것도 아니니 입문자라면 이 책을 사서 공부해보자. 다만 파이썬에 대한 기초 지식은 이 책에서 가르쳐주지 않는다. 현재 5편까지 나온 상태이며, 각 책마다 다루는 주제는 다음과 같다.
- 1편: 딥러닝 기초와 CNN
- 2편: 자연어처리 기초
- 3편: 딥러닝 프레임워크의 구조
- 4편: 강화 학습
- 5편: 생성 모델

케라스 창시자에게 배우는 딥러닝 (Deep Learning with Python) - 프랑소와 숄레[21] 지음. 파이썬 프로그래밍 경험이 있는 사람을 대상으로 하며 머신 러닝, 심층학습을 시작하려는 입문자를 위한 책이다. 파이썬 경험이 있다면 이 책 또한 추천해볼만한 좋은 책이다.

12.3.2. 강의

13. 연구자

14. 둘러보기

학습
행동학습 인지학습 기계학습심층학습
비연합학습 연합학습 사회학습 잠재학습 통찰학습 지도학습 비지도학습 강화학습
습관화 민감화 고전적 조건형성 도구적 조건형성

[1] 물론, 모델의 크기와 형태 뿐만 아니라 학습에 사용되는 데이터의 양과 질 또한 모델의 정확도에 큰 영향을 미친다.[2] 기존 회귀 분석에서도 비모수(non-parametric) 기법을 통해 복잡한 데이터 구조를 다루려는 시도가 존재한다.[3] 더 복잡한 데이터도 특성 공학(Feature engineering)을 통해 다룰 수는 있긴 하다. 가령 이미지 픽셀 값과 같이 그 자체로는 고수준의 의미를 갖지 못하는 값들에 대해서는 여러 수학적 기법을 통해 의미를 가지도록 변환해주어야 한다. 다만, 이러한 기법을 사용하더라도 여전히 차원의 저주 (Curse of Dimensionality)의 한계로 인해 더 큰 데이터를 다루는 데에는 한계가 있다.[4] rectified linear unit: 음수인 경우 0에 수렴하고 양수인 경우는 x = y를 그대로 사용하여 기울기 소멸 문제를 방지한다.[5] ReLU함수가 max(0, x)라면 leaky ReLU는 max(ax, x), a는 작은 수. 예를 들어 0.01[6] leaky ReLU는 max(ax, x)의 a를 bias와 같은 파라미터로 두는 것.[7] x>0 일때는 x, x<0 일때는 α(e^x-1)[8] reconstruction이나 DE solver 에 활용되는 implicit neural network 에서는 sin 함수도 사용한다[9] DenseNet이 대표적인 예[10] ResNet이 대표적인 예[11] Multi-Layer Perceptron, 다층 퍼셉트론. 흔히 심층학습 하면 떠올리는 인공신경망을 가리키는 말.[12] 온도 데이터를 독립변수로 사용하고 판매량을 독립변수로 사용하도록 지정해 주는 것은 심층학습도 동일하다.[13] 심층학습 뿐 아니라 일반적인 지도학습에 해당하는 내용이다.[14] 얀 르쿤의 경우 이를 비지도 학습이라 부르기보단 자기지도학습(self-supervised learning)으로 부르는 것을 선호하는 듯 하다. https://www.facebook.com/722677142/posts/10155934004262143/[15] 언어 모형이 하는 일은 이전 단어들을 통해 다음 단어를 예측하는 것이다. 즉, input 데이터 자체가 label이 된다.[16] 사람으로 생각하면 각 언어를 매번 새롭게 배우는 것과 언어학에 대한 이해도를 높혀 언어를 익히는 것과 동일하다. 후자가 빠른 것은 두말하면 잔소리[17] 위키피디아만 봐도 deep learning (also known as deep structured learning) is part of a broader family of machine learning methods based on artificial neural networks with representation learning.이라고 표현하고 있다. 즉, 심층학습의 근간은 뉴럴네트워크와 representation learning에서 오는 것이다.[18] 실제로는 행렬보다는 기보의 이미지를 보고 학습했다. 즉 바둑판의 '형태'를 이미지화하여 학습용 데이터로 활용했다는 것.[19] 이런 방법으로 인해 레이더, 라이더 센서 등 거리를 측정하는 센서가 따로 없이 오직 카메라 센서만으로 자율주행 구현이 가능하다. 이론상이 아니라 아직은 반자율주행 레벨이지만 실제 일부 양산차에 적용된다. 물론 주위 장애물의 위치를 초당 수천번 읽어내는 초고성능 라이더 센서에 비할 바는 아니지만 그런 센서들의 정신나간 가격을 생각해 보면 심층학습으로 탁월한 단가 절약을 이루어낸 것.[20] 번역서가 존재하지만, 기본적인 부분에서 오류가 있을 정도로 번역 상태가 심각해 권장하지 않는다.[21] 심층학습 프레임워크인 케라스의 창시자이다.

분류