当前位置: 首页 > news >正文

机器学习笔记

飞书崩了,在这里记录吧。continue

1方差和偏差

1学习曲线

高偏差

平均训练误差在一会后会平,因为随着训练数据的增多,拟合的曲线不会有太大的变化

如果一个数据有很高的偏差,那么获得更多的训练数据本身并没有多大帮助。所以在投入很多的训练数据之前要检查算法是否具有很高的偏差。

高方差

高方差在训练集上做的好 

 

当增大训练集时,对于算法有用,会使得jtrain升高到标准水平,使得jcv降低到标准水平 

2方差和偏差决定下一步做什么 

房价预测的回归模型

如果在预测中出现了很大的错误,接下来应该怎么做?

1.如果是高方差:①获取更多的训练集②更少的特征属性③增加正则化参数λ

2.如果是高偏差:①获取更多的特征属性②增加额外的多项式属性③减少正则化参数λ

3方差和偏差与神经网络 

大型神经网络在小中数据集上是低偏差的,即如果神经网络足够大,总能够很好的适应你的训练。

神经网络中的正则化,代码实现。

总结两点:

1.拥有一个更大的神经网络几乎没有坏处,只是因为硬件问题导致训练速度等变慢,但不会损坏算法本身的性能

2.如果神经网络足够大,那么他会是一个低偏差的机器,非常适合非常复杂的功能。

2应用

1.机器学习的发展历程

迭代循环

诊断:查看算法的偏差和方差,以及误差分析,根据这些做出决定扩大神经网络或者更改正则化参数λ或者添加更多数据或者添加或减少特性等,然后循环迭代

构建垃圾邮件分类器的例子

1.训练一个分类器

2.怎样去减少分类器的错误呢?

 2误差分析

流程:

如果出现大量的错误分类数据,那么可以随机抽取例如10%抑或20%来做和上图相同的工作。 

3添加数据

1数据增强

1简单例子

以识别字母为例,对输入x施加失真或者变换 ,创建像A差不多的额外示例。

2更高级的示例

通过扭曲A船舰一个更丰富的字母A示例库。

3.数据增强的技巧

对数据做的扭曲或者修改,应该代表测试集中的噪声或者失真类型。即让数据更加嘈杂。

2数据合成

左边是真实世界中截取的图片数据,右边是用 计算机上的字体合成生成的图片数据。

两种不同关注点:

4 迁移学习:使用其他任务中的数据

允许使用来自不同任务的数据来实现

1复制神经网络

除了最后的w5其他可以全部迁移至新的神经网络中。

1.应用别人的数据集进行复现的过程成为监督预训练(Supervised pretraining)

2.将初始化的参数或监督预训练的值进一步进行梯度下降微调权重成为微调(Fine tuning)。

最终适应识别数字的具体应用

从这海量的数据中训练的模型即便有100万张和需要实现的数字识别不一致,也会是模型具有很好的性能。

为什么迁移学习有用?明明是不同的特征?从猫、狗->数字

 检测的都是事物的边边角角等基本形状。

预训练的一个局限是输入的类型必须相同。即如果你的预训练模型是机器视觉,那么你想通过微调实现一个语言大模型是不可取的。

总结迁移学习

1.下载(或者自己训练)带有参数的已经在大型数据集上预训练过的并且与应用程序具有相同的输入类型的神经网络

2.根据自己的数据进一步训练或者微调网络。

3.机器学习的发展过程

以语音识别为例

1确定范围-》2收集数据-》3.训练模型(有可能会重新回到第二步)-》4.部署模型

如果想部署一个巨大的模型,一下是必须要考虑的。

4.精确率和召回率

参考自己写的博客,二分类任务。这两个值都高,则说明算法是很有用的。

精确率和召回率的权衡:

提高阈值:

提高了精度,降低了召回率

j降低阈值:

一般都这样:阈值随着不同的应用程序来选择和确定。

F1得分:调和平均值

 

决策树:

学习过程:

相关文章:

  • <<机器学习实战>>10-11节笔记:生成器与线性回归手动实现
  • C#和Python共享内存技术
  • Webpack 打包后文件过大,如何优化?
  • 无人机在抗洪方面的作用!
  • k8s搭建双主的mysql8集群---无坑
  • 【DRF】 类视图
  • 时序必读论文15|TimeXer:通过外部变量增强Transformer在时间序列预测中的能力
  • 【hot100-java】【单词搜索】
  • Qt界面优化——绘图API
  • 知识图谱入门——1:基本概念、为什么要用?核心步骤、常用工具与技术、应用场景
  • Spring 概述与环境搭建
  • 【AI知识点】度量学习(Metric Learning)
  • CommandLineRunner 和 ApplicationRunner
  • OceanBase技术解析: 执行器中的自适应技术
  • 您的计算机已被Lockbit3.0勒索病毒感染?恢复您的数据的方法在这里!
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 10个确保微服务与容器安全的最佳实践
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • Java 最常见的 200+ 面试题:面试必备
  • Js基础知识(一) - 变量
  • mockjs让前端开发独立于后端
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Python学习之路13-记分
  • Service Worker
  • Swoft 源码剖析 - 代码自动更新机制
  • Web Storage相关
  • 产品三维模型在线预览
  • 聚簇索引和非聚簇索引
  • 前端性能优化——回流与重绘
  • 如何编写一个可升级的智能合约
  • 如何在GitHub上创建个人博客
  • 走向全栈之MongoDB的使用
  • Semaphore
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • $jQuery 重写Alert样式方法
  • (4)Elastix图像配准:3D图像
  • (a /b)*c的值
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (笔记自用)LeetCode:快乐数
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)spring boot校园健康监测管理系统 毕业设计 151047
  • (利用IDEA+Maven)定制属于自己的jar包
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (十六)视图变换 正交投影 透视投影
  • (转)ABI是什么
  • (转)winform之ListView
  • (转载)深入super,看Python如何解决钻石继承难题
  • .NET Framework 3.5安装教程
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 常见的偏门问题
  • .net2005怎么读string形的xml,不是xml文件。
  • .NetCore 8 SwaggerGen 显示接口注析
  • @DataRedisTest测试redis从未如此丝滑
  • [@Controller]4 详解@ModelAttribute