Я только что прочитал книгу "Создай свою собственную нейронную сеть".Сейчас я пытаюсь создать класс NeuralNetwork в Python.Я использую функцию активации сигмоида.Я написал основной код и попытался проверить его.Но моя реализация не работала должным образом.После долгой отладки и сравнения кода из книги я обнаружил, что сигмоид очень большого числа равен 1, потому что Python округляет его.Я использую numpy.random.rand()
для генерации весов, и эта функция возвращает только значения от 0 до 1. После суммирования всех произведений весов и входных данных я получаю очень большое число.Я исправил эту проблему с помощью функции numpy.random.normal()
, которая генерирует случайные числа из диапазона, (-1, 1), например.Но у меня есть несколько вопросов.
- Является ли сигмоид хорошей функцией активации?
- Что делать, если выходные данные узла все еще так велики, а Python округляет результат до 1, что невозможно для сигмоида?
- Как я могу запретить Python округлять числа с плавающей точкой, которые очень близки к целому числу
- Любые советы для меня как новичка в нейронных сетях (книги, техники и т. Д.).