# But what is a neural network? | Deep learning chapter 1

https://www.youtube.com/watch?v=aircAruvnKk
Translation: ko

[00:04] This is a 3.
  이것은 3입니다.

[00:06] It's sloppily written and rendered at an extremely low resolution of 28x28 pixels, but your brain has no trouble recognizing it as a 3.
  이것은 조잡하게 쓰였고 28x28 픽셀이라는 매우 낮은 해상도로 렌더링되었지만, 당신의 뇌는 문제없이 이것을 3으로 인식합니다.

[00:14] And I want you to take a moment to appreciate how crazy it is that brains can do this so effortlessly.
  뇌가 어떻게 이렇게 쉽게 이 일을 해낼 수 있는지 잠시 생각해보셨으면 합니다.

[00:19] I mean, this, this and this are also recognizable as 3s, even though the specific values of each pixel is very different from one image to the next.
  제 말은, 이것, 이것, 그리고 이것도 3으로 인식할 수 있다는 것입니다. 비록 각 픽셀의 구체적인 값은 이미지마다 매우 다르지만 말이죠.

[00:28] The particular light-sensitive cells in your eye that are firing when you see this 3 are very different from the ones firing when you see this 3.
  이 3을 볼 때 활성화되는 눈의 특정 빛 감지 세포들은 저 3을 볼 때 활성화되는 세포들과 매우 다릅니다.

[00:37] But something in that crazy-smart visual cortex of yours resolves these as representing the same idea, while at the same time recognizing other images as their own distinct ideas.
  하지만 당신의 놀랍도록 똑똑한 시각 피질 속 무언가가 이것들을 같은 개념으로 해석하면서, 동시에 다른 이미지들은 그들만의 고유한 개념으로 인식합니다.

[00:49] But if I told you, hey, sit down and write for me a program that takes in a grid of 28x28 pixels like this and outputs a single number between 0 and 10, telling you what it thinks the digit is, well the task goes from comically trivial to...
  하지만 만약 제가 당신에게 '이봐요, 앉아서 이런 28x28 픽셀 그리드를 입력받아 0에서 10 사이의 숫자 하나를 출력해서 그 숫자가 무엇인지 알려주는 프로그램을 짜보세요'라고 한다면, 그 작업은 우스울 정도로 사소한 것에서부터...

[01:04] Dauntingly difficult.
  매우 어렵습니다.

[01:07] Unless you've been living under a rock, I think I hardly need to motivate the relevance and importance of machine learning and neural networks to the present and to the future.
  세상과 단절되어 살지 않으셨다면, 현재와 미래에 있어 머신 러닝과 신경망의 관련성과 중요성을 굳이 설명할 필요는 없다고 생각합니다.

[01:15] But what I want to do here is show you what a neural network actually is, assuming no background, and to help visualize what it's doing, not as a buzzword but as a piece of math.
  하지만 제가 여기서 하고 싶은 것은 배경지식이 없다고 가정하고 신경망이 실제로 무엇인지 보여드리는 것이며, 유행어가 아닌 수학적 도구로서 신경망이 무엇을 하는지 시각화하도록 돕는 것입니다.

[01:25] My hope is that you come away feeling like the structure itself is motivated, and to feel like you know what it means when you read, or you hear about a neural network quote-unquote learning.
  제 바람은 여러분이 이 구조 자체가 왜 필요한지 이해하고, 신경망이 '학습'한다는 말을 읽거나 들었을 때 그것이 무엇을 의미하는지 알게 되는 것입니다.

[01:35] This video is just going to be devoted to the structure component of that, and the following one is going to tackle learning.
  이번 영상은 그중 구조적인 부분에만 집중할 것이며, 다음 영상에서 학습에 대해 다룰 것입니다.

[01:41] What we're going to do is put together a neural network that can learn to recognize handwritten digits.
  우리가 할 일은 손글씨 숫자를 인식하도록 학습할 수 있는 신경망을 구성하는 것입니다.

[01:49] This is a somewhat classic example for introducing the topic, and I'm happy to stick with the status quo here, because at the end of the two videos I want to point you to a couple good resources where you can learn more, and where you can download the code that does this and play with it on your own computer.
  이 주제를 소개하는 데 있어 다소 고전적인 예시이지만, 두 영상이 끝날 때 더 많은 것을 배울 수 있는 좋은 자료들을 알려드리고, 이를 수행하는 코드를 다운로드하여 직접 컴퓨터에서 실행해 볼 수 있도록 하고 싶기에 이 방식을 그대로 따르려 합니다.

[02:05] There are many many variants of neural networks.
  신경망에는 매우 많은 변형이 있습니다.

[02:07] And in recent years there's been sort of a boom in research towards these variants.
  그리고 최근 몇 년 동안 이러한 변형에 대한 연구가 일종의 붐을 일으켰습니다.

[02:12] But in these two introductory videos you and I are just going to look at the simplest plain vanilla form with no added frills.
  하지만 이 두 개의 입문 영상에서 여러분과 저는 군더더기 없는 가장 단순한 기본 형태만 살펴볼 것입니다.

[02:19] This is kind of a necessary prerequisite for understanding any of the more powerful modern variants.
  이것은 더 강력한 현대적 변형들을 이해하기 위한 일종의 필수 전제 조건입니다.

[02:23] And trust me it still has plenty of complexity for us to wrap our minds around.
  그리고 저를 믿으세요. 이것은 우리가 이해하기에 여전히 충분히 복잡합니다.

[02:29] But even in this simplest form it can learn to recognize handwritten digits, which is a pretty cool thing for a computer to be able to do.
  하지만 가장 단순한 형태에서도 손글씨 숫자를 인식하는 법을 배울 수 있는데, 이는 컴퓨터가 할 수 있는 꽤 멋진 일입니다.

[02:37] And at the same time you'll see how it does fall short of a couple hopes that we might have for it.
  동시에 여러분은 이것이 우리가 기대하는 몇 가지 희망에 어떻게 미치지 못하는지도 보게 될 것입니다.

[02:43] As the name suggests neural networks are inspired by the brain, but let's break that down.
  이름에서 알 수 있듯이 신경망은 뇌에서 영감을 받았지만, 이를 자세히 분석해 보겠습니다.

[02:48] What are the neurons, and in what sense are they linked together?
  뉴런이란 무엇이며, 어떤 의미에서 서로 연결되어 있을까요?

[02:52] Right now when I say neuron all I want you to think about is a thing that holds a number, specifically a number between 0 and 1.
  지금 제가 뉴런이라고 말할 때 여러분이 생각해야 할 것은 숫자를 담고 있는 것, 구체적으로 0과 1 사이의 숫자입니다.

[03:00] It's really not more than that.
  정말 그 이상도 이하도 아닙니다.

[03:03] For example the network starts with a bunch of neurons corresponding to
  예를 들어, 네트워크는 ~에 해당하는 일련의 뉴런들로 시작합니다.

[03:08] Each of the 28x28 pixels of the input image, which is 784 neurons in total.
  입력 이미지의 28x28 픽셀 각각은 총 784개의 뉴런입니다.

[03:14] Each one of these holds a number that represents the grayscale value of the corresponding pixel, ranging from 0 for black pixels up to 1 for white pixels.
  이들 각각은 검은색 픽셀의 0부터 흰색 픽셀의 1까지 해당하는 픽셀의 그레이스케일 값을 나타내는 숫자를 담고 있습니다.

[03:25] This number inside the neuron is called its activation, and the image you might have in mind here is that each neuron is lit up when its activation is a high number.
  뉴런 내부의 이 숫자를 활성화라고 부르며, 여기서 여러분이 떠올릴 수 있는 이미지는 활성화 값이 높을 때 각 뉴런이 켜지는 것입니다.

[03:36] So all of these 784 neurons make up the first layer of our network.
  따라서 이 784개의 뉴런 모두가 우리 네트워크의 첫 번째 층을 구성합니다.

[03:46] Now jumping over to the last layer, this has 10 neurons, each representing one of the digits.
  이제 마지막 층으로 넘어가면, 여기에는 10개의 뉴런이 있으며 각각은 숫자 중 하나를 나타냅니다.

[03:52] The activation in these neurons, again some number that's between 0 and 1, represents how much the system thinks that a given image corresponds with a given digit.
  이 뉴런들의 활성화 값은 다시 0과 1 사이의 어떤 숫자로, 시스템이 주어진 이미지가 특정 숫자와 얼마나 일치한다고 생각하는지를 나타냅니다.

[04:03] There's also a couple layers in between called the hidden layers, which for the time being should just be a giant question mark for.
  그 사이에는 은닉층이라고 불리는 몇 개의 층이 더 있는데, 당분간은 이것을 거대한 물음표로 생각하면 됩니다.

[04:09] How on earth this process of recognizing digits is going to be handled?
  도대체 이 숫자 인식 과정이 어떻게 처리될 것인가?

[04:14] In this network I chose two hidden layers, each one with 16 neurons.
  이 네트워크에서 저는 각각 16개의 뉴런을 가진 두 개의 은닉층을 선택했습니다.

[04:17] And admittedly that's kind of an arbitrary choice.
  그리고 인정하건대 그것은 다소 임의적인 선택입니다.

[04:21] To be honest I chose two layers based on how I want to motivate the structure in just a moment, and 16, well that was just a nice number to fit on the screen.
  솔직히 말해서 저는 잠시 후에 설명할 구조를 동기부여하기 위해 두 개의 층을 선택했고, 16이라는 숫자는 화면에 맞추기에 적당한 숫자였습니다.

[04:28] In practice there is a lot of room for experiment with a specific structure here.
  실제로 여기에는 특정 구조를 실험해 볼 여지가 많습니다.

[04:33] The way the network operates, activations in one layer determine the activations of the next layer.
  네트워크가 작동하는 방식은 한 층의 활성화가 다음 층의 활성화를 결정하는 것입니다.

[04:39] And of course the heart of the network as an information processing mechanism comes down to exactly how those activations from one layer bring about activations in the next layer.
  물론 정보 처리 메커니즘으로서 네트워크의 핵심은 한 층의 활성화가 어떻게 다음 층의 활성화를 유도하는지에 달려 있습니다.

[04:49] It's meant to be loosely analogous to how in biological networks of neurons, some groups of neurons firing cause certain others to fire.
  이는 생물학적 뉴런 네트워크에서 특정 뉴런 그룹의 발화가 다른 뉴런들의 발화를 유발하는 방식과 느슨하게 유사하도록 의도된 것입니다.

[04:58] Now the network I'm showing here has already been trained to recognize digits, and let me show you what I mean by that.
  이제 제가 여기서 보여드리는 네트워크는 이미 숫자를 인식하도록 훈련되었으며, 제가 무슨 의미인지 보여드리겠습니다.

[05:03] It means if you feed in an image, lighting up all 784 neurons of the input layer according to the brightness of each pixel in the image,
  이는 이미지를 입력하면 이미지의 각 픽셀 밝기에 따라 입력층의 784개 뉴런이 모두 켜진다는 것을 의미합니다.

[05:11] That pattern of activations causes some very specific pattern in the next layer.
  그 활성화 패턴은 다음 계층에서 매우 구체적인 패턴을 유발합니다.

[05:16] Which causes some pattern in the one after it.
  그것은 그 다음 계층에서 어떤 패턴을 유발합니다.

[05:18] Which finally gives some pattern in the output layer.
  그리고 마침내 출력 계층에서 어떤 패턴을 만들어냅니다.

[05:22] And the brightest neuron of that output layer is the network's choice, so to speak, for what digit this image represents.
  그리고 그 출력 계층에서 가장 밝은 뉴런은 말하자면 이 이미지가 어떤 숫자를 나타내는지에 대한 네트워크의 선택입니다.

[05:32] And before jumping into the math for how one layer influences the next, or how training works, let's just talk about why it's even reasonable to expect a layered structure like this to behave intelligently.
  한 계층이 다음 계층에 어떻게 영향을 미치는지, 또는 학습이 어떻게 작동하는지에 대한 수학적 내용으로 넘어가기 전에, 이와 같은 계층적 구조가 지능적으로 행동할 것이라고 기대하는 것이 왜 합리적인지 이야기해 봅시다.

[05:44] What are we expecting here?
  우리는 여기서 무엇을 기대하고 있을까요?

[05:45] What is the best hope for what those middle layers might be doing?
  중간 계층들이 무엇을 하고 있을지에 대한 가장 좋은 기대는 무엇일까요?

[05:48] Well, when you or I recognize digits, we piece together various components.
  글쎄요, 당신이나 제가 숫자를 인식할 때 우리는 여러 구성 요소를 조합합니다.

[05:54] A 9 has a loop up top and a line on the right.
  숫자 9는 위쪽에 고리가 있고 오른쪽에 선이 있습니다.

[05:57] An 8 also has a loop up top, but it's paired with another loop down low.
  숫자 8도 위쪽에 고리가 있지만, 아래쪽에 또 다른 고리가 함께 있습니다.

[06:02] A 4 basically breaks down into three specific lines, and things like that.
  숫자 4는 기본적으로 세 개의 특정 선으로 나뉘며, 그런 식이죠.

[06:07] Now in a perfect world, we might hope that each neuron in the second.
  이제 완벽한 세상이라면, 우리는 두 번째 계층의 각 뉴런이 그렇게 되기를 바랄지도 모릅니다.

[06:11] To last layer corresponds with one of these subcomponents.
  마지막 레이어는 이러한 하위 구성 요소 중 하나와 대응됩니다.

[06:15] That anytime you feed in an image with, say, a loop up top, like a 9 or an 8, there's some specific neuron whose activation is going to be close to 1.
  예를 들어 9나 8처럼 상단에 고리가 있는 이미지를 입력할 때마다, 활성화 값이 1에 가까워지는 특정 뉴런이 존재합니다.

[06:24] And I don't mean this specific loop of pixels.
  그리고 제가 말하는 것은 이 특정 픽셀들의 고리를 의미하는 것이 아닙니다.

[06:26] The hope would be that any generally loopy pattern towards the top sets off this neuron.
  바라건대 상단에 있는 일반적인 고리 모양 패턴이라면 무엇이든 이 뉴런을 활성화할 수 있기를 기대하는 것입니다.

[06:32] That way, going from the third layer to the last one just requires learning which combination of subcomponents corresponds to which digits.
  그렇게 하면 세 번째 레이어에서 마지막 레이어로 넘어가는 과정은 어떤 하위 구성 요소의 조합이 어떤 숫자와 대응되는지만 학습하면 됩니다.

[06:41] Of course, that just kicks the problem down the road, because how would you recognize these subcomponents, or even learn what the right subcomponents should be?
  물론 그것은 문제를 뒤로 미루는 것일 뿐입니다. 왜냐하면 이러한 하위 구성 요소를 어떻게 인식할 것이며, 심지어 무엇이 올바른 하위 구성 요소인지 어떻게 학습할 것인가 하는 문제가 남기 때문입니다.

[06:48] And I still haven't even talked about how one layer influences the next, but run with me on this one for a moment.
  그리고 저는 아직 한 레이어가 다음 레이어에 어떻게 영향을 미치는지조차 이야기하지 않았지만, 잠시만 이 가정을 따라와 주시기 바랍니다.

[06:53] Recognizing a loop can also break down into subproblems.
  고리를 인식하는 것 또한 하위 문제들로 나눌 수 있습니다.

[06:57] One reasonable way to do this would be to first recognize the various little edges that make it up.
  이를 수행하는 합리적인 방법 중 하나는 먼저 그것을 구성하는 다양한 작은 가장자리들을 인식하는 것입니다.

[07:03] Similarly, a long line, like the kind you might see in the digits 1 or 4 or 7, is really just a long edge, or maybe you think of it as a certain pattern of several.
  마찬가지로 숫자 1, 4, 7에서 볼 수 있는 긴 선은 사실 긴 가장자리일 뿐이거나, 혹은 여러 개의 특정 패턴으로 생각할 수도 있습니다.

[07:13] Smaller edges.
  더 작은 가장자리들입니다.

[07:15] So maybe our hope is that each neuron in the second layer of the network corresponds with the various relevant little edges.
  그래서 아마도 우리의 희망은 네트워크의 두 번째 층에 있는 각 뉴런이 다양한 관련 작은 가장자리들과 대응되는 것일지도 모릅니다.

[07:23] Maybe when an image like this one comes in, it lights up all of the neurons associated with around 8 to 10 specific little edges, which in turn lights up the neurons associated with the upper loop and a long vertical line, and those light up the neuron associated with a 9.
  아마도 이런 이미지가 들어오면, 약 8개에서 10개의 특정 작은 가장자리와 관련된 모든 뉴런이 활성화되고, 이것이 다시 위쪽 고리와 긴 수직선과 관련된 뉴런들을 활성화하며, 그것들이 숫자 9와 관련된 뉴런을 활성화할 것입니다.

[07:40] Whether or not this is what our final network actually does is another question, one that I'll come back to once we see how to train the network, but this is a hope that we might have, a sort of goal with the layered structure like this.
  이것이 우리 최종 네트워크가 실제로 수행하는 작업인지 여부는 또 다른 질문이며, 네트워크를 훈련하는 방법을 살펴본 후에 다시 다룰 것이지만, 이것은 우리가 가질 수 있는 희망이자 이런 계층적 구조를 가진 일종의 목표입니다.

[07:53] Moreover, you can imagine how being able to detect edges and patterns like this would be really useful for other image recognition tasks.
  게다가, 이와 같이 가장자리와 패턴을 감지할 수 있는 능력이 다른 이미지 인식 작업에 얼마나 유용할지 상상할 수 있을 것입니다.

[08:00] And even beyond image recognition, there are all sorts of intelligent things you might want to do that break down into layers of abstraction.
  그리고 이미지 인식을 넘어서서, 추상화의 층으로 나눌 수 있는 여러분이 하고 싶어 할 모든 종류의 지능적인 작업들이 있습니다.

[08:08] Parsing speech, for example, involves taking raw audio and picking out distinct sounds, which combine to make certain syllables, which combine to form words,
  예를 들어, 음성을 분석하는 것은 원시 오디오를 가져와서 뚜렷한 소리를 골라내는 것을 포함하며, 이것들이 결합하여 특정 음절을 만들고, 다시 결합하여 단어를 형성합니다.

[08:16] Which combine to make up phrases and more abstract thoughts, etc.
  이것들은 결합하여 구나 더 추상적인 생각 등을 구성합니다.

[08:21] But getting back to how any of this actually works, picture yourself right now designing how exactly the activations in one layer might determine the activations in the next.
  하지만 이것이 실제로 어떻게 작동하는지로 돌아가서, 한 층의 활성화가 다음 층의 활성화를 정확히 어떻게 결정할지 설계하는 자신의 모습을 상상해 보세요.

[08:30] The goal is to have some mechanism that could conceivably combine pixels into edges, or edges into patterns, or patterns into digits.
  목표는 픽셀을 가장자리로, 가장자리를 패턴으로, 또는 패턴을 숫자로 결합할 수 있는 메커니즘을 갖는 것입니다.

[08:39] And to zoom in on one very specific example, let's say the hope is for one particular neuron in the second layer to pick up on whether or not the image has an edge in this region here.
  아주 구체적인 예시를 자세히 살펴보자면, 두 번째 층의 특정 뉴런이 이 영역에 가장자리가 있는지 없는지를 포착하기를 바란다고 가정해 봅시다.

[08:51] The question at hand is what parameters should the network have?
  당면한 질문은 네트워크가 어떤 매개변수를 가져야 하는가입니다.

[08:55] What dials and knobs should you be able to tweak so that it's expressive enough to potentially capture this pattern, or any other pixel pattern, or the pattern that several edges can make a loop, and other such things?
  이 패턴이나 다른 픽셀 패턴, 또는 여러 가장자리가 고리를 만들 수 있다는 패턴과 같은 것들을 잠재적으로 포착할 만큼 충분히 표현력이 있도록 어떤 다이얼과 손잡이를 조절할 수 있어야 할까요?

[09:08] Well, what we'll do is assign a weight to each one of the connections between our neuron and the neurons from the first layer.
  음, 우리가 할 일은 우리 뉴런과 첫 번째 층의 뉴런들 사이의 각 연결에 가중치를 할당하는 것입니다.

[09:16] These weights are just numbers.
  이 가중치들은 단지 숫자일 뿐입니다.

[09:18] Then take all of those activations from the first layer and compute their weighted sum according to these weights.
  그런 다음 첫 번째 레이어의 모든 활성화 값을 가져와 이 가중치에 따라 가중 합계를 계산합니다.

[09:27] I find it helpful to think of these weights as being organized into a little grid of their own, and I'm going to use green pixels to indicate positive weights, and red pixels to indicate negative weights, where the brightness of that pixel is some loose depiction of the weight's value.
  저는 이러한 가중치가 자체적인 작은 격자로 구성되어 있다고 생각하는 것이 도움이 된다고 생각합니다. 양수 가중치는 녹색 픽셀로, 음수 가중치는 빨간색 픽셀로 표시할 것이며, 픽셀의 밝기는 가중치 값을 대략적으로 나타냅니다.

[09:42] Now if we made the weights associated with almost all of the pixels zero except for some positive weights in this region that we care about, then taking the weighted sum of all the pixel values really just amounts to adding up the values of the pixel just in the region that we care about.
  이제 우리가 관심을 두는 영역의 일부 양수 가중치를 제외하고 거의 모든 픽셀과 관련된 가중치를 0으로 만들면, 모든 픽셀 값의 가중 합계를 구하는 것은 우리가 관심을 두는 영역의 픽셀 값만 더하는 것과 같습니다.

[09:59] And if you really wanted to pick up on whether there's an edge here, what you might do is have some negative weights associated with the surrounding pixels.
  그리고 여기에 가장자리가 있는지 정말로 확인하고 싶다면, 주변 픽셀에 음수 가중치를 부여하는 방법을 사용할 수 있습니다.

[10:07] Then the sum is largest when those middle pixels are bright but the surrounding pixels are darker.
  그러면 중간 픽셀은 밝고 주변 픽셀은 어두울 때 합계가 가장 커집니다.

[10:14] When you compute a weighted sum like this, you might come out with any number,
  이와 같이 가중 합계를 계산하면 어떤 숫자가 나올 수도 있습니다,

[10:18] But for this network, what we want is for activations to be some value between 0 and 1.
  하지만 이 네트워크에서 우리가 원하는 것은 활성화 값이 0과 1 사이의 어떤 값이 되는 것입니다.

[10:24] So a common thing to do is to pump this weighted sum into some function that squishes the real number line into the range between 0 and 1.
  따라서 흔히 하는 방법은 이 가중 합계를 실수 전체를 0과 1 사이의 범위로 압축하는 어떤 함수에 넣는 것입니다.

[10:32] And a common function that does this is called the sigmoid function, also known as a logistic curve.
  그리고 이를 수행하는 일반적인 함수를 시그모이드 함수라고 하며, 로지스틱 곡선이라고도 합니다.

[10:38] Basically very negative inputs end up close to 0, positive inputs end up close to 1, and it just steadily increases around the input 0.
  기본적으로 매우 음수인 입력은 0에 가까워지고, 양수인 입력은 1에 가까워지며, 입력값 0 근처에서 꾸준히 증가합니다.

[10:49] So the activation of the neuron here is basically a measure of how positive the relevant weighted sum is.
  따라서 여기서 뉴런의 활성화는 기본적으로 관련 가중 합계가 얼마나 양수인지에 대한 척도입니다.

[10:57] But maybe it's not that you want the neuron to light up when the weighted sum is bigger than 0.
  하지만 가중 합계가 0보다 클 때 뉴런이 활성화되기를 원하지 않을 수도 있습니다.

[11:02] Maybe you only want it to be active when the sum is bigger than say 10.
  어쩌면 합계가 10보다 클 때만 활성화되기를 원할 수도 있습니다.

[11:06] That is, you want some bias for it to be inactive.
  즉, 비활성 상태를 유지하기 위한 어떤 편향(bias)을 원하는 것입니다.

[11:11] What we'll do then is just add in some other number like negative 10 to this weighted sum before plugging it through the sigmoid squishification function.
  그렇다면 우리가 할 일은 이 가중 합계를 시그모이드 압축 함수에 넣기 전에 마이너스 10과 같은 다른 숫자를 더하는 것뿐입니다.

[11:20] That additional number is called the bias.
  그 추가적인 숫자를 편향(bias)이라고 부릅니다.

[11:23] So the weights tell you what pixel pattern this neuron in the second layer is picking up on, and the bias tells you how high the weighted sum needs to be before the neuron starts getting meaningfully active.
  따라서 가중치는 두 번째 층의 이 뉴런이 어떤 픽셀 패턴을 감지하는지 알려주고, 편향은 뉴런이 의미 있게 활성화되기 시작하기 위해 가중 합계가 얼마나 높아야 하는지를 알려줍니다.

[11:36] And that is just one neuron.
  그리고 그것은 단지 하나의 뉴런일 뿐입니다.

[11:38] Every other neuron in this layer is going to be connected to all 784 pixel neurons from the first layer, and each one of those 784 connections has its own weight associated with it.
  이 층의 다른 모든 뉴런은 첫 번째 층의 784개 픽셀 뉴런 모두와 연결될 것이며, 그 784개의 연결 각각은 고유한 가중치를 가지고 있습니다.

[11:51] Also, each one has some bias, some other number that you add on to the weighted sum before squishing it with the sigmoid.
  또한, 각각은 시그모이드 함수로 압축하기 전에 가중 합계에 더해지는 또 다른 숫자인 편향을 가지고 있습니다.

[11:58] And that's a lot to think about!
  그리고 그것은 생각할 거리가 아주 많습니다!

[12:00] With this hidden layer of 16 neurons, that's a total of 784 times 16 weights, along with 16 biases.
  16개의 뉴런으로 구성된 이 은닉층에는 총 784 곱하기 16개의 가중치와 16개의 편향이 있습니다.

[12:08] And all of that is just the connections from the first layer to the second.
  그리고 이 모든 것은 첫 번째 층에서 두 번째 층으로의 연결일 뿐입니다.

[12:12] The connections between the other layers also have a bunch of weights and biases associated with them.
  다른 층들 사이의 연결 또한 그와 관련된 많은 가중치와 편향을 가지고 있습니다.

[12:18] All said and done, this network has almost exactly 13,000 total weights and biases.
  결과적으로, 이 네트워크는 총 13,000개에 가까운 가중치와 편향을 가지고 있습니다.

[12:23] 13,000 knobs and dials that can be tweaked and turned to make this network behave in different ways.
  이 네트워크가 다양한 방식으로 작동하도록 조정하고 돌릴 수 있는 13,000개의 손잡이와 다이얼이 있습니다.

[12:31] So when we talk about learning, what that's referring to is getting the computer to find a valid setting for all of these many many numbers so that it'll actually solve the problem at hand.
  따라서 우리가 학습에 대해 이야기할 때, 그것이 의미하는 바는 컴퓨터가 당면한 문제를 실제로 해결할 수 있도록 이 수많은 숫자들에 대한 유효한 설정을 찾게 하는 것입니다.

[12:42] One thought experiment that is at once fun and kind of horrifying is to imagine sitting down and setting all of these weights and biases by hand, purposefully tweaking the numbers so that the second layer picks up on edges, the third layer picks up on patterns, etc.
  재미있으면서도 다소 소름 끼치는 사고 실험 하나는, 자리에 앉아 이 모든 가중치와 편향을 직접 수동으로 설정한다고 상상해 보는 것입니다. 두 번째 계층은 가장자리를 감지하고, 세 번째 계층은 패턴을 감지하도록 의도적으로 숫자를 조정하는 식이죠.

[12:57] I personally find this satisfying rather than just treating the network as a total black box, because when the network doesn't perform the way you anticipate, if you've built up a little bit of a relationship with what those weights and biases actually mean, you have a starting place for experimenting with how to change the structure to improve.
  저는 개인적으로 네트워크를 단순히 완전한 블랙박스로 취급하는 것보다 이렇게 하는 것이 더 만족스럽습니다. 왜냐하면 네트워크가 예상대로 작동하지 않을 때, 그 가중치와 편향이 실제로 무엇을 의미하는지에 대해 어느 정도 관계를 형성해 두었다면, 개선을 위해 구조를 어떻게 변경할지 실험할 수 있는 출발점을 가질 수 있기 때문입니다.

[13:15] Or when the network does work but not for the reasons you might expect, digging into what the weights and biases are doing is a good way to challenge your assumptions and really expose the full space of possible solutions.
  또는 네트워크가 작동은 하지만 예상했던 이유가 아닐 때, 가중치와 편향이 무엇을 하고 있는지 파고드는 것은 여러분의 가정을 검증하고 가능한 해결책의 전체 영역을 실제로 드러내는 좋은 방법입니다.

[13:26] By the way, the actual function here is a little cumbersome to write down, don't you think?
  그런데 여기서 실제 함수를 적는 것은 조금 번거롭지 않나요?

[13:32] So let me show you a more notationally compact way that these connections are represented.
  그래서 이러한 연결을 더 간결하게 표기하는 방법을 보여드리겠습니다.

[13:37] This is how you'd see it if you choose to read up more about neural networks.
  신경망에 대해 더 공부하기로 하신다면 이런 식으로 보게 될 것입니다.

[13:40] Organize all of the activations from one layer into a column as a vector.
  한 층의 모든 활성화 값을 열 벡터로 정리하세요.

[13:48] Then organize all of the weights as a matrix, where each row of that matrix corresponds to the connections between one layer and a particular neuron in the next layer.
  그런 다음 모든 가중치를 행렬로 정리하는데, 이때 행렬의 각 행은 한 층과 다음 층의 특정 뉴런 사이의 연결에 해당합니다.

[13:58] What that means is that taking the weighted sum of the activations in the first layer according to these weights corresponds to one of the terms in the matrix vector product of everything we have on the left here.
  이는 첫 번째 층의 활성화 값들에 이 가중치들을 곱하여 가중 합을 구하는 것이, 여기 왼쪽에 있는 모든 것들의 행렬-벡터 곱셈 결과 중 하나에 해당한다는 의미입니다.

[14:14] By the way, so much of machine learning just comes down to having a good grasp of linear algebra, so for any of you who want a nice visual understanding for matrices and what matrix vector multiplication means, take a look at the series I did on linear algebra, especially chapter 3.
  참고로 머신러닝의 많은 부분은 선형대수학을 잘 이해하는 것으로 귀결됩니다. 그러니 행렬과 행렬-벡터 곱셈이 무엇을 의미하는지 시각적으로 잘 이해하고 싶은 분들은 제가 만든 선형대수학 시리즈, 특히 3장을 살펴보시기 바랍니다.

[14:29] Back to our expression, instead of talking about adding the bias to each one of these values independently, we represent it by organizing all those biases into a vector, and adding the entire vector to the previous matrix vector product.
  우리의 표현으로 돌아가서, 각 값에 독립적으로 편향을 더하는 것에 대해 이야기하는 대신, 우리는 그 모든 편향을 벡터로 구성하고 이전 행렬-벡터 곱에 전체 벡터를 더함으로써 이를 나타냅니다.

[14:43] Then as a final step, I'll wrap a sigmoid around the outside here, and what that's supposed to represent is that you're going to apply the sigmoid function to each specific component of the resulting vector inside.
  그런 다음 마지막 단계로, 여기에 시그모이드를 씌울 것인데, 이는 내부의 결과 벡터에 있는 각 특정 구성 요소에 시그모이드 함수를 적용한다는 것을 의미합니다.

[14:55] So once you write down this weight matrix and these vectors as their own symbols, you can communicate the full transition of activations from one layer to the next in an extremely tight and neat little expression, and this makes the relevant code both a lot simpler and a lot faster, since many libraries optimize the heck out of matrix multiplication.
  따라서 이 가중치 행렬과 벡터들을 고유한 기호로 적어두면, 한 층에서 다음 층으로의 활성화 값 전체 전이를 매우 간결하고 깔끔한 작은 표현으로 전달할 수 있으며, 많은 라이브러리가 행렬 곱셈을 매우 효율적으로 최적화하기 때문에 관련 코드가 훨씬 더 간단하고 빨라집니다.

[15:17] Remember how earlier I said these neurons are simply things that hold numbers?
  아까 제가 이 뉴런들이 단순히 숫자를 담고 있는 것이라고 말했던 것을 기억하시나요?

[15:22] Well of course the specific numbers that they hold depends on the image you feed in, so it's actually more accurate to think of each neuron as a function,
  물론 그들이 담고 있는 특정 숫자는 입력하는 이미지에 따라 달라지므로, 각 뉴런을 함수로 생각하는 것이 사실 더 정확합니다.

[15:31] One that takes in the outputs of all the neurons in the previous layer and spits out a number between 0 and 1.
  이전 계층의 모든 뉴런의 출력을 받아 0과 1 사이의 숫자를 내뱉는 것입니다.

[15:39] Really the entire network is just a function, one that takes in 784 numbers as an input and spits out 10 numbers as an output.
  사실 전체 네트워크는 단지 하나의 함수일 뿐이며, 784개의 숫자를 입력으로 받아 10개의 숫자를 출력으로 내뱉는 것입니다.

[15:47] It's an absurdly complicated function, one that involves 13,000 parameters in the forms of these weights and biases that pick up on certain patterns, and which involves iterating many matrix vector products and the sigmoid squishification function, but it's just a function nonetheless.
  이것은 특정 패턴을 포착하는 가중치와 편향 형태의 13,000개의 매개변수를 포함하고, 많은 행렬 벡터 곱셈과 시그모이드 압축 함수를 반복하는 터무니없이 복잡한 함수이지만, 그럼에도 불구하고 단지 하나의 함수일 뿐입니다.

[16:03] And in a way it's kind of reassuring that it looks complicated.
  어떤 면에서는 복잡해 보인다는 것이 오히려 안심이 되기도 합니다.

[16:07] I mean if it were any simpler, what hope would we have that it could take on the challenge of recognizing digits?
  제 말은, 만약 더 단순했다면 숫자를 인식하는 과제를 수행할 수 있을 것이라는 희망을 가질 수 있었을까요?

[16:13] And how does it take on that challenge?
  그리고 그것은 어떻게 그 과제를 수행할까요?

[16:15] How does this network learn the appropriate weights and biases just by looking at data?
  이 네트워크는 어떻게 데이터만 보고 적절한 가중치와 편향을 학습할까요?

[16:20] Well that's what I'll show in the next video, and I'll also dig a little more into what this particular network we're seeing is really doing.
  글쎄요, 그 점은 다음 영상에서 보여드릴 것이며, 우리가 보고 있는 이 특정 네트워크가 실제로 무엇을 하고 있는지에 대해서도 조금 더 자세히 다룰 것입니다.

[16:27] Now is the point I suppose I should say subscribe to stay notified about when that video or any new videos come out.
  이제 그 영상이나 새로운 영상이 언제 나오는지 알림을 받으려면 구독하라고 말씀드려야 할 시점인 것 같네요.

[16:33] But realistically, most of you don't actually receive notifications from YouTube, do you?
  하지만 현실적으로 여러분 대부분은 실제로 유튜브 알림을 받지 못하시죠, 그렇죠?

[16:38] Maybe more honestly I should say subscribe so that the neural networks that underlie YouTube's recommendation algorithm are primed to believe that you want to see content from this channel get recommended to you.
  더 솔직하게 말하자면, 유튜브 추천 알고리즘의 기반이 되는 신경망이 여러분이 이 채널의 콘텐츠를 추천받고 싶어 한다고 믿도록 구독을 하라고 해야 할 것 같습니다.

[16:48] Anyway, stay posted for more.
  어쨌든, 계속 지켜봐 주세요.

[16:50] Thank you very much to everyone supporting these videos on Patreon.
  패트리온에서 이 영상들을 후원해 주시는 모든 분께 진심으로 감사드립니다.

[16:54] I've been a little slow to progress in the probability series this summer, but I'm jumping back into it after this project, so patrons you can look out for updates there.
  올여름 확률 시리즈 진행이 조금 더뎠지만, 이번 프로젝트가 끝나면 다시 시작할 예정이니 후원자분들은 업데이트를 기대해 주세요.

[17:03] To close things off here I have with me Lisha Li who did her PhD work on the theoretical side of deep learning and who currently works at a venture capital firm called Amplify Partners who kindly provided some of the funding for this video.
  마무리하기 전에, 딥러닝의 이론적 측면으로 박사 학위를 받았고 현재 이 영상의 자금 일부를 친절하게 지원해 준 Amplify Partners라는 벤처 캐피털 회사에서 일하고 있는 리샤 리(Lisha Li)를 모셨습니다.

[17:15] So Lisha one thing I think we should quickly bring up is this sigmoid function.
  자, 리샤, 우리가 빨리 언급해야 할 것 중 하나는 이 시그모이드 함수라고 생각합니다.

[17:19] As I understand it early networks use this to squish the relevant weighted sum into that interval between zero and one, you know kind of motivated by this biological analogy of neurons either being inactive or active.
  제가 이해하기로는 초기 네트워크는 이를 사용하여 관련 가중 합계를 0과 1 사이의 구간으로 압축하는데, 이는 뉴런이 비활성 상태이거나 활성 상태라는 생물학적 유추에서 동기를 얻은 것입니다.

[17:30] Exactly.
  맞습니다.

[17:30] But relatively few modern networks actually use sigmoid anymore.
  하지만 요즘 현대적인 네트워크 중 시그모이드를 실제로 사용하는 경우는 비교적 드뭅니다.

[17:34] Yeah.
  네.

[17:34] It's kind of old school right?
  좀 구식이죠, 그렇죠?

[17:35] Yeah or rather ReLU seems to be much easier to train.
  네, 아니면 ReLU가 학습하기 훨씬 더 쉬운 것 같아요.

[17:39] And ReLU, ReLU stands for rectified linear unit?
  그리고 ReLU, ReLU는 rectified linear unit의 약자인가요?

[17:42] Yes it's this kind of function where you're just taking a max of zero and a where a is given by what you were explaining in the video and what this was sort of motivated from I think was a partially by a biological analogy with how neurons would either be activated or not.
  네, 이건 0과 a 중 큰 값을 취하는 함수인데, 여기서 a는 영상에서 설명하신 값이고, 이것은 뉴런이 활성화되거나 되지 않는 방식에 대한 생물학적 유추에서 부분적으로 동기를 얻은 것이라고 생각합니다.

[18:01] And so if it passes a certain threshold it would be the identity function but if it did not then it would just not be activated so it'd be zero so it's kind of a simplification.
  그래서 특정 임계값을 넘으면 항등 함수가 되지만, 그렇지 않으면 활성화되지 않아서 0이 되므로 일종의 단순화라고 할 수 있습니다.

[18:11] Using sigmoids didn't help training or it was very difficult to train at some point and people just tried ReLU and it happened to work very well for these incredibly deep neural networks.
  시그모이드를 사용하는 것은 학습에 도움이 되지 않았거나 어느 시점부터는 학습하기가 매우 어려웠는데, 사람들이 ReLU를 시도해 보니 이 엄청나게 깊은 신경망에서 매우 잘 작동하게 되었습니다.

[18:25] All right thank you Lisha.
  알겠습니다, 리샤 감사합니다.
