深度学习概论(Andrew NG 深度学习课程笔记(一))

这个系列主要记述了笔者学习 Andrew NG 在coursera上的Deep Learning系列课程的笔记与代码实现。每篇笔记的内容大致包括一周的课程内容,网易上有课程视频,但没有作业,想要完成对应编程练习和证书还是需要到coursera上学习。后续会保持持续更新。(题图截取自deeplearning.ai网站)

Deep Learning课程的第一部份是深度学习和神经网络,主要内容包括了解主流的深度学习技术趋势,让我们能够构建、训练深度神经网络,如何实现高效的、向量化的神经网络,了解神经网络架构中的核心参数。

本周内容是深度学习概论,深度学习指的就是训练神经网络。

什么是神经网络

以经典的房屋价格预测为例,假设我们拥有六组房屋数据,每组包含了房屋的面积以及价格,我们希望用一个合适的函数来根据房屋的面积来预测房屋价格。如果采用线性回归来解决这个问题,我们可以找到一条 y = ax + b 这样的直线来拟合这六组已有的房屋数据。

但我们知道,房屋的价格是不会为负数的,所以我们可以增加一个小小的改进,用一个ReLU(Rectified Linear Unit)的函数来表示房屋面积和价格之间的关系,具体如下图所示:


把上面的问题再抽象一下,就可以描述成我们需要找到一个函数,输入一个x,即为房屋的面积,通过一定的运算,则可以输出一个y,即房屋的面积,如下图所示:

中间这个函数即为接受输入并且进行合适的运算之后输出目标值的函数,我们也可以称之为一个神经元,它实现了接受输入x, 经过运算后输出目标值y的过程。我们这个例子就可以看成是一个最简单的神经网络,而复杂的神经网络即是由无数的神经元分层连接堆叠而成,下面我们可以把房屋预测的问题再复杂化一些。

现实中房屋的价格是会受到面积、卧室数目、所属区域(Zip Code)以及社区的富裕程度综合影响的。如果把这些因素都考虑进去,那么我们的神经网络可以升级成下图这样:

上图中中间的3个圆圈在神经网络中被称为隐层(Hidden Units),它会将输入层的全部特征作为输入值,我们理想的神经网络即是能够自动帮我们构建隐层(Hidden Units),即输入单元之间的关系以进行最好地预测。

用神经网络进行监督学习

首先说一下什么是有监督的学习。在机器学习领域,区分有监督的学习和无监督的学习,只需要看是否有训练样本就可以了。有监督的学习是通过已有的一部分输入数据与输出数据之间的对应关系,生成一个函数,将输入映射到合适的输出,比如SVM。无监督学习是直接对输入数据集进行建模,比如聚类。

本章节介绍了通过神经网络在监督学习中表现出色的一些实际应用,如在线广告点击预测,图像打标签, 音频文件转文本,机器翻译以及自动驾驶等。这些应用可以将神经网络分成Standard NN(房价预测,在线广告点击预测), Convolutional NN(图像打标签), Recurrent NN(序列数据,譬如随时间播放的音频流,一个一个的文本)。自动驾驶的情况比较复杂,需要同时处理图像、雷达等数据,所以用到的是更为复杂的混合神经网络架构。

另外,从训练数据本身出发,我们可以将数据分为结构化的数据和非结构化的数据。例如房价预测中的输入数据这类每个特片都有清晰定义的数据,我们称之为结构化的数据;语音、图像这类问题中,通常会使用的像素值,并没有明确可解释的实际意义的数据,我们称之为非结构化的数据。深度学习技术可以提升我们处理非结构化数据的能力。(此处有一点不是很确定的理解,深度学习之所以提升了处理非结构化数据的能力,很大可能是神经网络是自动构建出了前文中提到的隐层,而且每个神经元的含义也是不需要去了解的)

为什么神经网络会兴起

深度学习背后的理论基础与技术概念已经出现了有数十年,为什么会在最近几年发生爆炸性的增长,主要是因为两个原因,一是现代的设备和互联网让我们产生了大量的数据,另一个原因是计算能力的大幅提升。

之所以说大量的数据是推动神经网络兴起的原因,是因为当数据量没有达到一定规模的时候,传统的机器学习算法也同样可以完成我们的任务。对于经典的机器学习算法,在数据量还比较小的初始阶段,其性能会随意数据量的增加而稳步的得升,但很快就会遇到瓶颈。而伴随着移动互联网时代的到来,我们能够从网站、移动应用或者其他安装在电子终端设备上的传感器中获取到海量的数据,这时经典的机器学习算法就不够用了。 从下图中可以看出,越是大型的神经网络随着数据量的增加,其性能提升是越快的,并且其性能的上限也越高。

深度学习兴起的另一个重要原因就是计算能力的提升。计算能力的提升不仅新兴的 CPU 或者 GPU 这样的硬件的提升,还包括计算算法上的革新,使得我们能够更快地训练出神经网络。例如之前我们会使用 Sigmod 函数作为神经网络的激活函数,随着 x 的增大其梯度会逐渐趋近于零,这就导致了模型收敛变得相对缓慢;而 ReLU 则能较好地避免这个问题,其在正无穷大时梯度值依然保持恒定。简单地从 Sigmod 函数迁移到 ReLU 即能够为模型训练带来极大的效率提升,这也方便了我们构建出更复杂的神经网络。

以上就是第一周课程深度学习概论的主要内容,笔记中的图片都截取至andrew 的视频课程中。


转载于:https://juejin.im/post/59e9735ef265da4321532b00

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值