什么是神经网络
假如我们要建立房价的预测模型,我们已知模型输入面积 x 及输出价格 y ,来预测房价:y = f(x),我们用一条直线来拟合图中这些离散点(建立房价与面积的线性模型)。
这个简单的模型(蓝色折线)就是一个最简单的神经网络。
该神经网络的输入 x 是房屋面积,输出 y 是房价,中间包含了一个神经元(neuron),即房价预测函数(蓝色折线),该神经元的功能就是实现函数f(x)的功能。
除了考虑房屋面积(size)之外,我们还考虑卧室数目(bedrooms),房屋的邮政编码(zip code/postal code),还有地区财富水平(wealth)。因此,这个神经网络有四个输入,分别是size,bedrooms,zip code和wealth。
其中 x1 所在的位置称之为输入层,三个神经元所在的位置称之为中间层或者隐藏层,y 所在的位置称之为输出层。这就是基本的神经网络模型结构。
神经网络非常擅长计算从 x到y的精准映射。
监督学习
监督学习与非监督学习本质区别就是是否已知训练样本的输出 y,也就是样本是否含标签信息。
下面是几个监督式学习在神经网络中应用的例子:
1)房价预测:输入 x 是房屋的各种参数,输出是房价;
2)在线广告:输入 x 是广告和用户个人信息,输出是用户是否对广告进行点击;
3)计算机视觉:输入 x 是图片像素值,输出是图片所属的不同类别等;
4)语音识别:输入 x 是一段语音信号,输出是文字信息;
5)机器翻译:输入 x 是一种语言,输出是表达相同意思的另一种语言;
6)自动驾驶:输入 x 一张图片或者汽车雷达信息等,输出是相应的路况信息并作出相应的决策等。
不同的情况,一般使用不同的网络模型:
1)对于一般的监督学习(房价预测和在线广告),我们使用标准的神经网络模型;
2)对于计算机视觉处理问题,我们使用CNN(Convolution Neural Network);
3)对于语音这样的时序信号处理,我们使用RNN(Recurrent Neural Network)。
数据类型
数据类型一般分为两种:结构化数据 和 非结构化数据。结构化数据意味着数据的基本数据库。
结构化数据:例如房价预测中的size,bedrooms,price等;在线广告中的User Age,Ad ID等。这写都是结构化数据,意思是每个特征,比如说房屋大小卧室数量,或者是一个用户的年龄,都有一个很好的定义。
非结构化数据:例如声音、图像或者文本等。
尤其是在非结构化数据上,深度学习方法更能展示相对于其他方法的优越性,更能创造出巨大的实用价值。
深度学习飞速发展的要素
如下图所示,横坐标 x 表示数据量(Amount of data),纵坐标 y 表示机器学习模型的性能表现(Performance)。
图中共有 4 条曲线。
1、红色曲线代表了传统机器学习算法的表现,它在数据量很大的时候表现很一般;
2、黄色曲线代表了规模较小的神经网络模型(Small NN),它在数据量较大时候的性能优于传统的机器学习算法;
3、蓝色曲线代表了规模中等的神经网络模型(Media NN),它在数据量更大的时候的表现比Small NN更好;
4、绿色曲线代表更大规模的神经网络(Large NN),它在数据量更大的时候的表现比Media NN更好,并且保持了快速上升的趋势。
可以看出,更复杂的深度学习模型,对海量数据的处理和分析更有效。其原因是:可供使用来训练的样本数据量呈几何级数增加、训练服务器使用计算力极强的GPU架构以及近年来学术界更多的算法上的创新和改进。