Deep Learning Specialization
吴恩达老师最近在coursera上联合deeplearning.ai 推出了有关深度学习的一系列课程,相对于之前的machine learning课程,这次的课程更加实用,作业语言也有matlab改为了python从而更加贴合目前的趋势。在此将对这个系列课程做一个学习笔记。
而这次的Deep Learning Specialization分为五门课程,分别为:Neural Networks and Deep Learning,Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization,Structuring Machine Learning Projects,Convolutional Neural Networks,Sequence Models。
这篇随笔首先从第一门课Neural Networks and Deep Learning的第一周开始
深度学习简介
学习目标:
1. 了解推动深度学习的主要趋势
2. 能够解释深度学习是如何应用到监督学习中的
3. 了解深度学习模型的主要类别以及什么时候该应用什么模型
4. 能够简单了解什么情况下机器学习会工作的比较顺利
主要内容
人工智能将会像电力的出现一样给人类社会带来又一次巨大转变。就想一百年前一样,人工智能也在改变着许多行业。
什么是神经网络
假设我们用房屋的面积大小来预测一个房屋的价格,那么我们可以用线性回归(linear regression)来进行拟合,同时我们知道房屋的价格不会是个负值,因此我们可以用下图中的蓝线来进行一个拟合。
这个蓝线很类似于目前神经网络中常用的激活函数ReLU(rectified linear unit)。对于这种只有一个输入和一个输出的问题,我们可以用一个最简单的神经网络来表示。
这种最简单的神经网络就好像乐高积木一样,更加复杂的网络都可以用这个最简单的“乐高”块拼接而成。
当然在日常生活中我们可能面临更加复杂的问题。决定一个房屋价格的因素除了房屋大小以外,可能还有卧室的数量,邮政编码(也就是房子的所在街道)以及周边社区的富裕情况。房屋大小和卧室数量可以决定这个房屋适合几口之家,而房屋所在街道可能决定了交通是否便利,房子所在的街道和周边社区的富裕程度还可能决定这个房子是不是学区房。之后再由的房屋适合几口之家,交通是否便利,是否是学区房来预测这个房屋的价格。当我们用神经网络解决此类问题时,我们只需给出输入X也就是房屋大小,卧室数,邮编和周边的富裕情况就可以通过一个训练好的神经网络得到一个预测的房屋价格。
从这个神经网络示意图我们可以看出,输入层每个特征都和隐层的每个神经元相连。当然,连接的权重可能会有所不同。
使用神经网络进行监督学习
监督学习中,我们一定会有成对的输入x和输出y。而监督学习目前有着很广泛的应用。在不同应用中,我们应当选择适合的输入和输出
在不同的应用领域,我们可能采取不同的深度学习模型。比如在不动产(real estate)和在线广告(online advertising)中,我们更倾向于使用标准的神经网络(standard NN)。而在标记图片或者进行图像识别时,我们经常使用卷积神经网络(CNN, convolutional neural network)。在进行语音识别、翻译等序列识别的时候,常用的模型为循环神经网络(RNN, recurrent neural network)。当面对自动驾驶等复杂问题时,我们可能会使用复杂混合网络(complex hybrid neural network architecture.)。
在监督学习中,我们可能面对两种数据:结构化数据和非结构化数据。对于结构化数据来说,对于每个特征都有明确界定的含义。而非结构化数据比如声音、图像和文本等,特征可能是单个音节或者像素,没有明确的意义。
什么促使深度学习腾飞
- 深度学习在很多领域的应用中取得了巨大的成功,比如在线广告推荐,语音识别和图像识别等。
- 目前计算机的计算能力相对于过去有了很大提高
- 我们现在有了很多数据(大数据)
从这个图中我们可以看出,更多的数据,规模更大的网络都可以提高神经网络的表现。同时算法的发展也是不容忽略的。比如从过去常用的sigmoid激活函数到目前常用的ReLU激活函数。同时新的算法一般都使得神经网络的训练速度更快。更快的训练速度可以让我们有机会训练更大的网络来应付越来越多的数据,同时也可以让我们尝试更多的想法,可以更快地测试不同的参数。同时硬件的发展也让我们可以更快的训练网络模型来验证想法。