Практика нейронных сетей. Урок 20. Исследование ИНС. Продолжение |
![]() |
![]() |
Автор megabax | ||||
06.03.2025 г. | ||||
Практика нейронных сетей. Урок 20. Исследование ИНС. Продолжение Что бы смотреть урок полностью, подпишитесь на платный раздел. В платном разделе статья находиться здесь. На прошлом уроке мы столкнулись с тем, что нейрон мог в принципе обучиться, но не обучился. Сейчас будем разбираться, почему. Для начала нам надо как-то зафиксировать данную ситуацию, когда так происходит. Для этого придется сохранить саму эту случайную выборку, а также сами веса нейронов. ЛУчше всего сохранять сам нейрон и выборку в одном блоке. Поэтому у класса Neuron добавим признак сериализации (атрибут Serializable):
Для объединения нейрона и выборки создадим класс NeuronInfo:
... ... И теперь мы видим, что для полной выборки нейрон оказался необучаем (то есть, нет областей с нулевым значением ошибки): Возникает вопрос: как же так? У нас же данные линейно сепарабельные! Дело в том, что мы забыли про значение порога. Он у нас по умолчанию нуль и мы его не меняли. Давайте рассмотрим карту ошибки с разными порогами. Для этого добавим поля для ввода значений порога*: И внесем небольшое изменение в процедуру построения карты (вставим одну строчку, выделено маркером):
И вуаля, в области отрицательных значений порога появляются зоны обучения: Делая порог еще более отрицательным, мы можем расширить нулевую зону: Так что теперь мы можем исправить функцию обучения нейрона, добавив туда также обучение порога:... Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями программного продукта "Microsoft Visual Studio 2010 Professional", авторское право на который принадлежит корпорации Microsoft.. |
||||
Последнее обновление ( 06.03.2025 г. ) |
« След. | Пред. » |
---|