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