什么是TensorFlow中的可微性?

什么是TensorFlow中的可微性?,tensorflow,tensorflow2.0,Tensorflow,Tensorflow2.0,我在TensorFlow的文档中遇到了可微性这个术语,但找不到任何定义。关于SO的大多数帖子仅仅询问一个操作是否可微(如或) 我有一个线索,这可能与梯度下降和区分目标函数的需要有关[?] 问题:无论如何,作为程序员,我为什么要关心可微性 实际上,你需要关心函数的可微性,因为当你构建一个神经网络时,你使用梯度下降优化它的权重,不管他们使用什么花哨的词,比如Adam优化算法,RMS prob,等等,这是一个梯度基方法。因此,为了理解为什么需要理解微分,您需要理解什么是梯度 微分是我们在微积分中知道的

我在TensorFlow的文档中遇到了可微性这个术语,但找不到任何定义。关于SO的大多数帖子仅仅询问一个操作是否可微(如或)

我有一个线索,这可能与梯度下降和区分目标函数的需要有关[?]


问题:无论如何,作为程序员,我为什么要关心可微性

实际上,你需要关心函数的可微性,因为当你构建一个神经网络时,你使用梯度下降优化它的权重,不管他们使用什么花哨的词,比如Adam优化算法,RMS prob,等等,这是一个梯度基方法。因此,为了理解为什么需要理解微分,您需要理解什么是梯度

微分是我们在微积分中知道的一个导数,所以在你们的例子中,微分意味着你们可以计算一个关于模型权重的导数。简单地说,任何可微函数都是沿着给定参数的连通函数。例如,如果您的函数在输入为正时输出1,在输出为负时输出0,则称为阶跃函数,从技术上讲,阶跃函数是可微的,但在输入为0左右时,您将得到无穷大,这是一个脉冲函数(您可以在线搜索以获得更好的理解),你们可以清楚地看到,你们的图在那个点从0跳到1,所以你们的导数(d输出/d输入)在那个点不是一个有限的数

所以,说到你的问题“作为一个程序员,我为什么要关心可微性?”。如果您正在处理其他应用程序,您可能不需要了解什么是微分,但在神经网络中,了解它是至关重要的,因为我们使用相对于重量的损失梯度值(d损失/d重量)优化神经网络的重量。因此,如果你的损失函数是不可微的,你最终得到的导数等于无穷大,那么你的模型将以无穷大的权重崩溃,并且不会产生有用的应用。另一个应用可能是在一个研究领域,在这个领域中,你必须进行一些涉及微积分的实验,你可能需要知道你函数的可微性


希望这能回答你的问题

实际上,你需要关心函数的可微性,因为当你构建一个神经网络时,你可以使用梯度下降来优化它的权重,不管他们使用什么花哨的词,比如Adam优化算法,RMS prob,等等,这是一个梯度基方法。因此,为了理解为什么需要理解微分,您需要理解什么是梯度

微分是我们在微积分中知道的一个导数,所以在你们的例子中,微分意味着你们可以计算一个关于模型权重的导数。简单地说,任何可微函数都是沿着给定参数的连通函数。例如,如果您的函数在输入为正时输出1,在输出为负时输出0,则称为阶跃函数,从技术上讲,阶跃函数是可微的,但在输入为0左右时,您将得到无穷大,这是一个脉冲函数(您可以在线搜索以获得更好的理解),你们可以清楚地看到,你们的图在那个点从0跳到1,所以你们的导数(d输出/d输入)在那个点不是一个有限的数

所以,说到你的问题“作为一个程序员,我为什么要关心可微性?”。如果您正在处理其他应用程序,您可能不需要了解什么是微分,但在神经网络中,了解它是至关重要的,因为我们使用相对于重量的损失梯度值(d损失/d重量)优化神经网络的重量。因此,如果你的损失函数是不可微的,你最终得到的导数等于无穷大,那么你的模型将以无穷大的权重崩溃,并且不会产生有用的应用。另一个应用可能是在一个研究领域,在这个领域中,你必须进行一些涉及微积分的实验,你可能需要知道你函数的可微性

希望这能回答你的问题