신경망이란 무엇인가?
신경망(Neural Network)은 인간의 뇌가 작동하는 방식을 모방하여 데이터 속에 숨겨진 기본적인 관계를 찾아내려는 일련의 알고리즘입니다. 이러한 접근 방식에서 신경망은 생물학적 뉴런이든 인공 뉴런이든, 뉴런들의 시스템을 표현합니다.
신경망은 인지 시스템의 학습 과정과 뇌의 신경학적 기능을 본떠 만들어진 분석 기법으로, 기존 데이터를 대상으로 소위 '학습' 과정을 수행한 뒤, 다른 관측값을 바탕으로 새로운 관측값(특정 변수에 대한 값)을 예측할 수 있습니다.
역전파의 학습 단계
역전파(Back Propagation)는 다음과 같은 단계로 진행됩니다.
- 네트워크가 학습 샘플을 입력받고, 현재 네트워크에 설정된 가중치를 사용하여 출력값을 계산합니다.
- 역전파는 계산된 결과와 기대값(실제 결과) 사이의 차이를 구하여 오류(error)를 산출합니다.
- 오류는 네트워크를 따라 역방향으로 전달되며, 오류를 최소화하도록 가중치가 조정됩니다. 오류가 네트워크를 거슬러 올라가며 전달되기 때문에 '역전파'라는 이름이 붙었습니다.
오류 계산과 가중치 조정
역전파 알고리즘은 각 학습 샘플에서 생성된 값과 실제 값을 비교하여 네트워크의 전체 오류를 계산합니다. 알고리즘은 출력층의 가중치를 조정해 오류를 줄일 수 있지만, 오류를 완전히 없앨 수는 없습니다. 그렇다고 해서 알고리즘이 여기서 끝나는 것은 아닙니다.
네트워크는 오류에 대한 '책임'을 이전 노드들에게 전달하고, 해당 노드들을 연결하는 가중치를 조정함으로써 전체 오류를 더욱 줄일 수 있습니다. 책임을 할당하는 구체적인 구조 자체는 핵심이 아닙니다. 중요한 것은 역전파가 활성화 함수의 편미분을 계산해야 하는 복잡한 수치 절차를 필요로 한다는 점입니다.
일반화 델타 규칙과 운동량(Momentum)
이러한 가중치 변경 방식을 일반화 델타 규칙(generalized delta rule)이라고 부릅니다. 일반화 델타 규칙을 적용할 때 관련된 두 가지 핵심 매개변수가 있습니다. 첫 번째는 운동량(momentum)으로, 각 유닛 내 가중치가 현재 향하고 있는 '방향'을 유지하려는 경향을 정의합니다.
즉, 각 가중치는 자신이 지금까지 커져 왔는지 작아져 왔는지를 기억하며, 운동량은 같은 방향으로 계속 나아가려고 합니다. 운동량이 큰 네트워크는 가중치의 방향을 반대로 바꿔야 하는 새로운 학습 샘플에 느리게 반응합니다. 반대로 운동량이 낮으면 가중치가 더 자유롭게 진동할 수 있습니다.
학습률(Learning Rate)의 역할
두 번째 매개변수인 학습률(learning rate)은 가중치가 얼마나 빠르게 변하는지를 결정합니다. 학습률을 설정하는 가장 좋은 방법은 큰 값으로 시작하여 네트워크가 학습됨에 따라 서서히 줄여 나가는 것입니다. 초기에는 가중치가 무작위로 설정되어 있으므로, 큰 진동이 오히려 최적의 가중치 근처에 도달하는 데 유리합니다. 그러나 네트워크가 최적해에 가까워질수록 학습률을 낮춰야 네트워크가 전반적으로 최적에 가까운 가중치로 미세 조정(fine-tuning)할 수 있습니다.