主讲人 网神
(新浪微博:@豆角茄子麻酱凉面)
网神(66707180) 18:55:06
那我们开始了啊,前面第3,4章讲了回归和分类问题,他们应用的主要限制是维度灾难问题。今天的第5章神经网络的内容:
1. 神经网络的定义
2. 训练方法:error函数,梯度下降,后向传导
3. 正则化:几种主要方法,重点讲卷积网络
书上提到的这些内容今天先不讲了,以后有时间再讲:BP在Jacobian和Hessian矩阵中求导的应用;
混合密度网络;贝叶斯解释神经网络。
首先是神经网络的定义,先看一个最简单的神经网络,只有一个神经元:
这个神经元是一个以x1,x2,x3和截距1为输入的运算单元,其输出是:
其中函数f成为"激活函数" , activation function.激活函数根据实际应用确定,经常选择sigmoid函数.如果是sigmoid函数,这个神经元的输入-输出的映射就是一个logistic回归问题。
神经网络就是将许多个神经元连接在一起组成的网络,如图:
神经网络的图跟后面第八章图模型不同, 图模型中,每个节点都是一个随机变量,符合某个分布。神经网络中的节点是确定的值,由与其相连的节点唯一确定。
上图这个神经网络包含三层,左边是输入层,x1...xd节点是输入节点, x0是截距项。最右边是输出层,y1,...,yk是输出节点. 中间是隐藏层hidden level, z1,...,zM是隐藏节点,因为不能从训练样本中观察到他们的值,所以叫隐藏层。
可以把神经网络描述为一系列的函数转换。首先,构造M个输入节点的线性组合:
上式中,j=1,...,M,对应M个隐藏节点. 上标(1)表示这是第一层的参数。wji是权重weight,wj0是偏置. aj 叫做activation. 中文叫激活吧,感觉有点别扭。
把activation aj输入到一个非线性激活函数h(.)就得到了隐藏节点的值zj。
在这个从输入层到隐藏层的转换中,这个激活函数不能是线性的,接下来,将隐藏节点的值线性组合得到输出节点的activation:
每个ak输入一个输出层激活函数,就得到了输出值。
这个从隐藏层到输出层的激活函数σ,根据不同应用,有不同的选择,例如回归问题的激活函数是identity函数,既y = a.分类问题的激活函数选择sigmoid函数,multiclass分类选择是softmax函数.
把上面各阶段的计算连起来,神经网络整个的计算过程就是:
上面计算过程是以2层神经网络为例。实际使用的NN可能有多层,记得听一个报告现在很火的deep learning的隐藏层有5-9层.这个计算过程forward propagation,从前向后计算。与此相反,训练时,会用back propagation从后向前来计算偏导数。
神经网络有很强的拟合能力,可以拟合很多种的曲线,这个图是书上的一个例子,对四种曲线的拟合:
第一部分神经网络的定义就这么多,大家有没有什么问题啊?
============================讨论=================================
阳阳(236995728) 19:20:43
输入层到隐藏层使用的激活函数与隐藏层到输出层的激活函数是否要一致?
网神(66707180) 19:21:11
两层激活函数不一定一致,输入层到隐藏层 经常是sigmoid函数。 而隐藏层到输出层,根据应用不同,选择不同.
牧云(1106207961) 19:22:30
一般的算法,比如神经网络,都有分类和拟合的功能,分类和拟合有共同点吗?为什么能拟合,这个问题我没有找到地方清晰的解释。
独孤圣者(303957511) 19:23:47
拟合和分类,在我看来实际上是一样的,分类无非是只有2个或多个值的拟合而已。2个值的拟合,被称为二值分类
ant/wxony(824976094) 19:24:30
不是吧,svm做二值分类,就不是以拟合为目标。二值拟合可以用做分类。
独孤圣者(303957511) 19:29:42