第2章 深度学习是什么
Table of Contents
2.1 神经网络是什么
深度学习(deep learning)与神经网络,或称人工神经网络(artificial neural network, ANN)紧密相关。
神经网络是由生物神经细胞结构启发而研究出的一种算法体系。
2.1.1 神经元
最简单的 神经元,有一个输入,一个输出,表达的含义与普通函数相同
而目前使用的神经元通常有两部分组成,“线性模型”和“激励函数”
(1)线性模型
假设神经元的函数表达为:f(x)=x+1,就是最简单的线性模型,其中x为一个一维向量,x也可以是5维向量,如图
假设x是一个n维向量,建立一个有n个输入项的神经元f(x),展开f(x1,x2,...,xn),并且有输出函数值output,即output=f(x)
这就是神经元最核心部分对x做的线性处理,其中x是一个1*n的矩阵,w是n*1的权重矩阵,b是偏置项。
那么,如何获得权重?
一般是根据实际情况,通过“逆向”的方法得到,首先假设一些未知的权值w(n*1的矩阵),同时拥有大量的样本数据。
通过Loss函数来描述拟合和真实观测的差异之和,称之为残差
想要得到合适的w和b,需要函数Loss(w,b)尽可能小
2.1.2 激励函数
激励函数(activation function)也称激活函数,是神经元中重要组成部分。
激励函数在一个神经元中跟随在f(x)=wx+b函数之后,用于加入非线性的因素
1. Sigmoid 函数
或者
当一个神经元被定义时,通常带有“线性模型”和“激励模型”两个部分收尾相接而成,前半部分接收外界进来的x向量作为刺激,经过wx+b的线性模型后又经过一个激励函数,最后输出。
Sigmoid激励函数,把最终值投射到0和1两个值上。通过这种方式引入非线性因素。其中“1”表示完全激活的状态,“0”表示完全不激活的状态,其他各种输出介于两者之间,表示其激活程度不同。
2. Tanh 函数
在使用循环神经网络RNN(recurrent neural networks)会接触到
Tanh函数也称双曲正切函数,表达式如下
Tanh函数把输入值投射到-1和1上。“-1”表示完全不激活,“1”表示完全激活,中间其他值是不同的激活程度的描述
3. ReLU 函数
ReLU(rectified linear units)函数大部分用于卷积神经网络CNN(convolutional neural networks),表达式y=max(x,0)
该函数在原地左侧部分斜率为0,在右侧则是一条斜率为1的直线,x<0时,输出为0;x>0时,输出为输入值
4. Linear 函数
Linear激励函数实际应用并不多,因为如果网络线性层引入是线性关系,而激励层又是线性关系,那么网络不能很好地拟合非线性特性的关系,从而出现严重欠拟合现象
2.1.3 神经网络
在一个神经网络中通常分为:输入层(input layer)、隐藏层(hidden layer,也称隐含层)、输出层(output layer)
(1)输入层在整个网络的最前端部分,直接接受输入的向量,它不对数据做任何处理的
(2)隐藏层可以有一层或多层
(3)输出层是最后一层,用来输出整个网络处理的值,该值可能是一个分类向量值,也可以是一个类似线性回归产生连续的值,也可能是复杂类型的值或者向量
参考
高扬,卫峥.白话深度学习与TensorFlow[M].机械工业出版社:北京