当前位置: 首页 > article >正文

机器学习基础-神经网络与深度学习

多层前馈网络MLP的基本结构

1. 输入层
  • 作用:接收外部的数据输入。
  • 特点:不包含任何计算单元;它的“节点”数量取决于输入特征的数量。例如,如果我们的任务是基于图像分类,并且每张图片被表示为 784784 个像素值(28×2828×28 的灰度图),那么输入层将有 784784 个节点。
2. 隐藏层
  • 作用:负责从输入数据中提取有用的特征并进行抽象表示。
  • 特点
    • 每个隐藏层可以包含任意数量的神经元。
    • 神经元通过加权和的方式处理来自上一层的信息,并应用激活函数来引入非线性
    • 可以有一个或多个隐藏层,具体取决于模型复杂度的需求。
3. 输出层
  • 作用:生成最终的预测结果或分类标签。
  • 特点
    • 对于二分类问题,通常只有一个输出节点,并使用如Sigmoid这样的激活函数来输出概率。
    • 对于多分类问题,则会有与类别数相等的输出节点,并可能使用Softmax函数将这些节点的输出转换成一个概率分布。

连接权重与偏置

  • 在MLP中,每个神经元都有两个重要的参数:权重(weights)和偏置(bias)。权重决定了前一层各个输入对当前神经元的影响程度;偏置则提供了额外的灵活性,使得即使所有输入都是零时,神经元也可以激活。

激活函数

  • 为了使网络能够学习复杂的非线性关系,必须在每个神经元后面添加激活函数。常见的激活函数包括但不限于:

BP算法的基本原理

BP算法(Backpropagation Algorithm,误差逆传播算法)是训练人工神经网络最常用的算法之一。它通过反向传播误差来调整网络中的权重和偏置,从而最小化预测误差。BP算法的基本原理包括前向传播、损失计算、反向传播和参数更新四个主要步骤。下面我们将详细讲解这些步骤。

1. 前向传播

  • 输入层:接收来自外部的数据输入。
  • 隐藏层:每一层的每个神经元都会对从上一层接收到的信息进行加权求和,并加上偏置项后,再经过激活函数转换,产生该层的输出。
  • 输出层:生成最终的结果或预测值。

假设我们有一个简单的多层感知机(MLP),其输入层有 d 个节点,隐层有 q个节点,输出层有 l 个节点。对于一个给定的样本 (xk,yk),其中 xk是输入特征向量,yk​ 是标签向量:

  • 输入层到隐层:

    其中 vih​ 是连接输入层第 i 个节点和隐层第 h 个节点的权重,γh​ 是隐层第 h 个节点的偏置,f 是激活函数。

  • 隐层到输出层:

    其中 whj​ 是连接隐层第 h 个节点和输出层第 j个节点的权重,θj是输出层第 j个节点的偏置。

2. 损失计算

使用损失函数衡量预测结果与实际标签之间的差异。常用的损失函数包括均方误差(MSE)、交叉熵等。例如,对于二分类问题,可以使用交叉熵损失函数:

3. 反向传播

根据链式法则计算损失相对于每个权重和偏置的梯度,然后沿着负梯度方向调整它们。具体来说,计算每个神经元的局部梯度(即误差项),用于后续的权重更新。

4. 参数更新

利用梯度下降法及其变体(如SGD, Adam等),根据损失函数相对于各参数的导数(即梯度)调整权重和偏置,目的是最小化损失函数。

  • 更新公式为:

    其中 η 是学习率,控制每次更新的步长。

总结

BP算法通过上述四个步骤实现了对神经网络的训练。在实际应用中,通常会重复执行这些步骤,直到模型收敛或达到预定的最大迭代次数。BP算法能够有效地训练深度神经网络,使得它们能够学习复杂的非线性映射关系,广泛应用于各种机器学习任务中,如图像识别、自然语言处理等。

局部极小值和全局极小值,如何跳出局部极小值

不同的初始参数

以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数.这相当于从多个不同的初始点开始搜索,这样就可能陷入不同的局部极小,从中进行选择有可能获得更接近全局最小的结果.

模拟退火

使用“模拟退火”(simulated annealing)技术[Aarts and Korst,1989]模拟退火在每一步都以一定的概率接受比当前解更差的结果,从而有助于“跳出”局部极小.在每步迭代过程中,接受“次优解”的概率要随着时间的推移而逐渐降低,从而保证算法稳定

随机扰动

使用随机梯度下降.与标准梯度下降法精确计算梯度不同,随机梯度下降法在计算梯度时加入了随机因素.于是,即便陷入局部极小点,它计算出的梯度仍可能不为零,这样就有机会跳出局部极小继续搜索

遗传算法

此外,遗传算法(genetic algorithms)[Goldberg,1989]也常用来训练神经网络以更好地逼近全局最小.需注意的是,上述用于跳出局部极小的技术大多是启发式,理论上尚缺乏保障

如何缓解过拟合

早停、正则化

卷积神经网络的基本概念


CNN其本质是一个多层感知机,成功的原因在于其所采用的局部连接权值共享的方式:

  • 一方面减少了权值的数量使得网络易于优化
  • 另一方面降低了模型的复杂度,也就是减小了过拟合的风险。
  • 特别适用于图像识别任务,能够自动提取图像特征,具有良好的鲁棒性和运算效率。

卷积和下采样的概念和方法

循环网络的基本结构,梯度消失和梯度爆炸产生的原因

LSTM的结构,三个门的作用

循环网络模型解决翻译问题的弊端

注意力机制的基本概念和方法

Transformer中的自注意力机制(Q,K,V矩阵的作用)

Transformer中编码器-解码器结构工作基本流程


http://www.kler.cn/a/457604.html

相关文章:

  • 【Hackthebox 中英 Write-Up】Web Request | 分析 HTTP 请求和响应
  • 家用电器销售系统|Java|SSM|JSP|
  • 解决tomcat双击startup.bat乱码的几种方法
  • 如何将联系人从Android转移到 OPPO? [解决了]
  • 树莓派OpenWrt下怎么驱动带USB的摄像头
  • 03-spring-理-DefaultListableBeanFactory
  • ID读卡器UDP协议Delphi7小程序开发
  • Java编程题_面向对象和常用API01_B级
  • 电动汽车用永磁同步电机控制系统研究与设计
  • Streamlining QA with Automated Testing for 3D Models
  • Vue计算属性、侦听器
  • 基于AI IDE 打造快速化的游戏LUA脚本的生成系统
  • 自学记录鸿蒙API 13:实现多目标识别Object Detection
  • 学习测试day1
  • ClickHouse 日常操作记录
  • 跟着问题学18——大模型基础transformer详解(2)多头自注意力机制
  • Linux 使用入门指南
  • 如何在 Spring Boot 中配置数据库?
  • 【bluedroid】A2dp Source播放流程源码分析(3)
  • C#控件开发2—流动管道
  • 小猫咪抽奖系统源码1.11(有卡密功能)
  • 【潜意识Java】探寻Java子类构造器的神秘面纱与独特魅力,深度学习子类构造器特点
  • 4. 指针和动态内存
  • Pytorch | 利用PC-I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击
  • 【13】Selenium+Python UI自动化测试 集成日志(某积载系统实例-07)
  • 【学习笔记】ChatGPT原理与应用开发——基础科普