音乐播放器
My Brain
 
文章 标签
8

Powered by Gridea | Theme: Fog
载入天数...
载入时分秒...

深度学习实战(一):深度学习导论

深度学习导论

在我们了解了机器学习的基本知识之后,就进入到了深度学习的模块,因为一些算法竞赛中的算法实战涉及到深度学习的部分,所以我会先介绍完深度学习的基本知识,再进入实际的问题求解。
本系列深度学习的知识是我对吴恩达老师课程的总结,希望对你有所帮助。课程链接

1.1 什么是神经网络

深度学习指的是训练神经网络,我们以房价预测为例,假设我们知道关于房子的某些特征,我们希望根据这些特征得到房子的价格,简单的线性回归可以通过拟合得到一个趋势,如下图所示。

而在神经网络中,我们可以将这个线性拟合的过程看作一个神经元(neuron),而这个神经元就是负责上述拟合过程的,这个用于拟合的函数称为ReLU,即修正线性单元(rectified linear unit),修正即取不小于0的值。由此我们得到了一个简单的单神经元网络,而复杂的神经网络就是通过堆叠神经元实现的。

我们不妨想象一个更为复杂的神经元:我们可以通过房屋面积(size)、卧室数量(bedrooms)估算家庭人口(family size),通过邮编(zip code)估算步行化程度(walkability),通过邮编(zip code)和富裕程度(wealth)估算学校质量(school quality),最后我们通过家庭人口容纳数、步行化程度、学校质量进行房价预测,构建的神经网络如下,用到了4个神经元,它们每个神经元都可能是一个ReLU,在这个例子中: X={size,bedrooms,zip_code,wealth} ~X=\{size,bedrooms,zip\_code,wealth\}~ Y={price} ~Y=\{price\}~

在我们构建好神经网络之后,输入X就可以得到预测结果y,X所在的层为输入层,中间的3个神经元称为隐藏单元,我们将每个特征输入到这些神经元中,由神经网络决定他该如何处理这些特征,而不需要我们去指定固定的处理规则,神经网络往往能得出较为精确的映射函数

1.2 神经网络与监督学习

几乎所有神经网络都是基于监督学习的,我们已经了解了基本的神经网络(neural network),同时还有处理图像数据的卷积神经网络,处理一维序列数据的循环神经网络。

在监督学习中我们用到的数据集包括结构化数据和非结构化数据:
① 结构化数据来自数据库,每个特征都有着清晰的定义,例如房价预测中的房间大小、卧室数量等等
② 非结构化数据即音频、图片、文本等计算机不太擅长处理的数据,但是人类却更善于理解这类数据

深度学习用到的很多理论都是很早就提出来得,可是为什么近些年深度学习才火起来呢?
我们可以看下面这张图,横坐标代表数据量,纵坐标代表算法表现,随着现在人类行为的电子化和信息化,数据的规模逐渐增大,可是诸如支持向量、逻辑回归等算法的表现在随着数据量增大到一定程度后提升不再明显,如红线所示;但是如果我们构建一个小型的神经网络,它的表现将比这些经典算法更好,如黄线所示;而中型(蓝线所示)或者大型(绿线所示)显然会有更好的表现。

需要注意的是在数据集很小时,算法的能力是有提取特征的能力和算法的细节所决定的,所以SVM表现比NN好是完全有可能的,但是当数据集很大时,神经网络将会有更好的性能。