Название | Смысл |
---|---|
Точка | Точка в пространстве параметров или входных сигналов. Аналогична вектору. |
Вектор | Вектор в пространстве параметров или входных сигналов. Аналогичен точке. |
Вектор_минимумов | Вектор минимальных значений параметров или входных сигналов. |
Вектор_максимумов | Вектор максимальных значений параметров или входных сигналов. |
Указатель_на_вектор | Адрес вектора. Используется для передачи векторов в макрокоманды. |
Пустой_указатель | Указатель на отсутствующий вектор. |
При описании методов обучения все аргументы имеют тип, определяемый типом аргумента макрокоманды. Если в описании макрокоманды в табл. 2 тип аргумента не соответствует ни одному из типов, приведенных в табл. 1, то эти аргументы имеют числовой тип.
Таблица 2. Список макрокоманд, используемых для описания учителя
Название | Аргументы (типы) | Выполняемые действия |
---|---|---|
Модификация_вектора | Указатель_на_вектор Старый_Шаг Новый_Шаг | Генерирует запрос на модификацию вектора (см. раздел «Провести обучение (Modify)»). |
Вычислить_градиент | Вычисляет градиент функции оценки. | |
Установить_параметры | Указатель_на_вектор | Скопировать вектор, указанный в аргументе, в текущий вектор. |
Создать_вектор | Указатель_на_вектор | Создает экземпляр вектора с неопределенными значениями. Адрес вектора помещается в аргумент. |
Освободить_вектор | Указатель_на_вектор | Освобождает память занятую вектором, расположенным по адресу Указатель_на_вектор. |
Случайный_вектор | Указатель_на_вектор | В векторе, на который указывает Указатель_на_вектор, генерируется вектор, каждая из координат которого является случайной величиной, равномерно распределенной на интервале между значениями соответствующих координат векторов Вектор_минимумов и Вектор_максимумов. |
Оптимизация_шага | Указатель_на_вектор Начальный_Шаг | Производит подбор оптимального шага (см. рис. 3). |
Сохранить_вектор | Указатель_на_вектор | Скопировать текущий вектор в вектор, указанный в аргументе. |
Вычислить_оценку | Оценка | Вычисляет оценку текущего вектора. Вычисленную величину складывает в аргумент Оценка. |
Неградиентные методы обучения
Среди неградиентных методов рассмотрим следующие методы, каждый из которых является представителем целого семейства методов оптимизации:
1. Метод случайной стрельбы (представитель семейства методов Монте-Карло).
2. Метод покоординатного спуска (псевдоградиентный метод).
3. Метод случайного поиска (псевдоградиентный метод).
4. Метод Нелдера-Мида.
1. Создать_вектор В1
2. Создать_вектор В2
3. Вычислить_оценку О1
4. Сохранить_вктор В1
5. Установить_параметры В1
6. Случайный_вектор В2
7. Модификация_вектора В2, 0, 1
8. Вычислить_оценку О2
9. Если О2<О1 то переход к шагу 11
10. Переход к шагу 5
11. О1=О2
12. Переход к шагу 4
13. Установить_параметры В1
14. Освободить_вектор В1
15. Освободить_вектор В2
Рис. 1. Простейший алгоритм метода случайной стрельбы
Идея метода случайной стрельбы состоит в генерации большой последовательности случайных точек и вычисления оценки в каждой из них. При достаточной длине последовательности минимум будет найден. Запись этой процедуры на макроязыке приведена на рис. 1