Нейронные сети. Описание. Обучение. Реализация.

Общие сведения и виды искусственного интеллекта | Методы обучения нейронных сетей | Реализация

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

Этот метод похож на метод случайной стрельбы с уменьшением радиуса, однако в его основе лежит другая идея – сгенерируем случайный вектор и будем использовать его вместо градиента. Этот метод использует одномерную оптимизацию – подбор шага. Процедура случайного поиска приведена на ниже. В этом методе есть два параметра, задаваемых пользователем.
• Число_попыток – число неудачных пробных генераций вектора при одном радиусе.
• Минимальный_радиус – минимальное значение радиуса, при котором продолжает работать алгоритм.

1. Создать_вектор Н
2. Число_Смен_Радиуса=1
3. Попытка=0
4. Радиус=1/ Число_Смен_Радиуса
5. Случайный_вектор Н
6. Оптимизация шага Н Радиус
7. Попытка=Попытка+1
8. Если Радиус=0 то Попытка=0
9. Если Попытка <= Число_попыток то переход к шагу 4
10. Число_Смен_Радиуса = Число_Смен_Радиуса + 1
11. Радиус = 1 / Число_Смен_Радиуса
12. Если Радиус >= Минимальный_радиус то переход к шагу 3
13. Освободить_вектор Н
Алгоритм метода случайного поиска


Идея этого метода состоит в следующем. Зададимся начальным состоянием вектора параметров. Новый вектор параметров будем искать как сумму начального и случайного, умноженного на радиус, векторов. Если после Число_попыток случайных генераций не произошло уменьшения оценки, то уменьшаем радиус. Если произошло уменьшение оценки, то полученный вектор объявляем начальным и продолжаем процедуру с тем же шагом. Важно, чтобы последовательность уменьшающихся радиусов образовывала расходящийся ряд. Примером такой последовательности может служить использованный в таблице 4 ряд 1/n.

Алгоритм обратного распространения ошибки


Страницы: 1 | 2 | 3 |

СГУ.clan - в помощь студентам
Хостинг от uCoz