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
1700536696
(7.30)
1700536697
1700536698
根据泰勒展开及拉格朗日余项公式,式(7.30)可写为
1700536699
1700536700
1700536701
,
1700536702
1700536703
(7.31)
1700536704
1700536705
其中pi∈(0,h)。类似地,
1700536706
1700536707
1700536708
,
1700536709
[
上一页 ]
[ :1.70053666e+09 ]
[
下一页 ]