引言
随着人工智能时代的降临,深度学习(DeepLearning)成为继大数据、机器学习之后又一极具网络搜索热度的关键词,作为一名码农,如果不懂深度学习技术,感觉时刻要被同胞鄙视的样子。最近小编也在学习DL,独乐乐不如众乐乐,那么小编就带大家一起探寻深度学习技术中的奥秘,共同进步。
什么是深度学习
机器学习众多算法中有一类叫做神经网络的算法,神经网络模型如下图所示:
图中每个圈圈代表一个神经元,每一条有向箭头代表着神经元之间的连接。我们能够看到,上图中的神经网络有三层,即输入层(Input layer)、隐藏层(Hidden layer)和输出层(Ouput layer)。每一层之间的神经元没有连接,各层的神经元之间全连接。输入层用于传入数据,隐藏层会对输入的值进行运算后输出,输出层负责神经网络的数据输出。
这是一个比较简单的神经网络模型,当隐藏层比较多(大于等于2)的时候我们就称之为深度神经网络,所谓的深度学习技术使用的就是深层神经网络模型。深层网络相比于浅层网络(仅有一个隐藏层)具备更好的表达能力,同样去拟合一个函数,浅层网络需要很多的神经元,而深层网络用较少的神经元就可以。也就是说,为了拟合一个函数,要么使用浅而宽的网络,要么使用深而窄的网络,但后者往往更节约资源。
神经元
神经网络模拟了人脑中的神经元结构,一个神经元模型包含输入、计算和输出功能,如下图所示。
一个神经元接收多个输入,如x1、x2、x3,每个输入上都有一个权值,如w1、w2、w3,因此,一个神经元的总输入就是每个输入值的加权和∑(X*W+b),其中X和W表示输入值、权重值向量,b表示神经元的偏置项。神经元的总输入经过一个激活函数非线性变换后,就得到该神经元的输出,即Z = f(∑(X*W+b))。