SetInputValuesConvex(Var InputValues: Array; alfa: Double);
InputValues. Вещественный массив входных значений сети.
alfa. Коэффициент преобразования. Значение в диапазоне [0.0; 1.0].
Метод SetInputValuesConvex устанавливает входные значения сети с использованием выпуклого комбинаторного преобразования.
Выпуклое комбинаторное преобразование выполняется по формуле:
Vi = alfa(t) * Vi + (1-alfa(t)) * (1/sqrt(число_входов_сети))
Данный метод позволяет сделать процесс обучения самоорганизующихся карт Кохонена более точным. В начале обучения коэффициент alfa приблизительно равен нулю и все входные значения приблизительно равны. В дальнейшем значение коэффициента alfa стремится к единице и входные значения становятся более различными.
Последовательное выполнение методов NeuralNetwork.SetInputValues и INeuralNetwork.ApplyConvexCombinationFactor аналогично выполнению SetInputValuesConvex.
В качестве примера приведена функция, на вход которой подается нейронная сеть (параметр Net). Для выполнения примера добавьте ссылки на системные сборки «NN» и «MathFin».
Function m_SetInputValuesConvex(Net: NeuralNetwork): NeuralNetwork;
Var
InputCount, i: Integer;
InputVal: Array Of Double;
Begin
InputCount := Net.GetNumberOfInputs;
InputVal := New Double[InputCount];
For i := 0 To InputVal.Length - 1 Do
InputVal[i] := math.RandBetween(0.1, 1.0);
End For;
Net.SetInputValuesConvex(InputVal, 0.2);
Return Net;
End Function m_SetInputValuesConvex;
После выполнения примера входные значения сети будут заданы с использованием выпуклого комбинаторного преобразования.
См. также: