浅谈神经网络
1. 神经网络介绍
人工神经网络从信息处理角度对人脑神经元网络进行抽象, 建立某种简单模型,按不同的连接方式组成不同的网络。
神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。
每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重。
神经元如下图所示:
神经元的运算包含两部分,分别是线性运算和非线性运算,线性运算公式如下:
非线性运算有多重,下面列出最常见的几种:
1、Sigmoid函数
2、Relu函数
3、Tanh函数
2. Logistic回归
logistic回归是一种分类方法,用于两分类问题。其基本思想可以表述为:
a. 寻找合适的假设函数,即分类函数,用以预测输入数据的判断结果;
b. 构造代价函数,即损失函数,用以表示预测的输出结果与训练数据的实际类别之间的偏差;
c. 最小化代价函数,从而获取最优的模型参数。
1、线性分类问题
寻找线性边界,将训练数据按类别进行分割,如下图所示
2、logistic模型
采用Sigmoid激活函数,计算公式如下,
f(x)函数的值表示结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:
损失函数
这样构建的函数的特点是:当实际的y=1且
也为1时误差为0,当y=1但
不为1时误差随着
的变小而变大;当实际的y=0且
也为0时代价为0,当y=0且
不为0 时误差随着
的变大而变大。
实际上,函数和函数
是基于最大似然估计推导得到的。
前面的概率公式可简化为:
对应的似然函数为:
对数似然函数为:
最大似然估计就是要求得使取最大值时的
,其实这里可以使用梯度上升法求解,求得的
就是要求的最佳参数。
3、梯度下降
使用梯度下降法求的最小值,
的更新过程,其中
是学习步长(学习率):
其中
3.多层神经网络
如下图所示,是一个多层神经网络(4层),
下图是一个两层神经网络,神经网络单元的计算分为线性和非线性两部分:
下图是神经网络的梯度下降过程:
上面的神经网络在输出层采用Sigmoid函数,只有一个输出结果,主要用于二类分类问题,当需要用于多类分类问题时,例如识别手写数字,输出需要包含0-9,共十个输出结果,可以采用SoftMax函数进行扩展。
SoftMax函数:
i=1,…,k
其中,k为目标函数的类别个数,表示输出层的第i个节点。