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

Шрифт
Интервал

стр.

>1.  Создать_вектор В1

>2.  Создать_вектор В2

>3.  Вычислить_оценку O1

>4.  Число_Смен_Радиуса=1

>5.  Радиус=1/Число_Смен_Радиуса

>6.  Попытка=0

>7.  Сохранить_вектор В1

>8.  Установить_параметры В1

>9.  Случайный_вектор В2

>10. Модификация_вектора В2, 1, Радиус

>11. Вычислить_оценку О2

>12. Попытка=Попытка+1

>13. Если 02<01 то переход к шагу 16

>14. Если Попытка<=Число_попыток то переход к шагу 8

>15. Переход к шагу 18

>16. О1=О2

>17. Переход к шагу 6

>18. Число_Смен_Радиуса= Число_Смен_Радиуса+1

>19. Радиус=1/Число_Смен_Радиуса

>20. Если радиус >= Минимапьный_радиус то переход к шагу 6

>21. Установить_параметры В1

>22. Освободить_вектор В1

>23. Освободить_вектор В2

Рис. 2. Алгоритм метода случайной стрельбы с уменьшением радиуса


Отмечен ряд случаев, когда метод случайной стрельбы с уменьшением радиуса работает быстрее градиентных методов, но обычно это не так.

Метод покоординатного спуска

Идея этого метода состоит в том, что если в задаче сложно или долго вычислять градиент, то можно построить вектор, обладающий приблизительно теми же свойствами, что и градиент следующим путем. Даем малое положительное приращение первой координате вектора. Если оценка при этом увеличилась, то пробуем отрицательное приращение. Далее так же поступаем со всеми остальными координатами. В результате получаем вектор, в направлении которого оценка убывает. Для вычисления такого вектора потребуется, как минимум, столько вычислений функции оценки, сколько координат у вектора. В худшем случае потребуется в два раза большее число вычислений функции оценки. Время же необходимое для вычисления градиента в случае использования двойственных сетей можно оценить как 2–3 вычисления функции оценки. Таким образом, учитывая способность двойственных сетей быстро вычислять градиент, можно сделать вывод о нецелесообразности применения метода покоординатного спуска в обучении нейронных сетей.

Подбор оптимального шага

Данный раздел посвящен описанию макрокоманды Оптимизация_Шага. Эта макрокоманда часто используется в описании процедур обучения и не столь очевидна как другие макрокоманды. Поэтому ее текст приведен на рис. 3. Идея подбора оптимального шага состоит в том, что при наличии направления в котором производится спуск (изменение параметров) задача многомерной оптимизации в пространстве параметров сводится к одномерной оптимизации — подбору шага. Пусть заданы начальный шаг (Ш2) и направление спуска (антиградиент или случайное) (Н). Тогда вычислим величину О1 — оценку в текущей точке пространства параметров. Изменив параметры на вектор направления, умноженный на величину пробного шага, вычислим величину оценки в новой точке — О2. Если О2 оказалось меньше либо равно О1, то увеличиваем шаг и снова вычисляем оценку. Продолжаем эту процедуру до тех пор, пока не получится оценка, большая предыдущей. Зная три последних значения величины шага и оценки, используем квадратичную оптимизацию — по трем точкам построим параболу и следующий шаг сделаем в вершину параболы. После нескольких шагов квадратичной оптимизации получаем приближенное значение оптимального шага.

>1.  Создать_вектор В

>2.  Сохранить_вектор В

>3.  Вычислить_оценку О1

>4.  Ш1=0

>5.  Модификация_вектора Н, 1, Ш2

>6.  Вычислить_оценку О2

>7.  Если О1<О2 то переход к шагу 15

>8.  Ш3=Ш2*3

>9.  Установить_параметры В

>10. Модификация_вектора Н, 1, Ш3

>11. Вычислить_оценку О3

>12. Если О3>О2 то переход к шагу 21

>13. О1=О2 О2=О3 Ш1=Ш2 Ш2=ШЗ

>14. Переход к шагу 3

>15. ШЗ=Ш2 03=02

>16. Ш2=ШЗ/3

>17. Установить_параметры В

>18. Модификация_вектора Н, 1, Ш2

>19. Вычислить_оценку О3

>20. Если О2>=О1 то переход к шагу 15

>21. Число_парабол=0

>22. Ш=((ШЗШЗ-Ш2Ш2)О1+(Ш1Ш1-ШЗШЗ)О2+(Ш2Ш2-Ш1Ш )О3)/(2((ШЗ-Ш2)О1+(Ш1-Ш3)О2 +(Ш2-Ш )О3))

>23. Установить_параметры В

>24. Модификация_вектора Н, 1, Ш

>25. Вычислить_оценку О

>26. Если Ш>Ш2 то переход к шагу 32

>27. Если О>О2 то переход к шагу 30

>28. ШЗ=Ш2 О3=О2 О2=О Ш2=Ш

>29. Переход к шагу 36

>30. Ш1=Ш О1=О

>31. Переход к шагу 36

>32. Если О>О2 то переход к шагу 35

>33. ШЗ=Ш2 О3=О2 О2=О Ш2=Ш

>34. Переход к шагу 36

>35. Ш1=Ш О1=О

>36. Чиспо_парабол=Число_парабол+1

>37. Если Число_парабоп<Максимальное_Число_Парабол то переход к шагу 22


стр.

Похожие книги