Производная ступенчатой функции Хевисайда равна нулю везде, кроме точки ветвления, которая находится в нуле, поскольку ее там нет. Это так, потому что функция Хевисайда состоит из двух постоянных функций на разных интервалах, а производная постоянной функции всегда равна нулю. Производная не существует в нуле, поскольку функция там не является непрерывной (скачок существует в нуле).
Говоря численно, производная устанавливается равной нулю везде, даже в нуле. Это проблема c, так как градиентный спуск не будет работать, потому что веса не будут обновляться и останутся неизменными с момента инициализации. Чтобы выполнить градиентный спуск, вам понадобится сглаженная версия функции Хевисайда. Одна из возможностей - это просто сигмоидальная функция.
Что касается второго вопроса, да, вы можете определить настраиваемую функцию с настраиваемым градиентом во многих фреймворках, таких как TensorFlow. Вы можете установить вывод как вывод функции Хевисайда, а градиент как градиент сигмоидной функции.