본문 바로가기

AI/Deep Learning

[딥러닝] NN(Neural Network) - Activation function - Sigmoid - Perceptron - Single Layer Perceptron - Multiple Layer Perceptron - 컴도리돌이

728x90
728x90

outline

Feedforward Neural network

Feedforward

Backpropagation


순방향 신경망(Feedforward Neural network)

FFNN(Feed Forward Neural Network)는 입력에 대한 출력 값을 가장 잘 예측하는 가중치(weights)를 찾는 것이다. 그렇게 하기 위해서는 학습 데이터를 이용하여 출력을 구하고, 출력에 대한 에러를 구한 후 에러가 줄어드는 방향을 찾아 업데이트 해주는 과정을 반복하여 가중치를 찾는다.

 

 

위에 그림을 보면 입력 값(x1,x2,...xn)은 가중치(weight)에 의해 가중되고 더해진 뒤 bais가 더해진 후 활성화 함수(activation function)를 거쳐 출력된다. 이후 출력되는 출력 값과 실제 값을 비교하여 에러를 계산한 후 backpropagate 하여 가중치를 업데이트를 한다.

 

순방향(Feedforward)

본격적으로 입력값을 네트워크에 입력하여 출력을 얻는 과정을 살펴보자.

 

w0, w1, w2의 가중치를 임의의 값 -0.06, -0.1, 0.05, x0은 bias로 1로 설정하였다.

 

 

첫 번째 학습 벡터 (1,0,0)에 대한 출력 값을 계산한다.

net = w1x1 + w2x2 + w3x3 = -0.06

입력 값과 가중치 값의 곱을 합한 -0.06이 활성화 함수에 들어간다.

 

 

위에 예시에서는 활성화 함수를 계단 함수를 사용했기에 -0.06의 값은 0보다 작기에 출력 값이 0이 된다.

반복적으로 입력 값에 대해 가중치를 가중하고 합한 값을 활성화 함수를 넣어서 계산을 하면 아래의 그림처럼 작동된다.

 

4 번째 연산에서 출력 값이 목표 값과 다르므로 에러가 발생하였다. 그렇기에 해당 가중치를 수정한다.

 

시그모이드 함수(Sigmoid Unit)

 

시그모이드 함수(Sigmoid Unit)은 S자형 곡선 또는 시그모이드 곡선을 갖는 수학 함수이며, 인공 뉴런의 활성화 함수로 사용된다. 시그모이드 함수와 로지스틱 함수와 동일하다. 

 

시그모이드 함수를 미분하면 위의 그림처럼 정의 할 수 있다.

 

역전파(Backpropagation)

이제는 앞서 구한 에러에 대해 다시 역으로 보낸다. 그리고 에러를 줄이는 방향으로 가중치를 업데이트를 하는데 이를 backpropagation이라 한다.

 

에러를 위의 수식 처럼 실제 값(d)과 예측 값(f)의 차이의 제곱으로 정의를 내리면 해당 에러의 값을 가중치에 대한 최소 값을 찾아야 하기 때문에 gradient descent를 사용한다.

 

에러 함수를 가중치에 대해 편미분하면 제곱은 함수의 계수로 곱해지고 한 차수 내려간다. 그 다음에 가중치에 대한 변수를 갖고 있는 f를 편미분을 해준다. 위에 수식에서는 활성화 함수를 sigmoid 함수를 사용하였다.

 

sigmoid 함수를 미분을 하면 다음 식으로 정리할 수 있다.

gradient descent를 사용해서 가중치를 업데이트를 하면 위에 식처럼 정의할 수 있다.

 

 

그렇다면 다시 돌아와서 실제로 에러 값을 줄이기 위한 가중치를 위의 MLP를 가지고 업데이트 하는 방법을 알아보겠다.

 

 

1. Gradients of top-layer weights and update rule

먼저 top-layer의 가중치를 gradients descent를 사용해서 가중치를 업데이트를 한다.

 

 

2. Store intermediate value delta for later use of chain rule

연쇄 법칙을 사용할 수 있도록 중간 값을 델타 함수에 저장한다.

 

 

3. Gradients of lower-layer weights

 

4. Applying chain rule, recursive relation between delta`s

 

728x90
728x90