INeuralNetwork.LearnSOFM

Синтаксис

LearnSOFM;

Описание

Метод LearnSOFM выполняет обучение самоорганизующейся карты Кохонена.

Комментарии

В процессе обучения корректируются значения весов синапсов.

Краткий алгоритм обучения:

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

Пример

В качестве примера приведена функция, на вход которой подается самоорганизующаяся карта Кохонена (параметр Net). Для выполнения примера добавьте ссылки на системные сборки «NN», «IO».

Function m_Learn(Net: NeuralNetwork): NeuralNetwork;
Var
    epoch, learnRadius: Integer;
    learnRate: Double;
    NetFile: File;
    TextW: ITextWriter;
Begin
    TextW := NetFile.OpenTextWriter("C:/LearnRes.txt"True);
    For epoch := 1 To 300 Do
        learnRate := 0.6 * ((300 - epoch) / 300);
        learnRadius := (3 * ((300 - epoch) / 350)) As Integer;
        Net.SetLearnRadius(learnRadius);
        Net.SetLearnRate(learnRate);
        Net.SetUseVectorScalar(True);
        Net.PropagateSOFM;
        Net.LearnSOFM;
        TextW.WriteLnString("Эпоха обучения '" + epoch.ToString + "'. Код ошибки: " + Net.GetError.ToString);
    End For;
    Return Net;
End Function m_Learn;

После выполнения примера будет выполнено обучение сети. Для вычисления дистанции между нейронами будет использоваться алгоритм скалярного умножения векторов. Результаты будут выведены в файл «C:/LearnRes.txt».

См. также:

INeuralNetwork