1、模型与风险

在模型评价时会有理想情况和现实情况(现实情况分为两种)

在学习过程中最重要的是损失函数:

还有其他损失函数。

损失函数是用来量化模型预测和真实标签之间的差异。比如说我们模型预测出来是,而我们真实数据是,实际上损失函数就是来衡量他们之间的一个差异。

2、偏差与方差

偏差(Bias):是指一个模型在不同训练集上的平均性能和最优模型的差异,可以用来衡量一个模型的拟合能力。(偏差表示离你最优的模型离得是否远)

一般偏差越小,模型和最优模型之间的差距就越小,即模型的拟合能力越强。

方差:是指一个模型在不同训练集上的差异,可以用来衡量一个模型是否容易过拟合。

方差越大代表模型对不同数据集的分布学习的越好(过拟合),导致不同数据集训练出来的模型与模型的平均期望的差距越大。(所以一般是偏差小,方差也比较小这种是比较好的)

3、评价指标

怎么对模型进行一些评价?

3.1训练集的划分:

一般将数据集划分为训练集(train)、验证集(validation)、测试集(test)。

第一种:是将整个的数据集D全部当做是训练集,然后用这个训练集训练模型,用训练集验证模型。(最后选择训练集最小的误差模型)

第一种造成的影响:可能在整个的训练集上我们的模型训练的比较好,那就容易造成过拟合,因为我们没有在这种未知的数据集上来去测试我们模型的他的泛化能力,所以说当来了一些未知的数据,那么整个模型的表现 就比较差,容易造成过拟合。

第二种:是将数据集D随机的分为训练集和测试集,训练集训练模型,测试集验证模型。(有的模型比如说用3层的在训练集上可能表现的效果比较好,他在测试集上可能表现的比较差;假如我用一个两层的网络,他在训练集上可能没有3层网络表现的好,但是他在测试集上却表现的比较好;这里测试集所扮演的角色就是来验证没出现的这种情况下我的模型对这种未出现的数据他的一个预测能力,所以这种比第一种方法要好一些。)

第三种:是将数据集D分为训练集,验证集,测试集,训练集训练模型,验证集验证模型,根据情况不断的调整模型,使得调整出来的模型在验证集上他的效果是最好,然后我再用我这个训练集和验证集共同训练出一个最终的模型,最后用测试集评估最终的模型(因为你整个的数据划分,这个测试集是在你整个模型训练当中是没有出现过的,所以这样的话最终的评估相当于是在你真实的情况下对模型进行了一个评估)。

目前第三种方法是最好的评估方法,相当于对数据集进行了最好的划分。

一般是采用交叉验证的方式,将原始数据集平均分为K组不重复的子集,每次选择K-1组子集作为训练集,剩下一组子集作为验证集(这种方法在机器学习当中用的比较多)。(这种相当于我经过K次实验得到了K个模型,将K个模型在各自验证集上的错误率的平均作为分类器的评价)

我们最后去衡量整个模型的能力是在测试集上给定一些方法,使用的方法或者说是指标如下:

针对于多分类情况是说明,类别C

在介绍指标前必须先了解“混淆矩阵”:

混淆矩阵

True Positive(真正例,TP):将正类预测为正类数(意思就是实际上他是类别C,那我预测的也是类别C)

True Negative(真负例,TN):将负类预测为负类数(意思就是实际上他的类别不是C,我预测出来的也不是C)

False Positive(假正例,FP):将负类预测为正类数误报 (Type I error)(意思就是实际上我的类别不是C,但是我预测出来是C)

False Negative(假负例,FN):将正类预测为负类数→漏报 (Type II error)(意思就是实际上我真实的类别是C,但是我预测出来不是C)

(1)准确率(Accuracy)

准确率是我们最常见的评价指标,而且很容易理解,就是被分对的样本数除以所有的样本数,通常来说,正确率越高,分类器越好。
准确率确实是一个很好很直观的评价指标,但是有时候准确率高并不能代表一个算法就好。比如某个地区某天地震的预测,假设我们有一堆的特征作为地震分类的属性,类别只有两个:0:不发生地震、1:发生地震。一个不加思考的分类器,对每一个测试用例都将类别划分为0,那那么它就可能达到99%的准确率,但真的地震来临时,这个分类器毫无察觉,这个分类带来的损失是巨大的。为什么99%的准确率的分类器却不是我们想要的,因为这里数据分布不均衡,类别1的数据太少,完全错分类别1依然可以达到很高的准确率却忽视了我们关注的东西。再举个例子说明下。在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。比如在互联网广告里面,点击的数量是很少的,一般只有千分之几,如果用acc,即使全部预测成负类(不点击)acc也有 99% 以上,没有意义。因此,单纯靠准确率来评价一个算法模型是远远不够科学全面的。

(式子中的表示是否等于,相等就为真是1,;不等就为0)计算的是我当前的预测结果准不准(就是和实际的这样一个结果是不是相等)

真实样本的标签是,预测结果是,预测对的就是图中红色框的,所以说整个的准确率就是60%。

用混淆矩阵表达的公式就是:

(2)错误率(Error rate)

错误率公式就是:(1减去准确率)。错误率则与准确率相反,描述被分类器错分的比例,error rate = (FP+FN)/(TP+TN+FP+FN),对某一个实例来说,分对与分错是互斥事件,所以accuracy =1 - error rate。

用混淆矩阵表达的公式就是:

准确率和错误率是在所有类别上整体的性能平均,由于数据类别的分布的不平衡性,例如正负比例为9:1(类似与上边的发生地震和不发生地震,很显然发生地震的数量微乎其微),那么模型只需要将所有样本全部分类为正例,也能获得90%的准确率。(所以整个的准确率对于这种类别分布不平衡是比较敏感的)。如果我们希望对每个类别都能进行这种性能的评估,就需要计算精确率和召回率。

(3)精确率(Precision)/查准率/精度

精确率也叫精度或叫查准率,(类别C的精确率是所有预测为C的样本中,预测正确的比例)

  • 所谓查准率就是:所有预测为正的样本里,真实正样本所占比重。(自己买西瓜的话希望甜瓜的Precision高一点(我们买到的是预测为1(甜瓜)的样本,希望有限的买瓜次数下甜瓜更多)。)

(4)召回率(Recall)/查全率

  • 所谓查全率就是:所有真实的正样本里,预测为正的样本所占比重。(医学模型判断癌症病人我们希望Recall高一点(无病诊断为有病去治疗总比漏掉癌症病人好(所有真实患病的人里,检测出患病)))

(5)F值(F Measure)

F值是一个综合指标,是将精确率和召回率同时进行计算,计算的是一个调和的平均。用参数β来作为代表,到底是精确率占得更重要还是召回率占的更多一些。一般使用的是相当于是β等于1)

F值是一个综合指标,为精确率和召回率的调和平均:

(6)宏平均和微平均

为了计算分类算法在所有类别上的总体精确率、召回率和值,经常使用两种平均方法,分别称为宏平均和微平均。(之前讨论的精确率、召回率和值是在类别C上,而实际上他是从1到C的整个的C个分类)

代入计算(此处的N即是C)

宏平均是多个分类F1值相加,而微平均是多个F1分子分母分别相加。

(7)微平均

还有其他的一些评价指标:

对TPR(真正例率) 与 FPR(反正例率)的理解:TPR和FPR分别描述了在正负样本里(正样本=TP+FN,负样本=FP+TN),TP和FP样本所占的比例。

真正例率 TPR = TP / (TP + FN)表示,预测为正例且真实情况为正例的,占所有真实情况中正例的比率。

假正例率 FPR = FP / (TN + FP)表示的,实际值是负例数据,预测错误的百分比。

参考链接:https://blog.csdn.net/liuweiyuxiang/article/details/81259492

其他评价指标

计算速度:分类器训练和预测需要的时间;

鲁棒性:处理缺失值和异常值的能力;

可扩展性:处理大数据集的能力;

可解释性:分类器的预测标准的可理解性,像决策树产生的规则就是很容易理解的,而神经网络的一堆参数就不好理解,我们只好把它看成一个黑盒子。

参考资料:https://zhuanlan.zhihu.com/p/78182116

4、网络优化

鞍点:在某一个维度上他是全局最小点,在另一个维度上他又是全局最大的点。(他就想马鞍一样,我们pigu所坐的那个点,他在前后是最小点,但是左右上是最大点)(因为此点的导数是处处为0的,所以在优化的时候就陷入了鞍点就不能再继续优化了,实际上 你如果向左或者向右再稍微走一小步,就能继续进行优化)

梯度下降算法见链接:https://blog.csdn.net/m0_37957160/article/details/113625507

网络优化从三个方面:1、批量大小;2、学习率;3、梯度估计

2、学习率调整

2.1学习率衰减

逆时衰减相当于我在某t次,相当于加上一个分母,这样等于乘上一个比较小的数。

指数衰减因为你要乘的数是一定要小于1的,所以小于1的t次方是逐渐衰减的。

自然指数衰减

余弦衰减因为在0到1之间,再乘以π相当于0到达倒π,cos0=1,cosπ=0,所以他是一个1到0之间的cos函数,再加上1相当于2到0,再乘以相当于还是从1到0,所以还是衰减的。

2.2学习率的预热

深蓝学院的深度学习理论与实践课程:第四章相关推荐

  1. 深蓝学院的深度学习理论与实践课程:第二章

    1.知识引入(重点介绍极大似然估计) 极大似然估计就是我们来求解模型参数的这样一个过程或者是一种方法.   已经知道模型的概率分布那就是p,这就符合前边我们假设的第2点,这个分布是已知的.O代表是我们 ...

  2. 深蓝学院的深度学习理论与实践课程:第一章

    预备知识: 概念1:数学期望理解 在概率论和统计学中,数学期望(mean)(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一.它反映随机变量平均取值的大小. 需要 ...

  3. 深蓝学院的深度学习理论与实践课程:第三章

    前言:至于物体被识别成什么,是取决于你提取到了什么特征 1.人类视觉系统 ... 2.卷积神经网络数学基础(CNN数学原理) 黑白图像的话就只有一个灰色通道.现在还有就是RGBa就是多了一个alpha ...

  4. 深蓝学院的深度学习理论与实践课程:第五章

    1.Pytorch简介和安装 Pytorch可以在线安装也可以离线安装. 下载完成之后安装命令是:(install 后边是你下载完成后放置的路径) conda install /a/b/xxx.tar ...

  5. 深度学习理论与实践——课程笔记(一)

    目录 课程前言 什么是人工智能? 什么是机器学习? 什么是深度学习? 什么是计算机视觉? 什么是自然语言处理? PyTorch框架与TensorFlow框架的选取 预备知识 软硬件基础 推荐书籍 自学 ...

  6. 【总结】新手必看!超过60个小时+600页文档的免费AI深度学习理论与实践课程...

    自从2012年AlexNet大放光彩以来,深度学习已经走过了快10年了,给学术界和工业界都带来了翻天覆地的变化.世界各国争先恐后,不断推出人工智能相关的政策,力争在新一轮技术革命中继续引领世界! 巨头 ...

  7. 深蓝学院《从零开始手写VIO》作业四

    深蓝学院<从零开始手写VIO>作业四 深蓝学院<从零开始手写VIO>作业四 1. 信息矩阵分析 2. Bundle Adjustment信息矩阵的计算 深蓝学院<从零开始 ...

  8. STM32 ES8266上阿里云IOT MQTT实践【第四章】:MCU的应用范围

    课程大纲 [第一章]:物联网简介(什么是物联网) [第二章]:物联网十大应用场景 [第三章]:什么是MCU? [第四章]:MCU的应用范围 [第五章]:我们要怎么入门MCU开发? [第六章]:如何使用 ...

  9. 深蓝学院-视觉SLAM理论与实践-第十二期-第2章作业

    熟悉Eigen矩阵运算 设线性方程 A x = b Ax = b Ax=b,在 A A A为方阵的前提下,请回答以下问题: 问题1:什么条件下,x有解且唯一? 矩阵A非奇异,满秩. 问题2:高斯消元法 ...

最新文章

  1. Eclipse的编码
  2. Apache的管理及优化web
  3. 你一定不能错过,Java视频全套
  4. 【QM-02】Master Data (QM主数据的设置)
  5. Android permission 访问权限一览
  6. C# 将多个图片合并成TIFF文件的两种方法
  7. os-enviroment
  8. 【JAVA基础篇】多线程
  9. python3 urllib模块
  10. php显示服务器ipv6,php获取用户IPv4或IPv6地址的代码
  11. ERROR: unexpected error - Failed to connect to proxy URL: “http://127.0.0.1:8080/“
  12. Java 树形结构数据生成导出excel文件
  13. 利用STM32CubeMX软件生成USB_DEVICE_SD卡虚拟U盘
  14. 古魂魂之刃2电脑版用逍遥模拟器电脑上玩手机账号数据互通
  15. MPU9250的基本框架
  16. 代码规范:规范你我他
  17. React 使用Markdown 更改样式
  18. pdf格式的图片如何插入到word中
  19. yolov7正负样本分配详解
  20. aiwi最新游戏:黑色洛城

热门文章

  1. 2021年大数据Kafka(三):❤️Kafka的集群搭建以及shell启动命令脚本编写❤️
  2. JAVA实现ftp服务端_用 java 实现FTP SERVER(附源码)
  3. python 正则表达式 re.compile() 的使用
  4. GlideApp 引入不了问题
  5. android 调用百度sdk点位当前城市
  6. 小菜鸟与后台对接接口下来的感受
  7. 基本的函数返回值 使用
  8. 25个增强iOS应用程序性能的提示和技巧 — 中级篇
  9. [19/03/30-星期六] IO技术_四大抽象类_ 字节流( 字节输入流 InputStream 、字符输出流 OutputStream )_(含字节文件缓冲流)...
  10. 使用nexus来搭建Nuget私服