본문 바로가기

신경회로망

Hand-written Recognizer with BP : 도형인식 데모 BP 학습 알고리즘 테스트 용으로 만든 Hand-written Recognizer. 마우스를 사용하더라도, 붓으로 쓰는 것 처럼 획의 굵기를 조절하는 알고리즘을 구현해 봤는데 괜찮은지 모르겠다. 세모(△), 네모(□), 점(●), 곱표(X) 등 네 개의 모양에 대해 테스트 한 결과, 만족할만한 성능을 발휘. 몇몇가지 버그들을 수정한 다음 본격적으로 다양한 모양, 문자 등에 대한 학습도 진행해 보아야 겠다.
BP 학습법의 문제점과 해결 방법 [ 문제점 ] 1. 학습 알고리즘이 지역 최소점에 빠질 가능성 2. 학습 알고리즘이 포화영역에서는 잘 동작하지 않는 점(시뮬레이션 초기에는 연결강도의 값은 대개 0 부근의 값으로 초기화되지만, 시뮬레이션이 진행됨에 따라 연결강도는 점점 커져 포화형 함수 f의 입력 레벨도 크게 변화되어 사실상 계단함수로 동작. 즉, 대부분의 뉴런이 f'가 거의 0인 포화영역에서 동작) 3. 학습이 완료되기 까지 많은 횟수의 반복학습 필요 4. 응용분야에 따라 학습 파라미터의 조절이 필요 5. 추가 학습시 전체적인 재학습이 필요 6. 학습 완료시점 예측 불가능 문제점 3, 4에 대한 [ 해결방법 ] 1. 일괄수정법 Backpropagation 학습 알고리즘은 매 학습패턴 입력시 마다 오차를 계산하여 연결강도와 임계값을 수정..
BP를 이용한 문자 학습 및 인식 부제 : BP를 이용한 ㄱ, ㄴ, ㄷ 학습 및 인식 이전 글에 이어, 알고리즘을 수정하고 BPNET 클래스를 만들어서 테스트. 주요 추가/수정 내용으로, 1) 초기 연결 강도를 자동으로 설정 2) 일반 BP 학습법과 모멘텀 BP 알고리즘 선택 가능 3) 출력값이 1차원이던 것을 다차원 가능한 형태로 수정 4) 기타 잡다한 버그 수정 수정된 BP 알고리즘을 이용하여, 아래 그림의 문자들을 학습 입력벡터 : x1 = { 1, 1, 1, 0, 0, 1, 0, 0, 1} x2 = { 1, 0, 0, 1, 0, 0, 1, 1, 1} x3 = { 1, 1, 1, 1, 0, 0, 1, 1, 1} 목표 : t1 = { 0, 0 } t2 = { 0, 1 } t3 = { 1, 0 } 학습결과 아래와 같이 연결강도가 변경됨..
BP(Backpropagation)를 이용한 XOR 학습 선형 분리가 불가능한 문제를 해결하기 위한 다층 신경망 모델 중 델타 학습법의 일종인 오류 역전파 학습법 즉, BP 알고리즘을 이용하여 XOR 문제 학습. 첨부한 소스는 벡터 크기, 은닉층 뉴런 수, 출력층의 개수를 조절하기 위해 현재 버전에서는 조금 복잡한(지저분한) 형태로 구성되어 있음. 본 학습에서, 학습률은 1, 최대 출력오차는 0.01로 설정 은닉층 뉴런의 수 p는 1989년 G. Mirchandini와 W. Cao가 제안한 방법을 일반적으로 사용하며, p = log2M 을 이용하여 구함 이때 M은 선형 분리 가능한 영역의 최대 수를 의미 활성화 함수는 단극성 시그모이드 함수 사용 초기 연결 강도를 설정하는 것이 중요한데, 이를 잘못 설정하면 학습이 제대로 이루어지지 않은 상태에서 Local ..