Если я правильно понял, я не думаю, что вы описываете, возможно.Чтобы операция была дифференцируемой, мы должны быть в состоянии найти градиент.
Интуитивно, это не имеет смысла, если вы просто обрезаете все значения до 0 или 1
ОБНОВЛЕНИЕ В ОТВЕТЕ НА КОММЕНТАРИИ:
Вы могли всегда используйте такую операцию в расчете метрика .Это даст вам «более точное представление» о производительности во время обучения (но не будет использоваться для обучения - просто сообщать вам результаты).
Просто невозможно использовать его для функции потери / цели, поскольку это не то, как работает обучение нейронной сети.Я постараюсь объяснить немного.
Существуют надлежащие математические обоснования и определения, объясняющие, почему функция потерь должна быть дифференцируемой, но интуитивно мы можем представить, что нашему оптимизатору нужна «гладкая», «непрерывная» поверхность для работы.
Представьте себе ходьбу с завязанными глазами по гладкой, непрерывной плоскости и задачу поиска самой низкой точки.Одна из стратегий состоит в том, чтобы постукивать ногой по кругу, пока вы не найдете шаг, который вы могли бы сделать, который приведет вас дальше всего.Теперь сделайте этот шаг и повторите это снова и снова.Продолжайте повторять до тех пор, пока не окажетесь внизу, не оставляя шагов вниз.Можно подумать об оптимизации градиентного спуска таким образом.Мы делаем маленькие шаги в направлении, которое делает нас самыми низкими каждый раз, когда все ближе и ближе к дну.
Теперь вместо гладкой плоскости представьте поверхность, которая является абсолютно плоской, за исключением одного края утеса.Неважно, где вы стоите на этом плане, вы не можете знать, в каком направлении вступить. Если вы находитесь вдали от края утеса, все ровно.Даже если вы находитесь на краю обрыва, вы все равно не знаете, в каком направлении (у вас, вероятно, есть 180 градусов), чтобы добраться до самой низкой точки.
Имеет ли это смысл?Без гладкой сплошной поверхности мы не можем использовать стратегию маленьких шагов вниз?