trainrp
탄력적 역전파
설명
net.trainFcn = 'trainrp'
는 신경망의 trainFcn
속성을 설정합니다.
[
은 trainedNet
,tr
] = train(net
,...)trainrp
를 사용하여 신경망을 훈련시킵니다.
trainrp
는 탄력적 역전파 알고리즘(Rprop)에 따라 가중치와 편향 값을 업데이트하는 신경망 훈련 함수입니다.
아래에 디폴트 값과 함께 표시된 다음의 trainrp
훈련 파라미터에 따라 훈련이 이루어집니다.
net.trainParam.epochs
— 훈련할 최대 Epoch 횟수. 디폴트 값은1000
입니다.net.trainParam.show
— 다음 표시까지 진행할 Epoch 횟수(표시하지 않으려면NaN
). 디폴트 값은25
입니다.net.trainParam.showCommandLine
— 명령줄 출력값 생성. 디폴트 값은false
입니다.net.trainParam.showWindow
— 훈련 GUI 표시. 디폴트 값은true
입니다.net.trainParam.goal
— 성능 목표. 디폴트 값은0
입니다.net.trainParam.time
— 훈련을 진행할 최대 시간(단위: 초). 디폴트 값은inf
입니다.net.trainParam.min_grad
— 최소 성능 기울기. 디폴트 값은1e-5
입니다.net.trainParam.max_fail
— 최대 검증 실패 횟수. 디폴트 값은6
입니다.net.trainParam.lr
— 학습률. 디폴트 값은0.01
입니다.net.trainParam.delt_inc
— 가중치 변경량 증가 배율. 디폴트 값은1.2
입니다.net.trainParam.delt_dec
— 가중치 변경량 감소 배율. 디폴트 값은0.5
입니다.net.trainParam.delta0
— 초기 가중치 변경. 디폴트 값은0.07
입니다.net.trainParam.deltamax
— 최대 가중치 변경. 디폴트 값은50.0
입니다.
예제
입력 인수
출력 인수
세부 정보
알고리즘
trainrp
은 신경망의 가중치, 순 입력값, 전달 함수가 도함수를 갖는 한 어떤 신경망도 훈련시킬 수 있습니다.
역전파는 가중치와 편향 변수 X
에 대한 성능 perf
의 도함수를 계산하기 위해 사용됩니다. 각 변수는 다음에 따라 조정됩니다.
dX = deltaX.*sign(gX);
여기서 deltaX
의 요소는 모두 delta0
으로 초기화되고, gX
는 기울기입니다. 각 반복에서 deltaX
의 요소가 수정됩니다. 하나의 반복에서 다음 반복으로 넘어갈 때 gX
의 요소의 부호가 변경되면 deltaX
의 대응되는 요소는 delta_dec
만큼 감소합니다. 하나의 반복에서 다음 반복으로 넘어갈 때 gX
의 요소의 부호가 변하지 않으면 deltaX
의 대응되는 요소는 delta_inc
만큼 증가합니다. Riedmiller, M., and H. Braun, “A direct adaptive method for faster backpropagation learning: The RPROP algorithm,” Proceedings of the IEEE International Conference on Neural Networks,1993, pp. 586–591.
다음 조건 중 하나라도 충족되면 훈련이 중지됩니다.
epochs
(반복)의 최대 횟수에 도달함.time
의 최대 값이 초과됨.성능이
goal
로 최소화됨.성능 기울기가
min_grad
아래로 떨어짐.(검증을 사용하는 경우) 검증 성능(검증 오류)이 마지막으로 감소한 이후로
max_fail
배 넘게 증가함.
참고 문헌
[1] Riedmiller, M., and H. Braun, “A direct adaptive method for faster backpropagation learning: The RPROP algorithm,” Proceedings of the IEEE International Conference on Neural Networks,1993, pp. 586–591.
버전 내역
R2006a 이전에 개발됨