注释:在简单的公式上求梯度并从直观的角度阐述梯度的意义

这个是Simple expressions and interpretation of the gradient 这一小节的注解。

1. 用形象的方式理解梯度

这一小节的主旨主要还是从直观的角度来阐释导数的意义。之前我常用的形象工具是“斜率”。也就是高数里说的几何意义。一个曲线上不同位置上的切线,其斜率也各不相同。斜率越大的地方,相同的自变量变化能够引发更大的因变量变化。这里采用了一个新的形象工具——“敏感度”。这也是一个很形象的说法,相同的大小的扰动,有的变量引起的变化率大,有的变量引起的变化量小,确实提现了不一样的敏感度。其实不管是“斜率”还是“敏感度”。这两个东西本质上是一样的,只是观察的角度有点不同。
那么比较“敏感度”比较的是同一个函数对其内部各个变量之间敏感度呢?还是比较不同函数在同一个变量上的敏感度呢?其实我觉得都可以比较。比较的方法没有区别。这篇文章里好像主要是同一个函数内部不同变量之间的敏感度的。
要注意的是,本质上这个思考工具是导数原始定义的一种形象化的延伸,因此使用这个工具就需要满足导数的定义,也就是要求 δ x \delta x δx是无限趋近于0的。或者说变量的变化只能是微小的变化,一般我们用“扰动”这个词来代表变量的微小变化。如果 δ x \delta x δx不是无线趋近于0的。
下面我们来用“敏感度”这个思想工具来解释导函数的意义

2. 找几例子来说明一下

要比较敏感度首先要固定一个点,不管这个点是具体的固定(比如说给一组具体的值)还是抽象的固定(比如用 x 0 x_0 x0这样的符号表示)。因为对于某些函数来说,敏感度和点所在的位置是有关系

2.1 函数 f = x y f = xy f=xy

设有这样的函数 f = x y f = xy f=xy,导数为 df/dx =y,df/dy = x。
在(4,2)这一点,f对那个变量的敏感度比较大呢?
对于x来说,一个小小的扰动h,会带来yh的变化,具体到(4,2)这一点上是2h
对于y来说,一个小小的扰动h,会带来xh的变化,具体到(4,2)这一点上是4h
那么h是多大呢,h是一个无限接近0的小数,为了讨论方便,我们假设它为 1 0 − 10 10^{-10} 1010。在这种情况下2h<4h,说明在(4,2)这一点,f对y的敏感度比f对x高。
如果这一点是(0.1,2)呢,这个时候x带来的变化是2h,而y带来的变化是0.1h。这个时候2h>0.1h。所以在(0.1,2)这点上,f对x的敏感度比f对y的敏感度要高。

这个例子说明,同一个函数,点的位置会对变化率产生影响。或者说在不同的点,函数对不同的变量的敏感度会发生变化。这点也很好理解,以 y = x 2 y = x^2 y=x2为例,(1,1)处的斜率就比(2,4)处要小。

当导数为常数的时候,代表什么含义?

2.2 函数 f = x + y f = x + y f=x+y

比如 f = x + y f = x + y f=x+y,df/dx =1 ,df/dy =1。
说明变化率是稳定的,和点所在的位置没有关系。
有变化率说明函数输出是会随着变量的变化而变化的,但是这种变化是稳定的变化,自变量增加多少,函数值也呈比例的增加。无论坐标点选在哪里,变化率都不会改变,对照 f = x y f = xy f=xy的情形。

因此原文有句话逻辑上有点问题

This makes sense, since increasing either x,y would increase the output of f, and the rate of that increase would be independent of what the actual values of x,y are (unlike the case of multiplication above).

这个make sense并不是那么显然的。“increasing either x,y would increase the output of f”这句话本身没有问题,但是这句话跟“ the rate of that increase would be independent of what the actual values of x,y are”一点关系都没有。根本无法从“ncreasing either x,y would increase the output of f”推导出“ the rate of that increase would be independent of what the actual values of x,y are”,居然就能把这两个没有任何关系的话and起来。
你可以这样说,增加x或者增加y都能使输出增加,但是无论x在哪个位置,x的增加都使得输出以相同的倍率增加(也就是线性关系),所以函数的输出值和x,y的具体值没有关系,也就是与位置无关。

2.3 函数 f = m a x ( x , y ) f = max(x,y) f=max(x,y)
2.3.1 导数怎么求

对于 f = m a x ( x , y ) f = max(x,y) f=max(x,y),通过分情况讨论,我们可以求得一部分偏导数。
df/dx = 1 ( x >=y)
df/dy = 1 (y >=x)

比如x >= y 时,f = x 那么df/dx =1。
x<=y时,f=y ,那么df/dy =1。
但是我想知道x>y的时候,df/dy怎么办,没有表达式怎么求。教材中给了一个方式,就是用导数的原始定义。
比如说在x > =y 的时候,比如说还是(4,2)吧。y上面增加一个微小的变化h,这个变化当然很小,你可以认为是10的负10次方,这种变化肯定不会改变x和y的大小关系。这种情况下,输出的值还是x,没有变化,因此导数是0。
同理,x<=y时,df/dx =0

所以,
∂ f ∂ x = { 1 , if  x ≥ y 0 , if  x ≤ y \frac{\partial f}{\partial x} = \begin{cases} 1 , & \text{if $x \geq y$} \\ 0 , & \text{if $ x \leq y$} \end{cases} xf={1,0,if xyif xy

∂ f ∂ y = { 1 , if  x ≤ y 0 , if  x ≥ y \frac{\partial f}{\partial y} = \begin{cases} 1 , & \text{if $x \leq y$} \\ 0 , & \text{if $ x \geq y$} \end{cases} yf={1,0,if xyif xy
上面这部分就是原文中

That is, the (sub)gradient is 1 on the input that was larger and 0 on the other input. Intuitively, if the inputs are x = 4 , y = 2 x = 4,y = 2 x=4,y=2, then the max is 4, and the function is not sensitive to the setting of y y y. That is, if we were to increase it by a tiny amount h h h, the function would keep outputting 4, and therefore the gradient is zero: there is no effect.

这部分语句想表达的。

2.3.2 对于最后两句话的解释

另外,对于原文的这句话:

Of course, if we were to change y y y by a large amount (e.g. larger than 2), then the value of f f f would change, but the derivatives tell us nothing about the effect of such large changes on the inputs of a function; They are only informative for tiny, infinitesimally small changes on the inputs, as indicated by the lim ⁡ h → 0 \lim_{h \rightarrow 0} limh0 in its definition.

这句话其实想提醒我们注意,梯度定义的成立范围是,“自变量的变化必须是无限趋近于0的”。或者说我们可以用一条直线来代替原来的曲线,前提是在无限趋近于0的范围内。它的原话直译过来是:“当我们给y增加一个比较大的变化时,f的值可能会改变,但是梯度并没有告诉我们这样大的改变能带来什么样的效用;如果定义中 lim ⁡ h → 0 \lim_{h \rightarrow 0} limh0所表示的那样,梯度只有在输入上有一个非常小的改变下才有意义”。

最后一段的主旨主要是说max函数的导数所表达的直观含义,但是最后两句放在这个地方,逻辑上显得有点奇怪,因为关系不大。

3 容易混淆的地方,关于变化量的幅度问题

对自变量有一个大的变化,应该也能对函数输出产生一个比较大的变化。这个描述没有问题,但是它不符合导数的定义。
自变量有很大的变化导致函数有很大的变化,不算敏感。只有在符合导数定义的时候,也就是只有在自变量有一个非常小的变化时,因变量也有一个变化这才是敏感。

换句话说你要区分“普通的变化”和“符合导数定义的变化”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值