Я следил за учебником ANN C++ Дэйва Миллера, и у меня возникли некоторые проблемы с его правильной работой.
Вы можете просмотреть код, с которым я работаю, здесь. Это проект XCode, но он включает файл main.cpp и набор данных.
Раньше эта программа выдавала выходные данные только в диапазоне от -1 до 1, я предполагаю, из-за использования функции tanh. Я манипулировал входными данными, чтобы иметь возможность вводить данные гораздо большего размера и иметь действительные выходные данные. Я просто сделал это, умножив входные значения на 0,0001 и умножив выходные значения на 10000.
Обучающие данные, которые я использую, — это прилагаемый файл CSV. Последний столбец — ожидаемый результат, остальные — входы. Использую ли я неправильную математическую функцию для этих данных?
Можно ли сказать, что это на самом деле обучение? Все это настолько меня напрягло, что я понимаю теорию, лежащую в основе ИНС, но просто не могу реализовать ее с нуля.
Чистая недавняя средняя ошибка определенно становится все меньше и меньше, что, по моему мнению, означает обучение.
Я играл со значениями эта и альфа, а также с количеством скрытых слоев.
Подробнее здесь: https://stackoverflow.com/questions/292 ... ts-outputs