페이지

2022년 7월 15일 금요일

1.2.1 확률적 모델링

 확률적 모델링(probabilistic modelling)은 통계학 이론을 데이터 분석에 응용한 것 입니다. 초창기 머신 러닝 형태 중 하나고 요즘도 널리 사용됩니다. 가장 잘 알려진 알고리즘 주 하나는 나이브 베이즈(Naive Bayes)알고리즘 입니다.

나이브 베이즈는 입력 데이터의 특성이 모두 돌립적이라고 가정하고 베이즈 정리(Bayes' theorem)를 적용하는 머신 러닝 분류 알고리즘입니다.(가한 또는 '순진한'(naive)가정입니다. 여기에서 이름이 유래되었습니다.) 이럼 형태의 데이터 분석은 컴퓨터보다 앞서 있었기 때문에 첫 번째 컴퓨터가 등자하기 수십년 전에는 수작응로 적용했습니다(거의 1950년대로 거슬러 올라갑니다). 베이즈 정리와 통계의 모든 토대는 18세기까지 거슬러 올라갑니다. 이 정도가 나이브 베이즈 분류기를 사용하기 위해 알아야 할 전부입니다.

이와 밀접하게 연관된 모델이 로지스틱 희귀(logistic regression)입니다(줄여서 logreg라고 하겠습니다.) 이 모델은 현대 머신 러닝의 "heelo world"로 여겨집니다. 이름 때문에 혼동하지 마세요. logreg는 휘귀(regression)알고리즘이 아니라 분류(classification)알고리즘입니다. 나이브베이즈와 매우 비슷하게 logreg는 컴퓨터보다 훨씬 오래 전부터 있었습니다. 하지만 간단하고 다목적으로 활용할 수 있어서 오늘날에도 여전히 유용합니다.

데이터 과학자가 분류 작업에 대한 감을 빠르게 얻기 위해 데이터셋에 적용할 첫 번째 알고리즘으로 선택하는 경우가 많흡니다.

1.2 딥러닝 이전: 머신 러닝의 간략한 역사

 딥러님은 AI역사에서 찾을 수 없을 만큼 대중에게 많은 관심과 업계의 투자를 받고 있습니다. 하지만 이것이 머신 러닝의 첫 번째 성공은 아닙니다. 오늘날 산업계애ㅔ서 사용하는 대부분의 머신러닝 알고리즘은 딥러닝 알고리즘이 아닙니다. 또 딥러닝이 모든 작업에 맞는 만능 도구는 아닙니다. 때로는 딥러닝을 적용하기에 데이터가 충분하지 않거나 다른 알고리즘이 문제를 더 잘 해결할 수도 있습니다. 만약 딥러닝이 처음 배우는 머신 러닝 알고리즘이라면, 딥러닝 해머를 들고서 모든 문제를 못처럼 보고 있는 자신을 발견할지도 모릅니다. 이런 함정에 빠지지 않기 위한 유일한 방법은다른 방법을 배우고 가능할 때 이런 기술을 연습하는 것입니다.

전통적인 머신 러닝 방법에 대한 자세한 걸명은 이 책의 범위를 넘어섭니다. 하지만 이들을 간단하게 소개하고 지금까지의 역사적 배경을 설명하겠습니다. 이를 통해 딥러닝을 머신 러닝의 넓은 범주 안으로 인식하고 딥러닝이 어디서 왔는지 왜 중요한지 더 잘 이해하게 될 것입니다.

1.1.8 AI에 대한 전망

 AI에 대한 단기간의 기대는 비현실적일지도 모르지만, 장기적인 전망은 매우 밝습니다. 의료 진단에서부터 디지털 비서까지 확실히 이전과는 다른 여러 중요한 문제에 딥러닝을 적용하기 시작했습니다. AI 역사상 유례를 찾아볼 수 없는 수준의 투자에 크게 힘입어 AI연구는 지난 5년간 놀라울 정도로 매우 빠르게 발전해 왔습니다. 하지만 이런 발전 중에서 비교적 아주 일부만이 현실 세계의 제품과 프로세스에 적용되었습니다. 딥러닝 연구 성과의 대부분은 아직 정굗되지 않았거나, 적어도 전체 산업계를 통틀어서 딥러닝이 풀 수 있는 다양한 종류의 문제에는 적용되지 않았습니다. 일반 의사들은 아직 AI를 사용하지 않고 있을 것 입니다. 물론 스마트폰과 간단한 짐룬을 해서 그럴싸한 대답을 얻거나 아마존 닷컷(Amazon.com) 에서 유용한 상품 추천을 받고, 구글 포토(Google Photos)에서 '생일'을 검색해서 지난달의 딸아이 생일 파티 사진을 바로 찾을 수 있습니다. 이런 기술은 이전에 비해 많이 발전되었습니다. 하지만 이런 도구는 여전히 우리 일상생활의 액세서리일뿐입니다. AI는 우리가 일하고 생학하고 생활하는 것의 중심에 들어오지 않았습니다.

AI가 아직 폭넓게 적용되지 못했기 때문에 지금 당장 AI가 이 세상에 큰 영향을 줄 수 있으리라고 믿기 힘들지도 모릅니다. 비슷하게 1995년으로 돌아가 보면, 그때는 인터넷이 미래에ㅐ 미칠 영향을 믿기 힘들었을 것입니다. 그 당시에 대부분의 사람들은 인테넷이 자신과 어떻게 연관이 있을지, 우리의 일상생활을 어떻게 바꿀지 이해하지 못했습니다. 오늘날 딥러닝과 AI도 동일합니다. 그러므로 실수를 범하지 말아야 합니다. 결국 AI의 시대는 도래할 것입니다. 그리 멀지 앟은 미래에 AI가 우리의 비서가 되고, 심지어 친구가 될 것입니다. 우리의 질문에 대답하고 아이의 교육을 도와주고 건강을 보살펴 줄 것입니다. 식료품을 문 앞에 배달해 주고 A부터 B지점까지 차를 운전해 줄 것입니다. 점점 더 복잡해지고 정보가 넘쳐 나는 세상에 대한 인터페이스(interface)가 될 것입니다. 더욱 중요한것은 AI가 유전학에서부터 수학까지 모든 분야의 과학자들을 도와 새롭고 놀라운 발견을 이루어 냄 으로써 인류 전체를 발전시킬 것이란 점입니다.

이 와중에 몇 번의 난관을 만날 수 있고 새루운 AI겨울이 올 수도 있습니다. 마치 인터넷 업계가 1998-1999년 사이에 매우 과열되었다가 2000년대 초에 몰라하면서 툭자가 멈추어 고통을 받았던 것과 같습니다. 하지만 결국 AI 시대는 올 것입니다. 오늘날의 인터넷처럼 우리 사회와 일상생활을 구성하는 거의 모든 과정에 AI가 적용될 것입니다.

단기간의 과대 선전은 믿지 말고 장기 비전을 믿으세요. AI가 아직 아무도 감히 생각하지도 못했던 완전한 모습으로 진정한 잠재성을 발휘하려면 어느 정도의 시간이 걸리지 아무도 모릅니다. 하지만 AI의 시대는 올 것이고 이 세상을 환상적인 방식으로 변모시킬 것입니다.

1.1.7 단기간의 과대 선전을 믿지 말자

 딥러닝이 최근 몇 년간 놀라운 성과를 이끌어 냈지만, 사람들이 향후 10년 안에 기대하는 성과는 가능한 것보다 월씬 높은 편입니다. 자율 주행 자동차 같은 세상을 바꿀 만한 몇 가지 애플리케이션은 이미 가까이 다가왔지만, 신뢰할 만한 대화 시스템이나 사람 수준의 기계 번역 그리고 사람수준의 자연어 이해처럼 더 많은 것이 오랫동안 어려운 문제로 남아 있을 것 같습니다. 특히 사람수준의 일반 지능(general intelligence)에 관한 이야기는 너무 심각하게 다르지 않는 것이 좋습니다. 단기간에 많이 성장할 것이라고 큰기대를 화는 것은 위험합니다. 기술이 문제를 해결하지 못하면 연구에 대한 투자가 크게 줄어들고 발전은 오랫동안 정체될 것 입니다.

예전에도 이런일이 있었습니다. 과거에도 AI는 장밋빛 전망 뒤에 이어진 실망과 회의의 사이클을 두 번이나 경험했고, 결국 투자의 감소로 이어졌습니다. 1960년대 심볼릭AI가 그 시작이었습니다. 초창기에 심볼릭AI에 대한 기대는 매우 높았습니다. 심볼릭 AI방법에 관한 가장 유명한 개척자이자 지지자 중 한명인 마빈 민스키(Marvin Minsky)는 1967년에 "이번 세대 안에... '인공 지능'을 만드는 문제는 거의 해결될 것입니다." 라고 주장했습니다. 3년 후인 1970년에는 더 정확하게 정량화된 예측을 했습니다. "3년에서 8년 이내에 평균적인 사람 수준의 일반 지능을 가진 기계가 나올 것이니다." 2016년에도 그런 성과는 여전히 먼 미래의 일로 보입니다. 아직까지 얼마나 오래 걸릴지 예측하는 방법조차 없습니다. 하지만 1960년대와 1970년대 초에는 몇몇 전문가들이 바로 근시일 안에 문제가 해결될 것이라고 믿었습니다(오늘날에도 많은 사람이 그렇습니다). 몇 년 후에 이런 높은 기대가 구체화됮 못하자 연구자들과 정부 자금은 이 분야에 대한 투자를 줄였고, 첫 번째 AI 겨울(AI winter)이 시작되었습니다(이는 냉전(Cold War)이 절정에 다다른 후에 나타나는 핵 겨울(nuclear winter)에 대한 비유입니다).

이것이 마지막이 아니었습니다. 1980년대에 심볼리 AI의 새로운 버전인 전문가 시스템(expert system)이 큰 기업들 사이에서 인기를 끌기 시작했습니다. 초창기 몇 개의 성공적인 스토리가 투자의 물결을 이끌었고, 전 세계 회사들이 전문가 시스템을 구축하기 위해 내부에 AI부서를 꾸리기 시작했습니다. 1985년 즈음에 회사들은 이 기술에 연간 10억 달러 이상을 사용했습니다. 하지만 1990년대 초기에 이 시스템은 유지비용이 비싸고, 확장하기 어려우며 제한된 범위를 가진다는 것이 증명되었고 관심은 사그라들었습니다. 이로 인해 두번째 AI 겨울이 시작되었습니다.

우리는 현재 AI의 과대 선전과 실망의 세 번째 사이클을 모격하고 있는지도 모릅니다. 아직까지는 매우 낙관적인 단계입니다. 단기간의 기대를 조금 누그러뜨리고, 이 분야의 기술적 측면을 자 모르는 사람들에게 딥러닝이 할 수 있는 것과 할 수 없는것에 대해 명확히 이해시키는 것이 좋습니다.

1.1.6 지금까지 딥러닝의 성과

 딥러닝은 머신 러닝의 오래된 하위 분야지만 2010년 초가 되어서야 유명해졌습니다. 이때부터 몇 년 동안 이 분야에ㅐ서 일어난 혁신은 결코 작지 않습니다. 사람에케는 자연스럽고 직관적으로 보이지만 계로는 오랫동안 해결하기 어려웠던 시각과 청각 같은 지작의 문제에서 괄목할 만한 성과를 냈습니다.

특히 딥러닝은 다음과 같은 획기적인 발전을 이루었습니다. 모두가 머신러닝에서는 오랫동안 어려운 문제였습니다.

- 사람과 비슷한 수준의 이미지 분류

- 사람과 비슷한 수준의 음성 인식

- 사람과 비슷한 수준의 필기 인식

- 향상된 기계 번역

- 향상된 TTS(Text-To-Speech) 변환

- 구글 나우(Now)와 아마존 알렉사(Alexa)같은 디지털 비서

- 사람과 비슷한 수준의 자율 주행 능력

- 구글, 바이두(Baidu),빙(Bing)에서 사용하는 향상된 광고 타기팅(targeting)

- 향상된 웹 검색 엔진의 결과

- 자연어 질문에 대답하는 능력

- 사람을 능가하는 바둑 실력

우리는 여전히 딥러닝이 할 수 있는 일의 전체 크기를 알아 가는 중입니다. 지각과 자연여 인식 외에 형식 추론(formal reasoning)과 같은 다양한 문제에 적용하기 시작 했습니다. 만약 성고한다면 딥러닝이 과학, 소프트웨어 개발 등에서 사람을 보조하게 되는 시대를 알리는 것일지도 모릅니다.

1.1.5 그림 3개로 딥러닝의 작동 원리 이해하기

 이제 머신 러닝이 많은 입력과 타깃(target)의 샘플을 관찰하면서 입력(예:이미지)을 타깃(예:'고양이'레이블)에 매핑(mapping) 하는 것임을 알았습니다. 심층 신경망은 이런 입력-타깃 매핑을 간단한 데이터 변환기(층)를 많이 연결하여 수행한다는 것도 배웠습니다. 이런 데이터 변환은 샘플에 노출됨으로써 학습이 이루어집니다. 이제 어떻게 이런 학습이 일어나는지 자세히 살펴봅시다.

층에서 입력 데이터가 처리되는 상세 내용은 일련의 수수자로 이루어진 층의 가중치(weight)에 저장되어 있습니다. 기술적으로 말하면 어떤 층에서 일어나는 변환은 그 층의 가중치를 파라미터(parameter)(로 가지는 함수로 표현됩니다. (이따금 가중치를 그 층의 파라미터라고도 부릅니다.) 이런 맥락으로 보면 학습은 주어진 입력을 정확한 타깃에 매핑하기 위해 신경망의 모든 층에 있는 가중치 값을 찾는 것을 의미합니다. 하지만 어떤 심층 신경망은 수천만개의 파마미터를 가지기도 합니다. 이런 경우에 모든 파라미터의 정확한 값을 찾는 것은 어려운 일로 보입니다. 파라미터 하나의 값을 바꾸면 다른 모든 파라미터에 영향을 끼치기 때문입니다!

어떤 것을 조정하려면 먼저 관찰해야 합니다. 신경망의 출력을 제어하려면 출력이 기대하는 것보다 얼마나 벗어났는지를 측정해야 합니다. 이는 신경망의 손실 함수(loss function)또는 목적 함수(objective function)가 담당하는 일입니다. 신경망이 한 샘플에 대해 얼마나 잘 예측했는지 측정하기 위해 손실 함수가 신경망의 예측과 진짜 타깃(신경망의 출력으로 기대하는 값)의 차이를 점수로 계산합니다.

기본적인 딥러닝 방식은 이 점수를 피드백 신호로 사요ㅕㅇ하여 현재 심플의 손실 점수가 감소되는 방향으로 가중치 값을 조금씩 수정하는 것입니다. 이런 수정 과정은 딥러닝의 핵심 알고리즘인 역전파(Backpropagation)알고리즘을 구현한 옵티마이저(optimizer)가 담당합니다. 다음 장에서 역전파가 어떻게 작도하는지 상헤사게 설명하겠습니다.

초기에는 네트워크의 가중치가 랜덤한 겂으로 할당되므로 랜덤한 변환을 연속적으로 수행합니다. 자연스럽게 출려은 기대한 것과 멀어지고 손실 점수가 매우 높을 것입니다. 하지만 네트워크가 모든 샘플을 처리하면서 가중치가 조금씩 올바른 방향으로 조정되고 손실 점수가 감소합니다. 이름 훈련 반복(trainig loop) 이라고 하며, 충분한 횟수마큼 반복하면(일반적으로 ㅅ천 개의 샘플에서 수십 번 반복하면)손실 함수를 최소화하는 가중치 값을 산출합니다. 최소한의 손실을 내는 네트워크가 타깃에 가능한 가장 가까운 출력을 만드는 모델의 됩니다. 다시 한번 말하지만 이간단한 메커니즘이 화잗외면 마술 같은 결과를 만듭니다.

1.1.4 딥러닝에서 '딥'이란 무엇일까?

 딥러닝은 머신 러닝의 특정한 한 분야로서 연속된 층(layer)에서 점진적으로 의미 있는 표현을 배우는 데 강점이 있으며, 데이터포부터 표현을 학습하는 새로운 방식입니다. 딥러닝의 딥(deep)이란 단어가 어떤 깊은 통찰을 얻을 수 있다는 것을 의미하지는 앟습니다. 그냥 연속된 층으로 표현을 학습한다는 개념을 나타냅니다. 데이터로부터 모델을 만드는데 얼마나 많은 층을 사용했는지가 그 모델의 깊이가 됩니다. 이 분야에 대한 적절한 다른 이름은 층 기반 표현 학습(layered representations learning)또는 계층적 표현 학습(hierarchical representations learning)이 될 수 있습니다. 최근의 딥러닝 모델은 표현 학습을 위해 수십개, 수백 개의 연속된 층을 가지고 있습니다. 이 층들을 모두 훈련 데이터에 노출해서 자동으로 학습시킵니다. 한편 다른 머신 러닝 접근 방법은 1-2개의 데이터 표현 층을 학습하는 경향이 있습니다. 그래서 이런 방식을 얕은 학습(shallow learning)이라 부르기도 합니다.

딥러닝에서는 기본 층을 겹겹이 쌓아 올려 구성한 신경만(neural network)이라는 모델을 (거의 항상)사용하여 표현 층을 학습합니다. 신경망이란 단어는 신경 생물학의 용어입니다. 딥러닝의 일부 핵심 개념이 뇌 구조를 이해하는 것에서부터 영감을 얻어 개발된 부분이 있지만, 딥러닝 모델이 뇌를 모델링한 것은 아닙니다. 최근의 딥러닝 모델이 사용하고 학습 매커니증과 유사한 것을 뇌가 가지고 있다는 근거는 없습니다. 대중 과학 저널에서 딥러닝이 뇌처럼 작동한다거나 뇌를 모방하여 만들었다고 주장하는 글을 아따름 볼 수 있지만, 이는 사실이 아닙니다. 딥러닝이 신경 생물학과 어떤 관련이 있는것처럼 생각하는 것이 오히려 이 분야를 처음 접하는 사람들을 혼란스럽게 해서 역효과를 냅니다. 이간의 정신 세계와 같은 신비하고 미스터리한 무언가를 떠울릴 필요가 없습니다. 이전에 읽었던 딥러닝과 생물학 사이를 연관 짓는 어떤 가설도 잊는 것이 좋습니다. 우리가 다루는딥러닝은 그냥 데이터로부터 표현을 학습하는 수학 모델인 뿐입니다.

딥러닝 알고리즘으로 학습된 표현은 어떻게 나타날까요? 몇 개의 층으로 이루어진 네트워크가 이미지 않의 숫자를 인식하기 위해 이미지를 어떻게 변환하는지 살펴보겠습니다.

최종 출력에 대해 점점 더 많은 정보를 가지지만 원본 이미지와는 점점 더 다른 표현으로 숫자 이미지가 변환 됩니다. 심층 신경망을 정보가 연속된 필터(filter)를 통과하면서 순도 높게(즉 어떤 작업에 대해서 유용하게)정제되는 다단계 정보 추출 작업으로 생각할 수 있습니다. 바로 이것이 딥러닝입니다. 기술적으로 데이터 표현을 학습하기 위한 다단계 처리 방식을 말합니다. 간단한 아이디어지만, 매우 단순한 이 구조를 충분한 규모로 확장하면 마치 마술 같은 일을 할 수 있습니다.