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 이전에 개발됨