Вы обычно используете обучение Левенберга-Марквардта для сетей малого и среднего размера, если у вас достаточно памяти. Если память является проблемой, то существует множество других быстрых алгоритмов. Для больших сетей вы, вероятно, захотите использовать trainscg
или trainrp
.
Многослойные сети способны выполнять почти любые линейные или нелинейные расчеты, и они могут произвольно аппроксимировать любую разумную функцию. Однако, хотя обучаемая сеть теоретически может быть способной к правильному выполнению, обратное распространение и его изменения могут не всегда найти решение. Обсуждение сходимости с локальными минимальными точками смотрите на стр. 12-8 документа [HDB96].
Поверхность ошибки нелинейной сети сложнее, чем поверхность ошибки линейной сети. Чтобы понять эту сложность, смотрите рисунки на страницах 12-5-12-7 [HDB96], которые показывают три различные поверхности ошибок для многослойной сети. Проблема в том, что нелинейные передаточные функции в многослойных сетях вводят много локальных минимумов в поверхности ошибки. Когда градиентный спуск выполняется на поверхности ошибки, в зависимости от начальных начальных условий, возможно, чтобы сетевое решение стало захваченным в одном из этих локальных минимумов. Установка локального минимума может быть хорошей или плохой в зависимости от того, насколько близок локальный минимум к глобальному минимуму и насколько низкой требуется ошибка. В любом случае, следует предупредить, что, хотя многослойная сеть обратного распространения с достаточным количеством нейронов может реализовать почти любую функцию, обратное распространение не всегда находит правильные веса для оптимального решения. Можно хотеть повторно инициализировать сеть и несколько раз переобучить, чтобы гарантировать, что у вас есть лучшее решение.
Сети также чувствительны к количеству нейронов в их скрытых слоях. Слишком мало нейронов может привести к недостаточной подгонке. Слишком много нейронов может способствовать сверхподбору кривой, в котором все обучающие точки хорошо подобраны, но подобранная кривая дико колеблется между этими точками. Способы решения различных из этих проблем обсуждаются в «Улучшите обобщение неглубокой нейронной сети и избегайте избыточного оснащения». Эта тема также обсуждается на странице 11-21 [HDB96].
Для получения дополнительной информации о рабочем процессе с многослойными сетями смотрите Multilayer Shallow Neural Networks и Backpropagation Training.