Тип входных и выходных значений зависит от того, какой смысл вы в них вкладываете и от архитектуры сети (в частности, функций активации на выходах нейронов).
При обработке текста, например, часто на вход подается последовательность id'шников слов в предложении - соответственно, это целые числа от 0 до <количество слов в словаре>.
При обработке изображений часто используют функцию активации ReLU, выход которой - неотрицательные числа.
Нормализация на входе бывает полезна, когда изначально диапазон фич сильно отличается друг от друга, но по смыслу они примерно равны, а сами фичи - это вещественные числа (например, если входные данные - это длина сосульки на крыше в миллиметрах и температура на улице в градусах; первая фича имеет порядок сотен-тысяч, вторая - десятки-единицы).
Способ инициализации весов в слоях имеет большое значение для того, насколько хорошо будет отрабатывать backprop. Но эта область уже достаточно хорошо изучена, и везде по умолчанию используется стандартные решения вроде инициализации по Глороту или ортогональной инициализации. Так что тут беспокоиться не надо.
"сколько должно пройти итераций что бы веса с 0.1.. спустились до 0.0001.." можно перефразировать как "почему backprop работает медленно и как его ускорить". Это вообще одна из фундаментальных задач в DL. Инициализация весов - один из способов частичного решения. Различные функции активации - другой. Новые архитектуры слоев - третий. Модификация обучающих данных - четвертый. И так далее.