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

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가 크다면 업데이트 되는 양이 커지고 그만큼 빨리 최적해로 수렴할 수도 있지만, 반대로 발산하는 경우도 생길 수 있습니다.

'DS | Data Science > ML | Machine Learning' 카테고리의 다른 글
[RNN] Recurrent Neural Network : 순환신경망 (2) | 2022.09.23 |
---|---|
[CNN] Convolutional Neural Network : 합성곱 신경망 (1) | 2022.09.23 |
[Back propagation] 역전파 (0) | 2022.09.21 |
[Gradient Descent & Gradient ascent] 경사상승법 & 경사하강법 (1) | 2022.09.21 |
지도학습 Supervised Learning / 비지도학습 Unsupervised Learning / 강화학습 Reinforcement Learning (0) | 2022.07.15 |