CV学习第四课——神经网络,反向传播和正则化
1.神经网络
神经网络参考文献如下:
1.神经网络的理解和实现
2.机器学习—有监督学习—神经网络算法(推导及代码实现)
1.1神经网络介绍
无论是线性回归还是逻辑回归都有一个缺点:当特征太多的时,计算负荷会非常大。例如在图片识别的模型中,由于每个像素都是255个特征,而一个50×50像素的小图片,都拥有巨大量的特征,普通的逻辑回归模型,不能有效处理这么多特征,这时我们需要神经网络算法。
如图所示,神经网络模型分为:输入层、中间层(隐藏层)、输出层。
神经网络模型是逻辑单元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量。
注意计算每层的输出都会在上一层的输入中添加一个一个常数1项,故每层的未知数变量个数要比上层的未知数多1.
我们使用来表示第层的参数(边权),其中下标表示第层的第个神经元,表示第层的第个神经元。于是我们可以计算出隐藏层的三个**值:
再将隐藏层的三个**值以及偏置项用来计算出输出层神经元的**值即为该神经网络的输出:
神经网络每下一层的输入是通过上一层输出的加权求和,加权求和后依旧是线性故需要加个非线性部分,此部分一般称为**函数,常用**函数有:等
1.2.神经网络目标函数
同样的,对于神经网络我们也需要知道其目标函数,才能够对目标函数进行优化从而学习到参数。
假设神经网络的输出层只有一个神经元,该网络有层,则其目标函数为(若不止一个神经元,每个输出神经元的目标函数类似,仅仅是参数矩阵的不同):
其中倒数第2层的**值,作为输出层的输入值。而其值为,为实际分类结果 0/1 ,为样本数,为第层的神经元个数。
2.反向传播
参考上面文献
3.正则化
参考文献如下文献:
1.机器学习中的正则化(Regularization)
2.正则化的理解
简单来说,正则化是一种为了减小测试误差的行为(有时候会增加训练误差)。我们在构造机器学习模型时,最终目的是让模型在面对新数据的时候,可以有很好的表现。当你用比较复杂的模型比如神经网络,去拟合数据时,很容易出现过拟合现象(训练集表现很好,测试集表现较差),这会导致模型的泛化能力下降,这时候,我们就需要使用正则化,降低模型的复杂度。
&范数
首先介绍一下范数的定义,假设是一个向量,它的范数定义: