데이터와 AI / NOTE 25

순방향 신경망

Feedforward Networks

퍼셉트론, 활성화 함수, 다층 구조와 역전파를 살펴봅니다.

♫ 이 문서 듣기

개념에서 수식으로

먼저 이해할 내용

순방향 신경망에서는 입력이 중간층을 거쳐 출력으로 전달된다. 이 글은 단순한 선형 분류에서 시작해 활성화 함수와 여러 층을 연결하고, 출력 오차를 역방향으로 전달하여 가중치를 바꾸는 과정을 다룬다.

기호를 먼저 읽기

wᵀx+b
입력을 가중합한 분류 점수
sgn
점수의 부호로 범주를 정하는 규칙
h
중간층의 출력
φ, φ′
활성화 함수와 그 미분
δ
오차가 중간 계산값에 얼마나 민감한지 나타내는 값
α
가중치 갱신 크기

이 글의 흐름

분류 경계와 오분류 조건을 먼저 읽는다. 다음으로 비선형 변환을 연결한 신경망을 만들고, 체인룰로 구한 변화율을 이용해 출력층에서 입력층 쪽으로 가중치를 갱신한다.

주제와 표기

Feedforward Nets

Linear classification

A linear discriminant function which has the form

분류 경계는 점수가 0이 되는 위치이다

wᵀx+b의 부호로 두 범주를 나누면, 0이 되는 위치가 경계가 된다. 입력의 차원이 커져도 원리는 같으며 w와 b가 경계의 방향과 위치에 관련된다. 이 단계에서는 확률이 아니라 부호에 의한 판단을 하고 있음을 구별한다.

f[x]=wTx+b
where (w, b) ∈RD×R (weight vector, bias) are the parameters that control the function .

Decision rule is given by sgn[f[x]]

sgn[f[x]] = {{{1, if f[x] ≥0}, {-1, otherwise}}

Separating hyperplane

wTx+b=0
The input space X is split into two parts by the hyperplane .

Perceptron

A single layer neural network

The first iterative algorithm for learning linear classification

틀린 샘플에서만 계수를 바꾼다

퍼셉트론은 현재 경계가 틀리게 분류한 샘플을 이용해 w를 갱신한다. 정답 yₙ을 ±1로 두면 wᵀxₙyₙ의 부호로 올바른 분류 여부를 한 식에 담을 수 있다. 수렴에 대한 원문의 설명은 선형 분리가 가능한 조건과 함께 읽는다.

y=sgn[WTx+b]

Perceptron convergence Theorem

The perceptron classifier minimizes the error probability, while MMSE classifier does not .
One can easily see that the perceptron learning reduce the error
wk+1Txnyn=wkTxnynxnM|xnyn|2wkTxnyn
If classes C1 and C2are linearly separable, then the perceptron rule converges in a finite number of steps to a separating hyperplane .
The algorithm is guaranteed to converge when data are linearly separable

Perceptron Criterion

Suppose that target values {yn} take either 1 or - 1
yn = {{{1, if xnC1}, {-1, if xnC2}}
what we want here is to find a w such that
{{{wx>0, for xnC1}, {wx<0, for xnC2}}
which is identical to

오분류 집합의 손실과 기울기를 연결한다

ℳ은 현재 잘못 분류된 샘플들의 집합이다. 이 집합에서 합산한 목적함수를 w로 미분하면 xₙyₙ의 합이 나오고, 그 반대 방향으로 이동하는 갱신식이 된다. 원문에 learning rate와 기울기가 나란히 표기되어 있어도, 이동 계수 α와 미분벡터 ∇J는 다른 역할이다.

wTxnyn>0 xn
The perceptron criterion leads to the following objective function
J[w]=xnMwTxnyn
where ℳ is the set of vectors xn which are misclassified by the current weight vector .
The gradient of J[w] is
Jw=xnMxnyn

objective function

J[w]=xnMwTxnyn

Gradient descent

wkwk1αJ[wk1]
step size : α
learning rate : ∇J[w] = ∂J/∂w

Perceptron Learning: A Basic Idea

학습 절차를 한 샘플씩 따라간다

샘플을 하나 읽고 현재 계수로 분류한다. 올바르면 유지하고 틀리면 αxₙyₙ을 더한다. 새 계수로 다시 판단하는 과정을 반복한다는 것이, 목적함수 식을 실제 절차로 바꾼 의미이다.

If the pattern is correctly classified, do nothing . If not .
Δw=αxnMxnyn
J[w]:RmR
J[w]w=(J[w]w1J[w]w2:J[w]wm)Rm

Perceptron Learning: Algorithm Outline

1. Get a training sample
2. Check to see if it is misclassified
2.1 If classified correctly, do nothing
2.2 If classified incorrectly, update w by
wk+1=wk+αxnyn
3. Repeat steps 1 and 2 until convergence

McCulloch-Pitts Model

원본 도해

Activation Functions

활성화 함수가 선형 점수를 다른 값으로 바꾼다

ReLU는 음의 입력을 0으로 두고 양의 입력을 유지한다. Leaky ReLU는 음의 구간에서도 작은 기울기를 남기고, Softplus는 로그와 지수로 부드러운 변환을 만든다. ELU와 ReLU-6도 구간별로 입력이 어떻게 바뀌는지 먼저 읽는다.

원문에는 tanh라는 제목 옆에 ArcTan이 적힌 줄이 있다. 쌍곡탄젠트와 아크탄젠트는 같은 함수가 아니므로, 이 둘을 동일한 연산으로 설명하거나 하나로 임의 변경하지 않는다. 해당 줄은 함수 선택을 확인해야 하는 표기이다.

Sigmoid:ϕ[x]=11+ex
tanh:ϕ[x]=ArcTan[x]
ReLU:ϕ[x]=max[0,x]
Leaky ReLU : ϕ[x] = {{{αx, if x<0}, {x, if x≥0}}
Softplus:ϕ[x]=log[1+ex]
xlog[1+ex]=ex1+ex=11+ex
Exponential Linear Unit (ELU) : ϕ[x] = {{{α (ex - 1), if x<0}, {x, if x≥0}}
ReLU - 6 : ϕ[x] = {{{0, if x < 0}, {x, if 0≤x<6}, {6, if x≥6}}

Multilayer Perceptron (MLP)

Structure: bipartite

여러 층을 연결하고 출력 오차를 정한다

중간층을 거쳐 예측값을 만든 뒤 실제 y와의 차이를 제곱해 모은다. argmin은 손실의 최소값 자체가 아니라 그 값을 작게 만드는 계수의 선택을 뜻한다. 모델을 정의하는 식과 모델을 평가하는 손실식을 구별한다.

원본 도해
A multilayer extension of perceptron
universal approximation

Square loss (error)

원본 도해
argminw0,w1,w212Nn=1N(yny^n)2
=w1x1+w2x2+w0

Sematic space

Backpropagation

순전파 결과를 이용해 역방향 미분을 계산한다

먼저 h₁·h₂를 계산하고 이를 출력 가중치와 결합해 ŷ를 얻는다. 이후 실제 값과의 차이로 손실을 만들고, 어느 가중치를 바꾸면 손실이 얼마나 달라지는지 계산한다. 역전파는 새 입력을 역으로 복원하는 것이 아니라 손실의 미분을 전달하는 과정이다.

Error back - propagation (BP) algorithm
Gradient descent iteratively determines a local minimum of the error function J[x]
xxαJ[x]x
where the gradient ∂J[x]/∂xcontains the critical information
원본 도해
h1=ϕ[w11x1+w12x2+b1]
h2=ϕ[w21x1+w22x2+b2]
y^=υ1h1+υ2h2+c1
J=squareloss
=12Nn=1N(yny^n)2
원본 도해
원본 도해

출력층의 오차 민감도를 중간층으로 보낸다

δ_y에는 출력 오차와 활성화 함수의 미분이 함께 들어간다. δ_h는 이 값을 연결 가중치와 앞 층의 활성화 미분에 곱하여 얻는다. 이처럼 함수가 연속해서 연결되어 있을 때 변화율도 연결된 경로를 따라 곱해진다.

y=ϕ[w2h],y~=w2hh=ϕ[w1x],h~=w1x
errorJ=12e2=12(ty)2=12(tϕ[y~])2
CalculateJw2:
수식
Define δy as the gradient of the objective J w . r . t . the pre - activation y~
δy=Jy~=eϕ[y~]
CalculateJw1:
수식
Thus, δh can be recursively calculated as
δh=Jh~=δyw2ϕ[h~]

변화율에 입력값과 이동 크기를 반영한다

출력 가중치의 갱신에는 δ_y와 중간층 값 h가, 앞 가중치에는 δ_h와 입력 x가 들어간다. 마지막의 Softmax 예제는 출력 점수들을 여러 범주의 확률로 정규화한 것이다. 가중치 갱신과 최종 범주 선택을 별도의 단계로 읽는다.

updatew2:
Δw2=αJw2=αδyh
updatew1:
Δw1=αJw1=αδhx
원본 도해

Image Classification

MNIST
28×28=784
y^k=exp[wkTh]j=1Kexp[wjTh]

정리하면

순전파는 예측을 계산하는 방향이고, 역전파는 그 예측 오차의 민감도를 전달하는 방향이다. 두 흐름을 구별하면 학습식의 역할을 이해하기 쉽다.