Производная функции Хевсайда (единица / ступенька) - PullRequest
0 голосов
/ 14 июля 2020

Я новичок в машинном обучении и учусь программировать Персептрон.

Какая производная от функций тяжелой стороны? Для контекста я использую перцептрон как псевдо-SVM, чтобы я мог классифицировать точки данных.

Я предполагаю, что это 0, однако, основываясь на учебнике, я вижу, что люди используют 1. Почему это работает. Кроме того, можно ли использовать функцию активации сигмоидального типа, а затем передать вывод через функцию тяжелой стороны, поэтому я могу взять производную сигмоида?

Спасибо.

1 Ответ

0 голосов
/ 15 июля 2020

Производная ступенчатой ​​функции Хевисайда равна нулю везде, кроме точки ветвления, которая находится в нуле, поскольку ее там нет. Это так, потому что функция Хевисайда состоит из двух постоянных функций на разных интервалах, а производная постоянной функции всегда равна нулю. Производная не существует в нуле, поскольку функция там не является непрерывной (скачок существует в нуле).

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

Что касается второго вопроса, да, вы можете определить настраиваемую функцию с настраиваемым градиентом во многих фреймворках, таких как TensorFlow. Вы можете установить вывод как вывод функции Хевисайда, а градиент как градиент сигмоидной функции.

...