소프트맥스 회귀 Softmax Regressions
We know that every image in MNIST is a digit, whether
it's a zero or a nine.
MNIST 안의 모든 이미지는 그것이 0이든 9이든 숫자(digit)입니다.
We want to be able to look at an image and give probabilities for it being each
digit.
이미지를 보고, 이미지가 어떤 숫자 인지에 대한 확률을 주고자 합니다.
For example, our model might look at a picture of a nine and be 80% sure it's a
nine, but give a 5% chance to it being an eight (because of the top loop) and a
bit of probability to all the others because it isn't sure.
예를 들어, 모델은 9의 사진을 보고 그 사진이 9일 확률은 80%, 8일 확률은 5%라고 하며 (위의 동그라미 때문에) 또한 그것도 완전히 확실한 것은 아니기 때문에 다른 모든 것에도 확률을 약간씩 줍니다.
This is a classic case where a softmax regression is a natural, simple model.
이것이 소프트맥스 회귀가 어울리는 간단한 모델인 전형적인 케이스 입니다.
If you want to assign probabilities to an object being one of several different
things, softmax is the thing to do.
어떤 객체가 여러 것들 중 어떤 한 객체일 확률을 할당하고자 하는 경우에는 소프트맥스가 적합합니다.
Even later on, when we train more sophisticated models, the final step will be
a layer of softmax.
나중에, 보다 정교한 모델을 훈련시킬 때도, 최종 단계는 소프트맥스 층이 될 것입니다.
A softmax regression has two steps: first we add up the evidence of our input
being in certain classes, and then we convert that evidence into probabilities.
소프트맥스 회귀는 2단계로 이루어지는데, 먼저 입력(input)이 어떤 클래스들에 속한다는 증거를 더한 다음, 해당 증거를 확률로 변환 시킵니다.
To tally up the evidence that a given image is in a particular class, we do a
weighted sum of the pixel intensities.
주어진 이미지가 특정 클래스에 속한다는 증거를 합하기 위하여, 픽셀 강도의 가중 합계 (weighted sum)를 냅니다.
The weight is negative if that pixel having a high intensity is evidence
against the image being in that class, and positive if it is evidence in favor.
고 강도의 픽셀이 이미지가 해당 클래스에 속한다는 증거가 아니면 가중치는 음수, 증거이면 양수가 됩니다.
The following diagram shows the weights one model learned for each of these
classes.
아래 다이어그램은 이들 각각의 클래스들에 대하여 모델이 학습한 가중치를 보여줍니다.
Red represents negative weights, while blue represents positive weights.
빨간 색은 음수 가중치를, 파란 색은 양수 가중치를 표현합니다.
We also add some extra evidence called a bias.
편향(bias) 이라는 몇 가지 추가 증거도 더합니다.
Basically, we want to be able to say that some things are more likely
independent of the input.
기본적으로, 몇 가지는 입력과 보다 독립적이라고 말할 수 있어야 합니다.
where \(Wi\) is the weights and \(bi\) is the bias for
class i, and j is an index for summing over the pixels in our
input image x.
\(Wi\)는 가중치(weight), \(bi\)는 클래스 i의 편향(bias), j는 입력 이미지 x안의 픽셀의 합에 대한 인덱스인 경우,
The result is that the evidence for a class i given an
input x is:
입력x가 주어진 상태에서 클래스i에 대한 증거는 아래와 같습니다:
evidencei=∑jWi, jxj+bi
We then convert the evidence tallies into our predicted
probabilities y using the "softmax" function:
그러면 “softmax” 함수를 사용하여 증거 총수(evidence tallies)를 예측된 확률 y로 변환시킵니다:
y=softmax(evidence)
Here softmax is serving as an "activation" or
"link" function, shaping the output of our linear function into the
form we want -- in this case, a probability distribution over 10 cases.
여기서 softmax는, 선형함수의 출력을 원하는 형식(이 경우, 10가지 경우에 대한 확률분포)으로 만드는, “활성화(activation)” 또는 “연결(link)” 함수의 역할을 합니다.
You can think of it as converting tallies of evidence into probabilities of our
input being in each class. It's defined as:
증거 총수를 입력이 각 클래스에 속한다는 확률로 변환시키는 것이 softmax라고 생각할 수 있습니다.
Softmax는 다음과 같이 정의됩니다:
softmax(x)=normalize(exp(x))
If you expand that equation out, you get:
해당 등식을 확장하면 다음을 얻게 됩니다:
softmax(x)i=exp(xi)∑jexp(xj)
But it's often more helpful to think of softmax the first
way: exponentiating its inputs and then normalizing them.
하지만 softmax를, 입력을 지수화(exponentiating)한 다음 정규화하는 첫째 방식으로 생각하는 것이 훨씬 도움이 됩니다.
The exponentiation means that one unit more evidence increases the weight given
to any hypothesis multiplicatively.
지수화는 증거가 1개 추가되면 어떤 가정(hypothesis)에 주어진 가중치를 곱으로 증가시키는 것을 의미합니다.
And conversely, having one less unit of evidence means that a hypothesis gets a
fraction of its earlier weight.
그리고 반대로, 증거가 1개 줄어들면 가정의 가중치가 원 가중치의 분수비로 줄어드는 것을 의미합니다.
No hypothesis ever has zero or negative weight.
어떤 가정도 0 또는 음수의 가중치를 가질 수 없습니다.
Softmax then normalizes these weights, so that they add up to one, forming a
valid probability distribution. (To get more intuition about the softmax
function, check out the section on it in Michael
Nieslen's book, complete with an interactive visualization.)
그런 다음 Softmax는 이들 가중치를 정규화 해서, 모두 더하면 1이 되는 유효한 확률 분포를 만듭니다.(softmax 함수에 관한 더 많은 직관을 얻으려면, check out
the section on it in Michael
Nieslen's book, complete with an interactive visualization.)
You can picture our softmax regression as looking something like the following,
although with a lot more xs. For each output, we compute a weighted sum of
the xs, add a bias, and then apply softmax.
보다 많은 xs를 가진 softmax 회귀를 그릴 수도 있지만, 아래와 같은 softmax 회귀를 그릴 수 있습니다. 각 출력 마다, xs의 가중된 합계를 계산하고, 편향(bias)을 추가한 다음, softmax를 적용합니다.
If we write that out as equations, we get:
등식으로 작성하면 다음을 얻게 됩니다:
We can "vectorize" this procedure, turning it into a matrix
multiplication and vector addition.
이것을 매트릭스 곱셈 및 벡터 추가로 변환함으로써, 이 과정을 “벡터화” 할 수 있습니다.
This is helpful for computational efficiency. (It's also a useful way to
think.)
벡터화는 계산 효율성에 도움이 됩니다. (이것은 또한 생각하는데 유용한 방식입니다.)
More compactly, we can just write:
보다 간략하게 이렇게 작성할 수 있습니다:
y=softmax(Wx+b)
'TensorFlow' 카테고리의 다른 글
TensorFlow Introduction (8) (0) | 2016.03.31 |
---|---|
회귀 구현하기 Implementing the Regression (7) (0) | 2016.01.29 |
MNIST 데이터 The MNIST Data (5) (0) | 2016.01.26 |
초보자를 위한 MNIST MNIST For ML Beginners (4) (0) | 2016.01.26 |
Why Did Google Open Source This? 왜 구글이 소스를 공개? (3) (0) | 2016.01.26 |
댓글