神经网络与深度学习第二周学习笔记
学习概述
本周系统学习了神经网络与深度学习的基础理论体系,从最经典的线性回归模型出发,逐步过渡到线性分类、对数回归与多分类回归,深入理解了从连续值预测到离散类别判断的模型演进逻辑。在此基础上,介绍了生物神经元的工作原理与人工神经元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=1∑N(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θ=(X⊤X)−1X⊤y
其中,XXX 为 N×(n+1)N \times (n+1)N×(n+1) 的样本矩阵(每行对应一个样本的特征向量),yyy 为 N×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+e−z1
其中,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=1∑N[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(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=1∑Nx(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=k∣x)=∑j=1Keθj⊤xeθk⊤x,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}logP(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=1∑Nk=1∑K1{y(i)=k}logP(y(i)=k∣x(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)∂θk∂J(θ)=−i=1∑Nx(i)(1{y(i)=k}−P(y(i)=k∣x(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=1∑nwjxj−θ)
其中:
- xjx_jxj:第j个输入信号
- wjw_jwj:第j个输入的连接权值
- θ\thetaθ:神经元的阈值
- f(⋅)f(\cdot)f(⋅):激活函数,决定神经元是否被激活
4.3 常见激活函数
-
阶跃函数:
f(x)={1,x≥00,x<0f(x) = \begin{cases} 1, & x \geq 0 \\ 0, & x < 0 \end{cases}f(x)={1,0,x≥0x<0
特点:输出离散值,不可微,早期用于感知机模型。 -
非对称Sigmoid函数:
即前面介绍的Logistic函数,输出在0-1之间,可微,适合作为二分类输出层的激活函数。 -
对称Sigmoid函数(双曲正切函数):
tanh(x)=1−e−x1+e−x\tanh(x) = \frac{1 - e^{-x}}{1 + e^{-x}}tanh(x)=1+e−x1−e−x
输出在-1到1之间,均值为0,训练效果通常优于Logistic函数。
4.4 Hebb学习规则
连接权值的调整量与输入和输出的乘积成正比:
Δw=α⋅x⋅y\Delta w = \alpha \cdot x \cdot yΔw=α⋅x⋅y
其生物学解释是:当两个神经元同时兴奋时,它们之间的连接强度会增强。这一规则是神经网络中权值更新的重要基础。
五、感知机模型
5.1 感知机原理
感知机由Rosenblatt于1957年提出,是最简单的线性二分类模型,也是神经网络和支持向量机的基础。其模型表示为:
y=sign(w⊤x)y = \text{sign}(w^\top x)y=sign(w⊤x)
其中,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,x≥0x<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)=−i∈M∑y(i)(w⊤x(i))
其中,MMM 为误分类样本的集合。
5.3 训练算法
- 初始化权值 w0w_0w0 为较小的随机值,设置学习率 η\etaη
- 随机选择一个训练样本 (x(i),y(i))(x^{(i)}, y^{(i)})(x(i),y(i))
- 如果该样本被误分类(即 y(i)(w⊤x(i))≤0y^{(i)}(w^\top x^{(i)}) \leq 0y(i)(w⊤x(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) - 重复步骤2-3,直到训练集中没有误分类样本
注意:感知机的权值更新规则与Hebb学习规则完全一致。
5.4 局限性
感知机只能解决线性可分问题。对于线性不可分问题(如经典的XOR问题),感知机算法无法收敛。这一局限性在1969年被Minsky和Papert在《感知机》一书中明确指出,直接导致了神经网络研究的第一次寒冬。
六、多层感知机与BP算法基础
6.1 XOR问题与多层感知机
XOR问题是典型的线性不可分问题,无法用单层感知机解决。解决方法是在输入层和输出层之间加入一个或多个隐藏层,构成多层感知机(MLP)。
理论证明:
- 三层阈值节点网络可以实现任意二值逻辑函数
- 三层S型非线性节点网络可以一致逼近紧集上的任意连续函数(万能逼近定理)
6.2 BP算法基本思想
误差反向传播(BP)算法是训练多层感知机的核心算法,本质是梯度下降法在多层神经网络中的应用。算法由两个交替进行的过程组成:
- 正向传播:输入信号从输入层经隐藏层逐层传向输出层,计算网络的实际输出。
- 反向传播:如果输出层的误差不满足要求,则将误差沿原连接通路反向传播,通过梯度下降法逐层调整各层的权值和阈值,使整体误差不断减小。
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[l−1]
- W[l]W^{[l]}W[l]:第lll层的权值矩阵
- σ(⋅)\sigma(\cdot)σ(⋅):Sigmoid激活函数
输出层权值更新
输出层误差:e=y−y^e = y - \hat{y}e=y−y^
输出层误差项:δ[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])=(y−a[2])⊙a[2]⊙(1−a[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]⊙(1−a[1])
权值更新:ΔW[1]=αδ[1](a[0])⊤\Delta W^{[1]} = \alpha \delta^{[1]} (a^{[0]})^\topΔW[1]=αδ[1](a[0])⊤
6.4 BP算法步骤
- 初始化所有层的权值为较小的随机非零值
- 正向传播:计算各层的线性输出 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]
- 计算目标函数 JJJ,如果 J<εJ < \varepsilonJ<ε(预设误差阈值),训练结束
- 反向传播:从输出层开始,依次计算各层的误差项 δ[L],δ[L−1],…,δ[1]\delta^{[L]}, \delta^{[L-1]}, \dots, \delta^{[1]}δ[L],δ[L−1],…,δ[1]
- 更新各层的权值:W[l]=W[l]−αδ[l](a[l−1])⊤W^{[l]} = W^{[l]} - \alpha \delta^{[l]} (a^{[l-1]})^\topW[l]=W[l]−αδ[l](a[l−1])⊤
- 重复步骤2-5,直到满足停止条件
实现参考:BP算法的具体实现可以参考《动手学深度学习》(D2L)4.2节,使用Fashion-MNIST数据集进行训练和测试。
6.5 BP算法优缺点
优点:
- 学习过程完全自主,无需人工干预
- 具有强大的非线性逼近能力,能够处理复杂的模式识别问题
缺点:
- 算法非全局收敛,容易陷入局部最优解
- 收敛速度慢,尤其是在训练深层网络时
- 学习率的选择缺乏理论指导,需要大量实验调优
- 网络结构(层数、每层节点数)的设计主要依赖经验,缺乏系统的理论方法
七、本周总结与思考
核心知识点总结
- 线性回归是最基础的预测模型,有解析解,但只能处理线性关系。
- 对数回归通过Sigmoid函数将线性输出映射为概率,使用交叉熵损失解决二分类问题。
- Softmax回归是对数回归在多分类问题上的扩展,输出合法的概率分布。
- M-P模型是人工神经元的基础,不同的激活函数赋予神经元不同的非线性特性。
- 感知机是最简单的线性分类器,但只能处理线性可分问题。
- 多层感知机通过引入隐藏层解决非线性问题,BP算法是训练多层感知机的核心方法。
更多推荐

所有评论(0)