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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高效解决在本地打开可视化服务器端的tensorboard

文章目录 问题解决方案 问题 由于连着远程服务器构建模型,但是想在本地可视化却做不到,不要想当然天真的以为CTRLC点击链接http://localhost:6006就真能在本地打开tensorboard。你电脑都没连接服务器,只是pycharm连上了而已 解决方案 你需要…

1000多页!LeetCode刷题手册分享

这本手册确实是一部令人印象深刻的作品。(手册链接在文末!!!) 首先,内容充实是这本手册的一大亮点。它涵盖了广泛的算法和数据结构主题,包括数组、链表、树、图、排序算法、动态规划等等。每个…

基于SpringBoot房产销售系统

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于房产销售系统当然也不能排除在外,随着网络技术的不断成熟,带动了房产销售系统,它彻底改变了过去传统的…

自定义链 SNAT / DNAT 实验举例

参考原理图 实验前的环境搭建 1. 准备三台虚拟机,定义为内网,外网以及网卡服务器 2. 给网卡服务器添加网卡 3. 将三台虚拟机的防火墙和安全终端全部关掉 systemctl stop firewalld && setenforce 0 4. 给内网虚拟机和外网虚拟机 yum安装 httpd…

CityEngine2023 根据shp数据构建三维模型并导入UE5

目录 0 引言1 基本操作2 实践2.1 导入数据(.shp)2.2 构建三维模型2.3 将模型导入UE5 🙋‍♂️ 作者:海码007📜 专栏:CityEngine专栏💥 标题:CityEngine2023 根据shp数据构建三维模型…

麒麟操作系统进入单用户模式

Kylin V4 桌面版: 启动系统后,在启动菜单界面选择 Kylin 4.0.2 高级选项后回车。 在高级模式选项下选择第二行 recovery mode 模式后,按 e 编辑。 按 e 后如下图,找到 linux 开头的一行,修改 ro 为 rw 后&#xff0c…

浅聊langchain-chatchat

个人的一点经验和总结,希望能帮助到大家。有不对的地方请留言和指正! langchain-GLM是什么 langchain-GLM是一个本地知识库应用解决方案,支持以cli、web、api方式提供以本地知识库或在线资源为知识素材的对话服务,对中英文场景对…

ESP32-Web-Server编程- 通过文本框向 Web 提交数据

ESP32-Web-Server编程- 通过文本框向 Web 提交数据 概述 前述章节我们通过简单 HTML、AJAX、Websocket、SSE 在网页上显示数据,通过网页上的按钮控制 ESP32 的行为。从本节开始,我们将进一步了解通过网页与 ESP32 进行交互的方法。 实现更复杂的交互功…

软件工程--需求工程--学习笔记(超详细)

软件需求工程是软件开发周期的第一个阶段,也是关系到软件开发成败最关键阶段,本章讲解需求的基础知识和需求工程的关键活动。这些知识对于结构化方法、面向对象方法、面向服务方法等都是适用的 本文参考教材:沈备军老师的《软件工程原理》 目…

ERP软件对Oracle安全产品的支持

这里的ERP软件仅指SAP ECC和Oracle EBS。 先来看Oracle EBS: EBS的认证查询方式,和数据库认证是一样的。这个体验到时不错。 结果中和安全相关的有: Oracle Database VaultTransparent Data Encryption TDE被支持很容易理解,…

什么是PDN的交流阻抗?

什么是PDN的交流阻抗? 在电力电子领域,PDN(Power Distribution Network)的交流阻抗是一个重要的概念,它反映了PDN在交流电源和负载之间传输电能的能力。了解PDN的交流阻抗对于优化电源设计、提高系统性能和可靠性具有重…

Linux 如何在文件中查找指定内容,grep的用法

Linux 如何在文件中查找指定内容 1、 如我们 查找 log_file_catalina.out 文件中,包含 ‘总数:900’ 的字符内容 2、 在日志中查看 83910_law_21CFBC7EB25B1FF60255FE7F4BE1BCCF1CE726F6_0.bdyhf 的相关内容 grep 83910_law_21CFBC7EB25B1FF60255FE7…

猜-MISC-bugku-解题步骤

——CTF解题专栏—— 题目信息: 题目:猜 作者:harry 提示: 解题附件:flag格式key{图中人物名字全拼} 解题思路: 这......头都没有,让我guess???详细信息看…

【重点文章】将Java程序打包成exe文件,无Java环境也可以运行(解决各种疑难杂症)

文章目录 一、将Java程序打成jar包二、将Jar打成exe三、加壳改造成安装包 编译器为IDEA 一、将Java程序打成jar包 2. 3. 你打的包一般会出现在根目录下面的out文件夹下面  当然你也可以用maven的package功能打包,效果是一样的   二、将Jar打成exe 使用工具e…

低代码平台在数字化转型过程中的定位

内容来自演讲:郭昊东 | 上海外服 | 流程分析工程师 摘要 本文介绍了外服集团的 IT 共享中心在低代码平台应用开发方面的实践经验。他们选择低代码平台的原因包括开发成本低、快速看到实际产品以及能够解决数据孤岛和影子 IT 等问题。他们在应用开发中面临的挑战包括…

[iOS开发]UITableView的性能优化

一些基础的优化 (一)CPU 1. 用轻量级对象 比如用不到事件处理的地方,可以考虑使用 CALayer 取代 UIView CALayer * imageLayer [CALayer layer]; imageLayer.bounds CGRectMake(0,0,200,100); imageLayer.position CGPointMake(200,200…

如何在 Web 应用程序中查找端点?

如何在 Web 应用程序中查找端点? 这篇文章主要讲述了如何在网络应用中找到端点。以下是文章的主要要点: 端点是网络服务的访问地址,通过引用这个URL,客户可以访问服务提供的操作。端点提供了寻址Web服务端点所需的信息。 HTTP消息是服务器和客户端之间交换数据的方式,包…

原生GPT本地及云端部署方式保姆级教程

前提条件 部署必须要有一个超过1年的Github账号 本地服务部署 运行效果 部署方法 下载安装包 暂时无法在飞书文档外展示此内容 GitHub授权登录: https://dash.pandoranext.com/ 登录后是这个样子: 复制下面红框里面这个License Id 编辑Config.js…

Linux下删除当前目录下的所有目录

Linux下删除当前目录下的所有目录 Linux下删除当前目录下的所有目录,可以使用命令:rm -rf ./* rm -rf ./*可以得知rm -rf ./命令是删除当前目录下的所有文件和文件夹,但不会删除根目录下的文件。其中,".“代表当前目录&…

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

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