首页
学习
活动
专区
工具
TVP
发布

用Python来实现一个梯度下降算法(中)

最近生活有点乱,此乱非彼乱,只是生活节奏乱了。其实深度学习并不是我的工作,这只是生活中的一部分。以前林老师说过当你年老的时候,你会发现,很大一部分愉悦感以及成就感是来自于做那些曾经对你而言很困难的事情,只有真正热爱的事情才能成就你。

上一篇给大家讲了如何创建一个神经网络结构,接下来会继续讲梯度下降算法用Python是如何实现的。

如果一次拿所有的实例来更新,因为我们算的是一个平均值,这样的话消费的时间就比较长,速度会比较慢。所以这里我采取一种mini_bathces一种方式,把x训练的实例集分成一小块一小块,随机挑选一小块来进行运算,把所有的x训练集耗尽之后,也就完成一轮的训练,也就是完成了一轮Epoch。所以我这里用到的是随机梯度下降算法。下面讲解一下参数:

training_data:训练集,"(x,y)"

epochs:训练轮数,

mini_batch_size:每一小块分成多少个实例,

eta:学习率,

test_data:测试集,默认空值。

上面我们有一个比较关键的方程:update_mini_batch():这一个方程决定了我们在mini_bathces中如何更新权重和偏向。

下面讲下update_mini_batch()的参数:

mini_bathch:当前mini_bathces的数据,

eta:学习率。

其实这里我使用了一个backpropagation来计算cost function对于b和w的偏导数,后面再详细介绍了。

———————————————

下一篇会继续讲如何加载数据集,进一步讲解梯度下降算法训练的结果。

春去秋来,一边记录,一边成长。

——《凡人周郎》

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181129G1NQ0Q00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券