什么是神经网络,常用的神经网络,如何训练一个神经网络
神经网络:是深度学习的核心技术。模仿生物神经元工作方式的计算模型,由大量互相连接是神经元组成,通过数据学习复杂的模式和关系。
1、神经网络基本组成:神经元、层、连接
- 神经元
神经网络的最小单元。
每个神经元接受输入,输入加权求和,经过激活函数输出结果。
加权求和:输入*权重+偏置;权重决定输入的重要性,偏置调整神经元的激活阈值。
激活函数:非线性变换,使网络能拟合复杂函数。
2.层
神经网络分为三层,神经元根据所在层来进行分工。
输入层:接受原始数据。
隐藏层:复杂特征提取和变换,可以有多层。
输出层:生成最终结果。(如分类概率值、回归值、翻译结果)
3.连接
权重:连接两个神经元的强度,决定输入的重要性。
偏置:调整神经元的激活阈值。
损失函数:衡量预测值和真实值之间的差异。
前向传播:数据从输入层传递到输出层,计算预测值。
反向传播:根据损失函数计算得到的损失值,通过梯度下降,反向调整权重和偏置,减少误差。
优化器:Optimizer,梯度下降增强版。更新权重和偏置,减少误差。
基于梯度下降,引入额外的机制解决原始梯度下降的缺陷。
神经网络 = 神经元 + 层 + 连接(权重、偏置) + 激活函数 + 损失函数 + 优化器
2、常见的神经网络类型:FNN、CNN、RNN、Transformer
- 前馈神经网络(FNN):
最基础、简单的神经网络,数据流向是单向传递(输入层--隐藏层--输出层)。是深度学习的基础,也是其他复杂神经网络(CNN、RNN)的构建模块。
2.卷积神经网络(CNN):
专门用于处理网格结构数据(如图像、视频)的深度学习模型。主要用于计算机视觉领域(图像分类、目标检测等)。
通过局部连接、权重共享、层次化特征提取,捕捉数据中的空间和或时序模式。
局部连接:每个神经元仅连接输入数据的局部区域,大幅减少参数量。
权重共享:使用卷积核在输入数据上滑动,同一核的参数在不同位置共享。
层次化特征提取:低层提取边缘、纹理等基础特征,高层组合成复杂特征。
- 核心组件:
- 卷积层:通过卷积核提取局部特征。
- 池化层:降维、平移不变性。
- 全连接层:在网络末端,将提取的特征映射到最终输出。
卷积核、卷积层、特征图、池化层的定义与联系:
卷积核:特征提取,一个小矩阵,用于提取局部特征(如边缘、纹理)。
卷积层:生成特征图,由多个卷积核组成,对输入数据进行卷积运算,生成特征图。
特征图:卷积层的输出,每个通道对应一个卷积核的运算结果。
池化层:压缩特征图,对特征图下采样(如取最大值或平均值),减少计算量并增强平移不变性。
- 整体流程:
- 输入一张图像,每个卷积核在图像上滑动,计算点积生成一个单通道特征图。
- 对特征图的每个通道独立进行池化(下采样,不改变通道数)。
- 堆叠卷积层和池化层。
卷积特征提取(看到更多细节)----池化压缩特征(冗余信息)----传递下一层,重复直至高层特征生成。
- CNN的应用:
- 图像分类(如ResNet、EfficientNet)
- 目标检测(如YOLO、Faster R-CNN)
- 语义分割(如U-Net)
- 视频分析(3D CNN)
- 医学影像(CT、MRI识别)
3. Transformer:
基于自注意力机制的深度学习模型。
优势:
并行计算:自注意力机制允许同时处理所有位置的信息,计算效率高。
长距离依赖:直接建模任意距离的词关系,避免梯度消失的问题。
可扩展性:通过堆叠更多层和头,扩展模型能力。
缺点:
计算复杂程度高、内存消耗大、数据需求大。
应用:自然语言处理(NLP)、计算机视觉(CV)---VIT 图像分块后输入Transformer、多模态任务 CLIP。
具体介绍可参考:Transformer
3、训练神经网络
训练神经网络的过程其实是确定线性公式y=ax+b中参数a,b的值一个过程。
a=权重;b=偏置;
比如训练一个识别图片中数字的神经网络:
- 选择一个线性公式,随机初始化一组参数a,b;
- 在训练数据集中,利用线性公式来进行分类;
- 计算分类结果的误差;(利用损失函数进行计算)
- 调整参数a,b,使分类结果的误差可以减少;(梯度下降)
- 回到步骤2;
- 重复2-5步骤,直至模型收敛;
模型收敛:误差减少的趋势渐缓,参数无论怎么变化误差都变化不大。
全连接层:神经网络最基础层之一,负责将前一层的所有神经元与当前层的所有神经元进行完全连接,实现特征的整合和分类。