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

Генетический алгоритм. Урок 4. Обучаем нейросеть.

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

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


продолжим серию уроков по использованию генетического алгоритма. На прошлом уроке мы обучали при помощи ГА единичный искусственный нейрон. Сегодня будет обучать целую нейронную сеть типа многослойного персептрона. Для начала немного доработаем сам класс нейрона Neuron....

...

....Теперь займемся классами генетического алгоритма. Во первых, вместо нейрона у нас вид будет связан с целой нейросетью:

...

        /// <summary>

        /// Искомое значение (обученная нейросеть)

        /// </summary>

        public NeuralNet net;

...

...

...Теперь будем нашу нейросеть тестировать:

        public Form1()

        {

            InitializeComponent();

            pop = new Population();

            pop.MaxSize = 100;

            pop.MutationPossibility = 0.3;

            pop.SizeStrongMutation = 5;

 

            NeuralNet net = new NeuralNet();

 

            //у нейросети два входа

            net.incomes.Add(0);

            net.incomes.Add(0);

           

            net.createLayer(2);

            net.createLayer(1);

 

            pop.initSpecies(net);

 

            //создадим матрицу обучения

            StudyMatrix matrix= new StudyMatrix();

 

            matrix.items.Add(addToMatrix(1, 1, 0));

            matrix.items.Add(addToMatrix(2, 1, 0));

            matrix.items.Add(addToMatrix(3, 1, 1));

            matrix.items.Add(addToMatrix(1, 2, 0));

            matrix.items.Add(addToMatrix(2, 2, 0));

            matrix.items.Add(addToMatrix(3, 2, 0));

            matrix.items.Add(addToMatrix(1, 3, 0));

            matrix.items.Add(addToMatrix(2, 3, 0));

            matrix.items.Add(addToMatrix(3, 3, 0));

 

 

 

            pop.matrix = matrix;

 

            show();

        }

Как видим, в тестовом примере у нас задана вот такая картинка:

0 1 2 3
1      
2      
3      

Сама сеть - двухслойная, на первом слое два нейрона, на втором 1.

Обучение проходит успешно за 3-4 итерации:

Генетический алгоритм. Урок 4. Обучаем нейросеть.

Эффект сохраниться, если на первом слое у нас будет не 2, а пять нейронов. Проверьте.

А вот с другим картинками нейросеть "тупит". Зададим, например, что нибудь вроде того:

0 1 2 3
1      
2      
3      

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

 


Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями  программного продукта "Microsoft Visual Studio 2010 Professional", авторское право на который принадлежит корпорации Microsoft.. 


Последнее обновление ( 18.11.2013 г. )
 
« След.   Пред. »
 
© 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 рабочих дня.
узнать больше
Платежные терминалы
Оплата покупок в терминалах крупнейших платежных систем в любом городе России - быстро и без комиссии.
узнать больше