《深度学习》深度学习 框架、流程解析、动态展示及推导

目录

一、深度学习

1、什么是深度学习

2、特点

3、神经网络构造

1)单层神经元

• 推导

• 示例

2)多层神经网络

3)小结

4、感知器

神经网络的本质

5、多层感知器

6、动态图像示例

1)一个神经元

相当于下列状态: 

2)两个神经元

相当于下列所示:

3)三个神经元

相当于下图所示:

7、多层感知器--偏置

8、神经网络构造

1)重点

2)如何构造中间层

二、损失函数

1、作用

2、模型训练目的

3、常用损失函数

4、具体做法

5、多分类情况下计算损失值

6、正则化惩罚

1)正则化惩罚的功能

2)L1正则化

公式为:

3)L2正则化        

公式为:

4)示例


一、深度学习

1、什么是深度学习

        深度学习是一种人工智能的子领域,它基于人工神经网络的概念和结构,通过模拟人脑的工作方式来进行机器学习

2、特点

        深度学习的主要特点是使用多层次的神经网络来提取和学习数据中的特征,并通过反向传播算法来优化网络参数,从而实现对复杂数据的建模与分类。深度学习在图像识别、语音识别、自然语言处理等领域取得了显著的成果,并被广泛应用于各种领域。

3、神经网络构造

        神经网络是一种由多个神经元(或称为节点)组成的计算模型,它模拟生物神经系统中神经元之间的连接方式。神经网络有输入层、隐藏层和输出层组成,其中输入层用于接收外界的输入信号,输出层用于输出预测结果,隐藏层则用于处理输入信号并产生中间结果。

1)单层神经元

例如下图所示:

        神经元1为输入层,而外部传入的x1、x2、x3、x4、x5、……全部都是外界即将传入神经元的电信号,这些电信号在传入途中可能会有所损耗,而损耗完剩下的才会传入神经元,这些传入的实际信号就用w1x1、w2x2、w3x3、w4x4、w5x5、……来表示,w叫做权重

        • 推导

                有下列一堆数据,存在一条直线将他们分开成两类,而这条线叫线的表达式可以表示为y=kx+b

        将这个线性回归模型的表达式改变一下就得到了我们的神经网络模型计算方式

        y=kx+b -> 0=kx+b-y -> k1x+k2y+b=0 -> w1x1+w2x2+b=0 -> w1x1+w2x2+1*w0=0

        这里的1为人为设定的偏执项       

  

        • 示例

        如图传入信号为x1,x2,x3,他们分别通过权重w改变以后得到w1x1+w2x2+w3x3,然后再将这个结果映射到非线性函数上,这个非线性函数大多数用的都是sigmoid函数,从而得到最终结果,用sigmoid函数的原因是为了完成逻辑回归,因为 上图的模型为线性模型,他不能进行逻辑回归,所以只能将其映射到sigmoid函数中使其转变为逻辑回归

        sigmoid函数图像:

2)多层神经网络

        如图所示,第一列的五个圆圈叫输入层,最后一列的三个圆圈叫输出层,神经元则在中间三列,每一个神经元的运行方式和上述单层网络一样,如下图所示,上图的5个信号乘以权重的结果求和,然后再对求和的值映射到sigmoid函数,然后第一个神经元接收到这样的信息,然后第一列的每一个神经元都需要得到所有信号的处理,最后再将这通过映射得到的五个值当做信号x再次计算权重求和映射传给下一个神经元,传送到最后到输出层得到结果。(这里的为初期的神经网络构架)

3)小结

        神经网络:是由大量的节点(或称“神经元”)和之间相互的联接构成。
        每个节点代表一种特定的输出函数,称为激励函数、激活函数(activation function)。就相当于下图的红框内的函数:


        

        每两个节点间的联接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。相当于下列红框内的线条及其上所对应的w:

4、感知器

        由两层神经元组成的神经网络 -- “感知器”(Perceptron), 感知器只能线性划分数据。

        因为上述公式是线性代数方程组,因此可以用矩阵乘法来表达这两个公式:

        输出公式表达:

        输出的结果与训练集标签进行损失函数计算,与逻辑回归基本一致。

神经网络的本质

        通过参数激活函数拟合特征与目标之间的真实函数关系。但在一个神经网络的程序中,不需要神经元和线,本质上是矩阵的运算,实现一个神经网络最需要的是线性代数库。

5、多层感知器

         相对于上述感知器,多层感知器则增加了一个中间层,即隐含层,神经网络可以做非线性分类的关键--隐含层。

而矩阵的相乘也略微做了增加,如下所示:

6、动态图像示例

1)一个神经元

        图中的线型为模型,动态表示正在训练

        相当于下列状态: 

                一个输入层,一个输出层,一个神经元

2)两个神经元

        同样是一条线的形态去分类

        相当于下列所示:

                一个输入层,一个输出层,两个神经元

3)三个神经元

        相当于下图所示:

                一个输入层,一个输出层,三个神经元

        如需增加一个结果,则只需在输出层增加一个神经元即可。

7、多层感知器--偏置

        在神经网络中需要默认增加偏置神经元(节点),这些节点是默认存在的。

        它本质上是一个只含有存储功能,且存储值永远为1的单元

        在神经网络的每个层次中除了输出层以外,都会含有这样一个偏置单元。

        偏置节点没有输入(前一层中没有箭头指向它)。 一般情况下,我们都不会明确画出偏置节点。

8、神经网络构造

        1)重点

                • 设计一个神经网络时,输入层与输出层的节点数往往是固定的中间层则可以自由指定

                • 神经网络结构图中的拓扑与箭头代表着预测过程时数据的流向,跟训练时的数据流有一定的区别

                 • 结构图里的关键不是圆圈(代表“神经元”)而是连接线(代表“神经元”之间的连接)每个连接线对应一个不同的权重(其值称为权值),这是需要训练得到的。

       
        2)如何构造中间层

               • 输入层的节点数:与特征的维度匹配

                输出层的节点数:与目标的维度匹配。

                中间层的节点数:目前业界没有完善的理论来指导这个决策。一般是根据经验来设置。较好的方法就是预先设定几个可选值,通过切换这几个值来看整个模型的预测效果,选择效果最好的值作为最终选择。

二、损失函数

1、作用

        它用于量化模型预测值与真实标签之间的差异,并指导模型的优化过程。

2、模型训练目的

        使得参数尽可能的与真实的模型逼近。

3、常用损失函数

        0-1损失函数、均方差损失、平均绝对差损失、交叉熵损失、合页损失

4、具体做法

        1)首先给所有参数w赋上随机值。我们使用这些随机生成的参数值,来预测训练数据中的样本,当预测结果与真实值差距大,则需要去调整w的值来使其接近真实值

        2)计算预测值为yi,真实值为y。那么,定义一个损失值loss,损失值用于判断预测的结果和真实值的误差,误差越小越好。

        例如,有下列一堆数据,其中包含训练集和测试集,训练集和测试集又被分为训练特征集和训练标签,以及测试特征集和测试标签,而这里的标签集则表示真实值,将特征集作为输入信号,放入输入层对其进行训练,最后得到训练结果 ,训练结果叫预测值,然后再将预测值与真实值作比较。

        使用均方差损失函数计算损失值

        有上述得到预测值后,对真实值与预测值作差然后做平方,计算每一条数据的差值平方加起来,然后再除以数据的条数即可得到损失值。

        对于均方差损失函数,当标签是连续型的值,或者回归类型的值时很适用,但是当数据是离散型的那么使用它将效果差。

5、多分类情况下计算损失值

        分类的情况下一般使用softmax交叉熵损失函数

        公式:

完整流程:

        例如输出端输入的是猫、狗、羊,分别代号为0,1,2,输入端为一张图片,利用模型来判断这张图片中的动物是这三种动物的哪一种,输入一张图后得到三条数据,分别表示猫、狗、羊的值,然后将这三个值使用e的次方进行放大,以此来拉开差距,然后对放大后的数据进行归一化得到各个结果的概率,然后此时如果图片真实为猫的照片,那么第一行所表示的则为猫的概率,然后对这三个概率求负对数的值,这个负对数的值就是交叉熵损失值。

        log与-log图像如下图所示

        

        如果传入照片,猫的神经元输出数值相比其他越大, 计算的损失值会越小,也表明越靠近真实结果。 如果训练时,类别分错了,则会出现大的损失值。

6、正则化惩罚

        正则化惩罚用于避免模型过拟合到训练数据,从而提高模型的泛化能力。正则化惩罚通过在目标函数中引入一个正则化项,以限制模型参数的大小或复杂度。

1)正则化惩罚的功能

        主要用于惩罚权重参数w,一般有L1和L2正则化。

2)L1正则化

        L1正则化通过在目标函数中加入参数的L1范数(绝对值之和),使得模型更倾向于产生稀疏的权重矩阵,即将一部分参数置为0,从而减少模型的复杂度。这可以帮助筛选出对模型影响较大的特征,提高模型的鲁棒性和可解释性。

        公式为:

                L1 = ∑ |w|    w为权重参数

3)L2正则化        

        L2正则化通过在目标函数中加入参数的L2范数(平方和的开方),使得模型更倾向于产生较小的权重值。这可以有效地控制模型参数的大小,避免出现过大的参数值,从而减少模型对训练数据的过拟合。

        公式为:

                L2 = 1/2 *w**2   w为权重参数

4)示例

        有如下模型:

        当输入为 x = [ 1,1,1,1 ] ,现有两种不同权重值,如下所示

        w1 = [ 1,0,0,0 ]

        w2 = [ 0.25,0.25,0.25,0.25 ]

        w1和w2与输入的乘积都为1,但w2 与每一个输入数据进行计算后都有数据,使得w2会学习到每一个特征信息。而w1只和第1个输入信息有关系,容易出现过拟合现象,因此w2的效果会比w1 好。

        此时就使用均方差损失函数来计算损失值更合适,因为它适用于连续型的值

此时的公式与上述略有不同,即增加了一个正则化惩罚项

        当使用L1正则化时即增加一个λ*L1

        当使用L2正则化时即增加一个λ*L2

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Minio环境搭建(单机安装包、docker)(一)

前言: 项目中客户不愿意掏钱买oss,无奈只能给他免费大保健来一套。本篇文章只是记录验证可行性,毕竟minio太少文档了,参考着官网来。后面还会再出一套验证集群部署的文章。 一、资料 MinIO官网: MinIO | S3 Compatib…

CSP-J算法基础 树状结构与二叉树

文章目录 前言树状结构树状结构的基本概念:为什么需要树状结构?优点树状结构的示例 二叉树什么是二叉树?二叉树的类型什么样的树不是二叉树?二叉树的五种形态 完全二叉树相关概念完全二叉树的定义: 相关概念1. **高度&…

使用iperf3测试局域网服务器之间带宽

文章目录 一、下载安装1、windows2、centos 二、使用0、参数详解1、centos 一、下载安装 1、windows https://iperf.fr/iperf-download.php 拉到最下面选最新版: 2、centos yum install iperf3二、使用 0、参数详解 服务器或客户端: -p, --port #…

初识网络原理

网络的发展史 电报时代(19世纪中叶):电报是最早的远程通信方式之一,它通过电线传输编码信息,极大地缩短了信息传递的时间电话的发明(1876年):亚历山大格拉汉姆贝尔发明了电话&#…

前端单独实现 vue 动态路由

前端单独实现 vue 动态路由 Vue 动态路由权限是指在 Vue 应用程序中,根据用户的权限动态生成和控制路由的行为。这意味着不是所有的路由都在应用启动时就被硬编码到路由配置中,而是根据用户的权限信息,在运行时动态地决定哪些路由应该被加载…

VirtualBox Install MacOS

环境搭建 git clone https://github.com/myspaghetti/macos-virtualbox 脚本配置 修改macos-guest-virtualbox.sh部分内容为 vm_name"macOS" # name of the VirtualBox virtual machine macOS_release_name"Catalina" # install &quo…

EmguCV学习笔记 C# 11.6 图像分割

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

《微信小程序实战(2) · 组件封装》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

天津大学推出“AI学长”

B站:啥都会一点的研究生公众号:啥都会一点的研究生 AI圈又发生了啥新鲜事? 天津大学推出“AI 学长”海棠棠,全天候解答新生疑问 天津大学未来技术学院研发了名为“海棠棠”的新生智能体,它能够24小时不间断地为新生…

Oracle 19c异常恢复—ORA-01209/ORA-65088---惜分飞

由于raid卡bug故障,导致文件系统异常,从而使得数据库无法正常启动,客户找到我之前已经让多人分析,均未恢复成功,查看alert日志,发现他们恢复的时候尝试resetlogs库,然后报ORA-600 kcbzib_kcrsds_1错误 2024-09-15T17:07:32.55321508:00 alter database open resetlogs 2024-09-…

【iOS】push和present的区别

【iOS】push和present的区别 文章目录 【iOS】push和present的区别前言pushpop presentdismiss简单小demo来展示dismiss和presentdismiss多级 push和present的区别区别相同点 前言 在iOS开发中,我们经常性的会用到界面的一个切换的问题,这里我们需要理清…

C++11新增特性:lambda表达式、function包装器、bind绑定

一、lambda表达式 1)、为啥需要引入lambda? 在c98中,我们使用sort对一段自定义类型进行排序的时候,每次都需要传一个仿函数,即手写一个完整的类。甚至有时需要同时实现排升序和降序,就需要各自手写一个类&…

信息学奥赛初赛天天练-91-CSP-S2023基础题3-编译命令、树的重心、拓扑排序、进制转换、R进制转十进制、十进制转R进制

PDF文档公众号回复关键字:20240917 2023 CSP-S 选择题 1单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项) 11 以下哪个命令,能将一个名为 main.cpp 的 C 源文件,编译并生成一个…

[Unity Demo]从零开始制作空洞骑士Hollow Knight第二集:通过InControl插件实现绑定玩家输入以及制作小骑士移动空闲动画

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、通过InControl插件实现绑定玩家输入二、制作小骑士移动和空闲动画 1.制作动画2.玩家移动和翻转图像3.状态机思想实现动画切换总结 前言 好久没来CSDN看看&…

利用JS数组根据数据生成柱形图

要求 <html> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document…

Python 基础 (标准库):datetime (基本日期和时间类型)

1. 官方文档 datetime --- 基本日期和时间类型 — Python 3.12.2 文档 tz — dateutil 3.9.0 documentation 2. 背景 2.1 处理时间数据的难点 计算机程序喜欢有序的、有规则的事件&#xff0c;但对于时间数据&#xff0c;其涉及的规则复杂且可能有变化&#xff0c;最典型例…

【homebrew安装】踩坑爬坑教程

homebrew官网&#xff0c;有安装教程提示&#xff0c;但是在实际安装时&#xff0c;由于待下载的包的尺寸过大&#xff0c;本地git缓存尺寸、超时时间的限制&#xff0c;会报如下错误&#xff1a; error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly&#xf…

2024永久激活版 Studio One 6 Pro for mac 音乐创作编辑软件 完美兼容

Studio One 6是一款功能强大的音乐制作软件&#xff0c;由PreSonus公司开发。它提供了全面的音频录制、编辑、混音和母带处理工具&#xff0c;适用于音乐制作人、音频工程师和创作人员。 Studio One 6拥有直观的用户界面&#xff0c;使用户能够快速而流畅地进行音乐创作。它采…

华为HarmonyOS地图服务 -- 如何实现地图呈现?-- HarmonyOS自学8

如何使用地图组件MapComponent和MapComponentController呈现地图&#xff0c;效果如下图所示。 MapComponent是地图组件&#xff0c;用于在您的页面中放置地图。MapComponentController是地图组件的主要功能入口类&#xff0c;用来操作地图&#xff0c;与地图有关的所有方法从此…

基于 onsemi NCV78343 NCV78964的汽车矩阵式大灯方案

一、方案描述 大联大世平集团针对汽车矩阵大灯&#xff0c;推出 基于 onsemi NCV78343 & NCV78964的汽车矩阵式大灯方案。 开发板搭载的主要器件有 onsemi 的 Matrix Controller NCV78343、LED Driver NCV78964、Motor Driver NCV70517、以及 NXP 的 MCU S32K344。 二、开…