1700536810
1700536811
1700536812
(7.42)
1700536813
1700536814
1700536815
1700536816
1700536817
(7.43)
1700536818
1700536819
因此,随机梯度下降法用单个训练数据即可对模型参数进行一次更新,大大加快了收敛速率。该方法也非常适用于数据源源不断到来的在线更新场景。
1700536820
1700536821
1700536822
为了降低随机梯度的方差,从而使得迭代算法更加稳定,也为了充分利用高度优化的矩阵运算操作,在实际应用中我们会同时处理若干训练数据,该方法被称为小批量梯度下降法(Mini-Batch Gradient Descent)。假设需要同时处理m个训练数据 ,则目标函数及其梯度为
1700536823
1700536824
1700536825
1700536826
1700536827
(7.44)
1700536828
1700536829
1700536830
1700536831
1700536832
(7.45)
1700536833
1700536834
对于小批量梯度下降法的使用,有以下三点需要注意的地方。
1700536835
1700536836
(1)如何选取参数m?在不同的应用中,最优的m通常会不一样,需要通过调参选取。一般m取2的幂次时能充分利用矩阵运算操作,所以可以在2的幂次中挑选最优的取值,例如32、64、128、256等。
1700536837
1700536838
(2)如何挑选m个训练数据?为了避免数据的特定顺序给算法收敛带来的影响,一般会在每次遍历训练数据之前,先对所有的数据进行随机排序,然后在每次迭代时按顺序挑选m个训练数据直至遍历完所有的数据。
1700536839
1700536840
(3)如何选取学习速率α?为了加快收敛速率,同时提高求解精度,通常会采用衰减学习速率的方案:一开始算法采用较大的学习速率,当误差曲线进入平台期后,减小学习速率做更精细的调整。最优的学习速率方案也通常需要调参才能得到。
1700536841
1700536842
综上,通常采用小批量梯度下降法解决训练数据量过大的问题。每次更新模型参数时,只需要处理m个训练数据即可,其中m是一个远小于总数据量M的常数,这样能够大大加快训练过程。
1700536843
1700536844
逸闻趣事
1700536845
1700536846
1700536847
1700536848
梯度算子∇的读音
1700536849
1700536850
但凡学过高等数学的人,对梯度算子∇都不陌生,但是这个符号应该如何来读呢?∇符号是1837年爱尔兰物理学家和数学家哈密尔顿(W.R. Hamilton,建立哈密尔顿力学和提出四元数的大牛)首次提出的,但是并没有说明∇符号的读音。
1700536851
1700536852
于是,到了1884年,当物理学家威廉·汤姆森(William Thomson,热力学之父)想研究一下梯度时,苦于不知其读音。当时,汤姆森教授正在美国的约翰·霍普金斯大学(Johns Hopkins University,JHU)开一个系列讲座,于是他就写信问亚历山大·格拉汉姆·贝尔(Alexander Graham Bell,电话之父)。
1700536853
1700536854
贝尔回信说,早些年,他的学长詹姆斯·克拉克·麦克斯韦(James Clerk Maxwell,缔造电磁学的大牛,这里的“学长”一词是指贝尔和麦克斯韦都曾在爱丁堡大学受教育)曾经告诉贝尔,他为∇发明了一个十分有趣的发音,叫作“纳布拉”(Nabla)。Nabla原指一种希伯来竖琴,外形酷似倒三角。具体事情经过如下:
1700536855
1700536856
1870年,麦克斯韦的儿时好友,物理学家彼得·台特(Peter Guthrie Tait,将四元数发挥到化境的大牛)正在研究哈密尔顿的四元数,其中有很多∇符号。于是麦克斯韦写信给台特建议说,“亲爱的台特,如果腓尼基的王子卡德摩斯向腓尼基的教授们问这个符号的读法,那么他们肯定会说这个符号读作纳布拉。”1871年,麦克斯韦写信问台特,“你还在弹那个纳布拉琴吗?”麦克斯韦还写了一首歪诗献给台特,诗的题目是《至纳布拉琴圣手》(To the Chief Musician upon Nabla)。
1700536857
1700536858
1700536859
[
上一页 ]
[ :1.70053681e+09 ]
[
下一页 ]