В целях обучения я реализовал простую структуру нейронной сети, которая поддерживает только многослойные персептроны и простое обратное распространение. Он работает нормально для линейной классификации и обычной задачи XOR, но для приближения синусоидальной функции результаты не такие удовлетворительные.
Я в основном пытаюсь приблизить один период синусоидальной функции одним скрытым слоем, состоящим из 6-10 нейронов. Сеть использует гиперболический тангенс в качестве функции активации для скрытого слоя и линейную функцию для вывода. Результат остается довольно грубой оценкой синусоиды и требует много времени для расчета.
Я посмотрел на encog для справки, но даже при этом мне не удается заставить его работать с простым обратным распространением (при переключении на устойчивое распространение оно начинает улучшаться, но все еще намного хуже, чем сценарий super slick R, представленный в этом похожем вопросе). Так я на самом деле пытаюсь сделать что-то, что невозможно? Разве невозможно аппроксимировать синус простым обратным распространением (без импульса, без динамической скорости обучения)? Какой метод используется библиотекой нейронных сетей в R?
РЕДАКТИРОВАТЬ: Я знаю, что определенно возможно найти достаточно хорошее приближение даже с простым обратным распространением (если вам невероятно повезло с вашими начальными весами), но на самом деле мне было более интересно узнать, является ли это осуществимым подходом. Сценарий R, с которым я связан, кажется, сходится так невероятно быстро и надежно (в 40 эпохах с небольшим количеством обучающих примеров) по сравнению с моей реализацией или даже поддерживает устойчивое распространение. Мне просто интересно, могу ли я что-то сделать, чтобы улучшить алгоритм обратного распространения, чтобы добиться такой же производительности, или мне нужно искать какой-нибудь более продвинутый метод обучения?