欲速不達

일을 급히 하고자 서두르면 도리어 이루지 못한다.

Fantastic AI, Fantastic World

DS | Data Science/ML | Machine Learning

Neural Network basic - NN, Gradient Descent, Error Back Propagation은 무엇일까?

_껀이_ 2022. 7. 15. 17:31
728x90
반응형

Perceptron 예시

1. Neural Network

Neural Network(이라 NN)은 인간 뇌의 신경망과 유사하게 설계하여 보다 복잡한 연산을 가능하게 한 연산 네트워크 구조입니다. 

 

Input 값으로는 [x1, x2, ..., xn]의 벡터이며, 원 안의 F(unction)을 통해 연산 작업을 마친 후에 output 값으로 y를 내보내는 구조입니다. 이 때 Input 값으로 들어가는 [x1, x2, ..., xn] 벡터의 요소에 대응하는 w1, w2, ..., wn의 가중치와 Input 값 벡터와 Weighted Summation 연산을 하며 그 후에 Activation Function을 거쳐 최종 output y가 됩니다.

 

* Weighted Summation : s = x1w1 + x2w2 + ... + xnwn

 

이러한 perceptron이 여러개가 모여 레이어를 형성하고 그 레이어가 몇 겹씩 중첩되어 형성되는 것이 NN이라고 할 수 있습니다. 

 

 

 

2. Learning Algorithm

NN 학습의 최소화된 가중치 값을 찾는 것으로 Gradient Descent 메서드를 통해 이루어집니다. 

신경망의 뉴런 개수가 많아지고, 입력의 수가 커질 수록 해를 구하기가 어렵게 되는데, 이는 연산량이나 복잡도가 높아짐으로써 발생하는 문제입니다. 이를 해결하기 위한 방법이 Gradient Descent 메서드 방법이며, 기울기의 국소적인 정보를 이용하여 기울기가 가장 낮은 방향으로 나아가면 어느 지점에서 시작하더라도 최종 해를 찾아낼수 있다는 아이디어입니다.

2-1 Gradient Descent

Gradient Descent 메서드는 비용함수 J(θ)를 최소화하는 가중치 또는 파라미터 θ를 구하는 것이며, 

* 임의의 초기값 θ을 잡고

* J가 최소가 될때까지 θ값을 반복해서 업데이트를 하고

* J가 최소가 되었을때 해당되는 θ를 찾는 것

 

 

비용함수 J(θ0,θ1) 예시

비용함수 J(θ)는 직전 θ에서 비용함수 J(θ)의 θj 미분값을 α(learning rate)와 곱한 것을 사용해 업데이트 하게 됩니다. 

 

Gradient Descent 시각화 예시

 

2-2. Error Back Propagation

Error Back Propagation은 하나의 가중치마다 에러의 편미분을 적용하여 업데이트 시키고 NN의 역방향으로 연산해나가는 것을 의미합니다. 

위의 그림은 가중치의 기울기를 통해 업데이트해나가면서 최소점을 찾는 모습을 도식화한 것으로, 위와 같은 작업이 모든 가중치 혹은 선택된 가중치에 적용됩니다. 또, 이러한 작업이 레이어를 거슬러 올라가 적용되는 것을 Error Back Propagation이라고 합니다.

 

NN 모델의 학습 절차에서 보면 데이터가 Input되어 모델을 통과하여 에러를 연산하고, 그 후 Error Back Propagation을 통해 가중치를 업데이트 합니다. 그 후 다음 데이터가 Input되어 같은 작업을 반복함으로써 가중치는 최적의 해를 향하게 됩니다.

이때 최적의 해는 기울기가 0이 되어 더이상 가중치가 업데이트가 되지 않는 순간에 있는데, 간혹 local minimum에 빠질 수 있으니 주의해야 합니다.

 

 

* local minimum 방지를 위해서는 가중치 업데이트 시에 사용한 learning rate를 사용하여 조절할 수 있습니다. 최적의 learning rate는 모델마다 다를 수 있으므로 정확한 답은 없지만 일반적으로 초기 learning rate는 0.001 수준을 기준으로 잡고 튜닝을 합니다.

* learning rate는 가중치가 업데이트 될 때의 속도를 조절해줄수 있으며, 업데이트 되는 정도를 말합니다. learning rate가 크다면 업데이트 되는 양이 커지고 그만큼 빨리 최적해로 수렴할 수도 있지만, 반대로 발산하는 경우도 생길 수 있습니다.

learning rate에 따른 발산과 수렴

 

728x90
반응형