Main Content

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을 참조하십시오.

세부 정보

모두 축소

모멘텀을 사용한 경사하강법

경사하강법에는 traingd 이외에도 추가로 세 가지의 변형이 있습니다.

모멘텀을 사용한 경사하강법은 traingdm으로 구현됩니다. 이 함수는 신경망이 국소 기울기뿐 아니라 오차 표면상의 최근 추세에도 반응하도록 허용합니다. 저역통과 필터와 같은 역할을 하는 모멘텀은 신경망이 오차 표면의 작은 특징을 무시할 수 있도록 합니다. 모멘텀이 없으면 신경망은 얕은 국소 최솟값에서 빠져나오지 못할 수 있습니다. 모멘텀이 있으면 신경망은 이러한 극솟값을 벗어날 수 있습니다. 모멘텀에 대한 자세한 내용은 [HDB96] 12–9페이지를 참조하십시오.

모멘텀을 사용한 경사하강법은 2개의 훈련 파라미터에 종속됩니다. 단순 경사하강법과 마찬가지로, 파라미터 lr은 학습률을 나타냅니다. 파라미터 mc는 모멘텀의 양을 정의하는 모멘텀 상수입니다. mc는 0(모멘텀 없음)과 1에 근접한 값(모멘텀 많음) 사이로 설정됩니다. 모멘텀 상수가 1인 경우, 신경망은 국소 기울기에 전혀 반응하지 않게 되어 올바른 학습이 이루어지지 않습니다.

p = [-1 -1 2 2; 0 5 0 5];
t = [-1 -1 1 1];
net = feedforwardnet(3,'traingdm');
net.trainParam.lr = 0.05;
net.trainParam.mc = 0.9;
net = train(net,p,t);
y = net(p)

알고리즘

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

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

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

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

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

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

  • time의 최대 값이 초과됨.

  • 성능이 goal로 최소화됨.

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

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

버전 내역

R2006a 이전에 개발됨

참고 항목

| | |