吴恩达(深度学习入门)
吴恩达老师的这门课一共有五个课程,第一门课程是神经网络和深度学习(大概分四周进行学习),学完之后的目标是能够建立和运用深度神经网络模型。第一周是进行了深度学习的入门介绍。第二周是神经网络的编程基础,这里介绍神经网络的正向传播、反向传播、算法的过程,以及如何高效实现神经网络,这一周将会有一些编程练习,需要自己去调试。第三周会学习构建一个单隐藏层的神经网络。第四周会学习构建一个多隐藏层的神经网络。深度
1、课程介绍
吴恩达老师的这门课一共有五个课程,第一门课程是神经网络和深度学习(大概分四周进行学习),学完之后的目标是能够建立和运用深度神经网络模型。第一周是进行了深度学习的入门介绍。第二周是神经网络的编程基础,这里介绍神经网络的正向传播、反向传播、算法的过程,以及如何高效实现神经网络,这一周将会有一些编程练习,需要自己去调试。第三周会学习构建一个单隐藏层的神经网络。第四周会学习构建一个多隐藏层的神经网络。
2、什么是神经网络
深度学习是用来训练神经网络的,那么神经网络到底是什么?
这里简单用一个房价函数来描述神经网络。我们已知房子的面积,想要根据房屋的面积预测出房屋的价格,这时候可以用一条直线来描述两者之间的关系,但是由于价格不可能为负,所以最开始是0,然后是一条直线。
上图就是对这个房屋预测函数构建的简单神经网络模型。房屋的面积作为输入,经过单独的神经元处理之后,输出房屋预测价格,这个神经元的的工作就是根据房屋面积的输入进行线性计算,找到不为负的值作为房屋价格的输出。
ReLU是一个常见的函数,其全名是修正线性单元,也就是第一张图蓝色线的一部分,最开始是,然后是一条直线。其中修正表示不为0的意思。
刚刚的那个神经网络模型很小,这里列举一个大点的神经网络。首先构成房屋最后价格的因素应该有很多,如上图房屋面积和房间数决定了一间房能住多少人,邮政编码决定了步行深度,邮政编码以及富裕程度还决定了学校质量,这些因素综合决定了最终的房屋价格。这里有4个输入x,一个输出y,神经元由1个变为了3个,构成了一个稍大的神经网络模型,值得注意的是神经网络模型一旦搭建好,我们只管输入,不管数据集有多大都由神经网络自己处理,最终得到输出。
这张图是刚刚稍大一点的神经网络模型标准神经网络示意图,这里有4个特征作为输入,一个输出,中间的圆圈在神经网络中被叫做隐藏单元,每个隐藏单元的输入都是4个特征,并且在神经网络中我们不会去特定的去说中间圆圈的第一个隐藏单元代表的是家庭人口数,由第一个特征房屋面积和第二个特征房屋数量来决定,而是说我只有4个特征输入,随便你神经网络怎么计算,且注意输入层到第一个隐藏层的连接数是很多的,因为每个输入特征都与第一个隐藏层的所有圆圈相连。值得注意的就是神经网络只要你给它提供了足够多的x和y的样本数据,那么它将非常擅于计算从x到y的精准映射函数。
3、用神经网络进行监督学习
神经网络创造的许多价值都是基于一种机器学习的,我们称为监督学习,也就是通过特征输入,习得一个函数映射到输出y。监督学习运用广泛,除了刚刚说的房屋预测还有在线广告,这两者都是使用的标准的神经网络模型。然后是计算机视觉的使用,通过输入一张图片,然后输出一个指数,1-1000来表示1000张图片当中的一张,还可以用来打标签,一般与图像挂钩的神经网络都是采用的CNN模型。还有序列特征输入,如音频和英语、汉语、单词这种,一般采用的神经网络模型是RNN。还有更复杂的使用,如自动驾驶,将图片和一些雷达数据作为输入,图片需要CNN模型来处理,那么雷达数据则需要混合的神经网络模型来处理。
文献中出现过大量的这样的图片。第一张是标准的神经网络,用于房屋预测和在线广告等。第二张图是卷积神经网络(CNN),用于图像。最后一张是循环神经网络,用于序列数据(时间)。
监督学习常常用于结构化数据与非结构数据。结构化数据也就是利用数据库等技术进行存储的数据,明确表明了每个数据的含义。而非结构化数据也就是音频、图像,文本等。计算机更容易理解结构化数据,神经网络的出现让计算机也能够理解非结构化数据,这也是神经网络流行的原因。
4、为社么深度学习会兴起
最开始只有传统的机器学习的方法,在数据量比较小的时候性能还表现的不错,但是随着数据量的剧增,机器学习的性能逐渐趋于平稳。以前想要获得大量的数据还比较难,现在随着数字社会的发展,获得大量的数据轻而易举,因此传统的机器学习方法处理海量的数据就比较困难,这时深度学习就诞生了,深度学习会随着数据规模的增加性能越来越好,但是你想要达到更高性能的深度学习,就必须满足两个条件,一是你训练的一个足够大的神经网络模型,二是你需要足够多的标签训练数据(m)。我们说规模推进着深度学习的发展,但是在规模较小的时候,各种算法的性能排名没有明确标出,而是取决于设计的组件。
最开始深度学习的兴起是因为数据和计算能力规模的发展。但是不得不否认算法创新对于深度学习的贡献,算法的创新会导致更快的计算能力,比如神经网络的一个突破,最开始机器学习使用的sigmoid函数,在靠右区域sigmoid函数斜率为0,梯度为0,学习起来会非常慢,只要梯度下降算法的梯度接近于0,那么参数会变化的很慢,将sigmoid函数改为ReLU(修正线性单元)函数,对于所有的正值输入输出都为1,输入为负值的时候梯度为0,这样就极大的增加了梯度下降算法的计算速度。增加深度学习计算能力对于另一方面也很重要,人们常常是有了一个想法之后去构建神经网络模型,去写代码,然后跑代码,看模型的性能,最后进行细节的修改,如果计算能力很强,代码很快就跑完了,那么就可以在短时间内验证多个想法,快速找到适合自己应用的神经网络模型。
更多推荐
所有评论(0)