본문 바로가기
기초지식

딥러닝 기초

by FraisGout 2020. 7. 1.

인공지능(Artificial Intelligence)

- 어떠한 인공물에 대해서 인간과 같은 지적인 활동을 할 수 있도록 지능을 부여하는 것

- 인간의 지능적인 활동을 할 수 있도록 컴퓨터를 구현하는 것

- 계산모델을 이용하여 정신적 기능을 연구하는 학문 - Charniak

- 컴퓨터가 지능을 가질 수 있도록 하는 아이디어를 연구하는 학문 Winstone

- 인간의 지능을 필요로 하는 작업을 처리할 수 있는 기계를 만드는 학문 Minsky

- 인간의 지능적 측면 즉, 기계가 잘할 수 있는 계산 같은 것이 아니라 기계는 하기 힘들지만 인간은 비교적 쉽게 잘 할 수 있는 것들, 예를 들면 추론, 인식, 지각과 같은 것을 모의 실험할 수 있는 기계 알고리즘을 만드는 학문 Callan

- 스스로 사물을 이해하고, 주변 환경을 인식하여 그에 대하여 유연성 있게 적응반응하고, 그러한 경험에 근거하여 학습할 수 있는 기계를 만드는 학문.

- 공학적 입장은 사람의 지능을 필요로 하는 작업을 수행할 수 있는 기계를 구현하는 것, 일반적인 의미, 전산학, 통계학, 물리학, 수학 등의 학문이 개입

- 과학적 입장은 컴퓨터를 하나의 도구로 보고, 컴퓨터를 이용하여 인간 지능의 본질과 사고 과정을 밝혀내는 것, 심리학, 언어학, 신경과학, 생리학 등의 학문들과 함께 연구됨

 

인공지능의 특성

인공지능이라는 것은 수치보다 상징 정보를 더 잘 조작한다. 이러한 정보들은 사람이 추론하는 경우 일상적으로 고려하는 것과 동일한 개념, 규칙, 대상, 사실을 표현하는 정보를 말한다. 또한 고전적 알고리즘에 반해 휴리스틱(heuristic)을 흔히 사용한다. 휴리스틱이란 비결정적 경로를 택하는 경험에 기반한 해결 방법이다. 이러한 휴리스틱을 이용하여 문제를 풀 때 적용될 수 있는 문제의 범위는 알고리즘적 해법이 없는 문제(지각, 개념해석 등), 알고리즘이 너무 복잡한 문제(바둑, 체스 등) 두 가지로 나눌 수 있다. 또한 인공지능은 자료와 정보가 불완전부정확하고 본질적으로 학제적인 연구 분야 즉, 여러 주변 학문들과의 깊은 연관을 가지고 있다.

 

인공지능 모델

 

튜링 테스트(Turing Test)

- 기계가 인간과 얼마나 비슷하게 대화할 수 있는지를 기준으로 기계에 지능이 있는지를 판별하고자 하는 테스트로, 앨런 튜링이 1950년에 제안함.

앨런 튜링은 1950년에 철학 저널 Mind 에 발표한 Computing Machinery and Intelligence 에서, 기계가 지능적이라고 간주할 수 있는 조건을 언급했다. "기계가 생각할 수 있는가?"라는 질문에 대해 그는 긍정적이라고 답변하면서, "컴퓨터가 생각할 수 있다면 그것을 어떻게 표현해야 하는가?"라는 핵심 질문에 대해 그는 "컴퓨터로부터의 반응을 인간과 구별할 수 없다면 컴퓨터는 생각(사고, thinking)할 수 있는 것"이라고 주장하였다. 만일 지성 있는 사람이 관찰하여 기계가 진짜 인간처럼 보이게 하는 데 성공한다면 확실히 그것은 지능적이라고 간주해야 한다는 주장이다. 이 검사는 대부분의 사람들을 만족시키지만 일부 철학자들은 여전히 납득하지 못한다. 튜링 테스트 중 관찰하는 사람과 기계는 텔레타이프로 상호교류하는데, 이때 기계는 아직 사람의 외모와 목소리를 완전히 흉내내지 못하기 때문이다. 이 상황에서 기계는 관찰하는 사람에게 자기가 인간이라고 설득함으로써 인간을 속이려 시도하는 셈이다. 1950년에 튜링(Alan M. Turing)은 튜링의 검사(Turing test)라고 알려진 검사법을 제안하여 컴퓨터의 지능적 행위를 평가하려 하였다. 기계가 과연 지능적인 행위를 할 수 있는 가를 판단하는 방법으로 컴퓨터의 지능적 행위의 평가 방법이다.

 

구현 수준 및 접근 모델

어떤 수준까지 지능을 구현할 것인지에 따라 강한 AI(Strong AI)와 약한 AI(Weak AI) 두 가지 관점으로 나누어 생각할 수 있다. 강한 AI는 컴퓨터가 자각(consciousness)을 가질 수 있도록 프로그래밍 될 수 있는 것이다. , 적절한 프로그램만 있으면 컴퓨터도 사람처럼 자각적인 사고를 할 수 있도록 만들 수 있다는 수준의 구현 방법을 말한다. 결국 인간이 가지고 있는 정신도 컴퓨터에 의해 복제될 수 있다는 의미를 내포하고 있다. 반면에, 약한 AI는 컴퓨터가 인간이 가지고 있는 지능적 행위를 보이도록 프로그래밍이 될 수 있다는 것이다. , 컴퓨터에게 자각적인 사고나 생각이라는 것은 필요 없고, 단지 인간이 행동하거나 사고하는 것처럼 흉내 낼 수 있는 수준의 프로그램이 개발될 수 있다는 측면이다. 우리가 지능에 대해 이해할 때 접근할 수 있는 모델로는 기호주의(symbolism)와 연결주의(connectionism)가 있다. 기호주의를 고전적인 AI라고 부르며, 이는 논리적이고 심리학적인 지능에 대한 모델로 물리적 기호 시스템 가정(Physical Symbol System Hypothesis)에 기반한다. 물리적 기호시스템은 인간이 가지고 있는 일반적인 지능을 표현하는 필요 충분한 수단이 된다. 정보를 표현하는 기호와 그것을 가지고 동작하는 프로그램만 적절히 만들어진다면 인간이 가지고 있는 지능도 구현할 수 있다는 개념이다. 반면에 연결주의라는 것은 sub-symbolic AI로써 인간의 두뇌를 모방한 생물학적인 모델이다. 매우 단순한 기능을 가진 신경세포들로 구성되고 이런 세포들의 복잡한 연결을 통해서 고수준의 지능적인 작업을 수행할 수 있는 인간의 두뇌를 모방한 것을 말한다.

 

머신러닝(machine learning)

 

- 기계 학습(機械學習) 또는 머신 러닝(영어: machine learning)은 인공 지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 말한다. 가령, 기계 학습을 통해서 수신한 이메일이 스팸인지 아닌지를 구분할 수 있도록 훈련할 수 있다.

- 기계 학습의 핵심은 표현(representation)과 일반화(generalization)에 있다. 표현이란 데이터의 평가이며, 일반화란 아직 알 수 없는 데이터에 대한 처리이다. 이는 전산 학습 이론 분야이기도 하다. 다양한 기계 학습의 응용이 존재한다. 문자 인식은 이를 이용한 가장 잘 알려진 사례이다.

- 기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야

- 어떠한 작업(Task)에 대해 꾸준한 경험(Experience)을 통하여 그 T에 대한 성능(Performance)를 높이는 것.

 

학습 종류에 따른 분류

기계학습 문제들을 학습 종류에 따라 3가지로 나눌 수 있다. 특히, 레이블(label)의 유무에 따라 지도학습과 비지도학습으로 나뉘는데, 여기서 레이블이란, 학습 데이터의 속성을 무엇을 분석할 지에 따라 정의되는 데이터를 뜻한다.

 

지도 학습(Supervised Learning)

사람이 교사로써 각각의 입력(x)에 대해 레이블(y)을 달아놓은 데이터를 컴퓨터에 주면 컴퓨터가 그것을 학습하는 것이다. 사람이 직접 개입하므로 정확도가 높은 데이터를 사용할 수 있다는 장점이 있다. 대신에 사람이 직접 레이블을 달아야 하므로 인건비 문제가 있고, 따라서 구할 수 있는 데이터양도 적다는 문제가 있다.

 

분류(Classification)

- 레이블 y가 이산적(Discrete)인 경우 즉, y가 가질 수 있는 값이 [0,1,2 ..]와 같이 유한한 경우 분류, 혹은 인식 문제라고 부른다. 일상에서 가장 접하기 쉬우며, 연구가 많이 되어있고, 기업들이 가장 관심을 가지는 문제 중 하나다. 이런 문제들을 해결하기 위한 대표적인 기법들로는 로지스틱 회귀법 [2], KNN, 서포트 벡터 머신 (SVM), 의사 결정 트리 등이 있다.

 

)

 

주차게이트에서 번호판 인식

 

요새 주차장들은 티켓을 뽑지 않고, 차량 번호판을 찍어서 글자를 인식하는데 정확도를 높인다. 번호판은 정형화 되어있으므로 전통적인 컴퓨터 비전으로도 처리는 가능하나, 오염 등에 대해 정확도를 높이자면 기계학습을 하면 더 좋다. 이미지 픽셀 값들에 따라 숫자 글자를 분류한다.

페이스북이나 구글 포토의 얼굴 인식: 역시 컴퓨터 비전을 이용하되 기계학습을 결합. 페이스북에 사진을 올리면 친구 얼굴 위에 이름이 자동으로 달리고는 하는데, 이것 역시 기계학습을 이용한 것. x가 이미지 픽셀, y가 사람 이름인 경우.

음성 인식: 음성 wav 파일에 대해서 해당 wav 부분이 어떤 음절인지를 인식하는 것. 애플 시리, 구글 보이스 등에서 사용된다(질문에 대해서 답해주는 부분 말고, 인식 부분만). x가 음성 파형, y가 음절.

 

회귀(Regression)

레이블 y가 실수인 경우 회귀문제라고 부른다. 보통 엑셀에서 그래프 그릴 때 많이 접하는 바로 그것이다.

 

데이터들을 쭉 뿌려놓고 이것을 가장 잘 설명하는 직선 하나 혹은 이차함수 곡선 하나를 그리고 싶을 때 회귀기능을 사용한다. 잘 생각해보면 데이터는 입력(x)와 실수 레이블(y)의 짝으로 이루어져있고, 새로운 임의의 입력(x)에 대해 y를 맞추는 것이 바로 직선 혹은 곡선이므로 기계학습 문제가 맞다. 통계학의 회귀분석 기법 중 선형회귀 기법이 이에 해당하는 대표적인 예이다.

 

비지도 학습(Unsupervised Learning)

사람 없이 컴퓨터가 스스로 레이블 되어 있지 않은 데이터에 대해 학습하는 것. y없이 x만 이용해서 학습하는 것이다. 정답이 없는 문제를 푸는 것이므로 학습이 맞게 됐는지 확인할 길은 없지만, 인터넷에 있는 거의 모든 데이터가 레이블이 없는 형태로 있으므로 앞으로 기계학습이 나아갈 방향으로 설정되어 있기도 하다. 통계학의 군집화와 분포 추정 등의 분야와 밀접한 관련이 있다.

 

군집화(Clustering)

- 데이터가 쭉 뿌려져 있을 때 레이블이 없다고 해도 데이터간 거리에 따라 대충 두 세개의 군집으로 나눌 수 있다. 이렇게 x만 가지고 군집을 학습하는 것이 군집화이다.

 

분포 추정(Underlying Probability Density Estimation)

- 군집화에서 더 나아가서, 데이터들이 쭉 뿌려져 있을 때 얘네들이 어떤 확률 분포에서 나온 샘플들인지 추정하는 문제이다.

 

반지도 학습(Semisupervised learning)

레이블이 있는 데이터와 없는 데이터 모두를 활용해서 학습하는 것인데, 대개의 경우는 다수의 레이블 없는 데이터를 약간의 레이블 있는 데이터로 보충해서 학습하는 종류의 문제를 다룬다.

 

강화 학습(Reinforcement Learning)

위의 두 문제의 분류는 지도의 여부에 따른 것이었는데, 강화학습은 조금 다르다. 강화학습은 현재의 상태(State)에서 어떤 행동(Action)을 취하는 것이 최적인지를 학습하는 것이다. 행동을 취할 때마다 외부 환경에서 보상(Reward)이 주어지는데, 이러한 보상을 최대화 하는 방향으로 학습이 진행된다. 그리고 이러한 보상은 행동을 취한 즉시 주어지지 않을 수도 있다(지연된 보상). 이 때문에 문제의 난이도가 앞의 두개에 비해 대폭 상승하며, 시스템을 제대로 보상하는 것과 관련된 신뢰 할당 문제 라는 난제가 여전히 연구원들을 괴롭히고 있다 . 대표적으로 게임 인공지능을 만드는 것을 생각해볼 수 있다. 체스에서 현재 나와 적의 말의 배치가 State가 되고 여기서 어떤 말을 어떻게 움직일지가 Action이 된다. 상대 말을 잡게 되면 보상이 주어지는데, 상대 말이 멀리 떨어져 이동할 때 까지의 시간이 필요할 수 있으므로, 상대 말을 잡는 보상은 당장 주어지지 않는 경우도 생길 수 있다. 심지어는 그 말을 잡은 것이 전술적으로는 이익이지만 판세로는 불이익이라 다 끝났을 때 게임을 질 수도 있다. (지연된 보상). 따라서 강화학습에서는 당장의 보상값이 조금은 적더라도, 나중에 얻을 값을 포함한 보상값의 총 합이 최대화되도록 Action을 선택해야 하며, 게다가 행동하는 플레이어는 어떤 행동을 해야 저 보상값의 합이 최대화되는지 모르기 때문에, 미래를 고려하면서 가장 좋은 선택이 뭔지 Action을 여러 방식으로 수행하며 고민해야 한다. 좋은 선택이 뭔지 Action을 찾는 것을 탐색, 지금까지 나온 지식을 기반으로 가장 좋은 Action을 찾아 그것을 수행하는 것을 활용한다고 하여, 강화학습을 푸는 알고리즘은 이 둘 사이의 균형을 어떻게 잡아야 할지에 초점을 맞춘다. 위 방법들과는 다르게 실시간으로 학습을 진행하는 게 일반적이다.

딥러닝

 

딥러닝의 정의

- 딥 러닝은 컴퓨터들이 인간의 두뇌와 비슷한 모양의 대형 인공 신경망을 형성하는 일종의 기계 학습입니다.

- 딥 러닝에서는 대규모 인공 신경망에 학습 알고리즘과 지속적으로 증가하는 양의 데이터를 공급함으로써, "사고"하는 능력과 처리하는 데이터를 "학습"하는 능력을 지속적으로 개선합니다.

- ""이란 단어는 시간이 지나면서 축적되는 신경망의 여러 층을 의미하며, 신경망의 깊이가 깊어질수록 성능이 향상됩니다.

- 현재 대부분의 딥 러닝이 인간의 감독 하에 진행되지만, 자체 훈련과 독립적인 "학습"이 가능한 신경망을 구축하는 것이 목표입니다.

- 딥 러닝이란, 사람의 개입이 필요한 기존의 지도 학습(supervised learning)에 보다 능동적인 비지도 학습(unsupervised)이 결합돼 컴퓨터가 마치 사람처럼 스스로 학습할 수 있는 인공지능 기술입니다.

- 기술적으로 보면, 딥 러닝은 인공신경망(ANN, Artificial Neural Networks)에 기반한 일련의 기계 학습의 집합체로 컴퓨터에게 사람의 사고 방식을 가르치는 알고리즘이라고 할 수 있습니다.

 

딥러닝의 역사

MIT2013년을 빛낼 10대 혁신기술 중 하나로 선정하고 가트너(Gartner, Inc.)2014 세계 IT 시장 10대 주요 예측에 포함시키는 등 최근들어 딥 러닝에 대한 관심이 높아지고 있지만 사실 딥 러닝 구조는 인공신경망(ANN, artificial neural networks)에 기반하여 설계된 개념으로 역사를 따지자면 최소 1980Kunihiko Fukushima에 의해 소개 된 Neocognitron까지 거슬러 올라가야 한다.

1989년에 얀 르쿤과 그의 동료들은 오류역전파 알고리즘(backpropagation algorithm)에 기반하여 우편물에 손으로 쓰여진 우편번호를 인식하는 deep neural networks를 소개했다. 알고리즘이 성공적으로 동작했음에도 불구하고, 신경망 학습에 소요되는 시간(10 개의 숫자를 인식하기 위해 학습하는 시간)이 거의 3일이 걸렸고 이것은 다른분야에 일반적으로 적용되기에는 비현실적인 것으로 여겨졌다.

많은 요소들이 느린 속도에 원인을 제공했는데, 그 중 하나는 1991Jürgen Schmidhuber의 제자였던 Sepp Hochreiter에 의해 분석된 vanishing gradient problem(지역최솟값에 머무르게 되는 원인)이었다. 또한 불연속 시뮬레이션에서 초기 상태를 어떻게 선택하느냐에 따라 수렴이 안되고 진동 또는 발산하는 문제, 트레이닝셋에 너무 가깝게 맞추어 학습되는 과적합 (Overfitting) 문제, 원론적으로 생물학적 신경망과는 다르다는 이슈들이 끊임 없이 제기되면서 인공신경망은 관심에서 멀어졌고 90년대와 2000년대에는 서포트 벡터 머신 같은 기법들이 각광받게 된다.

본격적으로 딥 러닝이란 용어를 사용한 것은 2000년대 딥 러닝의 중흥기를 이끌어간다고 평가할 수 있는 제프리 힌튼과 Ruslan Salakhutdinov에 의해서이며, 기존 신경망의 과적합 문제를 해결하기 위해 이들은 unsupervised RBM(restricted Boltzmann machine)을 통해 학습시킬 앞먹임 신경망(Feedforward Neural Network)의 각 층을 효과적으로 사전훈련(pre-trainning)하여 과적합을 방지할 수 있는 수준의 initialize point를 잡았고, 이를 다시 supervised backpropagation를 사용하는 형태로 학습을 진행한다.

또한 2013년에는 신호처리학회인 ICASSP에서 RBM을 대체하여 과적합을 방지할 수 있는 Drop-out이라는 개념이 소개되면서 사전훈련 보다 훨씬 더 간단하고 강력한 형태로 과적합을 방지할 수 있게 되었다.

 

딥러닝이 주목받게 된 이유

첫 번째는 앞서 딥 러닝의 역사에서 언급한 바 있는 기존 인공신경망 모델의 단점이 극복되었다는 점이다. 그러나 과적합 문제만 해결되었다고 해서 느린 학습시간이 줄어드는 것은 아니다.

 

두 번째 이유로, 여기에는 하드웨어의 발전이라는 또 다른 요인이 존재 한다. 특히 강력한 GPU는 딥러닝에서 복잡한 행렬 연산에 소요되는 시간을 크게 단축시켰다.

 

세 번째 이유로 빅 데이터를 들 수 있다.

 

대량으로 쏟아져 나오는 데이터들, 그리고 그것들을 수집하기 위한 노력 특히 SNS 사용자들에 의해 생산되는 다량의 자료와 태그정보들 모두가 종합되고 분석 되어 학습에 이용될 수 있다.

- 인공신경망의 학습에 사용되는 트레이닝벡터는 이름이 붙어 있는(labeled) 데이터여야 하는데(supervised learning의 경우) 대량의 트레이닝셋 모두에 label을 달아주는 일은 불가능한 일이다. 이런 이유로 초기 학습에 사용되는 일부 데이터에 대해서만 지도학습(supervised learning)을 수행하고 나머지 트레이닝셋에 대해서는 비지도학습(unsupervised learning)을 진행하며, 학습된 결과는 기존 학습의 결과와 앞서 분석된 메타태그 정보들을 종합하여 인식기가 완성된다.

 

딥러닝의 다양한 분야

딥러닝은 다양한 분야, 특히 자동 음성 인식(ASR, automatic speech recognition)과 컴퓨터비전 분야에서 최고수준의 성능을 보여주고 있으며, 이들은 보통 딥러닝의 새로운 응용들의 지속적인 성능 향상을 위해 만들어진 TIMIT(Texas InstrumentsMIT가 제작한 음성 Database), MNIST(이미지 클러스터링을 위한 hand-written 숫자 이미지 데이터베이스로 National Institute of Standards and Technology가 제작) 등의 데이터베이스를 사용했다.

최근에는 Convolution Neural Networks 기반의 딥러닝 알고리즘이 뛰어난 성능을 발휘하고 있으며, 컴퓨터비전과 음성인식등의 분야에서 특히 탁월한 성능을 보이고 있다.

 

딥러닝에서 사용되는 알고리즘

 

심층 신경망

다양한 종류의 심층 신경망 구조가 존재하지만, 대부분의 경우 대표적인 몇 가지 구조들에서 파생된 것이다. 그렇지만 여러 종류의 구조들의 성능을 동시에 비교하는 것이 항상 가능한 것은 아닌데, 그 이유는 특정 구조들의 경우 주어진 데이터 집합에 적합하도록 구현되지 않은 경우도 있기 때문이다.

 

심층 신경망(Deep Neural Network, DNN)

심층 신경망(Deep Neural Network, DNN)은 입력층(input layer)과 출력층(output layer) 사이에 여러 개의 은닉층(hidden layer)들로 이뤄진 인공신경망(Artificial Neural Network, ANN)이다. 심층 신경망은 일반적인 인공신경망과 마찬가지로 복잡한 비선형 관계(non-linear relationship)들을 모델링할 수 있다. 예를 들어, 사물 식별 모델을 위한 심층 신경망 구조에서는 각 객체가 이미지 기본 요소들의 계층적 구성으로 표현될 수 있다. 이때, 추가 계층들은 점진적으로 모여진 하위 계층들의 특징들을 규합시킬 수 있다. 심층 신경망의 이러한 특징은, 비슷하게 수행된 인공신경망에 비해 더 적은 수의 유닛(unit, node)들 만으로도 복잡한 데이터를 모델링할 수 있게 해준다.

이전의 심층 신경망들은 보통 앞먹임 신경망으로 설계되어 왔지만, 최근의 연구들은 심층 학습 구조들을 순환 신경망(Recurrent Neural Network, RNN)에 성공적으로 적용했다. 일례로 언어 모델링(language modeling) 분야에 심층 신경망 구조를 적용한 사례 등이 있다.

합성곱 신경망(Convolutional Neural Network, CNN)의 경우에는 컴퓨터 비전(computer vision) 분야에서 잘 적용되었을 뿐만 아니라, 각각의 성공적인 적용 사례에 대한 문서화 또한 잘 되어 있다. 더욱 최근에는 합성곱 신경망이 자동 음성인식 서비스(Automatic Response Service, ARS)를 위한 음향 모델링(acoustic modeling) 분야에 적용되었으며, 기존의 모델들 보다 더욱 성공적으로 적용되었다는 평가를 받고 있다.

심층 신경망은 표준 오류역전파 알고리즘으로 학습될 수 있다.

 

심층 신경망의 문제점

기존의 인공신경망과 같이, 심층 신경망 또한 나이브(naive)한 방식으로 학습될 경우 많은 문제들이 발생할 수 있다. 그 중 과적합과 높은 시간 복잡도가 흔히 발생하는 문제들이다.

심층 신경망이 과적합에 취약한 이유는 추가된 계층들이 학습 데이터의 rare dependency의 모형화가 가능하도록 해주기 때문이다. 과적합을 극복하기 위해서 weight decay (l2regularization) 또는 sparsity (l1regularization) 와 같은 regularization 방법들이 사용될 수 있다. 그리고 최근에 들어서는 심층 신경망에 적용되고 있는 정규화 방법 중 하나로 dropout 정규화가 등장했다. dropout 정규화에서는 학습 도중 은닉 계층들의 몇몇 유닛들이 임의로 생략된다. 이러한 방법은 학습 데이터(training data)에서 발생할 수 있는 rare dependency를 해결하는데 도움을 준다.

오차역전파법과 경사 하강법은 구현의 용이함과 국지적 최적화(local optima)에 잘 도달한다는 특성으로 인해 다른 방법들에 비해 선호되어온 방법들이다. 그러나 이 방법들은 심층 신경망을 학습 시킬 때 시간 복잡도가 매우 높다. 심층 신경망을 학습시킬 때에는 크기(계층의 수 와 계층 당 유닛 수), 학습률, 초기 가중치 등 많은 매개변수(parameter)들이 고려되어야 한다. 하지만 최적의 매개변수들을 찾기 위해 매개변수 공간 전부를 확인하는 것은 계산에 필요한 시간과 자원의 제약으로 인해 불가능하다. 시간 복잡도를 해결하기 위해, 미니 배치(mini batch, 여러 학습 예제들의 경사를 동시에 계산), 드롭 아웃(drop out)과 같은 다양한 '묘책들이 등장하였다. 또한, 행렬 및 벡터 계산에 특화된 GPU는 많은 처리량을 바탕으로 두드러지는 학습 속도 향상을 보여주었다.

 

합성곱 신경망(Convolutional Neural Network, CNN)

합성곱 신경망(Convolutional Neural Network, CNN)은 최소한의 전처리(preprocess)를 사용하도록 설계된 다계층 퍼셉트론(multilayer perceptrons)의 한 종류이다. CNN은 하나 또는 여러개의 합성곱 계층과 그 위에 올려진 일반적인 인공 신경망 계층들로 이루어져 있으며, 가중치와 통합 계층(pooling layer)들을 추가로 활용한다. 이러한 구조 덕분에 CNN2차원 구조의 입력 데이터를 충분히 활용할 수 있다. 다른 딥 러닝 구조들과 비교해서, CNN은 영상, 음성 분야 모두에서 좋은 성능을 보여준다.

CNN은 또한 표준 역전달을 통해 훈련될 수 있다.

CNN은 다른 피드포워드 인공신경망 기법들보다 쉽게 훈련되는 편이고 적은 수의 매개변수를 사용한다는 이점이 있다.

최근 딥 러닝에서는 합성곱 심층 신뢰 신경망 (Convolutional Deep Belief Network, CDBN) 가 개발되었는데, 기존 CNN과 구조적으로 매우 비슷해서, 그림의 2차원 구조를 잘 이용할 수 있으며 그와 동시에 심층 신뢰 신경망 (Deep Belief Network, DBN)에서의 선훈련에 의한 장점도 취할 수 있다. CDBN은 다양한 영상과 신호 처리 기법에 사용될 수 있는 일반적인 구조를 제공하며 CIFAR 와 같은 표준 이미지 데이터에 대한 여러 벤치마크 결과에 사용되고 있다.

 

순환 신경망(Recurrent Neural Network, RNN)

순환 신경망은 인공신경망을 구성하는 유닛 사이의 연결이 Directed cycle을 구성하는 신경망을 말한다. 순환 신경망은 앞먹임 신경망과 달리, 임의의 입력을 처리하기 위해 신경망 내부의 메모리를 활용할 수 있다. 이러한 특성에 의해 순환 신경망은 필기체 인식(Handwriting recognition)과 같은 분야에 활용되고 있고, 높은 인식률을 나타낸다.

순환 신경망을 구성할 수 있는 구조에는 여러가지 방식이 사용되고 있다.

완전 순환망(Fully Recurrent Network), Hopfield Network, Elman Network, Echo state network(ESN), Long short term memory network(LSTM), Bi-directional RNN, Continuous-time RNN(CTRNN), Hierarchical RNN, Second Order RNN 등이 대표적인 예이다.

순환 신경망을 훈련(Training)시키기 위해 대표적으로 경사 하강법, Hessian Free Optimization, Global Optimization Methods 방식이 쓰이고 있다. 하지만 순환 신경망은 많은 수의 뉴런 유닛이나 많은 수의 입력 유닛이 있는 경우에 훈련이 쉽지 않은 스케일링 이슈를 가지고 있다.

 

제한 볼츠만 머신 (Restricted Boltzmann Machine, RBM)

볼츠만 머신에서, 층간 연결을 없앤 형태의 모델이다. 층간 연결을 없애면, 머신은 가시 유닛(Visible Unit)과 은닉 유닛(Hidden Unit)으로 이루어진 무방향 이분 그래프 형태의 모양이 된다. 결론적으로 모델의 층간 연결을 없앰으로써, 얻는 이점으로 뉴럴 네트워크는 깊어질 수 있었다. 가장 큰 이점은 가시 유닛이 관찰되고 고정(Clamped)되었을 때 은닉 유닛을 추론(Inference) 하는 MCMC 과정이 단 한 번에 끝난다는 것이다.

 

RBM은 확률모델의 계산이 불가능하기 때문에, 학습시 근사법인 MCMC 나 또는 제프리 힌튼 교수가 발견한 CD(Contrastive Divergence) 를 사용하는데, RBM의 모델의 간단함에서 오는 추론에 대한 이점은 샘플링 근간의 학습법이 실용적인 문제에 적용되는데 기여했다. 자세한 학습 방법은 아래에 설명 되어 있다.

RBMDBN의 기본 뼈대가 된다, RBM을 쌓아올리면서(Stacking), Greedy하게 학습함으로써, DBN을 완성한다. DBN을 아는 사람은 기본적으로 RBM은 무방향이기에, RBM이 방향성 있는 모델인 DBN이 되는지 의아할 것이다. 이는 제프리 힌튼 의 제자인 Teh, Y. W 의 우연 발견적인 연구 성과인데, 원래 힌튼 교수는 Graphical Model 이 방향성을 가질 때 생기는 Explaining Away 효과 때문에 학습이 매우 어려워 연구를 무방향성 모델로 선회했다가, RBM을 쌓으면, 다층 RBM이 되는 것이 아니라, DBN과 비슷해진다는 사실을 발견하게 된다. 이 발견은 DBN학습을 단순히 여러 개의 RBM 학습으로 환원시킴으로써(앞서서 얘기했듯이 RBM은 학습이 어렵지 않다) 어려운 DBN 학습의 복잡도를 층의 갯수에 비례하는 복잡도로 낮추었다. 이는 선행학습(Pre-training) 과 미세조정(fine-tuning) 의 새로운 학습 패러다임으로 발전하게 된다.

 

심층 신뢰 신경망(Deep Belief Network, DBN)

심층 신뢰 신경망(Deep Belief Network, DBN)이란 기계학습에서 사용되는 그래프 생성 모형(generative graphical model)으로, 딥 러닝에서는 잠재변수(latent variable)의 다중계층으로 이루어진 심층 신경망을 의미한다. 계층 간에는 연결이 있지만 계층 내의 유닛 간에는 연결이 없다는 특징이 있다.

DBN은 생성 모형이라는 특성상 선행학습에 사용될 수 있고, 선행학습을 통해 초기 가중치를 학습한 후 역전파 혹은 다른 판별 알고리즘을 통해 가중치의 미조정을 할 수 있다. 이러한 특성은 훈련용 데이터가 적을 때 굉장히 유용한데, 이는 훈련용 데이터가 적을수록 가중치의 초기값이 결과적인 모델에 끼치는 영향이 세지기 때문이다.

선행학습된 가중치 초기값은 임의로 설정된 가중치 초기값에 비해 최적의 가중치에 가깝게 되고 이는 미조정 단계의 성능과 속도향상을 가능케 한다.

DBN은 비지도 방식으로 계층마다 학습을 진행하는데 이때 각각의 계층은 보통 RBM의 형태를 띄고 있다. RBM들을 쌓아 올리면서 DBN을 훈련시키는 방법에 대한 설명은 아래에 제공 되어 있다. RBM은 에너지 기반의 생성 모형으로 가시 유닛과 은닉 유닛으로 이루어진 무방향 이분 그래프 형태이다. 가시 유닛들과 은닉 유닛들 사이에만 연결이 존재한다.

RBM이 훈련되고 나면 다른 RBM이 그 위에 쌓아 올려짐으로써 다중 계층 모형을 형성한다. RBM이 쌓아 올려질 때마다, 이미 훈련된 RBM의 최상위 계층이 새로 쌓이는 RBM의 입력으로 쓰인다. 이 입력을 이용하여 새 RBM이 훈련되고, 원하는 만큼의 계층이 쌓일 때까지 해당 과정이 반복된다.

실험결과에 따르면, CD의 최대가능도 근사가 굉장히 투박함에도 불구하고, 심층 신경망 구조를 학습하기에는 충분히 효과적인 방식이라고 한다.

 

심층 Q-네트워크(Deep Q-Networks)

- 강화 학습을 위한 가장 최신 딥 러닝 모델

 

 

강화 학습(Reinforcement learning)은 기계 학습의 한 영역이다.

 

행동심리학에서 영감을 받았으며, 어떤 환경 안에서 정의된 에이전트가 현재의 상태를 인식하여, 선택 가능한 행동들 중 보상을 최대화하는 행동 혹은 행동 순서를 선택하는 방법이다. 이러한 문제는 매우 포괄적이기 때문에 게임 이론, 제어이론, 운용 과학, 정보 이론, 시뮬레이션 기반 최적화, 다중 에이전트 시스템, 떼 지능, 통계학, 유전 알고리즘 등의 분야에서도 연구된다. 운용 과학과 제어 이론에서 강화 학습이 연구되는 분야는 "근사 동적 계획법"이라고 불린다. 또한 최적화 제어 이론에서도 유사한 문제를 연구하지만, 대부분의 연구가 최적해의 존재와 특성에 초점을 맞춘다는 점에서 학습과 근사의 측면에서 접근하는 강화 학습과는 다르다. 경제학과 게임 이론 분야에서 강화 학습은 어떻게 제한된 합리성 하에서 평형이 일어날 수 있는지를 설명하는 데에 사용되기도 한다.

강화 학습에서 다루는 '환경'은 주로 마르코프 결정 과정으로 주어진다. 마르코프 결정 과정 문제를 해결하는 기존의 방식과 강화 학습이 다른 지점은, 강화 학습은 마르코프 결정 과정에 대한 지식을 요구하지 않는다는 점과, 강화 학습은 크기가 매우 커서 결정론적 방법을 적용할 수 없는 규모의 마르코프 결정 과정 문제를 다룬다는 점이다.

강화 학습은 또한 입출력 쌍으로 이루어진 훈련 집합이 제시되지 않으며, 잘못된 행동에 대해서도 명시적으로 정정이 일어나지 않는다는 점에서 일반적인 지도 학습과 다르다. 대신, 강화학습의 초점은 학습 과정에서의(on-line) 성능이며, 이는 탐색(exploration)과 이용(exploitation)의 균형을 맞춤으로써 제고된다.

탐색과 이용의 균형 문제 강화 학습에서 가장 많이 연구된 문제로, 다중 슬롯 머신 문제(multi-armed bandit problem)와 유한한 마르코프 결정 과정 등에서 연구되었다.

 

자동 음성 인식

미국의 8가지 방언을 사용하는 총 630명의 사람이 읽은 10가지 문장으로 이루어져 있다. 데이터의 크기가 작기 때문에 다양한 설정을 효과적으로 적용할 수 있다. 더 중요한 점은 TIMIT에서 음소 순서 인식(phone-sequence recognition)을 고려한다는 점이다.

따라서, 단어 순서 인식(word-sequence recognition)과는 달리 아주 약한 "언어모델"을 허용하고 음성 인식에서의 음향 모델 측면을 더 쉽게 분석할 수 있다.

2009 ~ 2010년 무렵, 크고 작은 범위의 음성인식에 대한 딥 러닝 기술 활용을 위해서 많은 투자가 있었는데, Li Deng과 그의 동료들은 TIMIT에서의 GMM DNN 모델을 비교하는 실험을 수행하였다.

결국 그들은 음성인식에서의 딥 러닝 활용에 있어서 가장 앞서나가게 되었다. 이 분석은 먼저 식별적 DNN과 발생적 모델 사이의 성능 비교(1.5% 이하의 오차율)로 수행되었다.

자동 음성 인식 분야의 201410월까지의 최신 동향은 마이크로소프트 리서치의 책 에 잘 정리되어있다.

또한 자동 음성인식과 관련된 배경 지식과 다양한 기계학습 패러다임의 영향을 잘 정리한 글을 참고할 수 있다.

대용량 자동 음성인식은 최근 딥 러닝의 역사에서 산업계와 학계를 모두 아우르는 처음이자 가장 성공적인 케이스라고 할 수 있다.

2010년부터 2014년까지, 신호처리와 음성인식에 대한 주요 학술회의인 IEEE-ICASSP Interspeech는 음성인식을 위한 딥 러닝 분야의 합격 논문 개수에 있어서 거의 기하급수적인 성장을 보여주었다.

더 중요한 것은, 현재 모든 주요 상업 음성인식 시스템(MS 코타나, 스카이프 번역기, 구글 나우, 애플 시리 등등)이 딥 러닝 기법에 기반하고 있다.

- 자음접변, 구개음화 등의 일반적인 음운 현상을 반영하기 위해 발음규칙이 사용.

- 인식 어휘 자체를 등록하기 위해 어휘 사전 사용.

- 음향모델 측면에서 딥러닝 기술이 매우 효과적.

- 언어모델 측면에서는 그 효 과가 상대적으로 약하게 나타남.

- 딥러닝 및 잡음처리 기술의 발전으로 사람간의 자연스런 대화 음성을 대상으로 기술 고도화 가 이루어지고 있음.

 

 

대화체 음성인식이 어려운이유

- ‘그러니까’,‘ ’,‘ 아참등등 헤아릴 수 없이 많은 간투사가 수시로 사용

- 더듬거 림, 어휘의 도치 현상, 동일 어휘의 반복이나 어휘적 단락(끊어 짐), 재발성 등등으로 인한 비문법적인 비정형 발성이 빈발함 에 기인

- 비정형 자연어(unstructured spontaneous speech)라고로 정의.

 

딥러닝 음성인식 기술의 전망

- 학습의 기본 알고리즘 측면에서는 영상, 문자, 음성, 제스처 등 단일한 모달리티(modality)를 독립적으로 학습 및 인식하는 방식에서 나아가 영상이나 음성 등의 여러 가지 모달리티를 동시에 학습 및 인식하는 방식으로 변화할 것.

) 음성 신호와 입술의 움직임을 동시에 사용해서 고성능 음성인식이 가능하게 되는 것.

- 시간적으로나 공간적으로 분리된 대상(object)을 인식하는 이산형(discrete), 분절형 (segmented) 방법론으로부터 이들을 시간적, 공간적으로 연동해 학습함으로써 인식 성능을 높이는 방향으로 발전하게 될 것.

) 단순한 정지 영상 또는 그 결합을 인식 대상으로 하지 않고 연속된 영상 자체를 인식하는 동적/증강형 (dynamic/incremental) 학습으로 발전하게 될 것.

- 단순 데이터나 패턴을 분류하는 데서 나아가 대상이 내포하는 의미까지 인지하게 되는 방향으로 발전하게 될 것.

) 음성 신호에서 특정 어휘를 인식한 다음 단어가 문맥적으로 어떤 의미를 내포하고 있는지, 어떠한 감정이 포 함되어 있는지까지 파악하여 대화를 진행할 수 있게 될 것.

- 향후 이러한 수동 또는 반자동으로 생성되는 지식은 데이터만 주어지면 인공지능이 스스로 학습해서 지식을 쌓아가는 형태인 자율 학습 방법론에 따라 사람의 개입이 최소화되는 방향으로 발전할 전망이다.

- 하나의 지식이 생성되면 유사한 지식을 자가적으로 확장해 나가는 다중도메인 확장 지식, 다양한 지식을 검색하고 분석하는 방식에서 나아가 기존 지식에 기반해서 새로운 사실을 예측해 나가는 예측형 지능으로 발전할 전망이다.

'기초지식' 카테고리의 다른 글

코딩 기초  (0) 2020.07.01
인터넷 기초  (0) 2020.07.01

댓글