1.基础梯度下降数目选择:批量,mini,随机(每次一个的mini)
这里指的是数据集大小,一般的是一次整个传进去,现在则是一次传少量
函数:np.rwandom.permutation(a),a如果是一个数,则返回打乱的arange(5)数组;
如果是一个一维数组,打乱元素;如果是一个高维,打乱行向量的排列
math.floor():向下取整;math.ceil向上取整
注:1.通常我们在循环中一般把所有当前层参数放在一个元组中,元组不考虑形状;在用append把每个元组放在一个数组中,一般元组形状都是(k,),如通向量,可以放在一个数组里。可以通过例如a[1][3]表示取数组a中第二个元组的第四个元素
2.可以通过[:,a](a是一维数组)来调用数组中全部行以及a中包含数字-1列
2.动量梯度下降:指数梯度平均是对之前多个梯度dw,db本身做平均,波动减小,向优叠加
这里的v可以认为是dw,db的修正项,v["dW" + str(l + 1)] = beta * v["dW" + str(l + 1)] + (1 - beta) * grads["dW" + str(l + 1)],vdw,vdb实际上是对grads中dw,db的持续修正项,由于只和vdw本身以及dw有关,而vdw一般初始化为0,所以多次迭代才会有比较好的效果。v本身是由代价和上一项构成。
adam使用了v,s,相当于用v减小竖直,叠加水平;用s相当于d越大,缩减越大,d越小,缩减越小,所以通过加权惩罚梯度,导致梯度下降更好。