maOptimizer: 최적화 알고리즘
신경망에 대한 최적화 알고리즘을 지정합니다.
사용
adaDeltaSgd(decay = 0.95, conditioningConst = 1e-06)
sgd(learningRate = 0.001, momentum = 0, nag = FALSE, weightDecay = 0,
lRateRedRatio = 1, lRateRedFreq = 100, lRateRedErrorRatio = 0)
인수
decay
ADADELTA 적응 최적화 알고리즘에서 단계를 계산할 때 경사에 적용되는 감쇠율을 지정합니다. 이 비율은 단계 크기 계산에서 원격 경사에 더 작은 가중치를 제공하여 학습 속도가 계속 진행되도록 하는 데 사용됩니다. 수학적으로 경사의 평균 제곱을 업데이트 규칙의 분모에 있는 제곱 경사의 기하급수적으로 감쇠하는 평균으로 바꿉니다. 할당된 값은 범위(0,1)에 있어야 합니다.
conditioningConst
제곱 경사의 기하급수적으로 감쇠하는 평균이 작은 지역의 단계 크기를 조건화하는 데 사용되는 ADADELTA 적응 최적화 알고리즘의 조건화 상수를 지정합니다. 할당된 값은 범위(0,1)에 있어야 합니다.
learningRate
학습 프로세스의 각 반복에서 음수 경사 방향으로 수행되는 단계의 크기를 결정합니다. 기본값은 = 0.001
입니다.
momentum
학습 중에 다음 단계의 크기에 맞게 이전 단계의 기여도를 제어하는 각 차원의 가중치를 지정합니다. 이렇게 하면 학습 속도를 높이도록 learningRate
가 수정됩니다. 값은 >= 0
및 < 1
이어야 합니다.
nag
TRUE
이면 Nesterov의 가속 경사 하강이 사용됩니다. 이 메서드는 경사 하강의 오라클 복잡성을 줄이고 평활 곡선 최적화에 적합합니다.
weightDecay
단계 크기의 스케일링 가중치를 지정합니다. 각 가중치 업데이트 후 네트워크의 가중치는 (1 - ``learningRate * weightDecay)
에 의해 스케일링됩니다. 값은 >= 0
및 < 1
이어야 합니다.
lRateRedRatio
학습 중에 학습 속도가 감소하는 비율인 학습 속도 감소 비율을 지정합니다. 학습 속도를 줄이면 국소 최소값을 방지할 수 있습니다. 값은 > 0
및 <= 1
이어야 합니다.
1.0
값은 감소가 없음을 의미합니다.0.9
값은 학습 속도가 현재 값인 90으로 감소함을 의미합니다.
감소는 주기적으로 트리거되거나, 고정된 반복 횟수 후에 발생하도록 트리거되거나, 손실 함수의 증가 또는 감소와 관련된 특정 오류 조건이 충족되는 경우 감소가 트리거될 수 있습니다.- 주기적 속도 감소를 트리거하려면
lRateRedFreq
인수를 사용하여 감소 간 반복 횟수를 설정하여 빈도를 지정합니다. - 오류 조건에 따라 속도 감소를 트리거하려면
lRateRedErrorRatio
에서 숫자를 지정합니다.
lRateRedFreq
감소 간 반복 횟수를 지정하여 학습 속도 감소 빈도를 설정합니다. 예를 들어, 10
이 지정된 경우 학습 속도는 10회 반복마다 한 번씩 감소합니다.
lRateRedErrorRatio
학습 속도 감소 오류 조건을 지정합니다. 0
으로 설정하면 반복 간에 손실이 증가하는 경우 학습 속도가 감소합니다. 0
보다 큰 소수 자릿수 값으로 설정하면 손실이 이전 값의 소수 자릿수보다 작은 값으로 감소하는 경우 학습 속도가 감소합니다.
세부 정보
이러한 함수는 rxNeuralNet에서 optimizer
인수에 사용할 수 있습니다.
sgd
함수는 확률적 경사 하강을 지정합니다. maOptimizer
adaDeltaSgd
함수는 Matthew D.Zeiler의 2012년 논문 “ADADELTA: 적응 학습 속도 방법”에 설명된 AdaDelta 경사 하강을 지정합니다.
값
최적화 알고리즘의 사양을 포함하는 문자열입니다.
작성자
Microsoft Corporation Microsoft Technical Support
참조
ADADELTA: An Adaptive Learning Rate Method
추가 정보
예
myIris = iris
myIris$Setosa <- iris$Species == "setosa"
res1 <- rxNeuralNet(formula = Setosa~Sepal.Length + Sepal.Width + Petal.Width,
data = myIris,
optimizer = sgd(learningRate = .002))
res2 <- rxNeuralNet(formula = Setosa~Sepal.Length + Sepal.Width + Petal.Width,
data = myIris,
optimizer = adaDeltaSgd(decay = .9, conditioningConst = 1e-05))