1) Почему один скрытый слой? Ну, начнем сначала, почему он вообще там есть. Из теории известно, что нейронная сеть, которая состоит всего из входного и выходного слоев без скрытых слоев, представляет собой линейный персептрон. Из названия уже понятно, что такие персептроны способны моделировать только линейные функции, поэтому используются очень редко. Хотя они обеспечивают универсальную линейную аппроксимацию, что часто и требуется для конкретной задачи, но явно не нашей. Но если проблема значительно нелинейная, имеет смысл попытаться решить ее с помощью линейного персептрона. Математики долго бьются над вопросом, сколько оптимально скрытых слоев должно быть, но в реальной сети использование большего количества слоев приводит к уменьшению суммарного количества элементов в скрытых слоях. Но анализ людей, работающей в этой области науки, считает, что для решения большинства практических задач достаточно одного, иногда двух скрытых слоев. Причина такого несоответствия теории и практики лежит, по-видимому, в том, что сложность реальных проблем намного меньше, чем это теоретически возможно. Поэтому решение задачи удобно начинать с такого рассуждения, да и в MATLAB удобно показывать на примере, рассматриваемом в статье. 2) Количество нейронов в скрытом слое я потом изменял и проиллюстрировал результаты, в комментарии дали хороший развернутый ответ на полученную зависимость качества НС от количества нейронов в скрытом слое. 3) Тут человек нашел в MATLAB модуль, не нашел такой статьи на Хабре, нашел желание и показал на примере практическое применение. 4) К сожалению, потратил не 10 минут, а наверно 10 часов на всё. Спасибо за Ваш комментарий.
|
|