网站推荐软件,兴化网站开发,wordpress 标签云 插件,wordpress评论小工具文章目录一、深度学习基础认知二、神经网络核心构造解析2.1 神经元的基本原理2.2 感知器#xff1a;最简单的神经网络2.3 多层感知器#xff1a;引入隐藏层解决非线性问题2.3.1 多层感知器的结构特点2.3.2 偏置节点的作用2.3.3 多层感知器的计算过程三、神经网络训练核心方法…
文章目录一、深度学习基础认知二、神经网络核心构造解析2.1 神经元的基本原理2.2 感知器最简单的神经网络2.3 多层感知器引入隐藏层解决非线性问题2.3.1 多层感知器的结构特点2.3.2 偏置节点的作用2.3.3 多层感知器的计算过程三、神经网络训练核心方法3.1 损失函数衡量预测误差3.2 正则化惩罚防止过拟合3.3 梯度下降优化权重参数3.3.1 核心概念3.3.2 梯度下降的步骤3.4 BP 神经网络反向传播优化3.4.1 BP 神经网络的步骤一、深度学习基础认知
首先我们要明确深度学习在人工智能领域的定位。深度学习DL, Deep Learning是机器学习ML, Machine Learning领域中一个重要的研究方向而神经网络又是深度学习的核心载体三者的关系可以简单理解为人工智能包含机器学习机器学习包含深度学习深度学习以神经网络为核心技术支撑。
简单来说深度学习就是通过构建多层神经网络让机器从大量数据中自主学习特征和规律从而实现对未知数据的预测或分类。比如我们常见的图像识别、自然语言处理等应用背后都离不开深度学习技术的支持。 二、神经网络核心构造解析
神经网络是深度学习的“灵魂”它由大量的节点神经元和节点间的连接构成。下面我们从基础组件到复杂结构一步步拆解神经网络的构造。
2.1 神经元的基本原理
神经元是神经网络的最小单位其核心是通过线性计算与非线性激活函数的结合实现对输入信息的处理。 线性计算部分神经元会接收多个输入信号如 x1,x2,x3x_1, x_2, x_3x1,x2,x3每个输入信号都对应一个权重w1,w2,w3w_1, w_2, w_3w1,w2,w3表示该输入的重要程度。首先会计算输入与权重的加权和公式如下 zw1x1w2x2w3x3bz w_1x_1 w_2x_2 w_3x_3 b zw1x1w2x2w3x3b 其中 bbb 是偏置项用于调整神经元的激活阈值。为了方便计算我们可以将偏置项转化为权重形式令 x31,w3bx_3 1, w_3 bx31,w3b此时公式可简化为 zw1x1w2x2w3×1z w_1x_1 w_2x_2 w_3 \times 1zw1x1w2x2w3×1这种形式更便于后续的矩阵运算。 非线性激活函数经过线性计算得到的 zzz 会传入激活函数引入非线性特性。常用的激活函数是 sigmoid 函数它能将输出值映射到 0 到 1 之间公式为 g(z)11e−zg(z) \frac{1}{1 e^{-z}} g(z)1e−z1 为什么需要非线性激活函数因为如果只有线性计算无论神经网络有多少层最终的输出仍然是输入的线性组合无法处理复杂的非线性问题如图像中的边缘、纹理等特征。
2.2 感知器最简单的神经网络
感知器是由两层神经元组成的神经网络是神经网络的“雏形”。它的结构非常简单
输入层接收数据特征节点数与特征维度一致如输入数据是 3 维特征输入层就有 3 个节点。输出层输出预测结果节点数与目标维度一致分类问题输出层有 1 个节点。
感知器的计算过程可以用矩阵乘法表示。假设输入特征向量为 x[x1x2x3]x \begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix}xx1x2x3权重矩阵为
W[w11w12w13w21w22w23]W \begin{bmatrix} w_{11} w_{12} w_{13} \\ w_{21} w_{22} w_{23} \end{bmatrix}W[w11w21w12w22w13w23]则输出 zzz 的计算如下
zg(W×x)z g(W \times x)zg(W×x)
其中 ggg 是激活函数。需要注意的是感知器只能处理线性可分的数据如用一条直线就能将两类数据分开的情况无法处理非线性可分问题如异或问题。
2.3 多层感知器引入隐藏层解决非线性问题
为了解决感知器的局限性我们在输入层和输出层之间增加了隐藏层形成了多层感知器MLP。隐藏层是神经网络能处理非线性问题的关键其核心作用是通过多层非线性变换逐步提取数据中的复杂特征。
2.3.1 多层感知器的结构特点
输入层节点数固定与特征维度匹配如输入是 6 维特征输入层有 6 个节点 x1,x2,...,x6x_1, x_2, ..., x_6x1,x2,...,x6。隐藏层节点数可自由设定目前没有统一的理论指导通常根据经验或实验调整比如先尝试 32、64、128 个节点选择模型效果最好的数量。输出层节点数固定与目标维度匹配如多分类有 3 个类别输出层有 3 个节点。
2.3.2 偏置节点的作用
在神经网络的每个层次中除输出层外都会默认存在一个偏置节点。它的特点是
存储值永远为 1只负责提供偏置项不接收前一层的输入没有箭头指向它。作用是调整神经元的激活阈值让模型能更好地拟合数据比如当所有输入都为 0 时偏置项可以让神经元仍然有输出。
2.3.3 多层感知器的计算过程
以“输入层→1 个隐藏层→输出层”的结构为例计算过程分为两步 隐藏层计算输入层节点的输出作为隐藏层节点的输入经过加权和与激活函数后得到隐藏层的输出a1(2)a_1^{(2)}a1(2), a2(2)a_2^{(2)}a2(2)上标 2 表示隐藏层是第 2 层 a1(2)g(x1w11(2)x2w12(2)x3w13(2))a_1^{(2)} g(x_1w_{11}^{(2)} x_2w_{12}^{(2)} x_3w_{13}^{(2)}) a1(2)g(x1w11(2)x2w12(2)x3w13(2)) a2(2)g(x1w21(2)x2w22(2)x3w23(2))a_2^{(2)} g(x_1w_{21}^{(2)} x_2w_{22}^{(2)} x_3w_{23}^{(2)}) a2(2)g(x1w21(2)x2w22(2)x3w23(2)) 输出层计算隐藏层的输出作为输出层节点的输入再次经过加权和与激活函数后得到最终的预测结果zzz zg(a1(2)w11(3)a2(2)w12(3))z g(a_1^{(2)}w_{11}^{(3)} a_2^{(2)}w_{12}^{(3)}) zg(a1(2)w11(3)a2(2)w12(3)) 上标 3 表示输出层是第 3 层 三、神经网络训练核心方法
神经网络的训练过程本质上是通过调整权重参数让模型的预测结果尽可能接近真实值。这个过程主要包括损失函数计算、正则化惩罚、梯度下降优化和反向传播四个关键步骤。
3.1 损失函数衡量预测误差
损失函数Loss Function用于量化模型预测值与真实值之间的误差误差越小模型效果越好。常用的损失函数有以下几种
损失函数类型适用场景核心公式简化版0-1 损失函数分类问题L1L 1L1 预测错误L0L 0L0 预测正确均方差损失回归问题L1n∑i1n(yi−y^i)2L \frac{1}{n} \sum_{i1}^{n} (y_i - \hat{y}_i)^2Ln1∑i1n(yi−y^i)2 yiy_iyi 真实值y^i\hat{y}_iy^i 预测值平均绝对差损失回归问题L1n∑i1n∣yi−y^i∣L \frac{1}{n} \sum_{i1}^{n} \lvert y_i - \hat{y}_i \rvertLn1∑i1n∣yi−y^i∣交叉熵损失分类问题尤其是多分类L−∑c1Myiclog(pic)L -\sum_{c1}^{M} y_{ic} \log(p_{ic})L−∑c1Myiclog(pic) MMM 类别数yicy_{ic}yic 真实标签picp_{ic}pic 预测概率合页损失支持向量机等分类模型Lmax(0,1−yiy^i)L \max(0, 1 - y_i \hat{y}_i)Lmax(0,1−yiy^i)
以多分类问题的交叉熵损失为例假设我们要识别猫、狗、鸟三类图像输入一张猫的图片 模型输出层会给出三个预测值如 148.413、134.289、0.135首先通过归一化将其转化为 0~1 之间的概率如 0.4748、0.5247、0.0005。 真实标签为“猫”对应的 yicy_{ic}yic 为 [1, 0, 0]猫的标签为 1其他为 0。 代入交叉熵损失公式计算得到损失值 L−(1×log(0.5247)0×log(0.4748)0×log(0.0005))≈0.645.L -(1 \times \log(0.5247) 0 \times \log(0.4748) 0 \times \log(0.0005)) \approx 0.645. L−(1×log(0.5247)0×log(0.4748)0×log(0.0005))≈0.645. 若模型预测错误如将猫预测为狗概率为 0.9则损失值会显著增大从而提示模型需要调整参数。
3.2 正则化惩罚防止过拟合
过拟合是神经网络训练中常见的问题指模型在训练数据上表现很好但在测试数据上表现很差模型“死记硬背”了训练数据没有学到通用规律。正则化惩罚的核心是通过限制权重参数的大小让模型更“简单”从而减少过拟合。
常用的正则化方法有 L1 正则化和 L2 正则化 L1 正则化对权重参数的绝对值求和公式为 ∑i∣wi∣\sum_i |w_i|∑i∣wi∣。它会让部分权重变为 0实现特征选择即忽略不重要的特征。 L2 正则化对权重参数的平方求和公式为 ∑iwi2\sum_i w_i^2∑iwi2。它会让权重参数都变得较小避免某一个特征对模型影响过大。
举个例子假设输入向量为 x[1,1,1,1]x [1, 1, 1, 1]x[1,1,1,1]有两个权重向量 w1[1,0,0,0]w_1 [1, 0, 0, 0]w1[1,0,0,0] 和 w2[0.25,0.25,0.25,0.25]w_2 [0.25, 0.25, 0.25, 0.25]w2[0.25,0.25,0.25,0.25]。两者与输入的乘积都是 1但
w1w_1w1 只依赖第一个输入特征容易“偏爱”这个特征导致过拟合。w2w_2w2 均匀利用了所有输入特征能学到更通用的规律泛化能力更强。
正则化惩罚会更倾向于选择 w2w_2w2 这样的权重向量。
3.3 梯度下降优化权重参数
梯度下降是调整权重参数的核心算法其目标是找到损失函数的最小值即模型误差最小的状态。
3.3.1 核心概念 偏导数对于多变量函数如损失函数 L(w0,w1,w2)L(w_0, w_1, w_2)L(w0,w1,w2)偏导数表示函数对某一个变量的变化率其他变量固定。比如 ∂L∂w0\frac{\partial L}{\partial w_0}∂w0∂L 表示当 w1,w2w_1, w_2w1,w2 固定时w0w_0w0 变化 1 个单位损失函数 LLL 的变化量。 梯度由所有偏导数构成的向量方向是损失函数值增长最快的方向。因此我们要沿着梯度的反方向调整权重才能让损失函数值下降即找到最小值。 学习率步长决定每次调整权重的幅度。学习率过大会导致损失函数震荡无法收敛学习率过小会导致训练速度极慢需要大量迭代。通常需要通过实验调整如 0.001、0.01、0.1。
3.3.2 梯度下降的步骤 随机初始化所有权重参数如 w0,w1,w2w_0, w_1, w_2w0,w1,w2。 计算当前权重下的损失函数值 LLL。 计算损失函数对每个权重的偏导数即梯度。 沿着梯度反方向更新权重wnewwold−学习率×∂L∂woldw_{new} w_{old} - 学习率 \times \frac{\partial L}{\partial w_{old}}wnewwold−学习率×∂wold∂L 重复步骤 2~4直到损失函数值小于预设阈值或达到最大迭代次数。
3.4 BP 神经网络反向传播优化
BPBack-propagation反向传播是多层神经网络训练的核心算法它结合了正向传播和反向传播实现权重的高效更新。
3.4.1 BP 神经网络的步骤 正向传播从输入层到输出层计算每个层的输出最终得到模型的预测结果 y^\hat{y}y^。 计算损失函数根据预测结果 y^\hat{y}y^ 和真实标签 yyy使用交叉熵损失等函数计算损失值 LLL。 反向传播从输出层到输入层计算损失函数对每个权重的偏导数梯度。由于多层神经网络的损失函数是复合函数需要使用链式法则即先计算输出层的梯度再逐步推导隐藏层、输入层的梯度。 权重更新根据反向传播得到的梯度使用梯度下降法更新所有权重参数。 循环迭代重复正向传播→损失计算→反向传播→权重更新的过程直到模型收敛。