用梯度下降法求根号2的值

阿里实习面试的时候,面试官问了这个问题:如何用梯度下降法求根号2的值。我一开始是懵逼的,后来在面试官的指引下有了一些思路,最后面试官讲出了其中的原理。下面总结一下,是个挺有意思的问题。


我们知道梯度下降法是用来求函数的极值的。假设一个函数f(x)f(x)f(x)可导,要求它的极值的话,应该是求解f′(x)=0f'(x)=0f(x)=0。对于一般函数,这个方程不好解。所以我们使用梯度下降法这样的迭代算法。具体地,不断进行如下更新:
x←x−αf′(x)x\leftarrow x-\alpha f'(x)xxαf(x)

直到f′(x)≈0f'(x)\approx 0f(x)0.(这里以求极小值为例)

回到最开始的问题。如果一个函数的极小值是根号2,那么我们就可以通过梯度下降法找到这个值。不过,这个函数应该满足以下条件:

  • 函数在某个区间内,只有根号2这一个极小值点。否则我们可能找到的是其他极值点。

如果函数(可导)的极小值是根号2,那么它的导函数以根号2为根。并且,在上述区间内,导函数单调递增且过零点。所以我们可以直接找这样的导函数,不用找原函数了。

这样的导函数有:f′(x)=x/2+1/xf'(x)=x/2+1/xf(x)=x/2+1/x.它的图形是:
在这里插入图片描述
可以看到,它在(0,+∞)(0,+\infty)(0,+)上满足条件。所以,我们只需要在(0,+∞)(0,+\infty)(0,+)上使用梯度下降找f′(x)=0f'(x)=0f(x)=0的点就可以了。

另一个函数是:f′(x)=x2−2f'(x)=x^2-2f(x)=x22.它的图形是:
在这里插入图片描述
也满足条件。


一般地,可以推广到求根号n。这样的导函数是:f′(x)=x/n+1/xf'(x)=x/n+1/xf(x)=x/n+1/xf′(x)=x2−nf'(x)=x^2-nf(x)=x2n

在统计学和机器学习中,某个计算步骤需要除以根号 $ d $(其中 $ d $ 通常表示特征维度或向量长度)的原因主要与归一化、防止数不稳定性和保持模型泛化能力有关。以下是具体场景和解释: #### 1. **注意力机制中的归一化** 在注意力机制(如 Transformer 模型)中,计算注意力权重时,通常会对查询向量(Query)和键向量(Key)的点积结果除以 $ \sqrt{d_k} $,其中 $ d_k $ 是向量的维度。这一操作的目的是防止点积结果过大,导致 softmax 函数进入饱和区域,从而使得梯度消失。通过除以 $ \sqrt{d_k} $,可以使得点积的方差保持在一个相对稳定的范围内,从而提高模型的稳定性和训练效率。 ```python import numpy as np def scaled_dot_product_attention(q, k, v): d_k = q.shape[-1] scores = np.dot(q, k.T) / np.sqrt(d_k) attention_weights = np.softmax(scores) output = np.dot(attention_weights, v) return output ``` #### 2. **特征归一化** 在数据预处理阶段,当特征维度 $ d $ 较大时,不同特征之间的量纲差异可能导致模型训练不稳定。因此,通常会对输入数据进行标准化或归一化处理。例如,在主成分分析(PCA)中,为了消除不同特征量纲的影响,通常会对数据进行中心化并除以标准差,确保各特征具有可比性。这种操作本质上也是一种归一化处理,有助于保留数据的主要方差信息[^2]。 #### 3. **正则化与防止过拟合** 在高维空间中,随着特征维度 $ d $ 的增加,模型的复杂度也随之上升,容易导致过拟合。为了控制模型复杂度,通常会在损失函数中引入正则化项,如 L2 正则化。在某些情况下,正则化项会与特征维度相关,例如在某些优化算法中,学习率可能会根据 $ \sqrt{d} $ 进行调整,以保持梯度下降的稳定性。 #### 4. **随机向量的期望与方差** 在概率统计中,当多个独立随机变量进行线性组合时,其方差会随着维度增加而增大。例如,若一个随机向量的每个分量独立同分布,其方差为 $ \sigma^2 $,则该向量的模长平方的期望为 $ d\sigma^2 $。为了控制向量的大小,通常会除以 $ \sqrt{d} $,使得其模长的期望保持在合理范围内,从而避免数不稳定问题[^3]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值