2023.11.29 深度学习框架理解

2023.11.29 深度学习框架理解

对深度学习框架进行复习,选最简单的“三好学生”问题的四个变化,简要总结其具体思路。

深度学习一开始就是为分类问题研究的,因此其框架的设计都是基于分类的问题,虽然现在也已经演变为可以执行多种问题。
目前学习到的深度学习框架实际上分为两部分:正向传播和反向传播。

1. 正向传播

一般基于 y=wx+b 样式的数学架构,即假设对于一切的事物( y )都是可以用数学公式表示的,当然对于哲学家来说,能用数学表示的世界才是美的。 因此深度学习的方法的本质就是找到各个 w ,即每个参数 x 之间的权重关系。对于 b ,由于其实际上是一个固定参数,所以并不需要将其看成一个变量。 反过来过任何计算方法都应该有其合理性和可解释性。

2. 反向传播

如何评价模型的好坏,最简单的办法就是看结果与实际值偏差的大小,比如 (y-y预测) 的绝对值,即损失函数,模型计算的最终目的就是让损失函数最小,为达到这个目的,可以采用梯度下降法或其衍生的多种计算不断地对正向传播的计算结果进行损失函数的计算,并将计算结果反馈到正向传播的过程中,从而去修正最终的计算结果。

3. 学习率

学习率决定每次反向传播算法的“步长”,即每次计算结果的变化幅度,如果学习率太小,学习结果收敛太慢,学习率太大,则有可能一下就跨过最优解,从而无法获得最佳的计算结果。

4. 基础案例

案例1:最简单的深度学习模型(“三好学生”问题)

如下图,例如对“三好学生”问题,假设知道某学生三门科目的真实成绩和学校提供的综合成绩,但是并不知道学校是以什么权重对三门科目进行计算获得综合成绩的。即x1,x2,x3和y是已知的,求解w1,w2,w3。这个问题实际上只要有三组分数就能直接列方程组计算出来,因此是个最简单的数学模型,该问题是一个线性问题。深度学习的作用相当于是在仅有一组数据的情况下,最快找到w1,w2,w3。

计算机为了找到w1,w2,w3,可以选择穷举法,但是在多变量下这个方法计算量会非常大,加入反相传播进行求解,能将运算简化,即便使用反向传播算法,仍然要经过大量的计算。因此深度学习是以大数据和大计算量为基础的。

另外从数学关系上可知,w1,w2,w3作为权重变量,三者之和应为 1 ,因此可以用tf.nn.softmax对w1,w2,w3进行约束,相对于多了一个方程,即 w1+w2+w3=1,要注意的是该方法只有在 x1,x2,x3 能完全描述 y 的时候使用才能获得正确的结果。例如同样是“三好学生”,如果仅提供两个科目的成绩,使用该方法就与现实逻辑不符。数据多没有影响,可以认为多出的参数权重为 0 ,现实是大部分情况下,我们并不知道自己拥有的参数是否能对事物进行一个完整的描述。因此我们一般都假设这个做法是正确的,这个方法在各个参数权重比较明确的情况下运行良好。如果权重并不明确,模型也有可能收敛,但是并不能获得一个比较好的精度。所以tf.nn.softmax一般用在分类结果的预测。类别是人为定义的,相对来讲存在逻辑问题较小。当然如果训练集分类有误,对结果的影响也比较大。
在这里插入图片描述

案例2:“三好学生”问题提升版

将“三好学生”问题难度提升,只给出多组的学生的成绩,即多组 x1,x2,x3 ,和他们是否是“三好学生”的结论,但是不提供 w1,w2,w3 和 y 。另外前面的问题中,只是给出了综合成绩,但是具体综合成绩达到多少分以上才是“三好学生”并没有给出这个标准,这个时候该问题就不能单纯通过数学计算活动,另外这个问题变成一个离散问题。需要引入激活函数的概念。框架变化如下图。
在这里插入图片描述

激活函数
深度学习算法对于线性问题的处理效果较好,这是由其模型决定的,因此对于非线形问题,需要引入激活函数。例如本例,实际上两个类别的分布并不是线形的。

激活函数有很多种,但是本质是一样的,都是使计算结果 y 在一定的数值范围内产生较大的变化范围,而在该范围以外,基本处于固定值。例如sigmoid激活函数。如下图。其在(-5,+5)之间有较大的变化,而在这个范围以外,就是 0 和 1 ,即通过数据阶跃,实现了对结果的分类。对二值化的问题该框架有效。

而这个阶跃函数,在“三好学生”问题上,体现的实际就是具体综合成绩达到多少分以上才是“三好学生”的标准。
在这里插入图片描述

案例3:“三好学生”问题再次提升难度,增加“双优学生”评选

这个时候相当于有三分类的问题,分为“三好学生”,“双优学生”,“普通学生”三种,同样仅给出所有学生的三科成绩和部分学生的具体类别,要求对剩余学生的类别进行预测。计算框架如下,可以看出该框架实际上是求出了三组权重,分别是 [w11,w21,w31] 、[w12,w22,w32] 、 [w13,w23,w33],计算原理同之前的两个案例,求出的三个类别 [y1,y2,y3] 可以用tf.nn.softmax将三者的概率之和设置为1,预测结果选择其中概率最大的一项即可。
在这里插入图片描述

另外两分类的模型也可以用这个形式去写,只是没有必要。两分类问题输出不是 1 就是 0 ,因此求出两组权重并没有意义,比如非“三好学生”,实际上计算的权重也是同“三好学生”一样的,不是“三好学生”就是非“三好学生”,如果有两组权重,有可能就会出现在这权重以外,即不是“三好学生”,又不是非“三好学生”的情况,这个就和现实情况不符合了。当然这个问题可以用tf.nn.softmax将两者的概率之和设置为1,规避上述的问题。

总而言之,更多的分类也可以使用这个方法,这个方法的本质就是各个分类求取权重,如果数据足够多,运算次数足够多,就能获得较理想的结果。简化来说实际上也是二分类问题,例如求解 y1 ,实际上可以看成先求 y1 和非 y1 两种类型。其余类别同理。因此这个方法就存在需要大量运算的缺点。

以上三个案例都是单层神经网络的计算。

案例4:全链接算法

前面三个算法都是基于 y=wx+b 模型,很显然,现实情况并不是所有关系都能用一次方的公式去解释,因此需要使用全链接算法。可以看到这个方法真是比较天才的想法,原有基础的深度学习模型,相当于将隐藏层的行数作为神经元的个数,而使用全链接法后相当于列数作为神经元的个数,灵活运用矩阵的计算方法,使得神经元数量得到有效的提升,并可以扩展隐藏层的数量。对于前三个案例的简单模型,实际上也可以增加多个多个隐藏层,但是隐藏层的神经元数量受输入层数量的限制,当然也可以变通,第二个隐藏层参考全链接的方法,提升神经元的数量,但是如果要这样操作,直接在第一步就这样进行即可,即一开始就使用全链接的方式。全链接的模型将模型变换成 y=w^n *x+b ,即 w 不再是一次方,而可以是多次方。如果调整一下变量,可以看到公式变为 y=x * w^n+b ,这个方程就很熟悉,变成一个w的 n 元多次方程,x 是已知量,相当于系数。(这个描述只是为了便于理解,数学上不严谨,矩阵也不能这样调换位置),通过一个多元多次方程,在描述世界上是可行的。历史上很多数学大神都用各种公式,比如拉格朗日方程等描述过世界。因此理论上神经元的数量远多,层数越深,最终的预算结果就越好。

与单层神经网络不同。理论证明,两层神经网络可以无限逼近任意连续函数。
在这里插入图片描述

5. 代码

这是两年前写的笔记,代码比较久远,有时间再重新编写补充。

案例1的代码如下另一文

https://editor.csdn.net/md/?articleId=134723489

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

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

相关文章

SpringBoot 拦截器高级篇

Springboot 拦截器 定义使用场景拦截器与过滤器的区别实现步骤全局拦截器的局限性全局拦截器VS局部拦截器局部拦截器自定义局部拦截器使用多个局部拦截器 定义 拦截器是Spring MVC框架中的一个重要组件,它是一种AOP(面向切面编程)的实现方式&…

基于python+Django+SVM算法模型的文本情感识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介1. 简介2. 技术栈3. 系统架构4. 关键模块介绍5. 如何运行 二、功能三、系统四. 总结 一项目简介 # 基于 Python Django SVM 算法模型的文本情感识别系统介…

kibana安装

kibana安装下载注意事项 地址:curl -O https://artifacts.elastic.co/downloads/kibana/kibana-7.16.3-linux-x86_64.tar.gz 下载后直接解压启动即可 1. 但需要使用非root用户启动 ,root用户启动会报错 2. kibana需要和elasticsearch版本一致 不然…

Blender 连续 5 天遭受大规模 DDoS 攻击

Blender 发布公告指出,在2023年11月18日至23日期间,blender.org 网站遭受了持续的分布式拒绝服务(DDoS)攻击,攻击者通过不断发送请求导致服务器超载,使网站运营严重中断。此次攻击涉及数百个 IP 地址的僵尸…

基于ASP.Net的图书管理系统的设计与实现

摘 要 图书馆管理系统是一整套高科技技术与书本管理知识结合的产物。它把传统书籍静态的服务这个缺陷完美化,完成多媒体数据的交互、远程网络连接、检查搜索智能化、多数据库无障碍联系、跨时空信息服务。图书管理系统用计算机程序替代了传统手工记录的工作模式&am…

【Openstack Train安装】二、NTP安装

网络时间协议:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与…

创建可以离线打包开发的uniapp H5项目

安装node环境 略 安装vue脚手架,在线 npm install -g vue/cli PS:vue-cli已进入维护模式,vue3最新脚手架使用npm init vuelatest安装,安装后使用create-vue替换vue指令,create-vue底层使用vite提升前端开发效率&…

ctfshow刷题web入门--1--ljcsd

文章目录 ctf.show。信息搜集web1web2web3web4web5web6web7web8web9web10web11web12web13web14web15web16web17web18web19web20。爆破。知识1.1 播种随机数生成器-mt_srand。参考web21--重点web22--做不出来web23web24web25web26web27web28。。。命令执行。知识1 绕过正则表达式…

解决Activiti5.22流程图部署在Windows上正常,但在linux上部署后出现中文变方块的问题

总结/朱季谦 楼主最近在做公司的工作流平台,发现一个很无语的事情,Activiti5.22的流程图在Windows环境上部署,是可以正常查看的,但发布到公司的Linux服务器上后,在上面进行流程图在线部署时,发现中文都变成…

大一学编程怎么学?刚接触编程怎么学习,有没有中文编程开发语言工具?

大一学编程怎么学?刚接触编程怎么学习,有没有中文编程开发语言工具? 1、大一刚开始学编程,面对复杂的代码学习非常吃力,很难入门。建议刚接触编程可以先学习中文编程,了解其中的编程逻辑,学编程…

docker启动容器失败,然后查看日志,docker logs查看容器出现报错:

docker 启动容器失败,然后docker logs 查看容器出现报错: error from daemon in stream: Error grabbing logs: invalid character l after object key:value pair在网上看到的 解决方案: 找到你日志文件目录: docker inspect …

【iOS-UIImagePickerController访问相机和相册】

【iOS-UIImagePickerController访问相机和相册】 一. UIImagePickerController的介绍1 . UIImagePickerController的作用2 . UIImagePickerController的功能 二 . UIImagePickerController的测试程序 一. UIImagePickerController的介绍 1 . UIImagePickerController的作用 U…

Rocketmq架构

NameServer:作为注册中心,提供路由注册、路由踢出、路由发现功能,舍弃强一致,保证高可用,集群中各个节点不会实时通讯,其中一个节点下线之后,会提供另外一个节点保证路由功能。 Rocket mq name…

Scrapy框架中间件(一篇文章齐全)

1、Scrapy框架初识(点击前往查阅) 2、Scrapy框架持久化存储(点击前往查阅) 3、Scrapy框架内置管道(点击前往查阅) 4、Scrapy框架中间件 Scrapy 是一个开源的、基于Python的爬虫框架,它提供了…

大一统模型 Universal Instance Perception as Object Discovery and Retrieval 论文阅读笔记

Universal Instance Perception as Object Discovery and Retrieval 论文阅读笔记 一、Abstract二、引言三、相关工作实例感知通过类别名进行检索通过语言表达式的检索通过指代标注的检索 统一的视觉模型Unified Learning ParadigmsUnified Model Architectures 四、方法4.1 Pr…

哈希思想的应用:位图、布隆过滤器及哈希切割

一.位图引入 给40定亿个不重复的无符号整数存储在文件中,如何判断一个数在不在其中? 分析:最容易想到的思路是将这些数字存储到某个能够实现快速查找的容器中,如红黑树或哈希表。 但是,10亿个字节大约占1G内存&#x…

智能优化算法应用:基于旗鱼算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于旗鱼算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于旗鱼算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.旗鱼算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

java springboot测试类Transactional解决 测试过程中在数据库留下测试数据问题

好 目前 我们已经完成了表现层对应的测试了 但这里有个坑 如果我们在执行某个声明周期时 包含了测试的过程 它会在数据库中留下一条数据 但真实企业开发 绝对不允许 过一遍留一组数据的 那么 我们的期望就是 执行测试过程 但不要留下任何数据 这是我们的数据库表 然后 这里…

BGP基本配置

一、知识补充 1、BGP BGP是Border Gateway Protocol(边界网关协议)的缩写。它是用于在互联网中交换路由信息的一种协议。BGP被广泛应用于大规模的自治系统(AS)之间,用于实现跨网络的路由选择和交换。 BGP的主要功能…

Unity中Shader的Standard材质解析(二)

文章目录 前言一、我们对 Standard 的 PBR 的 GI 进行解析1、我们先创建一个PBR的.cginc文件,用于整理用到的函数2、然后在Standard的Shader中引用该cginc文件 二、依次整理函数到该cginc文件中我们来看一下PBR中GI的镜面反射做了些什么 二、最终代码.cginc代码&…