学习概述

本周系统学习了神经网络与深度学习的基础理论体系,从最经典的线性回归模型出发,逐步过渡到线性分类、对数回归与多分类回归,深入理解了从连续值预测到离散类别判断的模型演进逻辑。在此基础上,介绍了生物神经元的工作原理与人工神经元M-P模型,以及基于神经元构建的感知机模型。最后,针对感知机无法解决线性不可分问题的局限性,引入了多层感知机与误差反向传播(BP)算法,为后续深度学习的学习奠定了核心理论基础。

一、线性回归

1.1 问题定义

线性回归是利用数理统计中的回归分析方法,确定两种或两种以上变量间相互依赖的定量关系的统计分析方法。其核心思想是用一条直线(或高维空间中的超平面)尽可能准确地拟合训练数据,从而对新的输入样本进行连续值预测。

1.2 模型表示

  • 单变量线性回归y=kx+by = kx + by=kx+b(如根据房屋面积预测房价)
  • 多变量线性回归y=hθ(x)=θ⊤xy = h_\theta(x) = \theta^\top xy=hθ(x)=θx
    其中,θ=[θ0,θ1,θ2,…,θn]⊤\theta = [\theta_0, \theta_1, \theta_2, \dots, \theta_n]^\topθ=[θ0,θ1,θ2,,θn] 为参数向量(θ0\theta_0θ0 为偏置项),x=[1,x1,x2,…,xn]⊤x = [1, x_1, x_2, \dots, x_n]^\topx=[1,x1,x2,,xn] 为特征向量(添加 x0=1x_0=1x0=1 以统一偏置项的表示形式)。

1.3 代价函数

采用**均方误差(MSE)**作为代价函数,衡量模型预测值与真实值之间的整体误差:
J(θ)=12∑i=1N(y(i)−hθ(x(i)))2J(\theta) = \frac{1}{2} \sum_{i=1}^{N} (y^{(i)} - h_\theta(x^{(i)}))^2J(θ)=21i=1N(y(i)hθ(x(i)))2
其中,NNN 为训练样本总数,(x(i),y(i))(x^{(i)}, y^{(i)})(x(i),y(i)) 为第 iii 个训练样本。系数 12\frac{1}{2}21 是为了在求导时抵消平方项的系数,简化计算。

1.4 求解方法:解析解

由于均方误差代价函数是关于参数 θ\thetaθ 的凸二次型函数,存在唯一的全局最小值,可以通过令导数为零直接求得最优解:
θ=(X⊤X)−1X⊤y\theta = (X^\top X)^{-1} X^\top yθ=(XX)1Xy
其中,XXXN×(n+1)N \times (n+1)N×(n+1) 的样本矩阵(每行对应一个样本的特征向量),yyyN×1N \times 1N×1 的标签向量。

特点

  • 优点:一步得到结果,计算速度快(当特征维度 nnn 较小时)
  • 缺点:当特征维度很高时,矩阵求逆的计算量极大(时间复杂度为 O(n3)O(n^3)O(n3)),甚至可能因矩阵奇异而无法求解

二、线性分类与对数回归

2.1 线性分类问题

线性分类器通过特征的线性组合做出分类决策,核心是找到一个超平面将不同类别的样本分开。与线性回归的核心区别如下:

对比维度 线性回归 线性分类
输出意义 连续的预测值 类别标签或0-1之间的概率
参数意义 最佳拟合超平面 最佳分类超平面
应用场景 房价预测、销量预测 垃圾邮件识别、疾病诊断

2.2 Sigmoid函数

为了将线性模型的输出((−∞,+∞)(-\infty, +\infty)(,+))映射到0-1之间的概率值,引入Sigmoid函数(又称Logistic函数):
σ(z)=11+e−z\sigma(z) = \frac{1}{1 + e^{-z}}σ(z)=1+ez1
其中,z=θ⊤xz = \theta^\top xz=θx 为线性模型的输出。

重要性质

  • 输出范围:(0,1)(0, 1)(0,1)
  • 单调性:单调递增
  • 导数形式:σ′(z)=σ(z)(1−σ(z))\sigma'(z) = \sigma(z)(1 - \sigma(z))σ(z)=σ(z)(1σ(z)),该性质在后续梯度计算中至关重要

2.3 对数回归(Logistic回归)

对数回归是专门用于二分类问题的线性模型,其条件概率表示为:
P(y=1∣x)=σ(θ⊤x),P(y=0∣x)=1−σ(θ⊤x)P(y=1|x) = \sigma(\theta^\top x), \quad P(y=0|x) = 1 - \sigma(\theta^\top x)P(y=1∣x)=σ(θx),P(y=0∣x)=1σ(θx)

2.4 代价函数:交叉熵损失

如果直接使用线性回归的均方误差作为对数回归的代价函数,由于Sigmoid函数的非线性,代价函数会变成非凸函数,存在大量局部最优解,导致梯度下降法无法收敛到全局最优。因此,采用基于极大似然估计交叉熵损失函数
J(θ)=−∑i=1N[y(i)log⁡(hθ(x(i)))+(1−y(i))log⁡(1−hθ(x(i)))]J(\theta) = -\sum_{i=1}^{N} \left[ y^{(i)} \log(h_\theta(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_\theta(x^{(i)})) \right]J(θ)=i=1N[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]

梯度计算
∂J(θ)∂θ=∑i=1Nx(i)(hθ(x(i))−y(i))\frac{\partial J(\theta)}{\partial \theta} = \sum_{i=1}^{N} x^{(i)} (h_\theta(x^{(i)}) - y^{(i)})θJ(θ)=i=1Nx(i)(hθ(x(i))y(i))
该梯度形式与线性回归的梯度形式高度相似,便于使用梯度下降法进行迭代求解。

三、多分类回归与Softmax

3.1 Softmax函数

对于K分类问题,使用Softmax函数将K个线性输出转换为合法的概率分布:
P(y=k∣x)=eθk⊤x∑j=1Keθj⊤x,k=1,2,…,KP(y=k|x) = \frac{e^{\theta_k^\top x}}{\sum_{j=1}^{K} e^{\theta_j^\top x}}, \quad k=1,2,\dots,KP(y=kx)=j=1Keθjxeθkx,k=1,2,,K
其中,θk\theta_kθk 为第k类对应的参数向量。

性质

  • 每个输出值都在 (0,1)(0, 1)(0,1) 之间
  • 所有输出值之和为1,构成一个完整的概率分布
  • Softmax层通常作为神经网络的输出层,将网络的原始输出转换为概率分布,便于进行分类决策

3.2 多分类交叉熵损失

J(θ)=−∑i=1N∑k=1K1{y(i)=k}log⁡P(y(i)=k∣x(i))J(\theta) = -\sum_{i=1}^{N} \sum_{k=1}^{K} 1\{y^{(i)}=k\} \log P(y^{(i)}=k|x^{(i)})J(θ)=i=1Nk=1K1{y(i)=k}logP(y(i)=kx(i))
其中,1{⋅}1\{\cdot\}1{} 为指示函数,当括号内的条件满足时取值为1,否则为0。

梯度计算
∂J(θ)∂θk=−∑i=1Nx(i)(1{y(i)=k}−P(y(i)=k∣x(i)))\frac{\partial J(\theta)}{\partial \theta_k} = -\sum_{i=1}^{N} x^{(i)} \left( 1\{y^{(i)}=k\} - P(y^{(i)}=k|x^{(i)}) \right)θkJ(θ)=i=1Nx(i)(1{y(i)=k}P(y(i)=kx(i)))

四、神经元模型

4.1 生物神经元与人工神经元

人工神经元模型是对生物神经元工作原理的简化与抽象。1943年,心理学家McCulloch和数学家Pitts合作提出了第一个人工神经元模型——M-P模型,奠定了人工神经网络的基础。

4.2 M-P模型

y=f(∑j=1nwjxj−θ)y = f\left( \sum_{j=1}^{n} w_j x_j - \theta \right)y=f(j=1nwjxjθ)
其中:

  • xjx_jxj:第j个输入信号
  • wjw_jwj:第j个输入的连接权值
  • θ\thetaθ:神经元的阈值
  • f(⋅)f(\cdot)f():激活函数,决定神经元是否被激活

4.3 常见激活函数

  1. 阶跃函数
    f(x)={1,x≥00,x<0f(x) = \begin{cases} 1, & x \geq 0 \\ 0, & x < 0 \end{cases}f(x)={1,0,x0x<0
    特点:输出离散值,不可微,早期用于感知机模型。

  2. 非对称Sigmoid函数
    即前面介绍的Logistic函数,输出在0-1之间,可微,适合作为二分类输出层的激活函数。

  3. 对称Sigmoid函数(双曲正切函数)
    tanh⁡(x)=1−e−x1+e−x\tanh(x) = \frac{1 - e^{-x}}{1 + e^{-x}}tanh(x)=1+ex1ex
    输出在-1到1之间,均值为0,训练效果通常优于Logistic函数。

4.4 Hebb学习规则

连接权值的调整量与输入和输出的乘积成正比:
Δw=α⋅x⋅y\Delta w = \alpha \cdot x \cdot yΔw=αxy
其生物学解释是:当两个神经元同时兴奋时,它们之间的连接强度会增强。这一规则是神经网络中权值更新的重要基础。

五、感知机模型

5.1 感知机原理

感知机由Rosenblatt于1957年提出,是最简单的线性二分类模型,也是神经网络和支持向量机的基础。其模型表示为:
y=sign(w⊤x)y = \text{sign}(w^\top x)y=sign(wx)
其中,sign(x)\text{sign}(x)sign(x) 为符号函数:
sign(x)={1,x≥0−1,x<0\text{sign}(x) = \begin{cases} 1, & x \geq 0 \\ -1, & x < 0 \end{cases}sign(x)={1,1,x0x<0

5.2 损失函数

感知机的损失函数定义为所有误分类样本到分类超平面的距离之和(忽略分母 ∥w∥\|w\|w,因为它不影响误分类的判断):
L(w)=−∑i∈My(i)(w⊤x(i))L(w) = -\sum_{i \in M} y^{(i)} (w^\top x^{(i)})L(w)=iMy(i)(wx(i))
其中,MMM 为误分类样本的集合。

5.3 训练算法

  1. 初始化权值 w0w_0w0 为较小的随机值,设置学习率 η\etaη
  2. 随机选择一个训练样本 (x(i),y(i))(x^{(i)}, y^{(i)})(x(i),y(i))
  3. 如果该样本被误分类(即 y(i)(w⊤x(i))≤0y^{(i)}(w^\top x^{(i)}) \leq 0y(i)(wx(i))0),则更新权值:
    wk+1=wk+ηy(i)x(i)w_{k+1} = w_k + \eta y^{(i)} x^{(i)}wk+1=wk+ηy(i)x(i)
  4. 重复步骤2-3,直到训练集中没有误分类样本

注意:感知机的权值更新规则与Hebb学习规则完全一致。

5.4 局限性

感知机只能解决线性可分问题。对于线性不可分问题(如经典的XOR问题),感知机算法无法收敛。这一局限性在1969年被Minsky和Papert在《感知机》一书中明确指出,直接导致了神经网络研究的第一次寒冬。

六、多层感知机与BP算法基础

6.1 XOR问题与多层感知机

XOR问题是典型的线性不可分问题,无法用单层感知机解决。解决方法是在输入层和输出层之间加入一个或多个隐藏层,构成多层感知机(MLP)

理论证明

  • 三层阈值节点网络可以实现任意二值逻辑函数
  • 三层S型非线性节点网络可以一致逼近紧集上的任意连续函数(万能逼近定理

6.2 BP算法基本思想

误差反向传播(BP)算法是训练多层感知机的核心算法,本质是梯度下降法在多层神经网络中的应用。算法由两个交替进行的过程组成:

  1. 正向传播:输入信号从输入层经隐藏层逐层传向输出层,计算网络的实际输出。
  2. 反向传播:如果输出层的误差不满足要求,则将误差沿原连接通路反向传播,通过梯度下降法逐层调整各层的权值和阈值,使整体误差不断减小。

6.3 BP算法核心推导(以两层网络为例)

符号定义
  • LLL:网络总层数(输入层为第0层,输出层为第L层)
  • a[l]a^{[l]}a[l]:第lll层的输出(激活值),a[0]=xa^{[0]}=xa[0]=x(输入),a[L]=y^a^{[L]}=\hat{y}a[L]=y^(输出)
  • z[l]z^{[l]}z[l]:第lll层的线性输出,z[l]=W[l]a[l−1]z^{[l]} = W^{[l]} a^{[l-1]}z[l]=W[l]a[l1]
  • W[l]W^{[l]}W[l]:第lll层的权值矩阵
  • σ(⋅)\sigma(\cdot)σ():Sigmoid激活函数
输出层权值更新

输出层误差:e=y−y^e = y - \hat{y}e=yy^
输出层误差项:δ[2]=e⊙σ′(z[2])=(y−a[2])⊙a[2]⊙(1−a[2])\delta^{[2]} = e \odot \sigma'(z^{[2]}) = (y - a^{[2]}) \odot a^{[2]} \odot (1 - a^{[2]})δ[2]=eσ(z[2])=(ya[2])a[2](1a[2])
权值更新:ΔW[2]=αδ[2](a[1])⊤\Delta W^{[2]} = \alpha \delta^{[2]} (a^{[1]})^\topΔW[2]=αδ[2](a[1])

隐藏层权值更新

隐藏层误差项:δ[1]=(W[2])⊤δ[2]⊙σ′(z[1])=(W[2])⊤δ[2]⊙a[1]⊙(1−a[1])\delta^{[1]} = (W^{[2]})^\top \delta^{[2]} \odot \sigma'(z^{[1]}) = (W^{[2]})^\top \delta^{[2]} \odot a^{[1]} \odot (1 - a^{[1]})δ[1]=(W[2])δ[2]σ(z[1])=(W[2])δ[2]a[1](1a[1])
权值更新:ΔW[1]=αδ[1](a[0])⊤\Delta W^{[1]} = \alpha \delta^{[1]} (a^{[0]})^\topΔW[1]=αδ[1](a[0])

6.4 BP算法步骤

  1. 初始化所有层的权值为较小的随机非零值
  2. 正向传播:计算各层的线性输出 z[1],z[2],…,z[L]z^{[1]}, z^{[2]}, \dots, z^{[L]}z[1],z[2],,z[L] 和激活输出 a[1],a[2],…,a[L]a^{[1]}, a^{[2]}, \dots, a^{[L]}a[1],a[2],,a[L]
  3. 计算目标函数 JJJ,如果 J<εJ < \varepsilonJ<ε(预设误差阈值),训练结束
  4. 反向传播:从输出层开始,依次计算各层的误差项 δ[L],δ[L−1],…,δ[1]\delta^{[L]}, \delta^{[L-1]}, \dots, \delta^{[1]}δ[L],δ[L1],,δ[1]
  5. 更新各层的权值:W[l]=W[l]−αδ[l](a[l−1])⊤W^{[l]} = W^{[l]} - \alpha \delta^{[l]} (a^{[l-1]})^\topW[l]=W[l]αδ[l](a[l1])
  6. 重复步骤2-5,直到满足停止条件

实现参考:BP算法的具体实现可以参考《动手学深度学习》(D2L)4.2节,使用Fashion-MNIST数据集进行训练和测试。

6.5 BP算法优缺点

优点

  • 学习过程完全自主,无需人工干预
  • 具有强大的非线性逼近能力,能够处理复杂的模式识别问题

缺点

  • 算法非全局收敛,容易陷入局部最优解
  • 收敛速度慢,尤其是在训练深层网络时
  • 学习率的选择缺乏理论指导,需要大量实验调优
  • 网络结构(层数、每层节点数)的设计主要依赖经验,缺乏系统的理论方法

七、本周总结与思考

核心知识点总结

  1. 线性回归是最基础的预测模型,有解析解,但只能处理线性关系。
  2. 对数回归通过Sigmoid函数将线性输出映射为概率,使用交叉熵损失解决二分类问题。
  3. Softmax回归是对数回归在多分类问题上的扩展,输出合法的概率分布。
  4. M-P模型是人工神经元的基础,不同的激活函数赋予神经元不同的非线性特性。
  5. 感知机是最简单的线性分类器,但只能处理线性可分问题。
  6. 多层感知机通过引入隐藏层解决非线性问题,BP算法是训练多层感知机的核心方法。

更多推荐