本文旨在对吴恩达《神经网络与深度学习》课程第一课中所阐述的主要观点进行归纳和分析。若后续遇到无法理解的地方,可以通过查阅如下博客:http://blog.csdn.net/red_stone1/article/details/77799014 ,或者观看视频:http://study.163.com/my#/smarts。
I. 什么是神经网络
深度学习(Deep Learning)就是更复杂的神经网络(Neural Network)
在视频中以房屋价格预测为例,引出神经网络模型,即
该神经网络的输入x是房屋面积,输出y是房屋价格,中间包含了一个神经元(neuron),即房价预测函数(蓝色折线)。该神经元的功能就是实现函数f(x)的功能。这里的蓝色折现在神经网络模型中比较常见,也就是神经网络中的激活函数,称之为修正线性单元(Rectified Linear Unit,ReLu):
注:神经网络模型中,不仅仅有ReLu这种激活函数,还有较多其他的激活函数,不同的激活函数应用场景有所差异,具体可以参考文献26种激活函数描述:从ReLU到Sinc,26种神经网络激活函数可视化
每一个神经元都包含了一个ReLU函数(或者其它非线性函数)。每个神经元与所有的输入x都有关联(直线相连)。
II. 神经网络与监督学习
目前,应用最广泛的神经网络基本上均是基于监督学习(Supervised Learning)。监督式学习与非监督式学习本质区别就是是否已知训练样本的输出y。在实际应用中,机器学习解决的大部分问题都属于监督式学习,神经网络模型也大都属于监督式学习。
在实际应用中,我们需要根据问题和应用场景采用不同的神经网络模型。下面给出常用的模型以及应用,即
标准神经网络(Standard NN)
在一般的监督式学习中,我们采用标准神经网络模型就可以满足需求,比如(房价预测和线上广告问题)。
卷积神经网络(Convolution Neural Network)
卷积神经网络模型又称CNN,一般用于处理图像问题。
循环神经网络(Recurrent Neural Network)
循环神经网络模型,一般用于处理类似语音这样的序列信号问题。
III. 数据类型
在神经网络模型中,处理的数据类型有两类,即 结构化数据(Structured Data)和非结构化数据(Unstructured Data)。
参考文献:
http://blog.csdn.net/u010069220/article/details/46895169
结构化数据
能够用数据或统一的结构加以表示,我们称之为结构化数据,如数字、符号。传统的关系数据模型、行数据,存储于数据库,可用二维表结构表示。
非结构化数据
非结构化数据是数据结构不规则或不完整,没有预定义的数据模型,不方便用数据库二维逻辑表来表现的数据(非结构化数据库是指其字段长度可变,并且每个字段的记录又可以由可重复或不可重复的子字段构成的数据库),包括所有格式的办公文档、文本、图片、XML, HTML、各类报表、图像和音频/视频信息等等。在技术上非结构化信息比结构化信息更难标准化和理解。
IV. 为什么深度学习现在才爆发?
下面利用一张图来解释说明,为什么深度学习现在才发挥较大的作用,其中,横坐标x表示数据量(Amount of data),纵坐标y表示机器学习模型的性能表现(Performance):
传统学习模型:
当数据量比较小的时候,传统学习模型的表现是比较好的,比如SVM、逻辑回归算法、决策树等。当数据量很大的时候,其表现很一般,性能基本趋于水平。
神经网络模型:
随着数据量变大,神经网络模型的性能比传统的学习算法要好很多。近些年来,由于数字计算机的普及,人类进入了大数据时代,每时每分,互联网上的数据是海量的、庞大的。如何对大数据建立稳健准确的学习模型变得尤为重要。传统机器学习算法在数据量较大的时候,性能一般,很难再有提升。然而,深度学习模型由于网络复杂,对大数据的处理和分析非常有效。
注:大规模的神经网络(Large NN),即深度学习模型
综合上述可知,深度学习的强大依赖于三个因素,即
– 数据(data)
–计算能力(Computation)
GPU 、计算机运算性能提升