1700536647
百面机器学习:算法工程师带你去面试 04 梯度验证
1700536648
1700536649
1700536650
1700536651
场景描述
1700536652
1700536653
在用梯度下降法求解优化问题时,最重要的操作就是计算目标函数的梯度。对于一些比较复杂的机器学习模型,如深度神经网络,目标函数的梯度公式也非常复杂,很容易写错。因此,在实际应用中,写出计算梯度的代码之后,通常需要验证自己写的代码是否正确。
1700536654
1700536655
知识点
1700536656
1700536657
微积分,线性代数
1700536658
1700536659
问题 如何验证求目标函数梯度功能的正确性?
1700536660
1700536661
难度:★★☆☆☆
1700536662
1700536663
1700536664
给定优化问题,假设已经用代码实现了求目标函数值和求目标函数梯度的功能。请问,如何利用求目标函数值的功能来验证求目标函数梯度的功能是否正确?
1700536665
1700536666
分析与解答
1700536667
1700536668
根据梯度的定义,目标函数的梯度为
1700536669
1700536670
1700536671
,
1700536672
1700536673
(7.27)
1700536674
1700536675
其中对任意的i=1,2,…,n。梯度的第i个元素的定义为
1700536676
1700536677
1700536678
,
1700536679
1700536680
(7.28)
1700536681
1700536682
其中ei是单位向量,维度与θ相同,仅在第i个位置取值为1,其余位置取值为0。因此,可以取h为一个比较小的数(例如10−7),则有
1700536683
1700536684
1700536685
1700536686
1700536687
(7.29)
1700536688
1700536689
式(7.29)的左边为目标函数梯度的第i个分量,右边仅和目标函数值有关,二者应近似相等。
1700536690
1700536691
下面利用泰勒展开来计算该近似误差。令单变量函数
1700536692
1700536693
1700536694
.
1700536695
[
上一页 ]
[ :1.700536646e+09 ]
[
下一页 ]