你好,游客 登录
背景:
阅读新闻

极简机器学习课程:使用Python构建和训练一个完整的人工神经网络

[日期:2018-11-14] 来源:网络  作者: [字体: ]

  直接阅读技术类的教材是困难的,理论的密集程度常常令人生畏,而Welch Labs的视频用有趣的短片形式,以达到教学的目的,并结合相关资源介绍技术背景,使你能熟练掌握主题。

  而本文介绍的系列视频,将带领大家使用Python构建和训练一个完整的人工神经网络。

  1.数据+架构

  要想使用一种机器学习的方法,我们首先需要数据。获取到数据后,我们会使用编程语言Python,在二维numpy库里存储数据。数据准备好后,就可以用它训练一个模型了。机器学习中有大量的模型,本文训练的是当前特别火的人工神经网络。

  Ps:把数据放进模型之前,我们需要考虑数据单位间的差异。

  上一节我们建立了神经网络,这次我们将用Python编程语言来实现它。

  对深度学习模型按照输入层、靠近输入层的隐含层、靠近输出层的隐含层和输出层的次序,依次计算并存储模型的中间变量叫做正向传播(forward-propagation)。在本节中,我们介绍如何使用Python实现正向传播。

        3.梯度下降

  本节重点放在如何改进神经网络,使预测更准确。

  梯度下降法,是当今最流行的优化(optimization)算法,亦是至今最常用的优化神经网络的方法。本视频通过举例,介绍了梯度下降是如何优化神经网络的。

      4.反向传播

  反向传播(back-propagation)是计算深度学习模型参数梯度的方法。总的来说,反向传播中会依据微积分中的链式法则,按照输出层、靠近输出层的隐含层、靠近输入层的隐含层和输入层的次序,依次计算并存储模型损失函数的得分与参数梯度。

  反向传播可能比较简单,但不会太简单。反向传播中的错误是让神经网络学习的关键。在这个视频中,用高中数学水平浅显易懂地介绍了反向传播背后的推导和思考过程。

      5.数值梯度检查

  当构建复杂的系统,如神经网络时,检查部分工作可以避免以后许多问题。在这里,我们将借助对导数的简单理解和一些小技巧来检查梯度计算部分。

  如果代码通过了这个测试,那可以确信,我们已经正确地计算和编码了梯度。

      6.训练

  经过以上工作,现在是时候训练神经网络了。我们将使用BFGS数值优化算法并查看结果。

    7.过拟合,测试和正则化

  我们已经建立并训练了神经网络,但是在开香槟庆祝之前,还要保证我们的模型适用于现实世界。

  实践中,如果测试数据集是给定的,我们通常用机器学习模型,在该测试数据集上的误差来表示泛化误差。基于上述重要结论,以下两种拟合问题值得注意:

  欠拟合:机器学习模型无法得到较低训练误差。

  过拟合:机器学习模型的训练误差远小于其在测试数据集上的误差。

 

  我们要尽可能同时避免欠拟合和过拟合的出现。可以使用正则化来应对过拟合问题。​

收藏 推荐 打印 | 录入:Cstor | 阅读:
相关新闻      
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款