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

news2024/9/20 19:36:01

目录

一、深度学习

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.coloradmin.cn/o/2130765.html

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

相关文章

通信原理:绪论

1、消息、信号与信息 消息: 通信系统要传输的对象,是具体的、物理上存在的东西。也是信息的载体。形式多种: 连续消息:语音、温度、活动图片.离散消息:数据、符号、文字. 信息: 消息中所蕴含的内容&…

proteus+51单片机+实验(LCD1620、定时器)

目录 1.LCD1602液晶显示屏 1.1基本概念 1.1.1LCD的简介 1.1.2LCD的显示原理 ​​​1.1.3LCD的硬件电路 1.1.4LCD的常见指令 1.1.5LCD的时序 ​​​​​​​1.2代码 1.2.1写命令和写数据操作 1.2.2初始化和测试代码 1. 3.3功能函数 1.3proteus代码 1.3.1器件代码 1.…

几种手段mfc140u.dll丢失的解决方法,了解mfc140u.dll

在使用Windows操作系统时,许多用户可能会遇到“找不到mfc140u.dll”或“mfc140u.dll未找到”的错误提示。这个错误通常是由于该文件丢失或损坏所致。本文将详细介绍mfc140u.dll文件的作用、丢失的原因及其解决方法,帮助您快速恢复系统的正常运行。 一、m…

无人机视角的道路损害数据集,2400张图像,包括纵向裂缝(LC)、横向裂缝(TC)、鳄鱼裂缝(AC)、斜裂(OC)、修补(RP)和坑洞(PH),共2.3GB

数据集名称 无人机视角的道路损害数据集 数据集描述 这是一个专注于道路损害检测的数据集,包含了从无人机视角拍摄的2400张高清图像,涵盖了六种典型的道路损害类型:纵向裂缝(LC)、横向裂缝(TC&#xff0…

c++ 点云生成二维俯视图

🙋 结果预览 一、代码实现 #include <pcl/io/pcd_io.h> #include <pcl/point_types.h> #include

S7_1200配方功能快速入门

配方数据文件按照标准 CSV 格式存储在 S7-1200 CPU 装载存储器或 S7-1200 SIMATIC 存储卡“程序卡”中。分别可通过 PLC Web 服务器或对于存储卡文件操作&#xff0c;将数据文件传送到 PC 进行管理和查看。也可将修改过后的配方数据文件上传至PLC&#xff0c;再通过“RecipeImp…

【数据结构】详细介绍各种排序算法,包含希尔排序,堆排序,快排,归并,计数排序

目录 1. 排序 1.1 概念 1.2 常见排序算法 2. 插入排序 2.1 直接插入排序 2.1.1 基本思想 2.1.2 代码实现 2.1.3 特性 2.2 希尔排序(缩小增量排序) 2.2.1 基本思想 2.2.2 单个gap组的比较 2.2.3 多个gap组比较(一次预排序) 2.2.4 多次预排序 2.2.5 特性 3. 选择排…

【AcWing】869. 试除法求约数

约数&#xff1a;当前数能整除这个数。 和判断质数一样的道理&#xff0c;同样是试除法。 约数也一定是成对出现的。在枚举的时候也可以只枚举较小的那一个约数就可以了&#xff0c;较大的那个约数直接算。 #include<iostream> #include<algorithm> #include<…

无人机之处理器篇

无人机的处理器是无人机系统的核心部件之一&#xff0c;它负责控制无人机的飞行、数据处理、任务执行等多个关键功能。以下是对无人机处理器的详细解析&#xff1a; 一、处理器类型 无人机中使用的处理器主要包括以下几种类型&#xff1a; CPU处理器&#xff1a;CPU是无人机的…

JDBC API详解一

DriverManager 驱动管理类&#xff0c;作用&#xff1a;1&#xff0c;注册驱动&#xff1b;2&#xff0c;获取数据库连接 1&#xff0c;注册驱动 Class.forName("com.mysql.cj.jdbc.Driver"); 查看Driver类源码 static{try{DriverManager.registerDriver(newDrive…

中间件常见漏洞

文章目录 中间件漏洞IIS文件解析漏洞1&#xff1a;/xx.asp/xx.jpg 、/xx.asa/xx.jsp2&#xff1a;xx.asp;.jpg3&#xff1a;xx.asa、xx.cer、xx.cdx4&#xff1a;IIS.7/8 CGI配置不当解析漏洞 Apache文件解析漏洞1&#xff1a;apache2.2版本解析漏洞2&#xff1a;其余配置问题…

IMX6 L508EN 模块调试(4G)

一、概述 提起 4G 网络连接&#xff0c;大家可能会觉得是个很难的东西&#xff0c;其实对于嵌入式 Linux 而言&#xff0c;4G 网络连接恰恰相反&#xff0c;不难&#xff01;大家可以看一下其他的嵌入式 Linux 或者 Android 开发板&#xff0c;4G 模块都是 MiniPCIE 接口的&…

C++从入门到起飞之——继承上篇 全方位剖析!

&#x1f308;个人主页&#xff1a;秋风起&#xff0c;再归来~&#x1f525;系列专栏&#xff1a;C从入门到起飞 &#x1f516;克心守己&#xff0c;律己则安 目录 1、继承的概念 2、继承定义 2.1 定义格式 2.2 继承基类成员访问⽅式的变化 3、继承类模板 4、 基…

linux网络编程——UDP编程

写在前边 本文是B站up主韦东山的4_8-3.UDP编程示例_哔哩哔哩_bilibili视频的笔记&#xff0c;其中有些部分博主也没有理解&#xff0c;希望各位辩证的看。 UDP协议简介 UDP 是一个简单的面向数据报的运输层协议&#xff0c;在网络中用于处理数据包&#xff0c;是一种无连接的…

操作系统 ---- 处理机调度

一、处理机调度学习路线 二、调度要研究的问题&#xff1f; 当有一堆任务要处理&#xff0c;但由于资源有限&#xff0c;这些事情没法同时处理。这就需要确定某种规则来决定处理这些任务的顺序&#xff0c;这就是“调度”研究的问题。 三、调度的三个层次 3.1 高级调度&…

深入解读Docker核心原理:Namespace资源隔离机制详解

在容器技术中&#xff0c;资源隔离 是容器化能够实现轻量级虚拟化的关键技术之一。通过资源隔离&#xff0c;容器可以拥有自己的独立环境&#xff0c;确保容器之间互不干扰&#xff0c;从而实现应用的安全和稳定。Docker作为主流的容器平台&#xff0c;其核心的资源隔离机制依赖…

LabVIEW软件授权与分发要求

在LabVIEW开发中&#xff0c;将软件打包成安装程序并销售给其他公司&#xff08;例如对知识产权有严格要求的国外公司&#xff09;时&#xff0c;涉及授权和许可的多个关键环节。NI对LabVIEW的开发、分发、安装和使用都有明确的授权要求&#xff0c;以确保知识产权的合法性和软…

CentOS 7 最小化安装后如何安装图形化桌面

CentOS 7 最小化安装后如何安装图形化桌面 一、准备工作1. 登录系统2. 配置网络 二、安装图形化桌面1. 安装 X Window System2. 安装 GNOME 桌面 三、配置默认启动模式1. 查看当前启动模式2. 修改默认启动模式 四、重启系统并验证 &#x1f496;The Begin&#x1f496;点点关注…

基于微信小程序的高校实验室管理系统的设计与实现

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSpringBootVueMySQL的高…

FreeRTOS学习笔记(十一)内存管理

文章目录 前言一、内存管理1.1 内存管理的引入1.2 内存碎片 二、内存分配的方法2.1 heap_12.1.1 实现原理2.1.2 源码解析 2.2 heap_2 内存分配方法2.2.1 实现原理2.2.2 源码解析 2.3 heap_3 内存分配方法2.4 heap_4 内存分配方法2.4.1 实现原理2.4.2 源码解析 2.5 heap_5 内存分…