神经网络
神经网络是一种受人脑中神经元行为启发而创建的计算机算法,就像大脑拥有数十亿个相互连接的神经元一样,神经网络的基本处理单元也被称为神经元,它们彼此之间通过权重相互连接,权重决定了信号在神经元网络间流动的强度。
感知机Perception
感知机是一种简单的二元线性分类器,它的主要思想是寻找一个超平面将样本的特征空间分为两部分,位于这两部分的样本分别被划分为正、负样本,从而将样本分为不同的两类。
超平面是一个维度比空间本身少一维的子空间。在二维空间中,超平面是一条线,因此如果二维样本的特征空间就可被超平面分为两个平面。
感知机简单易懂,易于训练,可以有效地处理线性可分数据。
多层感知机 Multiple Layer Perception
感知机可以执行线性可分(与或非)任务,但无法执行线性不可分(异或)任务。但考虑到异或问题可以拆分成与或非的组合问题,因此可以使用多个感知机逐次进行分类。由此诞生了多层感知机。
多层感知机是一种前馈神经网络,在输入层和输出层之间添加了一层或多层隐藏层,每一层隐藏层都是用激活函数计算输出。
MLP的优点在于可以近似任何连续函数,因此可用于处理复杂非线性问题;但需要大量训练数据和计算资源,容易陷入过拟合。
反向传播Back Propogation
不论是人脑还是神经网络,神经元实际行为与预期输出结果间往往都存在偏差,人脑直观地视之为误差,在神经网络中则利用损失函数(代价函数)计算误差大小。人类大脑在察觉到误差后便会有目标地调整神经元行为,在神经网络中,这一类似过程被称为反向传播学习算法。BP算法包括信号的前向传播和误差的反向传播两部分,找到一组使得损失函数最小的网络的权重。
BP算法的步骤包括:
1)前向传播:输入数据通过神经网络产生输出
2)计算误差:利用损失函数计算误差
3)反向传播:将误差沿着神经网络反向传播到输入层,计算每个权重对误差的贡献
4)权重更新:根据贡献度调整权重
BP算法的优点在于其收敛速度较快,适用于前馈神经网络架构。缺点是容易过拟合,训练好的网络迁移到新数据集上容易出现不佳表现。
性能优化
K折交叉验证
K 折交叉验证通过将数据集拆分并多次训练来评估神经网络模型性能。
K 折交叉验证包括以下步骤:
1)将数据集随机分为K个不重叠的子集
2)对于每个子集,使用其余K-1个子集作为训练集,本身作为测试集,训练神经网络并评估网络性能
3)将K次训练结果取平均值作为最终性能估计
K 折交叉验证的优点是它提供了模型性能的更可靠估计,防止出现过拟合,允许在没有足够数据进行单独训练和测试集的情况下评估模型;缺点是需要进行大量计算,对于较小数据集会导致性能估计的方差较大。