Что такое дифференцируемость в TensorFlow? - PullRequest
1 голос
/ 02 мая 2020

Я встречал термин дифференцируемость в документации для TensorFlow, но не могу найти какое-либо определение. Большинство сообщений на SO просто спрашивают , является ли операция дифференцируемой (как в здесь или здесь ).

У меня есть подозрение, что это может быть связанные с градиентным спуском и необходимостью дифференциации целевых функций [?]

ВОПРОС : В любом случае, как программист, почему я должен заботиться о дифференцируемости?

1 Ответ

0 голосов
/ 03 мая 2020

на самом деле вам нужно заботиться о дифференцируемости вашей функции, потому что, когда вы строите нейронную сеть, вы оптимизируете ее вес с помощью градиента приличия независимо от того, какое вычурное слово они используют, например алгоритм оптимизации Адама, проба RMS, что угодно, это является градиентным базовым методом Следовательно, вам нужно понять, что такое градиент, чтобы понять, почему вам нужно понимать дифференцирование.

Дифференцирование - это производная, известная нам в исчислении, поэтому дифференцирование в вашем случае означает, что вы можете вычислить производную по вес вашей модели. Любая дифференцируемая функция, проще говоря, является связной функцией по заданному параметру. Например, если ваша функция выведет 1, когда вход положительный, и 0, если выход отрицательный, так называемая пошаговая функция, технически это дифференцируемо, но вы получите бесконечность при входе около 0, что является импульсной функцией (вы можете найти ее в Интернете для лучшего пониманием), из которого вы можете ясно видеть, что ваш график просто перепрыгивает с 0 до 1 в этой точке, поэтому ваша производная (d output / d input) не является конечным числом в этой точке.

Вопрос «Как программист, почему я должен заботиться о дифференцируемости?». Возможно, вам не нужно понимать, что такое дифференцирование, если вы имеете дело с другим приложением, но в нейронной сети нам важно понять об этом , потому что мы оптимизируем вес нейронной сети, используя значение градиента потерь по отношению к весу (d Потеря / d вес). Следовательно, если ваша функция потерь не дифференцируема, вы получите производную, равную бесконечности, поэтому ваша модель рухнет с весом бесконечности и не даст никакого полезного приложения. Другое применение может быть в исследовательской области, где вам нужно экспериментировать с чем-то, что связано с исчислением, вам может потребоваться узнать о вашей дифференцируемости вашей функции.

Надеюсь, что это ответ на ваш вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...