首页 > 其他分享 >《深度学习》深度学习 框架、流程解析、动态展示及推导

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

时间:2024-09-13 13:54:22浏览次数:11  
标签:函数 推导 模型 正则 损失 学习 神经网络 深度 神经元

目录

一、深度学习

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

标签:函数,推导,模型,正则,损失,学习,神经网络,深度,神经元
From: https://blog.csdn.net/qq_64603703/article/details/142183977

相关文章

  • 2024网络安全学习路线 非常详细 推荐学习_网络安全教程谁的好
    关键词:网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线首先咱们聊聊,学习网络安全方向通常会有哪些问题1、打基础时间太长学基础花费很长时间,光语言都有几门,有些人会倒在学习linux系统及命令的路上,更多的人会倒在学习语言上;2、知识点掌握程度不清楚对于......
  • 黑客零基础入门教程,从入门到精通学习路线&规划,看完这篇就够了。
    很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习,最终也只是会无疾而终!黑客是一个大的概念,里面包含了许多方向,不同的方向需要学习的内容也不一样。想要成为黑客,却苦于没有方向,不知道从何学起,下面这篇黑客入门教程可以帮你实现自己的黑客梦想,如果想学,可以继续看下去......
  • asp6学习
    http://localhost:81/khzj/mapmoveend.asphttp的报头会有一些客户端的信息,将ASP6网站部署在公网服务器上,通过Request.ServerVariables("REMOTE_ADDR")或Request.ServerVariables("REMOTE_HOST")可获取客户端的公网IP。使用ASP的Server.CreateObject方法可以创建对象的实......
  • 机器视觉的学习路线
    学习计算机视觉可以分为多个阶段,每个阶段都有其核心主题和推荐的学习资源。以下是一个系统的学习路线:1.基础知识1.1数学基础线性代数:矩阵运算、特征值与特征向量概率与统计:概率分布、贝叶斯定理微积分:导数、偏导数、链式法则1.2编程基础Python:学习基本语......
  • 学习笔记 - 知识图谱的符号表示方法
    学习笔记-知识图谱的符号表示方法说明:首次发表日期:2024-09-13个人阅读学习并摘录成笔记知识表示的相关名词定义以下内容摘录自KnowledgeGraphsApplied2.3小节,然后AI翻译+人工润色。实体(Entities)---表示知识的核心概念,其他所有东西都是围绕其构建的。实体可以是......
  • 【机器学习实战】用sklearn玩转随机森林,分类准确率提升秘籍!
    在机器学习的世界里,随机森林算法以其出色的分类和回归能力而闻名。我们将深入sklearn库中的随机森林,探索如何通过实战提升模型的分类准确率。一随机森林算法简介随机森林是一种集成学习方法,通过构建多个决策树并综合它们的预测结果来提高预测准确性。每个决策树都是在训......
  • 机器学习中的聚类艺术:探索数据的隐秘之美
    一什么是聚类聚类是一种经典的无监督学习方法,无监督学习的目标是通过对无标记训练样本的学习,发掘和揭示数据集本身潜在的结构与规律,即不依赖于训练数据集的类标记信息。聚类则是试图将数据集的样本划分为若干个互不相交的类簇,从而每个簇对应一个潜在的类别。聚类直观上来......
  • Java 并发编程深度解析:synchronized 关键字的内部原理与应用
    引言在并发编程中,当多个线程访问同一个共享资源时,我们必须考虑如何维护数据的原子性。Java是通过synchronized关键字实现锁功能来做到这点的,synchronized是JVM实现的一种内置锁,锁的获取和释放由JVM隐式实现。锁的本质如上图所示,多个线程要访问同一个资源。线程就......
  • Vue学习笔记2:安装Visual Studio Code
    工欲善其事,必先利其器。要学习Vue,也要准备好学习环境。这里我使用的是VisualStudioCode。1下载 VisualStudioCodeVisualStudioCode可以到 https://code.visualstudio.com/download 下载。对于Windows来说,有一个问题,就是这里提供的都是64位版本。而我使用的是32位的Window......
  • AD学习笔记1
    建立原理图与PCB修改PCB尺寸大小原理图画线工具自定义快捷键设置元器件库的使用双击可进行更改尺寸之类的,table键也可以不用的端口打上叉叉结束后把原理图更新到PCB上PCB前期先敲定好pcb尺寸和形状在Keepoutlayer层设置边界(避免裁剪到布局的线)绘制(在t......