Kniga-Online.club
» » » » Е. Миркес - Учебное пособие по курсу «Нейроинформатика»

Е. Миркес - Учебное пособие по курсу «Нейроинформатика»

Читать бесплатно Е. Миркес - Учебное пособие по курсу «Нейроинформатика». Жанр: Программирование издательство -, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

1. программа выйдет из блока одного шага обучения сети прямым переходом на метку в другом разделе;

2. нарушится условие, указанное в конструкции InstStep;

3. компонент учитель получит запрос «Прервать обучение сети»;

4. в случае выполнения запроса «Выполнить N шагов обучения» блок одного шага обучения сети выполнен N раз.

Далее выполняется блок завершения обучения.

Пример описания учителя

В данном разделе приведены описания некоторых методов обучения, описанных в разделе «Описание алгоритмов обучения».

Пример 1.

Instructor RandomFire;  {Метод случайной стрельбы с уменьшением радиуса}

Main                                         {Обучение ведется по всему обучающему множеству}

 Label Exit, Exit1;

 Static

  Integer Try Name "Число попыток при одном радиусе" Default 5;

  Real MinRadius Name "Минимальный радиус, при котором + "продолжается работа"Default 0.001;

  String NetName Name "Имя сети" Default "";

  Integer What Name "Что обучать" Default Parameters;

  Color InstColor Name "Цвет примеров обучающего множества" Default HFFFF; {По умолчанию}

  Integer OperColor Name "Операция для отбора цветов" Default CIn;

 Var {все примеры, в цвете которых есть хоть один единичный бит}

  PRealArray Map, DirectMap; {Для хранения текущего и случайного массивов параметров}

  Real Est1, Est2; {Для хранения текущей и случайной оценки}

  Real Radius; {Текущий радиус}

  Integer TryNum, RadiusNum; {Число попыток, номер использованного радиуса}

  Integer Handle; {Номер сеанса задачника}

  String QName; {Имя запроса}

Init

 Begin

  If Not SetInstructionObject(What, @NetName) Then GoTo Exit; {Задаем объекты обучения}

  QName = "InitSession"; {Задаем имя запроса}

  Map = NewArray(mRealArray, 3); {Создаем массив для аргументов запроса}

  If Map = Null Then GoTo Exit;

  TPointer(Map^[1]) = @InstColor; {Заносим адрес первого аргумента}

  TPointer(Map^[2]) = @OperColor; {Заносим адрес второго аргумента}

  TPointer(Map^[3]) = @Handle; {Заносим адрес третьего аргумента}

  If Not GenerateQuest(@QName, Map) Then GoTo Exit;{Открываем сеанс работы с задачником}

  If Not FreeArray(mRealArray, Map) Then GoTo Exit;  {Освобождаем массив для аргументов}

  {Собственно начало обучения}

  Map = CreateArray; {Создаем вспомогательные массивы}

  DirectMap= CreateArray;

  If Map = Null Then GoTo Exit;

  If DirectMap= Null Then GoTo Exit;

  Est1 = Estimate(Handle, True);

  If Error <> 0 Then GoTo Exit;

  RadiusNum = 1; {Обрабатываем первый радиус}

  Radius = 1 / RadiusNum; {Вычисляем первый радиус}

  If Not SaveArray(Map) Then GoTo Exit; {Сохраняем начальный массив параметров}

 End

InstrStep Radius > MinRadius {Обработка с одним радиусом – один шаг обучения}

 Begin 

  TryNum = 0;

  While TryNum < Try Do Begin

   If Not SetArray(Map) Then GoTo Exit; {Устанавливаем лучший массив параметров}

   If Not RandomArray(DirectMap) Then GoTo Exit; {Генерируется новый массив параметров}

   If Not Modify(DirectMap, 1, Radius) Then GoTo Exit; {Модифицируем массив параметров}

   Est2 = Estimate(Handle, True);

   If Error <> 0 Then GoTo Exit;

   If Est1>Est2 Then Begin

    If Not SaveArray(Map) Then GoTo Exit; {Сохраняем лучший массив параметров}

    Est1 = Est2;

    TryNum = 0;

   End Else TryNum = TryNum + 1; {Увеличиваем счетчик отказов}

  End

  RadiusNum = RadiusNum + 1; {Обрабатываем следующий радиус}

  Radius = 1 / RadiusNum; {Вычисляем следующий радиус}

 End

Close

 Begin

Exit:

  If Not SetArray(Map) Then; {Восстанавливаем лучший массив параметров}

  If Not EraseArray(Мар1) Then; {Освобождаем вспомогательные массивы}

  If Not EraseArray(Мар2) Then;

  QName = "CloseSession"; {Задаем имя запроса}

  Map = NewArray(mRealArray, 1); {Создаем массив для аргументов запроса}

  If Map = Null Then GoTo Exit1;

  TPointer(Map^[1]) = @Handle; {Заносим адрес единственного аргумента}

  If Not GenerateQuest(@QName, Map) Then;{Открываем сеанс работы с задачником}

  If Not FreeArray(mRealArray, Map) Then; {Освобождаем массив для аргументов}

Exit1:

 End

End Instructor

Пример 2. Библиотека функций

InstrLib Library1; {Библиотека содержит функции для следующего учителя}

{Метод наискорейшего спуска}

 Function SDM( Handle : Integer; Step : Real) : Real;

 Label Exit, Endd;

 Var

  Real Est;

 Begin

  Est = CalcGradient(Handle, True);

  If Error <> 0 Then GoTo Exit;

  Est =Optimize(Null, Step); {Вызываем функцию подбора оптимального шага}

  If Error <> 0Then GoTo Exit;

  SDM = Est;

  GoTo Endd;

Exit:

  SDM = 0;

Endd:

 End

{Метод случайного поиска}

 Function RDM( Handle : Integer; Step : Real) : Real;

 Label Exit, Endd;

 Var

  Real Est;

  PRealArray : Direction;

 Begin

  Direction = CreateArray; {Создаем вспомогательный массив}

  If Direction = Null Then GoTo Exit;

  If Not RandomArray(Direction) Then GoTo Exit; {Генерируется новый массив параметров}

  If Error <> 0 Then GoTo Exit;

  Est =Optimize(Direction, Step); {Вызываем функцию подбора оптимального шага}

  If Error <> 0 Then GoTo Exit;

  RDM = Est;

  GoTo Endd;

Exit:

  RDM = 0;

Endd:

 End

End InstrLib

Пример 3. Антиовражная процедура обучения.

Instructor kParTan Used Library1; {Антиовражная процедура обучения kParTan}

Main {Обучение ведется по всему обучающему множеству}

 Label Exit, Exit1;

 Static

  Color InstColor Name "Цвет примеров обучающего множества"

  Default HFFFF; {По умолчанию}

  Integer OperColor Name "Операция для отбора цветов" Default CIn;

  {все примеры, в цвете которых есть хоть один единичный бит }

  String NetName Name "Имя сети" Default "";

  Integer What Name "Что обучать" Default Parameters;

  {По умолчанию 2ParTan}

  Integer k Name "Число шагов между ParTan шагами" Default 2;  

  Real AccuracyName "Требуемый минимум оценки"Default 0.00001;

  Logic Direction Name "Случайное направление или антиградиент"

  11 Default True; {Если истина,то антиградиент }

 Var

  Integer Handle; {Номер сеанса задачника}

  String QName; {Имя запроса}

  PRealArray Map1, DirectMap; {Для текущего массива параметров и ParTan направления}

  Real Step, ParTanStep; {Длины шагов для оптимизации шага}

  Real Est1, Est2; {Для хранения текущей и случайной оценки}

  Long I;

Init

 Begin

  If Not SetInstructionObject(What, @NetName) Then GoTo Exit; {Задаем объекты обучения}

  QName = "InitSession"; {Задаем имя запроса}

  Map1 = NewArray(mRealArray, 3);{Создаем массив для аргументов запроса}

  If Map = Null Then GoTo Exit;

  TPointer(Map^[1]) = @InstColor; {Заносим адрес первого аргумента}

  TPointer(Map^[2]) = @OperColor; {Заносим адрес второго аргумента}

  TPointer(Map^[3]) = @Handle; {Заносим адрес третьего аргумента}

  If Not GenerateQuMap(@QName, Map) Then GoTo Exit;{Открываем сеанс работы с задачником}

  If Not FreeArray(mRealArray, Map) Then GoTo Exit;{Освобождаем массив для аргументов}

Перейти на страницу:

Е. Миркес читать все книги автора по порядку

Е. Миркес - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Учебное пособие по курсу «Нейроинформатика» отзывы

Отзывы читателей о книге Учебное пособие по курсу «Нейроинформатика», автор: Е. Миркес. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*