感知机
感知机是一种最基本的神经网络模型 ,用于二分类任务的线性分类器,是神经网络和深度学习的基础。感知机通过调整权重来学习输入数据的特征,并进行分类。
感知机的基本构成
-
输入层:
- 包含多个输入节点,每个节点代表一个输入特征。输入向量通常表示为
x = [ x 1 , x 2 , … , x n ] 。 x=[x 1 ,x 2 ,…,x n ]。 x=[x1,x2,…,xn]。
- 包含多个输入节点,每个节点代表一个输入特征。输入向量通常表示为
-
权重:
- 每个输入特征对应一个权重,这些权重通过训练进行调整。
-
偏置:
- 一个额外的参数 𝑏,用来调整决策边界的位置。
-
激活函数:
-
感知机通常使用阶跃函数作为激活函数,即将线性组合的结果转换为输出。阶跃函数定义为:
f ( z ) = { 1 if z ≥ 0 0 if z < 0 f(z) = \begin{cases} 1 & \text{if } z \geq 0 \\ 0 & \text{if } z < 0 \end{cases} f(z)={10if z≥0if z<0 -
其中
z = w ⋅ x + b z=w⋅x+b z=w⋅x+b
-
工作原理
-
计算加权和:
- 对输入向量和权重向量进行线性组合,加上偏置:
z = w ⋅ x + b = i = 1 ∑ n w i x i + b z=w⋅x+b= i=1 ∑ n w i x i +b z=w⋅x+b=i=1∑nwixi+b
- 对输入向量和权重向量进行线性组合,加上偏置:
-
应用激活函数:
- 将计算结果 𝑧 通过激活函数 𝑓(𝑧),得到输出 𝑦^。
-
预测输出:
- 输出 𝑦^ 为1或0,表示两个类别之一。
感知机的训练
训练感知机的目标是找到一组权重和偏置,使得模型在给定的训练数据上表现良好。训练过程通常使用感知机学习算法(Perceptron Learning Algorithm),包括以下步骤:
-
初始化权重和偏置:
- 通常将权重和偏置初始化为零或小的随机数。
-
迭代训练:
-
对每个训练样本,计算预测输出。
-
根据预测输出和实际标签,计算误差:
e r r o r = y − y error=y− y ^ error=y−y -
根据误差更新权重和偏置:
w i = w i + η ⋅ e r r o r ⋅ x i w i =w i +η⋅error⋅x i wi=wi+η⋅error⋅xib = b + η ⋅ e r r o r b=b+η⋅error b=b+η⋅error
其中 𝜂 是学习率(learning rate),用于控制更新步长与权重变化幅度,当误差为正时,表示预测值低于实际值,需要增加权重 𝑤𝑖;当误差为负时,表示预测值高于实际值,需要减少权重 𝑤𝑖。
-
感知机的局限性
- 线性可分性:
- 感知机只能解决线性可分的分类问题,即所有数据点可以通过一条直线(或高维空间中的超平面)分开。
- 激活函数:
- 感知机使用阶跃函数作为激活函数,无法处理复杂的非线性关系。
感知机的改进–多层感知机
为了克服感知机的局限性,发展出了多层感知机(MLP)一种基本的前馈神经网络结构,通过引入隐藏层和非线性激活函数,使模型能够解决非线性可分的复杂问题。MLP是现代深度学习模型的基础。
结构
-
输入层:
- 接收输入特征向量。
- 每个输入特征对应一个节点。
-
隐藏层:
- 由一个或多个隐藏层组成。
- 每个隐藏层包含多个神经元(节点)。
- 每个神经元通过权重与上一层的节点连接,经过激活函数处理。
-
输出层:
- 输出层通常包含一个或多个神经元。
- 用于分类任务时,输出层通常采用softmax激活函数输出各类别的概率分布。
- 用于回归任务时,输出层通常只有一个节点,直接输出预测值。
工作原理
- 前向传播(Forward Propagation):
- 输入特征通过权重和偏置与隐藏层中的神经元相乘并加权求和,然后通过激活函数进行非线性变换,得到隐藏层的输出。
- 隐藏层的输出再与隐藏层到输出层的权重和偏置相乘并加权求和,然后再通过激活函数,得到最终的输出。
- 反向传播(Backward Propagation):
- 计算输出的误差(预测值与实际值之间的差异)。
- 根据误差,通过梯度下降法调整每个神经元的权重和偏置,以最小化误差。
- 误差沿着网络反向传播,更新每一层的权重和偏置。
激活函数
在多层感知机中,每个神经元通常都使用非线性激活函数,以增加模型的表达能力和适应复杂性。常用的激活函数包括:
-
Sigmoid:
f ( z ) = e z + e − z e z − e − z f(z) = \frac{e^z + e^{-z}}{e^z - e^{-z}} f(z)=ez−e−zez+e−z -
Tanh(双曲正切函数):
f ( z ) = 1 1 + e − z f(z) = \frac{1}{1 + e^{-z}} f(z)=1+e−z1应用
多层感知机广泛应用于各种机器学习任务,包括但不限于:
- 图像识别:如手写数字识别、图像分类。
- 语音识别:如语音指令识别。
- 自然语言处理:如情感分析、文本分类。
- 推荐系统:如商品推荐、音乐推荐。
总结
多层感知机是一种基础而强大的神经网络结构,通过多个隐藏层的非线性变换,能够有效地处理复杂的数据关系,适用于多种机器学习任务。通过不断优化权重和偏置,多层感知机能够逐渐学习到数据的特征,并提高模型的预测能力。