Программирование - это просто
Advertisement
Главная arrow Искусственный интеллект arrow Искусственный интеллект arrow Генетический алгоритм (платный раздел) arrow Генетический алгоритм. Урок 13. Улучшение обучения нейросети методом ГА
19.10.2018 г.
Главное меню
Главная
Системный подход
Интернет магазин
Биржевые роботы
Программные продукты
Математика и информатика
1С:Предприятие
C#, Delphi, VB, F#, Web и пр.
Искусственный интеллект
Услуги
Ча. Во. (FAQ)
Платный раздел
Наука для чайников
Разное
Размышления
Карта сайта
Друзья сайта
Excel-это не сложно
Все о финансах
Генетический алгоритм. Урок 13. Улучшение обучения нейросети методом ГА Печать E-mail
Автор megabax   
29.03.2017 г.
unit AIObj

Генетический алгоритм. Урок 13. Улучшение обучения нейросети методом ГА

Что бы смотреть урок полностью, подпишитесь на платный раздел.

В платном разделе статья находиться здесь.


На прошлом уроке мы с вами внесли изменения в генетический алгоритм из урока Практика нейронных сетей. Урок 22. Лабораторная работа №2 по персептронам и провели эксперимент по сравнению градиентного обучения нейросети с генетическим алгоритмом. Сравнение оказалось в пользу генетического алгоритма. А теперь мы еще улучшим его. Для начала при мутации сделаем изменения на основе генератора случайных числе с нормальным распределением (это когда распределние имеет вид функции Гаусса, такая "горка" как бы). Итак создаем функцию SampleGaussian:...

...

...

Это изменения для первого эксперимента. Ниже будет приведена таблица сравнений для обоих экспериментов. А сейчас изменения для второго эксперимента. Это будет замена передаточной функции в ходе мутации. Для начала в класс GeneticAlgorithm добавим поле allow_change_trans_function, чтобы можно было включать и отключать режим мутации замены передаточной функции:

        /// <summary>

        /// Разрешить мутацию замены передаточной функции

        /// </summary>

        public bool allow_change_trans_function=true;

В класс GANeuralNet добавим поля для ссылки на объект генетического алгоритма, вероятность мутации замены передаточной функции и вероятность мутации параметра передаточной функции:

        /// <summary>

        /// Вероятность замены передаточной функции

        /// </summary>

        public double p_change = 0.05;

 

        /// <summary>

        /// Вероятность мутации параметров передаточной функции

        /// </summary>

        public double p_parameter = 0.1;

 

        /// <summary>

        /// ссылка на генетический алгоритм

        /// </summary>

        public GeneticAlgorithm ga;

 и изменим его конструктор, сделаем его параметрическим:

        /// <summary>

        /// Конструктор по ссылке на генетический алгоритм

        /// </summary>

        /// <param name="a_ga">Ссылка на генетический алгоритм</param>

        public GANeuralNet(GeneticAlgorithm a_ga)

        {

            ga = a_ga;

        }

...

....

....

Для остальных передаточных функций посмотрите в исходниках.

Теперь проведем эксперимент и сведем его результаты в таблицу:

Без мутации передаточной функции С мутацией передаточной функции
1 2,76 4,56
2 2,45 3,96
3 3,15 3,44
4 4,68 3,67
5 2,97 3,08
6 3,67 4,54
7 2,65 3,96
8 4,08 3,49
9 2,78 3,86
10 4,07 3,55
Среднее 3,326 3,811

Непонятно почему, но обучаемость с заменой передаточной функции оказалась хуже, хотя, по сути дела, мы дали нейросети большую свободу дейсвтий.

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

 
« След.   Пред. »
 
© 2018 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги
Мы принимаем
Банковские карты
Оплатите покупку в интернет-магазине банковскими картами VISA и Mastercard любого банка.
узнать больше
Электронный кошелек
Моментальная оплата покупок с помощью вашего электронного кошелька RBK Money.
узнать больше
Банковский платеж
Оплатите покупку в любом российском банке. Срок зачисления средств на счет - 3-5 рабочих дней.
узнать больше
Денежные переводы
Оплата покупок через крупнейшие системы денежных переводов CONTACT и Unistream.
узнать больше
Почтовые переводы
Оплатите покупку в любом отделении Почты России. Срок зачисления платежа - 3-4 рабочих дня.
узнать больше
Платежные терминалы
Оплата покупок в терминалах крупнейших платежных систем в любом городе России - быстро и без комиссии.
узнать больше