티스토리 뷰
http://www.deeplearningbook.org/contents/intro.html
1. Introduction(소개)
Inventors have long dreamed of creating machines that think.
발명가들은 생각하는 기계를 창조해내는 꿈을 오래도록 가져왔습니다.
This desire dates back to at least the time of ancient Greece.
이 열망은 적어도 고대 그리스 시대까지 돌아갑니다.
The mythical fitures Pygmalion, Daedalus, and Hephaestus may all be interpreted as legendary inventors, and Galatea, Talos, and Pandora may all be regared as artificail life
신화에 등장하는 피그말리온, 다이달루스 그리고 헤파이스토스는 모두 전설적인 발명가로 해석될 것이며, 갈라테이아, 탈로스, 그리고 판도라는 모두 인조 생명으로 간주될 수 있습니다.
[참고자료]
Pygmalion : 조각가 이름이며, 자신이 만든 조각을 사랑함 -> 아프로디테에 의해 조각상이 실제 여인이 되고, 피그말리온은 여인과 결혼하여 삶을 살았음.
Daedalus(다이달루스) : 미노스 왕의 미국 라비린토스를 만든 전설적인 장인이며, 날개를 달고 너무 태양 가까이 날아올랐다가 죽은 이카로스의 아버지이자 날개 제작자
Hephaestus(헤파이스토스) : 그리스 신화에 나오는 올리포스 12신 중 하나로 유명한 발명가
Galatea(갈라테이아) : 피그말리온이 만든 여인상의 이름이며 원래는 바다의 아름다운 님페이
Talos(청동거인) : 크레타 섬을 수호하던 청동거인
Pandora(판도라) : 제우스가 인간을 벌하기 위해 헤파이스토스를 시켜 진흙으로 빚어서 만든 여인
When programmable computer were first conceived, people wondered whether such machines might become intelligent, over a hundred years before one was built.
프로그램을 할 수 있는 컴퓨터가 처음에 떠올려졌을 때, 사람들은 최초의 하나가 만들어지기 전까지 수 백 년 동안 그러한 기계들이 똑똑할지 어떠할지 궁금해왔습니다.
Today, artificial intelligence(AI) is a thriving field with many practical applications and active research topic.
오늘날, AI는 많은 실용적인 응용 분야와 활발한 연구 주제들을 가지고 번성하는 분야입니다.
We look to intelligent software to automate routine labor, understand speech or image, make diagnoses in medicine and support basic scientific research.
우리는 AI를 일상적인 노동을 자동화하고, 음성이나 이미지를 이해하고, 의학에서는 병을 진단하고, 기초과학연구를 지원하는 지능적인 소프트웨어로 보고 있습니다.
In the early days of artificial intelligence, the field rapidly tackled and solved problems that are intellectually difficult for human beings but relatively straightforward for computers-problems that can be described by a list of formal, mathematical rules.
초기 AI 시대에 이 분야는 빠르게 인간으로써는 어렵지만 상대적으로 컴퓨터에게는 쉬운 문제(공식적이고 수학적인 규칙들로 기술될 수 있는 문제들)들에 대응하여 해결했었습니다.
The true challenge to artificial intelligence proved to be solving the tasks that are easy for people to perform but hard for people to describe formally-problems that we solve intuitively, that feel automatic, like recognizing spoken words or faces in images.
AI에 대한 진짜 도전은 사람들이 쉽게 수행할 수는 있지만 공식적으로 기술하기에는 어려운 과제(직관적이고 자동적으로 느껴지는 것들 예를 들면 사진에서 얼굴을 인식하거나 하고 있는 말을 인식하는 것들)들을 푸는 것을 입증하는 것이었습니다.
This book is about a solution to these more intuitive problems.
이 책은 이러한 직관적인 문제들에 대한 해결책에 대해서 말하고자 합니다.
This solution is to allow computers to learn from experience and understand the world in terms of a hierarchy of concepts, with each concept defined through its relation to simpler concepts.
그 해결책은 컴퓨터가 단순한 개념의 관계를 통해 정의된 각각에 대한과 개념의 계층이라는 조건으로 세상을 이해하고 경험으로부터 배우는 것을 허락하는 것입니다.
By gathering knowledge from experience, this approach avoids the need for human operators to formally specify all the knowledge that the computer needs.
경험으로 지식을 모으는 이 접근 방식은 인간 조정자가 컴퓨터가 필요로 하는 모든 지식을 공식적으로 구분하려는 욕구를 피합니다(다릅니다).
The hierarchy of concepts enables the computer to learn complicated concepts by building them out of simpler ones.
컨셉들의 계층구조는 컴퓨터가 단순한 하나에서 벗어나 그들을 모델링함으로써 복잡한 개념들을 배울 수 있게 해줍니다,
If we draw a graph showing how these concepts are built on top of each other, the graph is deep, with many layers.
만약에 우리가 어떻게 이 개념들이 각각 위에서 밑으로 모델링되어있는지를 그래프로 그린다면, 그 그래프는 깊고 여러 층을 가질 것입니다.
For this reason, we call this approach to AI deep learning.
이러한 이유로 우리는 이 접근 방식을 AI 딥러닝이라고 부릅니다.
Many of the early successes of AI took place in relatively sterile and formal environments and did not require computers to have much knowledge about the world.
초기 AI 성공의 대다수는 상대적으로 이득이 없고 공식적인 환경에서 발생했고 그러한 AI는 컴퓨터가 세상에 관해 많은 지식을 가지는 것을 요구하지 않았습니다.
For example, IMB's Deep Blue chess-playing system defeated world champion Garry Kasparov in 1997.
예를 들면 IBM의 Deep Blue라는 체스 게임 시스템은 1997년에 체스 세계 챔피언인 Garry Kasparov를 1997년에 패배시켰습니다.
Chess is of course a very simple world, containing only sixty-four locations and thrity-two pieces that can move in only rigidly circumscribed ways.
물론 체스는 오직 엄격하게 제한된 방법으로만 움직일 수 있는 64개의 위치와 32개의 말들을 포함하는 매우 단순한 세계입니다.
Devising a successful chess strategy is a tremendous accomplishment, but the challenge is not due to the difficulty of describing the set of chess pieces and allowable moves to the computer.
성공적인 체스 전략을 고안하는 것은 대단한 성취이지만, 그 이유는 컴퓨터에게 허용한 움직임과 체스 말들의 세트를 설명할 수 없기 때문이 아닙니다.
Chess can be completely described by a very brief list of completely formal rules, easily provided ahead of time by the programmer.
체스는 쉽게 프로그래머에 의해서 시간 이전에 제공될 수 있는 완전히 공식적인 룰의 매우 간결한 목록들에 의해 모두 설명될 수 있습니다.
(즉 체스에서는 허용되는 움직임과 룰을 간단하게 정리하여 컴퓨터에게 가르치는 것이 가능합니다.)
Ironically, abstract and formal tasks that are among the most difficult mental undertakings for a human being are among the easiest for a computer.
아이러니하게, 인간이 하기에는 정신적으로 어려운 추상적이고 공식적인 과제들은 컴퓨터에게는 가장 쉬운 것들에 속하기도 합니다.
Computers have long been able to defeat even the best human chess player but only recently have begun matching some of the abilities of average human beings to recognize objects or speech.
컴퓨터들은 체스 인간 챔피언도 이길 수 있었지만, 오직 최근에서야 음성이나 사물을 인식하는 평균적인 인간의 능력 중 몇 가지를 수행하기 시작했습니다.
A person's everyday life requires an immense amount of knowledge about the world.
한 인간의 생애는 세계에 대한 많은 양의 지식을 필요로 합니다.
Much of this knowledge is subjective and intuitive, and therefore difficult to articulate in a formal way.
이 지식의 다수는 객관적이며 직관적이므로 공식적인 방법으로 설명하기는 어렵습니다.
Computers need to capture this same knowledge in order to behave in an intelligent way.
컴퓨터들은 현명한 방법으로 행동하기 위해 몇 가지의 지식을 포착할 필요가 있습니다.
One of the key challenges in artificial intelligence is how to get this informal knowledge into a computer.
AI 분야에서 한 가지 주요 도전은 컴퓨터에게 이러한 비공식적인 정보를 어떻게 얻게 할 것이라는 점입니다.
several artificial intelligence projects have sought to hard-code knowledge about the world in formal languages.
몇몇의 AI 프로젝트에서는 세계에 관한 지식을 공식 언어들로 하드 코딩 하려고 해왔습니다.
A computer can reason automatically about statements in these formal languages using logical inference rules.
컴퓨터는 논리적인 추론 규칙들을 사용하여 이러한 공식 언어들로 상태에 관해 자동적으로 판단할 수 있습니다.
This is known as the knowledge base approach to artificial intelligence.
이것이 바로 AI에서 지식 기반 접근법으로 알려져 있습니다.
None of these projects has led to a major success.
이 프로젝트들 중 어느 것도 큰 성공을 이뤄내지는 못했습니다.
One of the most famous such projects is Cyc.
가장 유명한 프로젝트 중 한 가지는 Cyc입니다.
Cyc is an inference engine and a database of statements in a language called CycL.
Cyc는 추론 엔진이며 CycL이라 불리는 언어로 된 문장의 데이터셋입니다.
These statements are entered by a staff of human supervisors.
이 문장들은 인간 감독관에 의해 입력됩니다.
It is an unwieldy process.
이 부분이 다루기 힘든 과정입니다.
People struggle to devise formal rules with enough complexity to accurately describe the world.
사람들은 세상을 정확하게 설명하는데 적합한 복잡성을 가진 공식적인 룰을 설명하는데 어려움을 겪었습니다..
For example, cyc failed to understand a story about a person named Fred shaving in the morning.
한 예로 Cyc는 Fred라는 이름을 가진 남자가 아침에 면도하는 것에 대한 이야기를 이해하는데 실패했습니다.
Its inference engine detected an inconsistency in the story: it knew that people do not have electrical parts, but because Fred was bolding an electric razor, it believed the entity "FredWhileShaving" contained electrical parts.
이 추론 엔진은 이야기에서 불일치성을 감지했습니다 : Cyc는 사람은 전자적인 부위를 가지고 있지 않다는 것을 알고 있었습니다. 하지만 Fred가 전기 레이저를 들고 있는 중이었기 때문에, Cyc는 "FredWhileShaving"이라는 속성은 전자적인 부분들을 포함한다고 주장했습니다.
It therefore asked whether Fred was still a person while he was shaving.
그래서일까요 Cyc는 Fred가 면도하는 동안에는 그가 사람인지 어떤 지에 대해 계속 물어보았습니다.
The difficulties faced by systems relying on bard-coded knowledge suggest that AI systems need the ability to acquire their own knowledge, by extracting patterns from raw data.
하드코딩된 지식에 의존하는 시스템이 직면한 어려움을 통해 원천 데이터로부터 패턴을 추출하고 그들이 보유한 지식을 획득할 수 있는 능력을 AI 시스템이 갖추어야 함을 알게 되었습니다.
This capability is known as machine learning.
이 능력은 기계 학습으로 잘 알려져 있습니다.
The introduction of machine learning enabled computers to tackle problems involving knowledge of the real world and make decisions that appear subjective.
기계 학습의 소개(등장)은 실제 세계에 대한 지식을 포함한 문제들을 컴퓨터가 다루고 의사 결정 할 수 있게 만들어주었습니다.
A simple machine learning algorithm called logistic regression can determine whether to recommend cesarean delivery.
간단한 기계 학습 알고리즘은 제왕 절개 수술을 추천해야 할지 말아야 할지 결정할 수 있는 선형 회귀라 불리는 알고리즘이었습니.
A simple machine learning algorithm called naive Bayes can separate legitmate e-mail from spam e-mail.
또 다른 간단한 기계학습 알고리즘은 스펨메일로부터 허용할 수 있는(적당한) 메일을 걸러내는 나이브 베이즈라 불리는 알고리즘이었다.
(hmm 이해한 이후로는 다 거기서 거기로 보입니다. 예측 알고리즘은 앞 단의 가정만 다른 것 같습니다.
예를 들면 hmm은 마코브 성질을 가정하는 것이고 다른 모델들은 다른 가정을 따르는 같습니다. 앞 단의 가정을 제외하면 나머지는 베이지안 확률(조건부확률)인 듯 합니다.)
The performance of these simple machine learning algorithms depends heavily of the representation of the data they are given.
이들처럼 간단한 기계학습 알고리즘들의 성능은 주어진 데이터의 대표성에 강하게 의존합니다.(좋은 피처 넣으면 좋은 결과 나온다.)
For example, when logistic regression is used to recommend cesarean delivery, the AI system does not examine the patient directly.
한 예로 선형 회귀가 제왕절개 수술 여부를 추천해주는데 사용될 때, AI 시스템은 환자를 직접적으로 실험하지는 않습니다.
Instead, the doctor tells the system several pieces of relevant information, such as the presence or absence of a uterine scar.
대신에 의사가 자궁 상처의 존재 유무와 같은 관련 정보 몇 가지를 시스템에 입력합니다.
Each piece of information included in the representation of the patient is known as a feature.
환자의 대표성 안에 포함되어 있는 정보들의 각 조각은 feature로(특징점 혹은 속성) 알려져 있습니다.
Logistic regression learns how each of these features of the patient correlates with various outcomes.
선형 회귀는 환자의 각 feature가 얼마나 다양한 결과들과 관련이 있는지 학습합니다.
If logistic regression were given an MRI scan of the patient, rather than the doctor's formalized report, it would not be able to make useful predictions.
만약 선형 회귀에 의사의 공식화된 리포트 대신에 환자의 MRI 스캔정보가 주어진다면, 좋은 예측을 할 수 없을 것입니다. (대표성이 없는 feature를 학습에 사용할 경우, 결과 역시 신뢰할 수 없다 라는 의미로 보입니다.)
Individual pixels in an MRI scan have negligible correlation with any complications that might occur during delivery.
MRI 스캔 사진에 있는 각 픽셀들은 수술 동안에 발생할 수도 있는 어떤 복잡성(문제)들과도 관련이 없습니다.(관련 없는 feature입니다.)
This dependence on representations is a general phenomenon that appears throughout computer science and even daily life.
대표성에 대한 종속은 컴퓨터 과학을 넘어 일상에서조차도 나타나는 일반적인 현상입니다.
In computer science, operations such as searching a collection of data can proceed exponentially faster if the collection is structured and indexed intelligently.
컴퓨터 과학에서 자료 컬렉션을 찾는 것과 같은 작업에서 만약 지능적으로(의도적으로) 색인되어 있고 구조화되어 있는 컬렉션이라면 기하급수적으로 작업이 빨라질 수 있습니다.
People can easily perform arithmetic on Arabic numerals but find arithmetic on Roman numerals much more time consuming.
사람들은 아랍 숫자들로는 계산을 쉽게 할 수 있지만 로마 숫자로 하는 데는 더욱 시간이 많이 걸립니다.
It is not surprising that the choice of representation has an enormous effect on the performance of machine learning algorithms.
(이런 사례들을 볼 때)대표적인 자료를 선택하는 것이 기계 학습 알고리즘의 수행에 커다란 영향을 준다는 것은 놀랍지 않은 일입니다.
For a simple visual example, see figure 1.1
간단한 시각적인 예시를 위해서 그림 1.1을 보시기 바랍니다.
그림1.1
*Cartesian coordinates : 데카르트 좌표(평면좌표)
*Polar coordinates : 극좌표
Figure 1.1: Example of different representations : suppose we want to separate two categories of data by drawing a line between them in a scatterplot.
그림 1.1 : 다른 대표성의 예시 : 하나의 산점도에서 저 둘 사이에 하나의 선을 그림으로써 데이터를 두개로 범주화하기를 원한다고 생각해보십시오.
In the plot on the left, we represent some data using Cartesian coordinates, and the task is impossible.
왼쪽 그래프에서는 데카르트 좌표를 사용하여 몇몇 데이터를 표현하였고, 그 작업은 불가능합니다.
In the plot on the right, we represent the data with polar coordnates and the task becomes simple to solve with a vertical line.
오른쪽 그래프에서는 극좌표로 데이터를 표현하였고 수직선 하나로 간단하게 과제를 수행할 수 있습니다.
(Figure produced in collaboration with David Warde-Farley.)
Many artificial intelligence tasks can be solved by designing the right set of features to extract for that task, then providing these features to a simple machine learning algorithm.
많은 AI 과제들은 과제를 위해 적합한 feature의 set을 추출하는 과정을 설계하고, 그런 다음 이러한 feature들을 간단한 기계 학습 알고리즘에 제공함으로써 해결될 수 있습니다.
For example, a useful feature for speaker identification from sound is an estimate of the size of the speaker’s vocal tract.
한 예로, 소리로 화자를 확인하기 위한 유용한 feature는 화자의 vocal tract(성도=>음성 영역)의 크기를 측정하는 것입니다.
(*성도 : 성대에서 입술 또는 콧구멍에 이르는 통로. 이걸 왜 어떻게 측정하는지 생각해 봤는데 음의 높낮이나 영역대, 목소리 크기와 같은 다른 것을 말하는 것으로 예상됨 또한 구글 번역 결과 음성 영역이라고 함)
This feature gives a strong clue as to whether the speaker is a man, woman, or child.
이 feature는 화자가 남자인지 여자인지 혹은 어린 아이인지 대한 강한 단서를 줍니다.
For many tasks, however, it is difficult to know what features should be extracted.
그러나 많은 과업에서 어떤 feature들을 추출해야 하는지 알기란 어렵습니다.
For example, suppose that we would like to write a program to detect cars in photographs.
예를 들면, 사진에서 차를 찾아내는 프로그램을 만든다고 가정해보겠습니다.
We know that cars have wheels, so we might like to use the presence of a wheel as a feature.
우리는 차에는 휠이 있다는 사실을 알고 있습니다. 그래서 feature로써 휠이 있는지 없는지를 사용할 수 있습니다.
Unfortunately, it is difficult to describe exactly what a wheel looks like in terms of pixel values.
하지만 안타깝게도, 픽셀값으로 나타내고자 할 경우, 휠이 어떻게 무엇으로 보이는지 정확하게 기술하기 어렵습니다.
A wheel has a simple geometric shape, but its image may be complicated by shadows falling on the wheel, the sum glaring off the metal parts of the wheel, the fender of the car or an object in the foreground obscuring part of the wheel, and so on.
휠은 단순히 기하학적인 형태를 가지지만, 휠의 강철 부분, 차의 방현재 부분, 혹은 휠의 잘 안보이는 배경물체와 같은 것에 의해 그리고 휠에 달려있는 그림자에 의해 사진 자체가 복잡해질수도 있습니다.(이해하기 어려울 수 있습니다.)
One solution to this problem is to use machine learning to discover not only the mapping from representation to output but also the representation itself.
이 문제에 대한 한 가지 해결책은 대표적인 특징(feature)과 결과를 매핑하는 것뿐만 아니라 대표가 되는 특징 자체를 또한 발견하도록 기계학습을 사용하는 것입니다.
This approach is known as representation learning.
이 접근은 대표성 학습이라고 알려져 있습니다.
Learned representations often result in much better performance than can be obtained with hand-designed representations.
대표성을 학습하도록 하는 이 방법은 종종 손으로 설계해서정한 대표적인 특징으로 얻을 수 있는 결과보다 더 좋은 성능을 발휘하기도 합니다.
(모델을 만드는 사람이 직접 특징 혹은 피처를 선택하는 것보다 기계한테 맡기는 것이 더 좋을 수 있다라는 의미)
They also enable AI systems to rapidly adapt to new tasks, with minimal human intervention.
또한 이 접근법은 인간의 최소한의 개입으로 AI 시스템이 새로운 과제들을 빠르게 받아들일 수 있도록 만듭니다.
A representation learning algorithm can discover a good set of features for a simple task in minutes, or for a complex task in hours to months.
대표성 학습 알고리즘은 몇 분내로 할 수 있는 단순한 과제나 몇시간 혹은 몇 달까지도 걸리는 복잡한 과제를 위한 좋은 feature들의 집합을 발견할 수 있습니다.
Manually designing features for a complex task requires a great deal of human time and effort; it can take decades for an entire community of researchers.
복잡한 과제를 위해 features를 매뉴얼대로 설정하는 것은 인간의 많은 시간과 노력을 요구합니다; 심지어 수십년이 걸릴 수도 있습니다.
The quintessential example of a representation learning algorithm is the autoencoder.
대표성 학습 알고리즘의 전형적인 예로는 autoencoder가 있습니다.
An autoencoder is the combination of an encoder function, which converts the input data into a different representation, and a decoder function, which converts the new representation back into the original format.
autoencoder는 입력 데이터를 다른 대표적인 특성으로 바꿔주는 encoder(암호화) 기능과 새로운 대표적인 특성을 원래의 형태로 바꿔주는 decoder(복호화)의 조합입니다.
Autoencoders are trained to preserve as much information as possible when an input is run through the encoder and then the decoder, but they are also trained to make the new representation have various nice properties.
Autoencoder는 입력된 정보가 encoder를 지나 decoder를 통과할 때 가능한 많은 정보를 보호하도록 학습되지만, 또한 다양하고 좋은 속성을 가진 새로운 특징 정보를 만들도록 학습이 됩니다.
Different kinds of autoencoders aim to achieve different kinds of properties.
다른 여러 종류의 autoencoder들은 다른 종류의 속성들을 가지는 것을 목적으로 둡니다.
(autoencoder의 종류에 따라 다른 속성 혹은 정보를 저장한다는 의미로 cnn의 커널을 생각하면 될 것 같습니다.)
When designing features or algorithms for learning features, our goal is usually to separate the factors of variation that explain the observed data.
학습할 feature들에 대한 알고리즘이나 feature를 설계할 때, 우리의 목표는 항상 관찰된 결과를 설명하는 여러 요인들을 분리하는 것입니다.
In this context, we use the word “factors” simply to refer to separate sources of influence; the factors are usually not combined by multiplication.
이 맥락에서 우리는 factors라는 단어는 단순히 영향의 원천들을 분리하는 것을 의미합니다; 요소들이 항상 곱으로 결합되어있지는 않습니다.
Such factors are often not quantities that are directly observed.
그러한 요인들은 직접 눈으로 관찰될 수 있는 것들이 아닌 경우가 많습니다.
Instead, they may exist as either unobserved objects or unobserved forces in the physical world that affect observable quantities.
대신에, 그 요인들은 물리적 세계에서 관찰되지 않는 물체나 특성으로 우리가 볼 수 있는 요인들에 영향을 미치는 것으로 존재할 수도 있습니다.
They may also exist as constructs in the human mind that provide useful simplifying explanations or inferred causes of the observed data.
또한 관찰된 데이터의 원인이나 유용하고 간소화된 설명을 제공할 수 있는 구성요소로써 존재할 수도 있습니다.
They can be thought of as concepts or abstractions that help us make sense of the rich variability in the data.
그 요인들은 데이터 안에서 풍부한 변화가능성(변화정도)에 대해 우리가 이해할 수 있게 돕는 관념이나 개념으로 생각될 수 있습니다.
When analyzing a speech recording, the factors of variation include the speaker’s age, their sex, their accent and the words they are speaking.
음성기록을 분석할 때, 요인들로 화자의 나이, 성별, 악센트, 그리고 그들이 말할 때 사용한 단어들이 포함됩니다.
When analyzing an image of a car, the factors of variation include the position of the car, its color, and the angle and brightness of the sun.
차 이미지를 분석할 때의 요인으로는 태양의 밝기와 앵글, 차의 위치, 색상들이 포함됩니다.
A major source of difficulty in many real-world artificial intelligence applications is that many of the factors of variation influence every single piece of data we are able to observe.
현실 속의 AI 프로그램에서 겪는 어려움의 주요 이유는 이러한 많은 요인들(우리가 보기 힘든)이 우리가 관찰할 수 있는 데이터의 하나하나의 조각에 영향을 미친다는 점입니다.
The individual pixels in an image of a red car might be very close to black at night.
빨간색 차 사진 속의 픽셀 하나하나는 밤에는 검은색에 매우 가까워질 수 있습니다.(밤에 찍은 차 사진은 낮에 찍은 차 사진과 다릅니다. 즉 물체는 동일하지만 색이 다릅니다. 색이 달라지도록 하는 것이 요인입니다.)
The shape of the car’s silhouette depends on the viewing angle.
차의 실루엣 형태는 보는 각도에 따라 달라집니다.
Most applications require us to disentangle the factors of variation and discard the ones that we do not care about.
대부분의 어플리케이션에서는 우리(인간)이 구분해야할 요인들을 선별하고 고려할 필요 없는 것들은 제외하라고 요구합니다.
(인간이 기계학습에 필요한 요인과 필요없는 요인을 정해주어야 한다는 의미입니다.)
Of course, it can be very difficult to extract such high-level, abstract features from raw data.
물론 원천 데이터에서 높은 수준의 추상적인 특징들을 추출해내는 것은 매우 어려울 수 있습니다.
Many of these factors of variation, such as a speaker’s accent, can be identified only using sophisticated, nearly human-level understanding of the data.
화자의 억양과 같이 많은 요인들 가진 것들은 오직 데이터에 대한 인간 수준의 이해에 근접한 똑똑한 기계를 사용해야 식별될 수 있습니다.
When it is nearly as difficult to obtain a representation as to solve the original problem, representation learning does not, at first glance, seem to help us.
원천적인 문제를 풀고자 대표적인 특징을 얻기 어려울 때, 대표성 학습은 얼핏 보기에는 우리에게 도움을 줄 수 있을 것 같지 않습니다.
(대표적인 특징을 얻기 어려운 상태에서는 대표성 학습이 방식이 좋지 않을 수 있습니다.)
Deep learning solves this central problem in representation learning by introducing representations that are expressed in terms of other, simpler representations.
심층 학습은 다른 좀더 단순한 대표적인 특징들의 상황에서 표현되는 특징들로 대표적인 특징들로 만듦(찾음, 혹은 생산)으로써 대표성 학습에서의 주요한 문제를 해결하였습니다.(어려운 특징들을 쉽게 만들어서 사용함으로써 대표성 학습 접근의 문제점을 해결했다라는 의미로 보입니다.)
Deep learning enables the computer to build complex concepts out of simpler concepts.
심층 학습은 단순한 개념에서 벗어나는 복잡한 개념들을 컴퓨터가 찾고 분석할 수 있게 만들어 줍니다.
Figure 1.2 shows how a deep learning system can represent the concept of an image of a person by combining simpler concepts, such as corners and contours, which are in turn defined in terms of edges.
Figure 1.2 : Illustration of a deep learning model. It is difficult for a computer to understand the meaning of raw sensory input data, such as this image represented as a collection of pixel values.
그림 1.2 : 심층 학습 모델의 그림 : 컴퓨터는 픽셀값들의 모음으로 대표되는 이미지와 같은 그러한 raw sensory(가공되지 않은) 입력 데이터의 의미를 이해하기 어렵습니다.
The function mapping from a set of pixels to an object identity is very complicated.
픽셀의 세트로 사물을 인식하는 그러한 매핑 기능은 매우 복잡합니다.
Deep learning resolves this difficulty by breaking the desired complicated mapping into a series of nested simple mappings, each described by a different layer of the model.
심층 학습은 원하지만 복잡해서 어려운 작업인 픽셀의 세트을 사물로 인식하도록 매핑하는 일을 모델의 다른 층에서 각각을 설명하도록(해석하는) 만듦으로써, 어려움을 해결하였습니다.
The input is presented at the visible layer, so named because it contains the variables that we are able to observe.
입력데이터는 visible layer에 제시됩니다. 그렇게 이름이 붙여진 이유는 우리가 관찰할 수 있는 변수들이 입력에 포함되기 때문입니다.
Then a series of hidden layers extracts increasingly abstract features from the image.
그리고 일련의 연속된 은닉 층에서는 이미지로부터 추상적인 특징들을 계속해서 추출해냅니다.
These layers are called “hidden” because their values are not given in the data; instead the model must determine which concepts are useful for explaining the relationships in the observed data.
이 층들이 은닉이라고 불리는 이유는 데이터 안에는 이 값들이 없기 때문입니다(왜냐하면 원천 데이터를 가공하여 만든 값들이기 때문입니다); 대신에 모델은 관찰된 데이터 안에서 각각의 관계를 설명하는데 유용한 컨셉들이 무엇인지 결정해야 합니다.
The images here are visualizations of the kind of feature represented by each hidden unit.
여기 그림의 각 이미지들은 각각의 은닉 유닛에 의해 표현되는 여러 종류의 특징들을 시각화한 것입니다.
Given the pixels, the first layer can easily identify edges, by comparing the brightness of neighboring pixels.
주어진 픽셀들에 첫 번째 layer는 인접 픽셀들의 밝기를 비교함으로써 끝부분들을 쉽게 확인할 수 있다.
Given the first hidden layer’s description of the edges, the second hidden layer can easily search for corners and extended contours, which are recognizable as collections of edges.
끝부분(엣지)에 대한 첫 번째 층의 설명이 주어지면, 두 번째 은닉 층에서는 각 끝부분의 조합으로써 인식될 수 있는 모서리와 등고선을 쉽게 찾을 수 있다.(첫 번째 층에서는 끝 부분을 찾고, 두 번째 층에서는 모서리와 등고선을 찾는다라는 의미입니다.)
Given the second hidden layer’s description of the image in terms of corners and contours, the third hidden layer can detect entire parts of specific objects, by finding specific collections of contours and corners.
두 번째 은닉 층의 등고선과 모서리에 대한 이미지에 대한 설명이 주어지면, 세 번째 은닉 층은 모서리와 등고선의 특별한 모음을 찾음으로써 물체의 전체적인 부분을 감지할 수 있습니다.
Finally, this description of the image in terms of the object parts it contains can be used to recognize the objects present in the image.
마지막으로, 이미지에 포함된 객체 부분에 대한 설명을 사용하여 사진에 제시된 물체를 인식할 수 있습니다.
The quintessential example of a deep learning model is the feedforward deep network, or multilayer perceptron(MLP).
심층 학습 모델의 전형적인 모델로는 feedforward deep network 혹은 multilayer perceptron가 있습니다.
A multilayer perceptron is just a mathematical function mapping some set of input values to output values.
Multilayer perceptron은 단지 입력 값들의 몇 가지 셋과 출력 값들을 매핑하는 수학적 기능(함수?)입니다.
The function is formed by composing many simpler functions.
그 기능은 많은 단순한 함수들로 구성되어 있습니다,
We can think of each application of a different mathematical function as providing a new representation of the input.
새로운 특징 데이터를 제공할 때, 각각 다른 수학 기능을 응용하는 것으로 생각할 수 있습니다.
The idea of learning the right representation for the data provides one perspective on deep learning.
데이터에 대한 올바른 특징을 학습한다는 아이디어는 심층 학습에서 한 가지 관점입니다.
Another perspective on deep learning is that depth enables the computer to learn a multistep computer program.
심층 학습에 대한 또 다른 관점은 컴퓨터가 여러 단계로 프로그래밍 하는 법을 배울 수 있도록 하는 것입니다.
(즉 아이디어1. 올바른 데이터의 특징을 찾아낸다. 아이디어2. 여러 단계로 컴퓨터가 학습한다.)
Each layer of the representation can be thought of as the state of the computer’s memory after executing another set of instructions in parallel.
특징들에 대한 각각의 층들은 동시에(병렬로) 여러 명령에 대해 수행하는 컴퓨터의 메모리로써 생각될 수 있습니다.
Networks with greater depth can execute more instructions in sequence.
커다란 깊이를 가진(여러 층을 가진) 네트워크는 연속선 상에서 많은 명령(지시문)을 수행할 수 있습니다.
Sequential instructions offer great power because later instructions cab refer back to the results of earlier instructions.
연속적인 명령(지시문)들은 훌륭한 능력을 제공합니다. 왜냐하면 나중에 수행되는 명령들은 이전에 수행된 명령의 결과를 참조할 수 있기 때문입니다.
According to this view of deep learning, not all the information in layer’s activations necessarily encodes factors of variation that explain the input.
심층 학습의 이러한 부분을 보면, 층에서의 활동 속에 모든 정보를 입력 정보로 설명하는 변수들을 암호화할 필요는 없습니다.
(시작부터 모든 정보를 다 넣을 필요는 없다.)
The representation also stores state information that helps to execute a program that can make sense of the input.
대표성들은 또한 입력 정보를 이해할 수 있는 프로그램을 실행하는데 도움을 주는 상태 정보를 저장하고 있습니다.
This state information could be analogous to a counter or pointer in a traditional computer program.
이 상태 정보는 전통적인 컴퓨터 프로그램 상에서 포인터 혹은 계측기와 유사할 수 있습니다..
It has nothing to do with the content of the input specifically, but it helps the model to organize this processing.
상태 정보는 입력 데이터의 내용과 특별히 관련이 없습니다. 하지만 모델이 이러한 과정을 조직하는데 도움을 줄 수 있습니다.
(직접적으로 무언가를 하는게 아니라 뭐가 중요해 라는 정보를 제공하는 것으로 예상해볼 수 있습니다.)
There are two main ways of measuring the depth of a model.
모델의 깊이를 측정하는 두 가지 주요 방법이 있습니다.
The first view is based on the number of sequential instructions that must be executed to evaluate the architecture.
첫 번째 방법은 구조(모델)를 평가하기 위해 수행되어야 하는 연속적인 명령의 개수(해야 할 작업 수)에 기초한 방법입니다.
We can think of this as the length of the longest path through a flow chart that describes how to compute each of the model’s outputs given its inputs.
우리는 모델의 입력 데이터에 주어진 각각의 결과(아웃풋)을 계산하는 방법을 설명하는 플로우 차트를 통해 가장 긴 길의 길이로써 이것을 생각할 수 있습니다.(연속적인 명령의 숫자 = 가장 긴 모델의 길이)
Just as two equivalent computer programs will have different lengths depending on which language the program is written in, the same function may be drawn as a flowchart with different depths depending on which functions we allow to be used as individual steps in the flowchart.
두 개의 동등한 컴퓨터 프로그램들은 프로그램이 작성된 언어들에 기초하여 다른 길이를 가질 것입니다 : 같은 기능이더라도 플로우 차트 안에서 개별적인 단계들로써 사용되도록 허가한 기능(언어 별 기능)에 의존하여 다른 깊이를 가진 플로우 차트가 만들어질 것입니다.
(특정 기능을 구현하기 위해 c는 5개의 레이어가 필요하고, java는 3개의 레이어, python은 1개의 레이어가 필요하다 라는 의미로 보입니다)
Figure 1.3 illustrates how this choice of language can give two different measurements for the same architecture.
1.3 그림은 언어의 다른 선택이 어떻게 같은 구조(모델)에 대해 다른 측정 방법을 줄 수 있는 지에 대해 묘사하였습니다.
Figure 1.3: Illustration of computational graphs mapping an input to an output where each node performs an operation.
각각의 노드가 동작하는 장소에서 입력 데이터를 최종 결과물에 매핑하는 계산 과정을 표현한 그래프의 그림
Depth is the length of the longest path from input to output but depends on the definition of what constitutes a possible computational step.
입력 데이터에서 최종 결과물까지 가장 긴 길의 길이가 깊이이지만, 계산 단계를 이루는 정의에 의존합니다.
(계산식이나 모델에 따라 길이가 달라집니다)
The computation depicted in these graphs is the output of a logistic
regression model, σ(
이 그래프 안에서 묘사된 계산은 선형 회귀 모델인 σ(σ은 그리스어로 시그마)의 결과입니다.σ은 선형 시그모이드 기능이다.(sigmoid function : 다음 단계로 계산된 값을 전달할지 말지를 결정하는 함수로 활성 함수의 한 종류입니다.)
If we use addition, multiplication and logistic sigmoids as the elements of our computer language, then this model has depth three.
만약에 우리의 컴퓨터 언어의 요소로써 더하기, 곱하기 그리고 선형 시그모이드 함수를 사용한다면, 이 모델의 깊이는 3개가 됩니다.
깊이1. 가중치(w)와 입력 데이터(x)를 곱합니다.
깊이2. 각각에서 나온 결과를 더합니다.
깊이3. 선형 시그모이드 함수를 사용하여 이 결과를 뒤로 전달할 것인지 말 것 인지를 정합니다.
If we view logistic regression as an element itself, then this model has depth one.
만약에 우리가 요소 그 자체로써 선형 회귀 만을 본다면, 이 모델은 하나의 깊이를 갖게 됩니다.
(처음
나온 모델과 나중 모델의 차이를 말하는 듯)
Another approach, used by deep probabilistic models, regards the depth of a model as being not the depth of the computational graph but the depth of the graph describing how concepts are related to each other.
심층 확률론적 모델에서 사용하는 또 다른 접근에서는 모델의 깊이를 계산 그래프의 깊이가 아니라 각각의 개념이 얼마나 관련있는가를 그래프의 깊이로 간주합니다.
(이전 접근은 계산 과정의 단계를 깊이로 보았다면 지금 접근은 개념에 대한 관련성을 깊이로 간주하는 것 같습니다.)
In this case, the depth of the flowchart of the computations needed to compute the representation of each concept may be much deeper than the graph of the concepts themselves.
이 경우, 각각 개념의 대표성을 계산하기 위해 필요한 계산 플로우 차트의 깊이는 아마 각각의 개념 그래프보다 더 깊어질 수 있습니다.
This is because the system’s understanding of the simpler concepts can be refined given information about the more complex concepts.
그 이유는 간단한 개념들에 대한 시스템의 이해도는 좀더 복잡한 개념들에 관한 정보로 다시 주어질 수 있기 때문이다.
(다음 문장을 보시면 이해가 되실 겁니다.)
For example, an AI system observing an image of a face with one eye in shadow may initially see only one eye.
예를 들면, 그림자 안에서(혹은 어두운 곳) 하나의 눈을 가진 얼굴의 사진을 AI 시스템이 관찰하면 최초에는 오직 하나의 눈만 볼 수 있을 것입니다.
After detecting that a face is present, the system can then infer that a second eye is probably present as well.
얼굴이 있음을 감지한 이후, 시스템은 그리고 나서야 두 번째 눈이 확률적으로 있을 것이라고 추론할 수 있을 것입니다.
In this case, the graph of concepts includes only two layers- a layer for eyes and a layer for faces- but the graph of computations includes 2n layers if we refine our estimate of each concept given the other n times.
이 경우, 개념 그래프는 오직 두 개의 층을 포함합니다.-얼굴에 대한 층과 눈에 대한 층-하지만 계산 그래프에서는 다른 n 시간에 주어진 각각의 개념에 대해 평가한 것을 확인하는 2n개의 layer들을 포함합니다.
깊이1. 개념그래프 얼굴과 눈을 감지하는 층
깊이2. 계산그래프 얼굴과 눈을 감지하는 층 * 얼굴이 주어졌을 때 눈이 주어질 확률을 계산하는 층
깊이3. 눈이 주어졌을 때 얼굴이 주어질 확률을 계산하는 층
Because it is not always clear which of these two views – the depth of the computational graph, or the if the probabilistic modeling graph – is most relevant, and because different people choose different sets of smallest elements from which to construct their graphs, there is no single correct value for the depth of an architecture, just as there is no single correct value for the length of a computer program.
확률적 모델 그래프나 계산 그래프의 깊이라는 두 가지 관점이 항상 가장 적절하지만은 않습니다.
왜냐하면 두 관점의 그래프를 구성 어떤 것으로부터 가장 작은 요소들의 다른 셋을 사람들이 선택할 수 있기 때문입니다.
단지 계산 프로그램의 길이에 대한 정확한 값이 없는 것처럼 구조의 깊이에 대한 정확한 하나의 값은 없다.
(입력되는 값들을 사람들이 다르게 선택할 수 있기 때문에 모든 모델이 일치하지 않습니다. 따라서 항상 적절할 수 없습니다.)
Nor is there a consensus about how much depth a model requires to qualify as “deep.”
모델이 '깊다' 라고 말을 하기 위해서 얼마나 깊이가 있어야 하는 지에 대한 일치된 의견은 없습니다.
However, deep learning can be safely regarded as the study of models that involve a greater amount of composition of either learned functions or learned concepts than traditional machine learning does.
그러나 심층 학습은 전통적인 기계 학습이 했던 것보다 학습이 기능 습득에 관해 많은 구성물들을 포함하는 연구 모델이라는 것으로써는 맞는 것으로 간주될 수 있습니다.
To summarize, deep learning, the subject of this book, is an approach to AI.
요악하면 이 책의 주제인 심층 학습은 AI에 대한 접근입니다.
Specifically, it is a type of machine learning, a technique that enables computer systems to improve with experience and data.
특히, 컴퓨터 시스템이 데이터와 경험에 대한 성능을 향상 시킬 수 있도록 만드는 기술을 가진 기계 학습을 의미합니다.
We contend that machine learning is the only viable approach to building AI systems that can operate in complicated real-world environments.
우리는 AI 시스템이 복잡한 현실 환경에서 작동할 수 있도록 만들기 위해 할 수 있는 유일한 접근법이 기계 학습이라고 생각합니다.
Deep learning is a particular kind of machine learning that achieves great power and flexibility by representing the world as a nested hierarchy of concepts, with each concept defined in relation to simpler concepts, and more abstract representations computed in terms of less abstract ones.
그리고 심층 학습은 더 추상적인 조건에서 덜 추상적인 대표성이 계산되고 간단한 개념 관계로 정의된 각각의 개념을 내재된 개념의 계층인 세상에서 대표성을 뽑아냄으로써 유연하고 거대한 힘을 달성하도록 만드는 특별한 종류의 기계 학습입니다.
Figure 1.4 illustrates the relationship between these different AI disciplines.
1.4 그림은 이러한 다른 AI 교육법들 사이의 관계를 묘사합니다.
그림 1.4 : 벤 다이어그램은 많긴 하지만 모든 AI에 대한 접근은 아닌 기계 학습의 여러 종류 중에서 어떻게 심층 학습이 대표성 학습의 종류인지 보여줍니다. 벤다이어그램에서 각각의 부분은 AI 기술의 예시들을 포함합니다.
그림 1.5 : 플로우 차트에서는 다른 AI 교육법들 사이에서 어떻게 다른지 보여줍니다. 색이 칠해진 부분은 데이터로부터 학습할 수 있는 요소를 가리킵니다.