Практика нейронных сетей. Урок 10. Введение в многослойную нейросеть |
Автор megabax | ||||
13.04.2014 г. | ||||
Практика нейронных сетей. Урок 10. Введение в многослойную нейросеть Что бы смотреть урок полностью, подпишитесь на платный раздел. В платном разделе статья находиться здесь. Исходники к уроку можно скачать В платном разделе. До сих пор мы занимались однослойными нейронным сетями, к тому же, состоящими из одного единственного нейрона. У таких сетей есть ряд ограничений, в частности, они могу решать только линейно-сепарабельные задачи (см. урок Теория нейронных сетей. Урок 4. Обучение нейрости. Линейный персептрон). Тоесть, однослойную нейросеть можно, например, научить выполнять функцию "И" либо "ИЛИ" но нельзя научить выполнять функцию "Исключающее ИЛИ". Давайте проверим это на практике... ... ...Далее, делаем обработчики кнопочек. Функция И
... ...Ну и реализация кнопочки "Проверить":
Теперь мы можем убедиться в том, что однонейронная нейросеть может обучиться распознавать функции "И", а так же "ИЛИ":
А вот при попытке обучить нейрон для вычисления исключающего ИЛИ заканчивается эпик фэйлом:
Что еще раз доказывает, что однослойную сеть невозможно обучить линейно НЕ сепарабельным задачам. Но выход есть. ... ... ...Теперь давайте все это запрограммируем. Начнем с класса, реализующего слой нейросети - Layer:
Обратите внимание... .... ...Программа действительно выдает правильный результат:
И так, подведем итоги. Мы наглядно показали, что однослойные нейронные сети не справляются с задачами, которые не являются линейносепарабельными. Эту проблема решатся за счет введение дополнительных нейроннных слоев. |
« След. | Пред. » |
---|