首页 > 其他分享 >05.深度学习--回归模型

05.深度学习--回归模型

时间:2023-03-16 19:11:49浏览次数:37  
标签:function loss 误差 函数 05 -- 模型 拟合 深度

回归模型

回归模型,可以做很多预测模型,比如:一个很好的股票预测系统,我们可以找到一个function,预测的数据可以是选择过去十年的股票数据,根据这些数据我们希望得到的是明天的股票指数 ;或者自动驾驶通过检测到的各种数据来预测方向盘的旋转角度实现自动驾驶;又或者用在推荐系统上

本片笔记中,举例使用预测宝可梦的战斗力CP值。原始的特征数据中,原始cp值在下标加上cp,物种是下标s,下标hp表示生命,下标w表示重量,下标h表示高度,这些都是训练数据中的特征。

模型建立

第一步

于是开始常规的第一步,我们找到一个模型function set,找到很多function,之后经过训练得到合理的function

 

第二步

找到训练数据来训练函数,找到最合适的function

 

为了判断一个function的好坏,我们又定义了loss函数,它的input就是一个function,它的output就是这个function是好还是坏

 

第三步

当我们找到了loss函数,并有了一个函数集合,下一步要做的就是从这些函数里面,找到一个最好的function。也可以说是穷举所有的参数,来让这个loss函数最小,以至于可以找到最合适的function。这个方法就是梯度下降

梯度下降的方法:

  • 整个loss函数上随机选择一个点w0

  • 计算在w0处,loss函数关于w的导数,并将w0代入计算

  • 如果斜率是负的,就要增加w的值;如果是正的,就要减小w的值

梯度下降找到的一定是局部最优解,但不一定是全局最优解

 

第四步

最终通过梯度下降拟合线性回归函数之后可以得到最好的结果是,但是可以发现,个函数模型并不能很好的拟合所给出的数据,但是我们最关心的其实是我们抓到一只新的宝可梦之后,所预测出来的值和真实值之间的误差有多少

 

于是又找到十个新的数据来计算误差发现误差是35.0,误差较大于训练数据的误差

模型升级

对于这些数据我们想要进一步降低模型的误差,所以引入新的模型来拟合数据,二次函数相对一次函数,在训练集拟合出来的误差减小了一些,变成了15.4,同时在测试集上表现也变得更好

 

如果用一摸一样的方法拟合三次函数的模型和四次函数模型,可以发现,函数的表现提升并不是十分理想

 

当模型变成了5次式,可以发现,已经出现了过拟合问题,此时在训练集上的表现变得很差。

 

难题

当获得的训练数据集变多了,会发现前面找到的模型都变得不合适,此时就要考虑到更多的特征,此时用不同的颜色来表示不同的物种,所以仅考虑进化之前的cp是不足够的,进化后的cp值收到物种的影响很大

 

重新设计模型

考虑到不同物种需要拟合不同的模型,于是重新设计模型

 

于是得到的拟合结果是

 

最后看到我们的数据依然是误差的,于是我们会继续考虑是不是有其他的参数特征来影响进化后的cp值

 

如果把所有的特征都放进我们的模型,则会 有一个非常复杂的function,但是在测试集上出现了很大的误差

 

重新定义loss函数

将参数的值加入到loss函数时,w越小loss函数越小,这样可以得到一个相对平滑的loss函数,这个函数对改变的数据会越不敏感,也就是对噪音的抵抗力更强,但是如果λ越大,则考虑w的比重越大,此时在训练集上的误差越大。所以我们喜欢比较平滑的function,但又不喜欢太过于平滑的function

 

 

 

 

 

 

 

标签:function,loss,误差,函数,05,--,模型,拟合,深度
From: https://www.cnblogs.com/bolunwei/p/17223844.html

相关文章

  • 听音训练软件/工具
    个人小记:最近在研究音视频的测试,里面包括很多概念,比如主观测试和客观测试,音频和视频等等。这里主要介绍一下关于主观音频测试部分需要用到的技能或者工具。首先主观音频......
  • 实验2
    实验任务1实验代码#include<stdio.h>#include<time.h>#include<stdlib.h>#defineN5#defineR1586#defineR2701intmain(){ intnumber,i; srand......
  • 【Android 逆向】【攻防世界】android2.0
    这是一道纯算法还原题1.apk安装到手机,提示输入flag,看来输入就是flag2.jadx打开apk查看this.button.setOnClickListener(newView.OnClickListener(){//fr......
  • Python startswith()和endswith()方法
    startswith()方法startswith()方法用于检索字符串是否以指定字符串开头,如果是返回True;反之返回False。endswith()方法endswith()方法用于检索字符串是否以指定字符......
  • SQL优化改写案例11(上海某单位项目报表系统)
     记录一下上海某个内网报表系统的项目的一个案例,里面的逻辑比较复杂,很多视图套视图的语句。最多的一个视图除了它本身以外,一层层嵌套了7个视图在里面,贼恶心。而最难受......
  • Vue.js 列表渲染-key的作用与原理
    视频虚拟DOM对比算法diff<!DOCTYPEhtml><html> <head> <metacharset="UTF-8"/> <title>key的原理</title> <scripttype="text/javascript"src="../js/vue......
  • conda 安装 rpy2 版本不匹配问题解决方法
    问题描述:Anaconda3(python3.8)安装rpy2(R4.0.4)时尝试使用condainstallrpy2安装,但是报错如下:UnsatisfiableError:Thefollowingspecificationswerefoundtobein......
  • 爬虫,requests高级用法,解析json,ssl认证,使用代理,超时设置,上传文件处理,代理池搭建,爬取
    内容回顾可变类型与不可变类型可变类型:值发生改变,内存地址不变:列表,集合,字典不可变类型:值发生改变,内存地址一定发生改变:字符串,整形,浮点型,布尔,元组常用的魔法方法》某种......
  • python - 面向对象编程
    一、对象与过程的概念python中的两大范式:1.面向过程2.面向对象他们两个都不是新的技术,而是一种做事的思维方式1.面向过程:根据业务逻辑从上到下写垒代码面向过程核心是......
  • 【Serverless】看完这篇,帮你用认证服务快速实现Twitter统一登录
    【关键字】Java、认证服务、Twitter统一登录 【介绍】AGCAuthSDK在传统登录方式基础上新增了Twitter的统一登录方式,开发者可以在应用中集成Twitter认证方式SDK,让您......