1. 什么是神经网络
我们从一个房价预测的例子开始讲起。
假设你有一个数据集,它包含了六栋房子的信息。所以,你知道房屋的面积是多少平方英尺或者平方米,并且知道房屋价格。这时,你想要拟合一个根据房屋面积预测房价的函数。如下图所示。
我们知道价格永远不会是负数的。所以我们应用一个新的函数来拟合这组数据。该函数从趋近于零开始,然后变成一条直线。这个函数被称作ReLU激活函数,它的全称是Rectified Linear Unit。
而下面的这一部分,我们就可以将其是做神经网络的一个基本单元。
接着将问题进一步引申——站在购买者的立场之上,基于房屋面积和卧室数量,可以估算家庭人口;基于邮编,可以估测步行化程度;基于邮编和所在地的富裕程度,可以估计学校的教学质量质量等等。
在图上每一个画的小圆圈都可以是ReLU的一部分,也就是指修正线性单元,或者其它稍微非线性的函数。
但是,神经网络的一部分神奇之处在于,当你实现它之后,你要做的只是输入,就能得到输出。因为它可以自己计算你训练集中样本的数目以及所有的中间过程。
这就是一个基础的神经网络。你可能发现你自己的神经网络在监督学习的环境下是如此的有效和强大,也就是说你只要尝试输入一个x,即可把它映射成y,好像我们在刚才房价预测的例子中看到的效果,神经网络非常擅长计算从到的精准映射函数。
2. 神经网络的监督学习
关于神经网络也有很多的种类,考虑到它们的使用效果,有些使用起来恰到好处,但事实表明,到目前几乎所有由神经网络创造的经济价值,本质上都离不开监督学习。
分类(classification)这种机器学习算法就是一种监督学习。对于分类,输入的训练数据有特征(feature),有标签(label)。也就是我们前面文章中的输入x和输出y。每一个x样本都对应着一个y(输出)标签。所谓的学习,其本质就是找到特征和标签间的关系(mapping),也就是找规律。这样当有特征而无标签的未知数据输入时,我们就可以通过已有的关系得到未知数据标签,即根据新数据进行预测。
例如广告预测,这可能是最有利可图的人工智能应用了,它也许不是最鼓舞人心的,但肯定是非常有利可图的,通过输入一些关于用户的信息x,神经网络就能预测你是否会点击某个广告(给出输出y来指示某个广告),所以当你看到你朋友,或男朋友,或女朋友手机电脑上面都是些购物广告时,你基本上可以断定TA是喜欢购物的,并且你能观察出TA近期的“购物取向”。
另外再补充些知识点。神经网络除了按监督学习和非监督学习来分类外,还按结构来分类。不同结构的神经网络被用于不同的应用程序中。
例如,在之前看到的房价预测应用中,我们使用的是标准的神经网络结构(SNN,Standard Neural Network),广告预测也是一个相对标准的神经网络。对于图像应用程序,我们经常使用卷积神经网络(CNN,Convolutional Neural Network)。对于序列数据应用程序一般使用递归神经网络(RNN,Recurrent Neural Network)(例如音频就属于序列数据,是随着时间一段一段表述的,例如英语、汉语都是随着时间一个字一个单词来表述的)。对于更复杂的应用,比如自动驾驶,里面有图像所以需要CNN卷积神经网络,而雷达信息则需要其它类型的神经网络,这就导致了混合的神经网络架构。
下图中分别给出了各种不同神经网络的结构图。依次是,标准神经网络SNN, 卷积神经网络CNN,递归神经网络RNN。
除此之外,在机器学习中将数据分为结构化数据和非结构化数据。结构化数据,意味着每个特征,如房子的大小,卧室的数量或用户的年龄,是具有非常明确的含义的,结构化数据主要表示数据库数据。相比之下,非结构化数据指的是音频,图像。这里的特征可能是图像中的像素值或文本中的单个单词,没有明确的含义。
3. 为什么深度学习会兴起
根据图像可以发现,如果你把一个传统机器学习算法的性能画出来,作为数据量的一个函数,你可能得到一个弯曲的线,就像图中这样,它的性能一开始在增加更多数据时会上升,但是一段变化后它的性能就会像一个平原一样。
因为它们不知道如何处理规模巨大的数据,并且在过去十年的社会里,我们遇到的很多问题只有相对较少的数据量。
由于数字化社会的来临,现在的数据量都非常巨大,我们也相较容易获取更多的数据,远超过机器学习算法能够高效发挥它们优势的规模。
神经网络展现出的是,如果你训练一个小型的神经网络,那么这个性能可能会像下图黄色曲线表示那样;如果你训练一个稍微大一点的神经网络,比如说一个中等规模的神经网络(下图蓝色曲线),它在某些数据上面的性能也会更好一些;如果你训练一个非常大的神经网络,它就会变成下图绿色曲线那样,并且保持变得越来越好。
因此可以注意到两点:如果你想要获得较高的性能体现,那么你有两个条件要完成,第一个是你需要训练一个规模足够大的神经网络,以发挥数据规模量巨大的优点,另外你需要很多的数据。
在大数据的规模下,算法驱动深度学习的进程。