INeuralNetwork.SetInputValuesConvex

Синтаксис Fore

SetInputValuesConvex(Var InputValues: Array; alfa: Double);

Синтаксис Fore.NET

SetInputValuesConvex(Var InputValues: System.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.

Пример Fore

В качестве примера приведена функция, на вход которой подается нейронная сеть (параметр 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.11.0);
    End For;
    Net.SetInputValuesConvex(InputVal, 0.2);
    Return Net;
End Function m_SetInputValuesConvex;

После выполнения примера входные значения сети будут заданы с использованием выпуклого комбинаторного преобразования.

Пример Fore.NET

В качестве примера приведена функция, на вход которой подается нейронная сеть (параметр Net).

Imports Prognoz.Platform.Interop.NN;
Imports Prognoz.Platform.Interop.MathFin;

Public Shared Function m_SetInputValuesConvex(Net: NeuralNetwork): NeuralNetwork;
Var
    InputCount, i: Integer;
    InputVal: System.Array;
    ValGen: Prognoz.Platform.Interop.MathFin.Math;
Begin
    InputCount := Net.GetNumberOfInputs();
    InputVal := New Double[InputCount];
    ValGen := New Prognoz.Platform.Interop.MathFin.Math.Create();
    For i := 0 To InputVal.Length - 1 Do
        InputVal[i] := ValGen.RandBetween(0.11.0);
    End For;
    Net.SetInputValuesConvex(Var InputVal, 0.2);
    Return Net;
End Function m_SetInputValuesConvex;

После выполнения примера входные значения сети будут заданы с использованием выпуклого комбинаторного преобразования.

См. также:

INeuralNetwork