吴恩达深度学习课程笔记
这几天每天花了点时间看完了吴恩达的深度学习课程视频。目前还只有前三个课程,后面的卷积神经网络和序列模型尚未开课。课程的视频基本上都是十分钟出头的长度,非常适合碎片时间学习。
一直以为机器学习的重点在于设计精巧、神秘的算法来模拟人类解决问题。学了这门课程才明白如何根据实际问题优化、调整模型更为重要。事实上,机器学习所使用的核心算法几十年来都没变过。
什么是机器学习呢?以二类分类监督学习为例,假设我们已经有了一堆训练数据,每个训练样本可以看作n维空间里的一个点,那么机器学习的目标就是利用统计算法算出一个将这个n维空间分成两个部分(也就是把空间切成两半)的分界面,使得相同类别的训练数据在同一个部分里(在分界面的同侧)。而所用的统计算法无非是数学最优化理论的那些算法,梯度下降法等等。
在机器学习的模型中,神经网络是一个比较特殊的模型。因为它比较万能。万能二字可不是随便说说的,有定理为证,万能近似定理说,当神经网络的隐藏单元足够多,它就能逼近任意函数。也就是说,只要提供的训练数据量充足,就一定能用一个隐藏单元够多的神经网络去拟合这些训练数据。然而神经网络也有一个很严重的缺点:收敛速度太慢。这一缺点导致很长时间以来神经网络基本上都只能当作理论的标杆而很少被应用于实际问题。
近年来神经网络的兴起得益于三点:1. 算法进展;2. 大数据;3. 硬件提升。这三点使得神经网络(特别是深层网络)的训练速度大幅度提升。前面有说到,模型优化调整过程对于模型的建立至关重要。使用机器学习解决实际问题是一个持续迭代探索优化的过程,需要不断地试错。就好比在走迷宫,你不可能一开始就知道正确的路线在哪,只能加快步伐,尽可能快,尽可能早地走过每一条死路,并祈祷出口是存在着的。优化调整需要反复地训练模型,观察结果。在以前,一次训练可能耗时几个月甚至几年,这种情况下进行迭代调优的时间成本是不可接受的。而现在一次迭代可能只需要很短的一段时间,同时并发技术也使得同时训练不同参数的模型的方案变得可行。快速迭代,优化调整,使神经网络能够越来越多的应用于各种实际问题。
吴恩达的课程数学上是比较基础的。课程前面部分讲解了神经网络相关的主要算法,后面则侧重于讲工程上如何使用各种策略来调整优化模型使之能够快速地拟合实际问题。下图是对这门课主要知识点的总结。放在这儿以后回头温习用。