【人工智能 | 机器学习】神经网络

news2024/12/23 8:00:48

文章目录

  • 1. 神经元模型
  • 2. 感知机与多层网络
  • 3. 误差逆传播算法(BP)
  • 4. 全局最小与局部极小
  • 5. 其他常见神经网络
  • 6. 深度学习


1. 神经元模型

神经网络:具有适应性的 简单单元(神经元)组成的广泛并行互连的网络,其组织能够模拟生物神经系统对真实世界物体作出的交互反应

M-P神经元模型:每个神经元与其他神经元相连。当神经元接收到来自 n 个其他神经元传递过来的 输入信号 ,信号通过 带权重的连接 进行传递,神经元接收到的总输入值与神经元的 阈值 进行比较,通过 激活函数 处理神经元输出
在这里插入图片描述

a 为理想激活函数。将输入值映射为输出值 0 或 1,0 对应神经元抑制,1 对应兴奋。
阶路函数不连续、不光滑,因此常用 Sigmoid 函数 作为激活函数。
b 为典型的 Sigmoid 函数,把可能在较大范围内变化的输入值挤压到(0,1)输出范围内,因此也称为 挤压函数
将许多个这样的神经元按一定层次结构连接,得到神经网络
在这里插入图片描述


2. 感知机与多层网络

感知机 (Perceptron):也称 阈值逻辑单元 (threshold logic unit)。由两层神经元组成。输入层接收外界输入信号后传递给输出层,输出层是 M-P神经元
在这里插入图片描述在这里插入图片描述

x1,x2 可能是上一层神经元传递过来的,也可能是从数据集中获取的。取值范围为 0到1。由 Sigmoid 函数可知
y = 1 ← Σ i w i x i − θ ≥ 0 y = 0 ← Σ i w i x i − θ ≤ 0 y = 1 \leftarrow \Sigma_iw_ix_i-\theta \geq 0 \newline y = 0 \leftarrow \Sigma_iw_ix_i-\theta \leq 0 y=1Σiwixiθ0y=0Σiwixiθ0

在这里插入图片描述

线性可分问题:
在这里插入图片描述
在这里插入图片描述
非线性可分问题:使用多层功能神经元,中间层称为隐层(隐含层)。隐含层与输出层神经元都是拥有激活函数的功能神经元

简单的两层神经元构成的感知机多层前馈神经网络 (multi-layer feedforward neural networks)。常见神经网络的层级结构。每层神经元与下一层神经元全互连,同层级之间神经元不存在连接,也不跨层连接
在这里插入图片描述

输出层神经元:接收外界输入
隐层与输出层神经元:处理加工信号
输出层神经元:输出结果
神经网络的学习过程,就是根据训练数据调整神经元之间的 连接权(connection weight),经及每个功能神经元的 阈值


3. 误差逆传播算法(BP)

多层网络的学习能力比单层感知机强。要训练多层网络,需要更强大的学习算法。

误差逆传播算法(error BackPropagation,BP):用于多层前馈神经网络训练(BP网络通常指),也可用于例如递归神经网络。

数学流程
在这里插入图片描述在这里插入图片描述在这里插入图片描述

E k E_k Ek 要剩 1 2 \frac{1}{2} 21 是为了后面方便求导
感知机学习算法的权重 Δ w i \Delta w_i Δwi 与 BP算法不同。
权重更新的方向损失函数梯度的负方向,可以 最小化损失。在多层神经网络中,误差的传播需要使用 链式法则 来计算每个权重对最终输出误差的贡献。这涉及到对损失函数进行求导,得到每个权重的梯度。通过使用损失函数的梯度,BP算法可以更好地 泛化到未见过的数据 上,因为它 考虑了整个训练集的误差,而不仅仅是单个样本的误差。在 多层网络中,误差不是线性可分的,非线性激活函数的使用使得直接使用误差更新权重不适用。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

通常学习率设为 0.1

BP 算法工作流程
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

累积BP算法 与 标准BP算法:标准 BP 针对单个样例 E k E_k Ek 推导。累积 BP 先读取整个训练集一遍再对参数更新。
累积 BP 更新频率低,但很多任务累积误差达到一定程度后再进步会很慢。标准 BP 更新频率高,但不同样例 E k E_k Ek之间可能出现更新效果相互抵消的情况

万能近似定理(universal approximation theorem) (Hornik et al., 1989;Cybenko, 1989) 证明,只需要一个包含足够多神经元隐层,多层前馈网络就能以任意精度逼近任意复杂度的连续函数。但是隐层的个数未明确得出,通常只能试错调整

由于 BP 算法太过强大,因此经常导致过拟合。训练误差持续降低,测试误差却可能上升。

通常用 早停正则化 缓解过拟合
早停(early stopping):将数据分成 训练集 和 验证集。用验证集估计训练。若训练集误差降低但验证集误差升高,则停止训练,返回最小验证集误差的连接权的阈值
正则化(regularization):
在这里插入图片描述在这里插入图片描述


4. 全局最小与局部极小

E E E 表示神经网络在训练集上的误差,是关于连接权 w w w 和 阈值 θ \theta θ 的函数。神经网络的训练可看作参数寻优过程。

两种最优:局部极小,全局最小
在这里插入图片描述我们要找的是全局最小。基于梯度的搜索,从某些初始解出发,迭代找局部极小。每次迭代都沿负梯度方向搜索找最优解。若误差函数只有一个局部极小,则局部极小为全局最小;若误差函数有多个局部极小,不能保证找到的解是全局最小。
通常用以下策略试图找到全局最小:

  1. 多组不同参数值初始化多个神经网络,取误差最小的解作为最终参数,从中进行选择
  2. 模拟退火。以一定的概率接受比当前解更差的 “次优解”。站在初始条件找另一组解。若新解比当前解更优,选择新解。若新解比当前解更差,温度高时,以一定概率接受更差的解。随时间推移,搜索范围变窄,减少接受更差解的概率。最终找到全局最优更近似最优解。模拟退火找到的不一定是全局最优,只是多次尝试增加了找到更优解的概率
  3. 随机梯度下降。计算梯度时加入随机因素,即使陷入局部极小点,计算出的梯度仍可能不为零,有机会跳出局部极小继续搜索

上述方式理论上尚缺乏保障


5. 其他常见神经网络

神经网络模型算法繁多,以下为常见的几种

作为了解,原文并未解释太多

  1. 径向基函数网络,RBF
  2. 竞争型学习,ART
  3. 自组织映射,SOM
  4. 级联相差网络
  5. Elman 网络
  6. Boltzmann 机

6. 深度学习

理论上,参数越多,模型复杂度越高,容量越大,能完成更复杂的学习任务。但复杂模型的训练效率低,容易过拟合

深度学习,用大量数据降低过拟合的风险,云计算计算能力的大幅提高缓解训练低效

典型深度学习模型:增加隐层数目。增加隐层数目比增加隐层神经元数目更有效。因为神经元连接权、阈值等参数会更多,还会增加激活函数嵌套的层数。但是多隐层神经网络难以直接用经典算法进行训练。因为误差在多隐层逆传播时,往往会发散,而不能收敛到稳定状态

无监督逐层训练(unsupervised layer-wise training):预训练:每训练一层隐结点,将上一层隐结点的输出作为输入,本层输出作为下一层输入,也可用于重构上一层的输出。微调:通常使用监督学习对整个网络微调。例如:深度信念网络 DBN

权共享(weight sharing):让一组神经元使用相同的连接权
以卷积神经网络 CNN 为例:

在这里插入图片描述在这里插入图片描述
总结深度学习就是把关联不密切的输入的数据逐层提取特征转化为关联更密切的输出目标

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2099543.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微服务组件----网关

小编目前大一,刚开始着手学习微服务的相关知识,小编会把它们整理成知识点发布出来。我认为同为初学者,我把我对知识点的理解以这种代码加观点的方式分享出来不仅加深了我的理解,或许在某个时候对你也有所帮助,同时也欢…

KTV包房开台必点套餐--SAAS本地化及未来之窗行业应用跨平台架构

一、源码 var 未来之窗app_通用ID"";CyberWin_Dialog.layer(url,{type:"url",title:title,move:false,width:"700px",height:"400px",id:未来之窗app_通用ID,mask:true,align:59,hideclose:false}); 二、解释 以下是用修仙手法为您改…

深度学习系列69:tts技术原理

tts为text-to-speech,asr为Automatic Speech Recognition,即speech-to-text。 1. 常用基础模型 下面介绍的deep voice是端到端生成语音的模型,后面两个是生成Mel谱,然后再使用vocoder生成语音的模型。 1.1 Deep voice 目前端到…

Ubuntu安装boost,protobuf、moduo

一、Ubuntu安装muduo muduo库是基于boost开发的,确保先安装了boost(对boost版本有要求),还需要先安装protobuf,curl库 库版本boost1.70.0protobuf3.14.0curl7.74.0muduo2.0.2 1、Ubuntu安装boost # 更新资源列表 s…

【2024-2025源码+文档+调试讲解】微信小程序的城市公交查询系统

摘 要 当今社会已经步入了科学技术进步和经济社会快速发展的新时期,国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统城市公交查询管理采取了人工的管理方法…

【第0005页 · 贪心】非递减数列

【前言】本文以及之后的一些题解都会陆续整理到目录中,若想了解全部题解整理,请看这里: 第0005页 非递减数列 今天我们来看一道 LeetCode 上“广泛好评”的一道 Easy 题!!!(蓝色是 OJ 平台&…

CentOS 7 升级 OpenSSH 9.8p1

背景 OpenSSH 官方发布安全通告,披露CVE-2024-6387 OpenSSH Server远程代码执行漏洞。 环境 操作系统内核openssh 版本openssl 版本7.8.20033.10.0-11277.4p11.0.2k-fips 安装编译软件和下载 OpenSSH9.8p1 软件包 mkdir -p /data/software cd /data/software/…

安卓13 鼠标右键作返回键,鼠标事件修改

总纲 android13 rom 开发总纲说明 前言 目录 1.前言2.问题分析3.代码分析4.代码修改5.编译1.前言 像有些设备是使用鼠标操作的,但是默认的android 鼠标右键并不是像电脑一样,能够做到,左键是确定,右键是返回

足球比分预测分析理论

走进一个充满欢呼声的体育场,空气中充满了对即将到来的两支强大足球队之间对决的期待。一个引人入胜的问题浮现出来:我们可以在比赛开始之前预测比赛的结果吗? 本文提出了一个基于概率和统计的模型,通过考虑每支队伍的进攻和防守能…

9.2-模型量化学习内容

量化简介 量化是将模型浮点数变为定点数运行的过程。 基本概念 :模型量化可以减少模型尺寸,进而减少在推理时的内存消耗,并且在一些低精度运算较快的处理器上可以增加推理速度。 常见方法:工业界目前最常用的量化位数是8比特&a…

期权权利金要多少?期权保证金和权利金有什么区别?

今天带你了解期权权利金要多少?期权保证金和权利金有什么区别?期权交易中,保证金和权利金是两个核心概念,它们在交易过程中扮演着不同的角色。 期权权利金一般是多少? 期权的买方叫权利金、期权的卖方叫保证金&#…

【Altium Designer脚本开发】——PCB平面绕组线圈 V1.4

PCB平面绕组线圈工具用于生成平面电机线圈,应用场景可参考平面电机的书籍、CNKI论文或平面电机的视频。此工具运行环境在Altium Designer中,可用于Altium Designer全系列的版本中。 以下工具可以定制和试用 原理图文档处理工具 ➡️物料编码自动查找工具…

Fluent 超音速射流噪声仿真分析

1. 摘要 本算例使用ANSYS Fluent 19.0软件,对超音速射流流动进行直接气动声学仿真,文档内包含详细的网格导入、模型选择、材料物性、边界条件、求解参数、后处理的设置。通过仿真计算获得射流流场和射流噪声。 2. 案例描述 本算例仿真的案例为以简化…

【Unity】子物体旋转变形的解决方法

如图,如果父物体缩放不为(1, 1,1),则子物体如果有旋转量,则会在对应坐标轴上产生变形。 解决方案是: 在子物体和父物体节点间多增加一个空节点,保证空节点的世界坐标下的缩放为&…

livox MID-360调试(解决ip设置问题)

整体的调试思路参考大疆Livox Mid360 使用指南_mid360中的imu内参-CSDN博客这篇博客。 但是在调试过程中出现了ip地址设置不对导致的报错: 1.livox viewer中看不到点云数据 2.livox SDK2 bind error。 joeyjoey:~/slam/Livox-SDK2/build/samples/livox_lidar_qu…

hugging face 利用现有模型进行预测

本篇主要记录下如何使用hugging face来快速找到我们需要的模型,并通过已有模型来快速实现demo或是功能模块。贴上hugging face 官网链接: hugging face model界面(需要魔法)需要模板代码请跳转流程总结 目录 1.选择模型 2.创建模型处理器对象 3.使用…

JAVA呵护晚年从智慧开始养老护理代办陪诊陪护小程序

呵护晚年,从智慧开始 —— 养老护理代办陪诊陪护小程序全解析 👵 【开篇:岁月静好,智慧护航】 随着时光的流转,家中的长辈渐渐步入晚年。如何给予他们最贴心的关怀与照顾,成为了我们心中的头等大事。今天…

【Linux】08.Linux 下的第一个小程序——进度条

一、知识引入 在写我们的进度条之前需要先引入一下小的知识点:换行与回车,认识缓冲区,认识格式化输出 1.1 换行与回车 换行指的是跳转到下一行的同一个位置 回车指的是跳转到本行开头的位置 新起一行就是换行回车 但是日常生活中我们见到的…

驾驭Python与MySQL的桥梁:pymysql的神秘面纱

文章目录 **驾驭Python与MySQL的桥梁:pymysql的神秘面纱**背景:为何选择pymysql?库的简介安装指南简单的库函数使用方法场景应用常见问题与解决方案总结 驾驭Python与MySQL的桥梁:pymysql的神秘面纱 背景:为何选择pym…

Django Admin对自定义的计算字段进行排序

通常,Django会为模型属性字段,自动添加排序功能。当你添加计算字段时,Django不知道如何执行order_by,因此它不会在该字段上添加排序功能。 如果要在计算字段上添加排序,则必须告诉Django需要排序的内容。你可以通过在…