Портал "Русская Профессиональная Астрология"
Subject: Re: Новая программа по финансовой астрологии
Date : 09 Apr 2001 13:50 GMT
From : Sergey [SergeyT] (tarassov@home.com)
To : Albert R. Timashev [arta] (arta@astrologer.ru)
Здравствуйте, Альберт!
Да, конечно же, Вы правы - back propagation - это метод обучения нейросети.
Просто часто в литературе по нейросетям объединяются вместе и тип, и метод
обучения нейросети. Может быть, для того, чтобы отличить эту сеть от
персептрона.
Нейросеть, которую я использовал (как Вы уже поняли), имеет один скрытый слой. В
принципе, в течение двух лет я экспериментировал с различными конфигурациями
нейросетей и обнаружил, что два и более скрытых слоя только все портят. Сеть
обучается гораздо медленнее, а результат тот же.
По поводу функций активации нейронов. Если говорить вообще, то обязательно нужно
где-то использовать сигмоидную функцию, дабы обеспечить нелинейность. Но
сигмоидная функция имеет тот недостаток, что она отсекает края при большом
возбуждении. Поэтому обычно комбинируют линейные и сигмоидные функции. Наша
нейросеть - это несколько другая структура. От обычной нейросети осталось,
фактически, только то, что это - граф. Больше ничего по этому поводу сказать не
могу, так как не являюсь единоличным создателем и правообладателем этой системы.
Уж извините.
S>> Использовалась такая нейросеть: back propagation.
AT>
AT> Вообще-то, это метод обучения нейронной сети, а не название ее
AT> разновидности
AT> :-) Разновидность скорее определяется конфигурацией и функциями нейронов.
AT> Насколько я понял, Вы использовали трехуровневую сеть (входы - скрытые
AT> нейроны -
AT> выход). А нейроны были заданы какими функциями? Какими-нибудь стадартными
AT> или
AT> собственного изобретения?
AT>
S>> Наша специализированная нейросеть прекрасно работает на 7-летнем интервале,
S>> причем собственно процесс обучения нейросети занимает всего лишь 3-4 минуты
AT>
AT> Интересно, как эта оптимизация сказывается на качестве обучения?
AT> Например,
AT> если допустить время обучения хотя бы несколько часов, можно было бы
AT> повысить
AT> качество, или найденный Вами алгоритм обучения дает заведомо оптимальный
AT> разультат на данном классе задач и конфигурации нейронной сети?
Теперь, собственно, о процессе обучения. Дело в том, что, повозившись со всякими
разными критериями качества оптимизации, я им теперь просто не верю. Сейчас я
делаю так: пользователь запускает оптимизацию и тут же, в параллельном режиме,
может видеть график нейросети и график того, что нужно оптимизировать. То есть,
процесс оптимизации происходит на глазах. Я хотел дать почувствовать
пользователю, как все это происходит, визуально. Потому что если заставить
нейросеть обучаться, к примеру, в течение нескольких часов, оптимизационный
интервал будет оптимизирован идеально, две кривые практически совпадут. Но это
не есть гарантия того, что на тестовом интервале результаты станут лучше. Часто
происходит так: в течение нескольких тысяч эпох обучения (это составляет
несколько минут) нейросеть очень здорово схватывает какие-то закономерности на
тестовом интервале, а далее результат начинает портиться. Нейросетевики часто
называют этот процесс "оптимизация ошибки нейросети". Это еще один вариант
переобучения.
С уважением,
Сергей