본문 바로가기

[ 프로그래밍 ]/신경망(Neural Network)

BP 학습법의 문제점과 해결 방법

[ 문제점 ]

1. 학습 알고리즘이 지역 최소점에 빠질 가능성
2. 학습 알고리즘이 포화영역에서는 잘 동작하지 않는 점(시뮬레이션 초기에는 연결강도의 값은 대개 0 부근의 값으로 초기화되지만, 시뮬레이션이 진행됨에 따라 연결강도는 점점 커져 포화형 함수 f의 입력 레벨도 크게 변화되어 사실상 계단함수로 동작. 즉, 대부분의 뉴런이 f'가 거의 0인 포화영역에서 동작)
3. 학습이 완료되기 까지 많은 횟수의 반복학습 필요
4. 응용분야에 따라 학습 파라미터의 조절이 필요
5. 추가 학습시 전체적인 재학습이 필요
6. 학습 완료시점 예측 불가능


문제점 3, 4에 대한 [ 해결방법 ]

1. 일괄수정법
Backpropagation 학습 알고리즘은 매 학습패턴 입력시 마다 오차를 계산하여 연결강도와 임계값을 수정하지만,
일괄 수정법은 학습패턴 각각의 오차를 구한 뒤 연결강도와 임계값의 수정량을 평균하여 학습패턴 전체를 일괄 수정한다.
이 방법은 수정 횟수가 적으므로 학습시간을 단축시킬 수 있어 효과적일 수 있으나, 
수정량이 항상 평균값으로 처리되어 미묘한 수정을 할 수 없어서 복잡한 문제에 적용하는 것은 어렵다.

2. 출력값의 제한
각 unit 의 출력값은 시그모이드 함수에 의해 0 부터 1 까지의 값이 되지만
출력값이 0 또는 1 에 가까운 값이 되기 위해서 시그모이드 함수의 입력값은 아주 작은 값이나 아주 큰 값이 될 필요가 있다.
따라서 시그모이드 함수의 출력을 예를 들면 0.01 부터 0.99 가지의 값이므로 제한하는 방법이 있다.
이 방법은 중간층 unit의 출력값이 0 또는 1 이 되지 않으므로 연결강도의 수정이 계속 진행되어 학습이 종료되기 어렵다.

3. 모멘텀 방법

대개 Backpropagation 학습 알고리즘에서 연결강도와 오프셋의 수정량은 출력층에 의한 오차의 기여도에 따라 구해지지만,
모멘텀 방법은 이전의 수정량도 고려하여 수정량을 결정하는 방법이다.
이 방법은 엄밀히 말하자면 최급하강법은 아니지만,
오차로부터 구해진 수정량에 의한 오버쉬프트를 억제하여 학습의 고속화에 유효한 것으로 알려져 있다.

4. 수정 모멘텀 방법

Backpropagation 학습 알고리즘에서 학습의 초기에는 수정방향이 임의적일 수 있으나
학습이 진행됨에 따라 점차 이전의 수정방향과 근사한 방향으로 수정이 될 것이다.
따라서 학습이 진행됨에 따라 모멘텀의 비중을 점차 크게 하여 학습의 고속화를 이루는 방법이다.
그러나 모멘텀의 비중을 너무 크게 하면 오차에 의한 수정이 일어나지 못하게 되므로
모멘텀의 비중 설정에 있어서 상한선을 설정해두는 것이 필요하다.

5. 학습계수의 최적화 방법
학습 패턴 수나 학습의 진행 상황에 따라 학습계수를 자동적으로 선택하여 학습의 효율화를 얻는 방법이다.
즉, 여러 개의 학습계수를 미리 준비하여 오차의 제곱을 구하고, 그 값이 최소가 되는 학습계수를 선택하여
연결강도와 오프셋을 수정하는 방법이다.
이 방법은 매번 여러 개의 학습계수를 사용하여 오차를 구하므로 계산량이 많은 문제점이 있다.

6. 복잡도 방법
일반적으로 신경망을 복잡하게 하면 학습패턴에 대해서는 잘 처리할 수 있지만
문제의 성질을 적절히 일반화시키기에는 어려운 문제점이 있다.
특히 학습패턴에 노이즈가 포함되어 있는 경우 본질적이지 못한 패턴까지도 학습된다.
이러한 문제점을 해결하기 위해서는 네트워크의 자유도가 될 수 있는 한 작은 것이 좋다.
Rumelhart는 이러한 점을 고려하여 Backpropagation 학습 알고리즘에 네트워크의 복잡도라는 새로운 요소를 추가한 복잡도 방법을 제한했다. 그가 제안한 복잡도 방법은 다음과 같다.
오차(E), 복잡도(Complexity)를 결합한 평가함수(Cost)를 만들어 이것이 최소가 되도록 연결강도를 바꾸어가는 방법이다.

여기서 Cweight 는 연결강도의 정도에 따른 복잡도 비교이며, Cunit 는 유닛의 수에 의한 복잡도이다.
네트워크의 복잡도를 줄이는 방법은 다음과 같다.
1) 네트워크의 연결 수를 줄인다.
2) 중간 유닛의 수를 줄인다.
3) 네트워크의 대칭성을 높인다.
4) 연결강도를 나타내는 비트의 수를 늘린다.

7. 선택적 재학습 방법
Backpropagation 학습 알고리즘의 학습 종료 시점은 전체 학습패턴의 오차합이 주어진 허용치보다 작아지는 때이나,
학습시켜야할 패턴이 많은 경우, 전체에 비해 매우 적은 일부 학습패턴의 오차 때문에 학습 속도가 늦어지는 것을 볼 수 있다.
즉, 훈련이 잘 안되는 몇몇 학습패턴의 오차를 줄이기 위하여 전체 학습패턴을 계속 반복적으로 학습시켜야 한다.
따라서 좀 더 효과적인 학습을 위해, 선택적 재학습 방법은 학습 과정에서 훈련이 잘 안되는 패턴을 집중적으로 재학습 하는데,
이때 편중된 학습에 의하여 발생할 수 있는 기존의 학습된 패턴의 손실 정도를 조사함으로써 최적의 재학습을 할 수 있다.
선택적 재학습은 인간의 학습 과정과도 어느 정도 일치하는데,
새로운 사실을 배울 때 어려운 것을 보다 많이 반복하여 학습하는 것과 유사하다.
이것은 수학적으로는 명확하지 않지만 학습이 잘 되지 않는 패턴을 좀 더 집중적으로 학습에 참여시키고자 하는 것이며,
이를 통해 학습에 소요되는 시간을 줄일 수 있을 뿐 아니라,
학습 결과 생성된 신경망 자체도 사용된 전체 학습패턴을 잘 일반화 하여 인식률을 높일 수 있다.

8. 연결강도 개수의 축소
인공 신경망의 기능에 대한 연구는 많이 진행되고 있는데 비하여 그 구조에 대한 연구는 매우 미비한 실정이다.
대부분의 신경망 모델들은 모든 노드 사이를 연결시키는 방법을 사용하며,  특히 Backpropagation과 같은 모델은 각 층사이의 노드를 모두 연결시킨다. 이러한 방법은 노드의 수가 몇 백개 미만인 간단한 문제에서는 상관 없지만, 노드의 수가 수만개 이상이 되는 실제 문제의 경우에는 매우 많은 계산이 필요하다. 일부에서는 이러한 문제를 해결하기 위하여 일반적인 네트워크 구조인 하이퍼 큐브(hyper-cube)나 사각 그리드 (rectanguar grid), 또는 링 (ring) 과 같은 구조를 도입한 CNN(Compact Neural Netword)과 RINN(Reduced Interconnections Neural Network) 등을 설계하고 구현하는 연구가 진행되고 있다.
또 다른 연구로는 네트워크의 구조를 초기에 임의로 구성하고, 여러 가지 매개변수를 조정하면서 검사 데이터에 대하여 원하는 기능을 할 때까지 구조를 변경하는 과정을 반복하는 방법을 사용하는 것도 있다. 하지만, 이와 같은 신경망 설계 방법은 근본적으로 해결하고자 하는 문제의 성격을 고려하지 않는 구조이기 때문에 어느 정도 효율의 손실을 감수해야만 하는 단점이 있다.
연결강도 갯수의 축소 방법은 학습 후에 중요하지 않은 연결선을 제거하여 전체 연결선의 수를 줄임으로써 인식 속도를 높이는 것이다. Backpropagation 학습 알고리즘과 같은 모델의 노드가 하는 일은 단순히 입력값들의 가중된 합을 비선형 함수에 의하여 정규화시키는 것이므로, 이 때 값이 0, 혹은 0에 가까운 연결은 제거하여도 효율에는 큰 영향을 미치지 않는다. 이와 같은 방법을 통하여 생성된 신경망은 연결선의 수가 감소되어 소형 컴퓨터에서 사용하기 용이할 뿐만 아니라 인식 과정의 속도도 높아지는 장점이 있다. 이때, 연결선을 제거함에 따른 속도의 개선과 성능 저하의 상호 관계를 분석하여 문제에 따른 최적의 신경망 구조를 선정한다.



참고자료
김대수, 신경망 이론과 응용(1), 하이테크 정보, 1992


덧.
연구실에 있을 때는 모르면 물어볼데가 있어 좋았는데,
좋은 시절 다 보내고 혼자 다시 공부하고 있노라니 그때가 참 그립다.

도현이형, 보고싶네요.