神经网络—— 学习与感知器

神经网络------ 学习与感知器

01 人工神经网络

人工神经网络的核心能力

  1. 函数计算能力:通过合理选择网络拓扑结构与权重值,人工神经网络(ANN)可计算任意可计算函数。
  2. 经验学习能力 :通过"试错法"(trial-and-error)从经验中学习,具体流程为:
    • 尝试(Trial):处理输入以生成输出(从神经网络角度:计算给定输入对应的输出函数)。
    • 评估(Evaluate):将实际输出与期望输出对比,评估输出效果。
    • 调整(Adjust):根据评估结果调整网络权重。

感知器(M-P模型)

基本公式

感知器的输出由硬极限函数(hardlim)决定,公式如下:
y=hardlim(u)=hardlim(WX+b)=hardlim(w1,1x1+w1,2x2+θ)y=\text{hardlim}(u)=\text{hardlim}(WX+b)=\text{hardlim}\left(w_{1,1}x_{1}+w_{1,2}x_{2}+\theta\right)y=hardlim(u)=hardlim(WX+b)=hardlim(w1,1x1+w1,2x2+θ)

(其中WWW为权重矩阵,XXX为输入向量,bbb为偏置,θ\thetaθ为阈值,此处b=θb=\thetab=θ)

单层神经网络

  • 左侧神经元(a₁、a₂、a₃):仅具备输入功能,不参与计算。
  • 右侧神经元 :计算神经元,通过激活函数处理输入与权重的乘积和,公式为:
    z=g(a1⋅wa+a2⋅wb+a3⋅wc)z=g(a_1 \cdot w_a + a_2 \cdot w_b + a_3 \cdot w_c)z=g(a1⋅wa+a2⋅wb+a3⋅wc)
    (ggg为激活函数,wa、wb、wcw_a、w_b、w_cwa、wb、wc为对应输入的权重)

简单神经网络的局限性(以感知器为例)

  1. 核心局限(明斯基与佩珀特,1969年提出)
    感知器仅能构建线性判别函数,即仅能对可通过直线或超平面分割的类别进行分类。
  2. 非线性问题无法解决
    多数实际函数具有非线性特征(或数据不可线性分割),单层感知器无法处理此类问题。典型案例为异或(XOR)逻辑运算,其真值表如下:
输入x₁ 输入x₂ 输出y
0 0 0
1 0 1
0 1 1
1 1 0
  1. 解决方案 :引入多层神经网络(含隐藏层),通过多个神经元的组合实现非线性分类(如异或运算需至少2个神经元协同工作)。

多层神经网络结构

1. 双层神经网络
  • 包含输入层、隐藏层、输出层,其中"双层"指2个激活层(隐藏层+输出层)。
  • 输入节点(I₁、I₂、I₃、I₄)接收外部信号,传递至隐藏节点,隐藏节点经计算后将信号传递至输出节点(O₁)。
2. 三层神经网络
  • 结构:输入层→隐藏层1→隐藏层2→输出层,通过多隐藏层进一步增强非线性拟合能力。
3. 多层前馈神经网络(Multi-layer Feed-forward ANNs)
  • 单输出感知器(M-P模型):输入层直接连接单输出层,仅含输入层与输出层。
  • 多输出感知器(罗森布拉特提出) :输入层连接多输出层(如Z₁、Z₂),每个输出对应独立的权重计算,公式为:
    z1=g(a1⋅w1+a2⋅w2+a3⋅w3)z_1=g(a_1 \cdot w_1 + a_2 \cdot w_2 + a_3 \cdot w_3)z1=g(a1⋅w1+a2⋅w2+a3⋅w3)
    z2=g(a1⋅w4+a2⋅w5+a3⋅w6)z_2=g(a_1 \cdot w_4 + a_2 \cdot w_5 + a_3 \cdot w_6)z2=g(a1⋅w4+a2⋅w5+a3⋅w6)
  • 权重表示规则 :用Wx,yW_{x,y}Wx,y表示权重,其中xxx为前一层神经元编号,yyy为后一层神经元编号,神经元编号按"从上到下"顺序排列。

多层前馈神经网络的发展(1969-1984年)

  • 核心突破 :引入隐藏层节点,允许使用非线性激活函数,使神经网络具备非线性分类能力。
  • 激活函数改进 :采用可微的非线性函数(如Sigmoid函数f(a)=11+e−af(a)=\frac{1}{1+e^{-a}}f(a)=1+e−a1),输出连续且非线性质,更贴近真实神经元的信号传递特性。

02 损失函数

基本概念与示例背景

以CIFAR-10数据集(含飞机、鸟、猫、鹿等10类图像)的线性分类器为例,线性分类器的输出公式为:
f(xi;W,b)=Wxi+bf(x_i; W, b)=Wx_i + bf(xi;W,b)=Wxi+b

(WWW为权重矩阵,bbb为偏置,xix_ixi为输入图像的像素数组,CIFAR-10图像为32×32×3的像素矩阵,共3072个像素值,取值范围0-1)

1. 损失函数(Loss Function)

  • 定义:基于单个样本计算的误差,用于衡量模型对单个样本的预测偏差。
  • 常见类型
    (1)0-1损失函数 :直接计算预测值与真实值的绝对差,公式为:
    L(f(x),y)=∣f(x)−y∣L(f(x), y)=|f(x)-y|L(f(x),y)=∣f(x)−y∣
    (2)平方损失函数 :计算预测值与真实值差值的平方,适用于回归任务。
    (3)绝对值损失函数:计算预测值与真实值差值的绝对值,对异常值鲁棒性高于平方损失。

2. 代价函数(Cost Function)

  • 定义:基于全部训练样本的平均误差,即所有损失函数的平均值,用于衡量模型在整体训练数据上的偏差。

  • 常见类型

    (1)均方误差(MSE) :适用于回归任务,公式为:
    MSE=1N∑i=1N(y(i)−f(x(i)))2MSE=\frac{1}{N}\sum_{i=1}^{N}\left(y^{(i)}-f(x^{(i)})\right)^2MSE=N1∑i=1N(y(i)−f(x(i)))2

    (NNN为训练样本总数,y(i)y^{(i)}y(i)为第iii个样本的真实值,f(x(i))f(x^{(i)})f(x(i))为预测值)

    (2)平均绝对误差(MAE) :适用于回归任务,公式为:
    MAE=1N∑i=1N∣y(i)−f(x(i))∣MAE=\frac{1}{N}\sum_{i=1}^{N}\left|y^{(i)}-f(x^{(i)})\right|MAE=N1∑i=1N y(i)−f(x(i))

    (3)交叉熵代价函数 :适用于分类任务,衡量真实概率分布p(x(i))p(x^{(i)})p(x(i))与模型预测概率分布q(x(i))q(x^{(i)})q(x(i))的差异,公式为:
    H(p,q)=−∑i=1Np(x(i))log⁡q(x(i))H(p, q)=-\sum_{i=1}^{N}p(x^{(i)})\log q(x^{(i)})H(p,q)=−∑i=1Np(x(i))logq(x(i))

3. 目标函数(Objective Function)

  • 定义 :与代价函数类似,基于全部训练样本的平均误差,但更强调"优化目标"------即需通过调整模型参数(如权重WWW、偏置bbb)最小化的函数。
  • 核心目标 :对从某分布DDD中随机选取的样本(x,y)(x,y)(x,y),最小化损失函数Loss(f(x),y)Loss(f(x), y)Loss(f(x),y)。
  • 实际计算 :由于未知真实分布DDD,通常用训练数据的平均损失近似目标函数,公式为:
    L(θ)=1n∑i=1nLoss(fθ(xi),yi)L(\theta)=\frac{1}{n}\sum_{i=1}^{n}Loss(f_{\theta}(x_i), y_i)L(θ)=n1∑i=1nLoss(fθ(xi),yi)
    (θ\thetaθ为模型参数集合,nnn为训练样本数)

交叉熵损失的解读

  1. 惩罚机制 :对正确标签yyy的预测概率pyp_ypy,惩罚项为−log⁡py-\log p_y−logpy------若预测概率越接近1(预测越准确),惩罚越小;若接近0(预测越错误),惩罚趋近于无穷大。
  2. KL散度关联 :交叉熵可视为KL散度(Kullback-Leibler divergence)的简化形式,用于衡量两个概率分布的"距离",当真实分布ppp固定时,最小化交叉熵等价于最小化KL散度。

03 罗森布拉特感知器

基本结构与异或运算示例

  • 结构组成:输入层(2个神经元,接收XOR的两个输入)、隐藏层(2个神经元,处理非线性转换)、输出层(1个神经元,输出最终结果)。
  • 核心逻辑:通过隐藏层对输入进行线性组合,再经输出层整合,实现异或运算的非线性分类(单层感知器无法完成)。

工作流程(以异或运算为例)

  1. 初始化 :随机设置权重www与偏置bbb的初始值。
  2. 输入数据:导入异或运算的真值表(如输入(0,0)、(1,0)等)。
  3. 循环迭代(试错法)
    • 读取输入:如输入(0,0)。
    • 计算输出:通过感知器公式计算预测输出(如0.60543)。
    • 误差对比 :计算预测输出与期望输出的差值(如Diff=0.60543−0=0.60543Diff=0.60543-0=0.60543Diff=0.60543−0=0.60543)。
    • 调整参数:根据误差修改权重与偏置。
  4. 终止条件:达到预设迭代次数,或误差小于设定阈值。

计算示例(学习率η=1)

已知条件
  • 输入样本:x1=(4,4)x_1=(4,4)x1=(4,4)(真实标签y1=1y_1=1y1=1)、x2=(4,5)x_2=(4,5)x2=(4,5)(真实标签y2=1y_2=1y2=1)、x3=(1,1)x_3=(1,1)x3=(1,1)(真实标签y3=−1y_3=-1y3=−1)。
  • 初始权重与偏置:W(0)=[0,0]W(0)=[0,0]W(0)=[0,0],b(0)=1b(0)=1b(0)=1。
步骤1:首次分类
  • 对x1x_1x1:y1(W0x1+b0)=1×([0,0]⋅[4,4]T+1)=1>0y_1(W_0x_1 + b_0)=1×([0,0]·[4,4]^T +1)=1>0y1(W0x1+b0)=1×([0,0]⋅[4,4]T+1)=1>0,分类正确。
  • 对x2x_2x2:y2(W0x2+b0)=1×([0,0]⋅[4,5]T+1)=1>0y_2(W_0x_2 + b_0)=1×([0,0]·[4,5]^T +1)=1>0y2(W0x2+b0)=1×([0,0]⋅[4,5]T+1)=1>0,分类正确。
  • 对x3x_3x3:y3(W0x3+b0)=−1×([0,0]⋅[1,1]T+1)=−1<0y_3(W_0x_3 + b_0)=-1×([0,0]·[1,1]^T +1)=-1<0y3(W0x3+b0)=−1×([0,0]⋅[1,1]T+1)=−1<0,分类错误,需更新参数:
    W(1)=W(0)+η⋅y3⋅x3T=[0,0]+1×(−1)×[1,1]T=[−1,−1]W(1)=W(0) + η·y_3·x_3^T = [0,0] + 1×(-1)×[1,1]^T = [-1,-1]W(1)=W(0)+η⋅y3⋅x3T=[0,0]+1×(−1)×[1,1]T=[−1,−1]
    b(1)=b(0)+η⋅y3=1+1×(−1)=0b(1)=b(0) + η·y_3 = 1 + 1×(-1) = 0b(1)=b(0)+η⋅y3=1+1×(−1)=0
步骤2:更新后验证
  • 对x3x_3x3:y3(W1x3+b1)=−1×([−1,−1]⋅[1,1]T+0)=2>0y_3(W_1x_3 + b_1)=-1×([-1,-1]·[1,1]^T +0)=2>0y3(W1x3+b1)=−1×([−1,−1]⋅[1,1]T+0)=2>0,分类正确。
  • 重新验证x1x_1x1:此时W1x1+b1=[−1,−1]⋅[4,4]T+0=−8W_1x_1 + b_1 = [-1,-1]·[4,4]^T +0 = -8W1x1+b1=[−1,−1]⋅[4,4]T+0=−8,y1×(−8)=−8<0y_1×(-8)=-8<0y1×(−8)=−8<0,分类错误,需再次更新参数:
    W(2)=W(1)+η⋅y1⋅x1T=[−1,−1]+1×1×[4,4]T=[3,3]W(2)=W(1) + η·y_1·x_1^T = [-1,-1] + 1×1×[4,4]^T = [3,3]W(2)=W(1)+η⋅y1⋅x1T=[−1,−1]+1×1×[4,4]T=[3,3]
    b(2)=b(1)+η⋅y1=0+1×1=1b(2)=b(1) + η·y_1 = 0 + 1×1 = 1b(2)=b(1)+η⋅y1=0+1×1=1
步骤3:迭代至收敛

重复上述"验证-更新"过程,直至所有样本分类正确。最终模型为:
f(x)=hardlims(x(1)+x(2)−4)f(x)=\text{hardlims}(x^{(1)} + x^{(2)} -4)f(x)=hardlims(x(1)+x(2)−4)

(hardlims\text{hardlims}hardlims为对称硬极限函数,x(1)、x(2)x^{(1)}、x^{(2)}x(1)、x(2)为输入的两个维度)

04 学习

学习的分类框架

根据训练数据是否含标签,机器学习可分为:监督学习(Supervised Learning)无监督学习(Unsupervised Learning)半监督学习(Semi-supervised Learning)强化学习(Reinforcement Learning)

一、监督学习

定义

监督学习是机器学习的一种方法,通过构建算法从带标签的训练数据(每个样本为"输入-期望输出"对)中学习,生成推理函数,用于对新样本进行预测或决策,而非遵循固定程序指令。

核心流程
  1. 数据准备 :从历史数据中随机抽样,划分训练集 (用于构建模型)与验证集(用于评估模型性能)。
  2. 模型训练:用训练集训练统计模型,通过验证集调整参数。
  3. 预测应用:将训练好的模型用于新数据,输出预测结果。
任务类型
  1. 回归(Regression)

    • 目标:预测连续型输出值(如房价、股票价格)。
    • 示例:通过房屋面积(输入)预测房价(输出),假设函数为线性函数hθ(x)=θ0+θ1xh_\theta(x)=\theta_0+\theta_1xhθ(x)=θ0+θ1x(θ0、θ1\theta_0、\theta_1θ0、θ1为参数)。
    • 核心:最小化预测值与真实值的误差(如均方误差J(θ0,θ1)=∑i=1m(hθ(x(i))−y(i))2J(\theta_0,\theta_1)=\sum_{i=1}^m(h_\theta(x^{(i)})-y^{(i)})^2J(θ0,θ1)=∑i=1m(hθ(x(i))−y(i))2)。
  2. 分类(Classification)

    • 目标:将输出划分为离散类别(如肿瘤良性/恶性、邮件垃圾/非垃圾)。
    • 示例:通过肿瘤大小与患者年龄(输入)判断肿瘤类型(输出),常见算法包括逻辑回归、支持向量机(SVM)、感知器等。
关键算法与发展历程
  1. 核心算法

    • 回归:线性回归、岭回归(Ridge Regression)、LASSO回归。
    • 分类:逻辑回归、SVM、感知器、卷积神经网络(CNN)、循环神经网络(RNN/LSTM)、决策树(ID3、C4.5、CART)、集成算法(随机森林、AdaBoost、GBDT、XGBoost)。
    • 其他:K近邻(KNN)、朴素贝叶斯分类器、贝叶斯网络。
  2. 发展时间线

    • 1950s:感知器、线性分类器。
    • 1960s:KNN、贝叶斯判别分析。
    • 1980s:反向传播(Back Propagation)、决策树(ID3、CART)。
    • 1990s:SVM、C4.5、随机森林。
    • 2000s后:LSTM、AdaBoost、GBDT、XGBoost。
重要算法详解
1. 逻辑回归(Logistic Regression)
  • 本质:线性分类算法,用于二分类任务(如"通过/失败""健康/患病")。

  • 核心公式

    • 线性模型:z=θTx+θ0z=\theta^T x + \theta_0z=θTx+θ0(θ\thetaθ为权重向量,θ0\theta_0θ0为偏置)。
    • Sigmoid激活函数:将线性输出映射到[0,1]区间(概率值),公式为:
      ϕ(z)=11+e−z\phi(z)=\frac{1}{1+e^{-z}}ϕ(z)=1+e−z1
    • 最终假设函数:
      hθ(x)=11+e−(θTx+θ0)h_\theta(x)=\frac{1}{1+e^{-(\theta^T x + \theta_0)}}hθ(x)=1+e−(θTx+θ0)1
    • 分类规则:若hθ(x)≥0.5h_\theta(x)≥0.5hθ(x)≥0.5,预测y=1y=1y=1(正类);若hθ(x)<0.5h_\theta(x)<0.5hθ(x)<0.5,预测y=0y=0y=0(负类)。
  • 损失函数与参数优化

    • 损失函数(交叉熵损失):
      cost(hθ(x),y)={−log⁡(hθ(x))if y=1−log⁡(1−hθ(x))if y=0cost(h_\theta(x), y)= \begin{cases} -\log(h_\theta(x)) & \text{if } y=1 \\ -\log(1-h_\theta(x)) & \text{if } y=0 \end{cases}cost(hθ(x),y)={−log(hθ(x))−log(1−hθ(x))if y=1if y=0
    • 代价函数:
      J(θ)=1m∑i=1mcost(hθ(x(i)),y(i))J(\theta)=\frac{1}{m}\sum_{i=1}^m cost(h_\theta(x^{(i)}), y^{(i)})J(θ)=m1∑i=1mcost(hθ(x(i)),y(i))
    • 参数优化:通过梯度下降法最小化J(θ)J(\theta)J(θ),更新公式为:
      θj=θj−α∂∂θjJ(θ)(j=0,1,...,n)\theta_j = \theta_j - \alpha \frac{\partial}{\partial \theta_j}J(\theta) \quad (j=0,1,...,n)θj=θj−α∂θj∂J(θ)(j=0,1,...,n)
      (α\alphaα为学习率,控制每次参数更新的步长)
2. 支持向量机(SVM)
  • 核心思想 :在样本空间中找到最大间隔分割超平面,使不同类别的样本被超平面分割,且样本到超平面的间隔最大(间隔由"支持向量"------离超平面最近的样本------决定)。
  • 超平面公式 :wTx+b=0w^T x + b = 0wTx+b=0(www为法向量,决定超平面方向;bbb为位移项,决定超平面与原点的距离)。
  • 分类规则 :对样本(x(i),y(i))(x^{(i)}, y^{(i)})(x(i),y(i))(y(i)∈{−1,1}y^{(i)}∈\{-1,1\}y(i)∈{−1,1}),若wTx(i)+b>0w^T x^{(i)} + b > 0wTx(i)+b>0,预测y(i)=1y^{(i)}=1y(i)=1;若wTx(i)+b<0w^T x^{(i)} + b < 0wTx(i)+b<0,预测y(i)=−1y^{(i)}=-1y(i)=−1。
  • 非线性问题处理 :通过核函数(如RBF核)将非线性可分数据映射到高维空间,使其线性可分,公式为:
    f(x)=wTϕ(x)+bf(x)=w^T \phi(x) + bf(x)=wTϕ(x)+b
    (ϕ(x)\phi(x)ϕ(x)为映射函数,将输入xxx映射到高维特征空间)

二、无监督学习

定义

无监督学习使用无标签样本进行训练,算法通过挖掘数据自身的内在结构(如聚类、降维)获取知识,无需人工提供"正确答案"。

核心任务与算法
  1. 聚类(Clustering)

    • 目标:将相似样本划分为同一簇,不同样本划分为不同簇。
    • 常见算法:K均值聚类(K-means)、DBSCAN、层次聚类(Hierarchical Clustering)、谱聚类(Spectral Clustering)、均值漂移(Mean Shift)。
  2. 降维(Dimensionality Reduction)

    • 目标:在保留数据关键信息的前提下,减少特征维度,简化计算并避免"维度灾难"。
    • 常见算法:主成分分析(PCA)、核主成分分析(KPCA)、局部线性嵌入(LLE)、t分布随机邻域嵌入(t-SNE)。
关键算法详解
1. K均值聚类(K-means)
  • 核心逻辑 :将nnn个样本划分为kkk个簇,使每个样本属于离其最近的簇中心(通过相似度度量,如欧氏距离、曼哈顿距离),并最小化簇内样本与簇中心的平方误差。

  • 平方误差公式
    E=∑i=1k∑x∈Ci∥x−μi∥2E=\sum_{i=1}^k \sum_{x \in C_i} \|x - \mu_i\|^2E=∑i=1k∑x∈Ci∥x−μi∥2

    (CiC_iCi为第iii个簇,μi\mu_iμi为CiC_iCi的均值向量,EEE越小,簇内样本相似度越高)

  • 算法步骤

    1. 随机选择kkk个样本作为初始簇中心μ1,μ2,...,μk\mu_1, \mu_2, ..., \mu_kμ1,μ2,...,μk。
    2. 计算每个样本到各簇中心的距离,将样本分配至最近的簇。
    3. 对每个簇,重新计算簇中心(簇内所有样本的均值)。
    4. 重复步骤2-3,直至迭代次数达到最大值,或前后两次簇中心的差异小于设定阈值。
2. 主成分分析(PCA)
  • 核心思想:通过线性变换将高维数据映射到低维空间,使映射后的数据(主成分)保留原数据的最大方差(即"最大可分性"),且各主成分正交。

  • 关键性质

    • 最近重构性:样本到低维超平面的距离尽可能小。
    • 最大可分性:样本在低维超平面上的投影尽可能分散。
  • 算法步骤

    1. 数据中心化 :对所有样本进行预处理,消除量纲影响,公式为:
      xi←xi−1m∑i=1mxix_i \leftarrow x_i - \frac{1}{m}\sum_{i=1}^m x_ixi←xi−m1∑i=1mxi
      (mmm为样本数,1m∑i=1mxi\frac{1}{m}\sum_{i=1}^m x_im1∑i=1mxi为样本均值)
    2. 计算协方差矩阵 :计算中心化后样本的协方差矩阵XXTXX^TXXT(XXX为样本矩阵)。
    3. 特征值分解:对协方差矩阵进行特征值分解,得到特征值与对应的特征向量。
    4. 选择主成分 :选取前d′d'd′个最大特征值对应的特征向量w1,w2,...,wd′w_1, w_2, ..., w_{d'}w1,w2,...,wd′(d′d'd′为低维空间维度,通过交叉验证确定)。
    5. 输出投影矩阵 :投影矩阵W∗=(w1,w2,...,wd′)W^*=(w_1, w_2, ..., w_{d'})W∗=(w1,w2,...,wd′),用于将高维样本映射到低维空间。
监督学习与无监督学习的对比
对比维度 监督学习 无监督学习
样本标签 含明确标签(已知正确输出) 无标签(未知正确输出)
核心目标 学习"输入-输出"映射关系,用于预测 挖掘数据内在结构(如聚类、降维)
典型任务 分类、回归 聚类、降维
示例 通过人脸图像(输入)分类年龄(输出) 对无标签的用户行为数据进行聚类
相关推荐
西岸行者6 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意6 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码6 天前
嵌入式学习路线
学习
呆萌很6 天前
卷积神经网络的基石——基础卷积模块
神经网络
毛小茛6 天前
计算机系统概论——校验码
学习
babe小鑫6 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms6 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下6 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。6 天前
2026.2.25监控学习
学习
im_AMBER6 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode