2023.11.29 深度学习框架理解

news2024/9/22 19:42:33

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

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

相关文章

Java中的JMX的使用

文章目录 1. 定义和存在的意义2. 架构2.1 Instrumentation2.2 JMX Agent2.3 Remote Management 3. 启动和连接3.1 注册MBean3.2 有两个方式启动JMX Agent3.3 Remote Management(客户端) 4. MBeanServerConnection使用4.1 列出所有的MBean4.2 列出所有的Domain4.3 MBean计数4.4 …

Python (十六) 错误和异常

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一波电子书籍资料,包含《Effective Java中文版 第2版》《深入JAVA虚拟机》,《重构改善既有代码设计》,《MySQL高性能-第3版》&…

【Linux】基础IO--文件基础知识/文件操作/文件描述符

文章目录 一、文件相关基础知识二、文件操作1.C语言文件操作2.操作系统文件操作2.1 比特位传递选项2.2 文件相关系统调用2.3 文件操作接口的使用 三、文件描述符fd1.什么是文件描述符2.文件描述符的分配规则 一、文件相关基础知识 我们对文件有如下的认识: 1.文件 …

C 语言-数组

1. 数组 1.1 引入 需求:记录班级10个学员的成绩 需要定义10个变量存在的问题:变量名起名困难变量管理困难需求:记录班级1000个学员的成绩 1.2 概念 作用:容纳 数据类型相同 的多个数据的容器 。 特点: 长度不可变容纳 数据类型…

python实现two way ANOVA

文章目录 目的:用python实现two way ANOVA 双因素方差分析1. python代码实现1 加载python库2 加载数据3 统计样本重复次数,均值和方差,绘制箱线图4 查看people和group是否存在交互效应5 模型拟合与Two Way ANOVA:双因素方差分析6 …

ELFK集群部署(Filebeat+ELK) 本地收集nginx日志 远程收集多个日志

filebeat是一款轻量级的日志收集工具,可以在非JAVA环境下运行。 因此,filebeat常被用在非JAVAf的服务器上用于替代Logstash,收集日志信息。 实际上,Filebeat几乎可以起到与Logstash相同的作用, 可以将数据转发到Logst…

融资经理简历模板

这份简历内容,以综合柜员招聘需求为背景,我们制作了1份全面、专业且具有参考价值的简历案例,大家可以灵活借鉴。 融资经理简历在线编辑下载:百度幻主简历 求职意向 求职类型:全职 意向岗位:融资经理 …

Python Pyvis库:可视化复杂网络结构的利器

更多Python学习内容:ipengtao.com 大家好,我是涛哥,今天为大家分享 Python Pyvis库:可视化复杂网络结构的利器,全文4000字,阅读大约12钟。 在数据科学和网络分析领域,理解和可视化复杂网络结构是…

JeecgBoot低代码开发—Vue3版前端入门教程

JeecgBoot低代码开发—Vue3版前端入门教程 后端接口配置VUE3 必备知识1.vue3新特性a. https://v3.cn.vuejs.org/b.setup的用法c.ref 和 reactive 的用法d.新版 v-model 的用法e.script setup的用法 2.TypeScript基础 后端接口配置 如何修改后台项目路径 http://127.168.3.52:8…

Ubuntu systemd-analyze命令(系统启动性能分析工具:分析系统启动时间,找出可能导致启动缓慢的原因)

文章目录 Ubuntu systemd-analyze命令剖析目录简介systemd与systemd-analyze工作原理 安装和使用命令参数详解用例与示例显示启动时间(systemd-analyze time)列出启动过程中各个服务的启动时间(systemd-analyze blame)显示系统启动…

R语言单因素方差分析+差异显著字母法标注+逐行详细解释

R语言单因素方差分析 代码如下 df <- read.csv("data.csv",header TRUE,row.names 1) library(reshape2) df <- melt(df,idc()) names(df) <- c(trt, val) df aov1 <- aov(val~trt,datadf) summary(aov1)library(agricolae) data <- LSD.test(aov…

windows远程桌面登录,提示:“出现身份验证错误,要求的函数不受支持”

问题&#xff1a; windows登录远程桌面&#xff0c;提示&#xff1a;“出现身份验证错误&#xff0c;要求的函数不受支持”&#xff0c;如下图&#xff1a; 问题原因&#xff1a; windows系统更新&#xff0c;微软系统补丁的更新将 CredSSP 身份验证协议的默认设置进行了调…

【腾讯云云上实验室-向量数据库】个人对腾讯云向量数据库的体验心得

目录 前言Tencent Cloud VectorDB概念使用初体验腾讯云向量数据库的优势应用场景有哪些&#xff1f;未来展望番外篇&#xff1a;腾讯云向量数据库的设计核心结语 前言 还是那句话&#xff0c;不用多说想必大家都能猜到&#xff0c;现在技术圈最火的是什么&#xff1f;非人工智…

ZZULIOJ 2466: 楼上瞎说,楼下才是,Java

2466: 楼上瞎说&#xff0c;楼下才是 题目描述 《九章算术》的内容十分丰富&#xff0c;全书采用问题集的形式&#xff0c;收有246个与生产、生活实践有联系的应用问题&#xff0c;其中每道题有问&#xff08;题目&#xff09;、答&#xff08;答案&#xff09;、术&#xff…

【Vulnhub 靶场】【DriftingBlues: 9 (final)】【简单】【20210509】

1、环境介绍 靶场介绍&#xff1a;https://www.vulnhub.com/entry/driftingblues-9-final,695/ 靶场下载&#xff1a;https://download.vulnhub.com/driftingblues/driftingblues9.ova 靶场难度&#xff1a;简单 发布日期&#xff1a;2021年05月09日 文件大小&#xff1a;738 …

编程之外,生活的美好航程

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

涵盖多种功能,龙讯旷腾Module第二期:电子结构及声子计算

Module是什么 在PWmat的基础功能上&#xff0c;我们针对用户的使用需求开发了一些顶层模块&#xff08;Module&#xff09;。这些Module中的一部分是与已有的优秀工具的接口&#xff0c;一部分是以PWmat的计算结果为基础得到实际需要的物理量&#xff0c;一部分则是为特定的计…

Jmeter接口测试:jmeter_HTTP Cookie管理器看这一篇文章就够了

HTTP Cookie管理器 HTTP Cookie管理器可以像浏览器一样自动存储和发送cookie&#xff0c;以这种自 动收集的方式收集到的cookie不会在cookie manager中进行展示&#xff0c;但是运行后&#xff0c; 可以通过 查看结果树&#xff08;监听器&#xff09;可以查看到cookie信息 除…

WPF实战项目十九(客户端):修改RestSharp的引用

修改HttpRestClient&#xff0c;更新RestSharp到110.2.0&#xff0c;因为106版本和110版本的代码不一样&#xff0c;所以需要修改下代码 using Newtonsoft.Json; using RestSharp; using System; using System.Threading.Tasks; using WPFProjectShared;namespace WPFProject.S…

中国毫米波雷达产业分析4——毫米波雷达企业介绍

一、矽典微 &#xff08;一&#xff09;公司简介 矽典微致力于实现射频技术的智能化&#xff0c;专注于研发高性能无线技术相关芯片&#xff0c;产品广泛适用于毫米波传感器、下一代移动通信、卫星通信等无线领域。 整合自身在芯片、系统、软件、算法等领域的专业能力&#xf…