traingdx
모멘텀을 사용한 경사하강법과 적응적 학습률 역전파
설명
net.trainFcn = 'traingdx'
는 신경망의 trainFcn
속성을 설정합니다.
[
은 trainedNet
,tr
] = train(net
,...)traingdx
를 사용하여 신경망을 훈련시킵니다.
traingdx
는 경사하강법 모멘텀과 적응적 학습률에 따라 가중치와 편향 값을 업데이트하는 신경망 훈련 함수입니다.
아래에 디폴트 값과 함께 표시된 다음의 traingdx
훈련 파라미터에 따라 훈련이 이루어집니다.
net.trainParam.epochs
— 훈련할 최대 Epoch 횟수. 디폴트 값은 1000입니다.net.trainParam.goal
— 성능 목표. 디폴트 값은 0입니다.net.trainParam.lr
— 학습률. 디폴트 값은 0.01입니다.net.trainParam.lr_inc
— 학습률 증가 비율. 디폴트 값은 1.05입니다.net.trainParam.lr_dec
— 학습률 감소 비율. 디폴트 값은 0.7입니다.net.trainParam.max_fail
— 최대 검증 실패 횟수. 디폴트 값은6
입니다.net.trainParam.max_perf_inc
— 최대 성능 증가. 디폴트 값은1.04
입니다.net.trainParam.mc
— 모멘텀 상수. 디폴트 값은0.9
입니다.net.trainParam.min_grad
— 최소 성능 기울기. 디폴트 값은1e-5
입니다.net.trainParam.show
— 다음 표시까지 진행할 Epoch 횟수(표시하지 않으려면NaN
). 디폴트 값은 25입니다.net.trainParam.showCommandLine
— 명령줄 출력값 생성. 디폴트 값은false
입니다.net.trainParam.showWindow
— 훈련 GUI 표시. 디폴트 값은true
입니다.net.trainParam.time
— 훈련을 진행할 최대 시간(단위: 초). 디폴트 값은inf
입니다.
입력 인수
출력 인수
세부 정보
알고리즘
함수 traingdx
는 적응적 학습률과 모멘텀 훈련을 결합합니다. 추가적인 훈련 파라미터로서 모멘텀 계수 mc
를 갖는다는 점을 제외하면 traingda
와 같은 방법으로 호출됩니다.
traingdx
는 신경망의 가중치, 순 입력값, 전달 함수가 도함수를 갖는 한 어떤 신경망도 훈련시킬 수 있습니다.
역전파는 가중치와 편향 변수 X
에 대한 성능 perf
의 도함수를 계산하기 위해 사용됩니다. 각 변수는 모멘텀을 사용한 경사하강법에 따라 조정됩니다.
dX = mc*dXprev + lr*mc*dperf/dX
여기서 dXprev
는 가중치 또는 편향의 직전 변경값입니다.
각 Epoch에서 성능이 목표 방향으로 감소하면 학습률이 lr_inc
배만큼 증가합니다. 성능 증가량이 max_perf_inc
배를 초과하면 학습률이 lr_dec
배만큼 조정되고 성능 증가를 유발한 변경 사항은 적용되지 않습니다.
다음 조건 중 하나라도 충족되면 훈련이 중지됩니다.
epochs
(반복)의 최대 횟수에 도달함.time
의 최대 값이 초과됨.성능이
goal
로 최소화됨.성능 기울기가
min_grad
아래로 떨어짐.(검증을 사용하는 경우) 검증 성능(검증 오류)이 마지막으로 감소한 이후로
max_fail
배 넘게 증가함.
버전 내역
R2006a 이전에 개발됨