直接阅读技术类的教材是困难的,理论的密集程度常常令人生畏,而Welch Labs的视频用有趣的短片形式,以达到教学的目的,并结合相关资源介绍技术背景,使你能熟练掌握主题。
而本文介绍的系列视频,将带领大家使用Python构建和训练一个完整的人工神经网络。
1.数据+架构
要想使用一种机器学习的方法,我们首先需要数据。获取到数据后,我们会使用编程语言Python,在二维numpy库里存储数据。数据准备好后,就可以用它训练一个模型了。机器学习中有大量的模型,本文训练的是当前特别火的人工神经网络。
Ps:把数据放进模型之前,我们需要考虑数据单位间的差异。
视频链接:
https://pan.baidu.com/s/14h63WUGUaY_ozh37U58A-g
2.正向传播
上一节我们建立了神经网络,这次我们将用Python编程语言来实现它。
对深度学习模型按照输入层、靠近输入层的隐含层、靠近输出层的隐含层和输出层的次序,依次计算并存储模型的中间变量叫做正向传播(forward-propagation)。在本节中,我们介绍如何使用Python实现正向传播。
视频链接:
https://pan.baidu.com/s/1GS7Zh7mZtUVrHUUAtiYeug
3.梯度下降
本节重点放在如何改进神经网络,使预测更准确。
梯度下降法,是当今最流行的优化(optimization)算法,亦是至今最常用的优化神经网络的方法。本视频通过举例,介绍了梯度下降是如何优化神经网络的。
视频链接:
https://pan.baidu.com/s/1tCjA6ILvC8OK5IiR_5FuDA
4.反向传播
反向传播(back-propagation)是计算深度学习模型参数梯度的方法。总的来说,反向传播中会依据微积分中的链式法则,按照输出层、靠近输出层的隐含层、靠近输入层的隐含层和输入层的次序,依次计算并存储模型损失函数的得分与参数梯度。
反向传播可能比较简单,但不会太简单。反向传播中的错误是让神经网络学习的关键。在这个视频中,用高中数学水平浅显易懂地介绍了反向传播背后的推导和思考过程。
视频链接:
https://pan.baidu.com/s/1mpAhOGg_SpzvchrX2arwqQ
5.数值梯度检查
当构建复杂的系统,如神经网络时,检查部分工作可以避免以后许多问题。在这里,我们将借助对导数的简单理解和一些小技巧来检查梯度计算部分。
如果代码通过了这个测试,那可以确信,我们已经正确地计算和编码了梯度。
视频链接:
https://pan.baidu.com/s/1MKJCYAmpERcbuzbyKQjAVw
6.训练
经过以上工作,现在是时候训练神经网络了。我们将使用BFGS数值优化算法并查看结果。
视频链接:
https://pan.baidu.com/s/1nUHwN1A165H6Hj3b29lRKA
7.过拟合,测试和正则化
我们已经建立并训练了神经网络,但是在开香槟庆祝之前,还要保证我们的模型适用于现实世界。
实践中,如果测试数据集是给定的,我们通常用机器学习模型,在该测试数据集上的误差来表示泛化误差。基于上述重要结论,以下两种拟合问题值得注意:
欠拟合:机器学习模型无法得到较低训练误差。
过拟合:机器学习模型的训练误差远小于其在测试数据集上的误差。
我们要尽可能同时避免欠拟合和过拟合的出现。可以使用正则化来应对过拟合问题。
视频链接:
https://pan.baidu.com/s/12iRsoFS6ePkMPWzedQaFPg
—完—
亲爱的朋友:
本周的充电时间,分享一个有趣且相对简单的系列短片。希望能对你有所帮助。
祝安!
智能观 一米
2018-4-17 于北京中关村
想知道AI加教育领域有哪些最新研究成果?
想要AI领域更多的干货?
想了解更多专家的“智能观”?
请在对话界面点击“找找看”,去获取你想要的内容吧。
声明:
编译文章旨在帮助读者了解行业新思想、新观点及新动态,为原作者观点,不代表智能观观点。
网友评论