주요 콘텐츠

traingdm

모멘텀 역전파를 사용한 경사하강법

구문

net.trainFcn = 'traingdm'
[net,tr] = train(net,...)

설명

traingdm은 모멘텀을 사용한 경사하강법에 따라 가중치와 편향 값을 업데이트하는 신경망 훈련 함수입니다.

net.trainFcn = 'traingdm'은 신경망의 trainFcn 속성을 설정합니다.

[net,tr] = train(net,...)traingdm을 사용하여 신경망을 훈련시킵니다.

아래에 디폴트 값과 함께 표시된 다음의 traingdm 훈련 파라미터에 따라 훈련이 이루어집니다.

net.trainParam.epochs1000

훈련할 최대 Epoch 횟수

net.trainParam.goal0

성능 목표

net.trainParam.lr0.01

학습률

net.trainParam.max_fail6

최대 검증 실패 횟수

net.trainParam.mc0.9

모멘텀 상수

net.trainParam.min_grad1e-5

최소 성능 기울기

net.trainParam.show25

다음 진행률 표시까지 진행할 Epoch 횟수

net.trainParam.showCommandLinefalse

명령줄 출력값 생성

net.trainParam.showWindowtrue

훈련 GUI 표시

net.trainParam.timeinf

훈련을 진행할 최대 시간(단위: 초)

신경망 사용

feedforwardnet 또는 cascadeforwardnet으로 traingdm를 사용하는 표준 신경망을 만들 수 있습니다. traingdm을 사용하여 훈련할 사용자 지정 신경망을 준비하려면 다음을 수행하십시오.

  1. net.trainFcn'traingdm'으로 설정합니다. 이렇게 하면 net.trainParam traingdm의 디폴트 파라미터로 설정됩니다.

  2. net.trainParam 속성을 원하는 값으로 설정합니다.

두 경우 모두, 그 결과 생성되는 신경망에 train을 호출하면 이 신경망을 traingdm을 사용하여 훈련시킵니다.

예제는 help feedforwardnethelp cascadeforwardnet을 참조하십시오.

세부 정보

모두 축소

알고리즘

traingdm은 신경망의 가중치, 순 입력값, 전달 함수가 도함수를 갖는 한 어떤 신경망도 훈련시킬 수 있습니다.

역전파는 가중치와 편향 변수 X에 대한 성능 perf의 도함수를 계산하기 위해 사용됩니다. 각 변수는 모멘텀을 사용한 경사하강법에 따라 조정됩니다.

dX = mc*dXprev + lr*(1-mc)*dperf/dX

여기서 dXprev는 가중치 또는 편향의 직전 변경값입니다.

다음 조건 중 하나라도 충족되면 훈련이 중지됩니다.

  • epochs(반복)의 최대 횟수에 도달함.

  • time의 최대 값이 초과됨.

  • 성능이 goal로 최소화됨.

  • 성능 기울기가 min_grad 아래로 떨어짐.

  • (검증을 사용하는 경우) 검증 성능(검증 오류)이 마지막으로 감소한 이후로 max_fail배 넘게 증가함.

버전 내역

R2006a 이전에 개발됨

참고 항목

| | |