optimization algorithms
mini-batch gradient descent
适用范围:数据集很大。
步骤:将数据集划分为等大的小块,对每个小块进行forward_propagation和backward_propgation
momentem gradient descent
存在意义:使用mini-batch后,cost function不会一直向着global optima减小,而是一边振荡一边接近。为了抵消震荡所造成的收敛变慢效应,引入了momentem gradient descent。
效果:让振荡叠加。水平方向的振荡同向,叠加后更大,更快地接近global optima;垂直方向的振荡相邻之间反向,叠加后抵消,减少了浪费在垂直振荡上的时间。
数学原理:指数平均。每一次振荡是前几次振荡的指数平均。
RMSprop
和momentem gradient descent类似,只是:
1、公式最右端的βdWβdWβdW改成βdW2βdW^2βdW2
2、update_parameter步骤中改成W−=αdW/(sqrt(vdW)+epsilon)W-=αdW/(sqrt(v_{dW})+epsilon)W−=αdW/(sqrt(vdW)+epsilon)
epsilon是为了保证分母≠0
Adam algorithm
将RMSProp和momentem gradient descent结合起来,速度更快。
vdWL=βvdWL−1+(1−β)dWv_{dW_{L}}=βv_{dW_{L-1}}+(1-β)d_WvdWL=βvdWL−1+(1−β)dW
vdWL(corrected)=vdWL/(1−βL)v_{dW_{L}}(corrected)=v_{dW_L}/(1-β^L)vdWL(corrected)=vdWL/(1−βL)
sdWL=βsdWL−1+(1−β)dW2s_{dW_{L}}=βs_{dW_{L-1}}+(1-β)d_W^2sdWL=βsdWL−1+(1−β)dW2
sdWL(corrected)=sdWL/(1−βL)s_{dW_{L}}(corrected)=s_{dW_L}/(1-β^L)sdWL(corrected)=sdWL/(1−βL)
W−=αdvdWL/(sqrt(sdWL)+epsilon)W-=αdv_{dW_L}/(sqrt(s_{dW_L})+epsilon)W−=αdvdWL/(sqrt(sdWL)+epsilon)
对b进行相同的操作