吴恩达深度学习第二课第二周作业及学习心得体会——minibatch、动量梯度下降、adam

本文详细介绍了在吴恩达的深度学习课程中学到的minibatch梯度下降、动量梯度下降和Adam优化算法的原理、代码实现及其在训练效果上的差异。实验表明,minibatch可以显著提高收敛速度,动量梯度下降在某些情况下能减少震荡,而Adam结合了动量和RMSProp,展现出更快的收敛性能。
摘要由CSDN通过智能技术生成

概述

学习课程后,在L2正则化代码的基础上完成该周作业,现将心得体会记录如下。

Mini-batch梯度下降

概念

对m个训练样本,每次采用t(1<t<m)个样本进行迭代更新。

具体过程为:将特征X分为T个batch,每个batch的样本数为t(最后一个batch样本数不一定为t)。相应的将标签Y也如此分为T个batch。然后在每次训练时,原本是对所有样本进行一次训练;该算法则是对T个batch都进行训练,因此每次训练完所有样本,实际上都进行了T次训练。

注意为了保证没批样本的一致性,在分批前应对样本进行序号进行洗牌,随机重新分配样本的序号。

实际实现时,通常将每个batch的样本数t设置为2的整数次幂(64,128,256…)这是为了节省计算机内存。

理解

不用这种方法时:

执行一次梯度下降,向量化运算需要处理所有样本,耗时长;

当处理一次所有样本时,执行了一次梯度下降。

采用批量梯度下降算法时:

执行一次梯度下降,向量化运算需要处理t个样本,耗时短;

当处理一次所有样本时,执行了T次梯度下降。

因此可知,当样本量大时,其优点显而易见!假设有1000000个样本,如果不采用批量梯度下降法,用了20000次训练(即20000次梯度下降),才得到合适的网络;如果采用批量梯度下降法,令t=1000(则T=1000000/1000=1000),则每次训练完所有样本,实际上已经执行了1000次梯度下降,如果样本在分批时进行了随机排序处理,那么在上面的假设条件下,只需要对所有样本进行20次训练(梯度下降次数=20×1000=20000),就可以找到合适的网络。其效率明显提高。

特殊情况

当t=m(总样本数)时,等于没有分批,称作批梯度下降。

优点:最小化所有训练样本的损失函数,得到全局最优解;易于并行实现。

缺点:当样本数目很多时,训练过程会很慢。

当t=1时,每次只对一个样本进行训练,称作随机梯度下降。

优点:训练速度快。

缺点:最小化每条样本的损失函数,最终的结果往往是在全局最优解附近,不是全局最优;不易于并行实现。

代码更改

代码更改如下:

  • 增加分批函数:
def random_batch(X, Y, batch_size):
    batchs = []
    np.random.seed(0)
    m = X.shape[1]
    random_index = list(np.random.permutation(m))   #random_index为一维数组,大小0~m-1,顺序随机
    shuffled_X = X[:,random_index]                  #对X按照random_index的顺序重新排序(洗牌)
    shuffled_Y = Y[:,random_index]                  #对Y按照random_index的顺序重新排序(洗牌)
    num_batchs = int(np.floor(m/batch_size))        #计算批数
    
    for k in range(0,num_batchs):                   #将洗牌后的X,Y分成num_batchs个batch
        start = k * batch_size
        end = (k+1) * batch_size
        batch_X = shuffled_X[:,start:end]
        batch_Y = shuffled_Y[:,start:end]
        batch = (batch_X, 
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值