感知机(perceptron)
数据集的线性可分:
对数据集 若存在某个超平面 w·x+b=0,能够将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,即对所有y=+1的实例,w·x+b>0,对所有y=-1的实例,w·x+b<0,则认为数据集T线性可分。
感知器(perceptron)1957年由Rosenblatt提出,是神经网络与支持向量机的基础。感知器是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机的目的就是通过训练数据寻找分离超平面使得实例能被正确的划分为正负两类。
感知机中的损失函数:
要找到分类超平面即确定f(x)=w·x+b中的参数w,b,因此需要制定一个学习策略,即定义经验(损失)函数并将这个损失函数极小化。
感知机学习算法描述:
感知机算法步骤:
感知机算法的收敛性:
对于线性可分数据感知机学习算法原始形式收敛,即经过有限次迭代可以得到一个将训练数据集完全正确划分的分离超平面即感知机模型。详细证明可以参考(《统计学习方法》李航)
神经网络
感知机就是具有两层神经元组成的神经网络,输入层接受外界输入信号后传递给输出层,输出层是M-P神经元。但是这种模型只能解决线性分类问题,对于非线性分类问题则需要构建多层功能神经元。
M-P神经元模型:
以BP神经网络模型为例,多层功能神经元如下图所示。
- 输入层(input layer):输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;
- 隐藏层(Hidden Layer):中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程;
- 输出层(Output Layer):顾名思义,输出层向外界输出信息处理结果;
神经网络的学习过程,就是根据训练数据来调整神经元之间的“连接权”以及每个功能神经元的阈值。
BP神经网络算法(误差逆传播 error BackPropagation)
BP是一个迭代学习的算法,在迭代中的每一轮采用上述感知机的学习规则对参数进行更新估计
更新规则的推导:
BP算法的工作流程:
Tip: 此处为“标准BP算法”更新规则是仅针对一个训练样例来更新连接权和阈值,若要根据累积误差最小化的更新规则,就得到了累积误差逆传播算法。标准BP和累积BP的区别:由于更新规则不同,为了达到同样的累积误差极小点,标准BP需要迭代的次数更多
参考:
《统计学习方法》 李航
《机器学习》 周志华