神经网络的工作原理

神经网络的工作原理:神经网络自动从原始数据中提取层次化特征,通过损失函数评估预测与真实值之间的差距,并应用梯度下降法在反向传播过程中更新权重(W)和偏置(B),以优化模型对数据的拟合能力。

图片
神经网络的工作原理

典型的神经网络:卷积神经网络(CNN, Convolutional Neural Network)和长短期记忆网络(LSTM, Long Short-Term Memory)

CNN 主要用于图像处理领域,通过卷积和池化等操作提取图像特征。

  • 应用领域:CNN 广泛用于图像处理领域,包括但不限于图像分类、图像识别、物体检测、图像分割等。

  • 工作原理:CNN 通过卷积层、池化层、全连接层等结构来提取图像中的特征。卷积层通过卷积核(也称为过滤器或特征检测器)在图像上滑动来提取局部特征,池化层则用于减少特征图的空间尺寸,从而减少计算量和避免过拟合。最后,通过全连接层将提取的特征映射到输出层进行分类或回归。

  • 特点:局部连接、权值共享、池化操作,这些特点使得 CNN 能够有效地处理图像数据,尤其是高维数据。

LSTM 主要用于处理时间序列数据,特别是自然语言处理和序列预测任务,通过其独特的门控机制捕捉长期依赖关系。
  • 应用领域:LSTM 是一种特殊的循环神经网络(RNN, Recurrent Neural Network),广泛用于处理和预测时间序列数据,包括但不限于自然语言处理(NLP)中的语音识别、文本生成、机器翻译,以及时间序列预测等。

  • 工作原理:LSTM 通过引入三个“门”控制结构(遗忘门、输入门、输出门)来解决传统 RNN 在处理长序列时容易出现的梯度消失或梯度爆炸问题。这些门允许 LSTM 网络在处理长序列时能够保留重要信息并忘记不相关信息,从而能够捕捉长期依赖关系。

  • 特点:能够处理任意长度的序列数据,并通过其独特的门控机制来保留长期依赖信息,非常适合处理时间序列数据和自然语言处理任务。

图片
CNN & LSTM

自动提取特征深度学习(神经网络)和机器学习的一个重要区别,即深度学习可以自动提取特征。

图片
自动提取特征

神经网络模型参数在神经网络中,权重(W)和偏置(b)是两个非常重要的参数,它们决定了神经元之间的连接强度和神经元的输出。

  • 权重(W):权重是神经网络中的连接参数,用于描述不同神经元之间的连接强度。在神经网络的前向传播过程中,输入数据会与权重进行加权求和,从而影响神经元的输出。权重的大小和正负决定了输入数据对输出数据的影响程度。

  • 偏置(b):偏置是神经网络中的一个附加参数,用于调整神经元的输出。偏置的作用类似于线性方程中的截距项,它使得神经元的输出可以偏离原点。偏置的存在使得神经网络能够学习更加复杂的函数关系。

图片

权重W和偏置b

构造线性方程求解W和B线性回归模型试图找到一个线性关系(即直线)来最好地拟合数据集中的输入特征(X)和输出目标(y)。模型可以表示为:y = Wa + B。
  • y 是输出目标(一个标量或向量,取决于问题的性质)。

  • a 是输入特征(一个向量)。

  • W 是权重(一个与X维度相同的向量或矩阵,取决于X和y的维度)。

  • B 是偏置(一个标量或向量,取决于y的维度)。

图片
线性回归模型

定义损失函数:损失函数(Loss Function)是一个用于评估模型预测值与实际值之间差异的函数。通过最小化损失函数,我们可以找到最佳的模型参数(如权重和偏置),从而使模型能够更准确地预测未知数据。

图片

定义损失函数

梯度下降求解最小损失函数梯度下降(Gradient Descent)是一种优化算法,用于寻找函数的局部最小值。在机器学习和深度学习中,我们常用梯度下降来最小化损失函数,从而找到最佳的模型参数(如权重和偏置)。

图片
梯度下降求解最小损失函数
  1. 初始化参数:选择一个初始的参数值。

  2. 计算梯度:计算损失函数在当前参数值下的梯度。

  3. 更新参数:沿着梯度的反方向更新参数,通常使用一个学习率(Learning Rate)来控制更新的步长。

  4. 重复迭代:重复步骤2和3,直到满足停止条件(如达到最大迭代次数、损失函数值小于一个阈值等)。

图片

梯度下降

随机梯度下降(SGD):随机梯度下降在每次迭代中仅随机选择一个样本来计算损失函数的梯度,并根据这个梯度来更新模型的一个或多个参数。

图片

随机梯度下降

批量梯度下降(BGD):与随机梯度下降不同,在每次迭代中,批量梯度下降使用整个数据集来计算损失函数的梯度,并根据这个梯度来更新模型的所有参数。

图片

批量梯度下降

反向传播更新参数W和B:反向传播(Backpropagation)是训练神经网络时用于计算梯度并更新参数(如权重W和偏置B)的一种有效算法。在神经网络中,前向传播用于计算预测值,而反向传播则用于根据预测值与实际值之间的差异(即损失函数)来更新网络参数。

图片
反向传播

模型验证评估:在模型训练完成后,进行测试验证是评估模型性能的关键步骤。测试验证的目的是确保模型在未见过的数据上也能表现出良好的泛化能力。

  1. 准备测试数据集
    测试数据集应该与训练数据集和验证数据集(如果有的话)完全独立,以确保测试结果的公正性和可靠性。测试数据集应包含代表目标应用场景的数据样本。

  2. 运行模型
    将训练好的模型应用于测试数据集,进行前向传播以生成预测结果。

  3. 评估模型性能
    使用适当的评估指标来比较模型的预测结果与实际结果,从而量化模型的性能。评估指标的选择取决于具体任务的需求,常见的评估指标包括准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1分数(F1 Score)、均方误差(MSE)、平均绝对误差(MAE)等。

图片

测试验证


参考资料

  • https://www.3blue1brown.com/