创建机器学习系统及一些思想

我们在创建一个优秀的神经网络需要一个漫长的循环过程。

先选择一个架构,再对我们的架构进行训练,最后诊断我们的误差,再回到我们重新的循环,直到我们的神经网络足够优秀。这就是机器学习迭代的过程。 

误差分析: 

我们举一个例子:

我们有500个交叉验证误差集,但是我们的算法错误的分类了其中的100个,我们经过寻找,发现了下面几种错误的分法,以及他们分别的个数。

在我们的算法做的并不是这么好的时候,找到错误的案例也可以很高效的给我们提供很多的有用的数据,尽管我们的数据就增加了一点点但是效果却非常的好。

这种方法我们可以很好的通过算法中出现的错误得到一些新的改进方法,当然,对于一些比较罕见的问题可能并没有这么好的效果。

添加数据:

 添加大量的数据是一个很好的训练算法模型的一个方法,但是它同时也会消耗我们大量的时间,也会非常的昂贵,而我们提供更多不同特征的数据,似乎是一个更好的方法,正如我们在误差分析中知道的通过添加不同的特征以及他们的数据可以得到一个更好的模型。

1,当然这里有一种更加好的方法,可以增加我们的训练集的数量,它的名字叫做数据增强。

如何做到数据增强呢?我们的方法就是比如有一个数字A的图像识别,我们可以旋转,放大,缩小,对比度变化,镜像,这样子我们就可以得到了A但是他们的训练集却增加了。 

我们也可以把他们放在网格中,让网格子扭曲起来从而得到很多训练集的数据。

再做一个比方:我们在语音识别中,我们对我们的语音加入不同的噪音,我们就可以得到不止一个的训练集了。

所以我们如何才能完成数据加强是最后的问题。 这是我们需要通过别的方式完成的。

2,还有一个方法就是我们的数据合成(data Synthetic),它和我们的数据增强不同之处,就是它需要我们从0开始创建我们的数据而不是数据增强,通过改变原有数据集得到新的数据。

举个例子:我们需要给我们的图片,识别其中包含的文字,我们可以先去获得我们的艺术字如右边图,我们可以看到他们有各种字体,我们通过换色或者旋转的方式就可以创造出新的文字。

我们可以比较一下左边和右边的字,他们的样子也很相近,这就完成了我们的数据合成的任务 

这种方法一般常用于我们的图像识别的领域。

数据增强和数据合成就是我们使用的比较多的方法,可以为我们的数据集增加更多的数据。

在过去 ,人们更加关注于搭建一个好的模型或算法,而当我们把中心转移到数据时,我们可能会得到更好的训练机会,给我们的模型性能进行训练与提升。

迁移学习: 

迁移学习顾名思义就是使用其他任务中的数据作用于当下的项目。

我们会先得到一个比较大的训练集的数据去训练我们的上面一个比较新的模型,而得到它每一个神经层的数据,而我们需要做的只需要把他们的数据迁移到我们识别0到9的数字,我们在隐藏层的W和B的值不需要任何的改变,我们唯一要重新训练的只有我们的输出层的W和B。这就是我们的迁移学习。我们把这里的第一步叫做监督预训练(supervised pretraining),第二步就叫做微调(fine tuning)

在这里我们有两个方法来训练我们的模型。

第一种就是我们只训练我们输出层的W和B的参数,当然这只用于我们训啦比较小的数据集。

第二种就是当我们遇到大的数据集时我们依旧是需要从头开始我们的训练。

这里给我们一个逻辑,我们需要大量的数据,先进行一个预训练,我们再用小范围的数据进行我们的优化调节。它的优点就是,我们在网上可以直接获得一个训练好的模型,这就可以节省我们的时间,而我们只需要改进我们的输出端的参数即可。

为什么我们可以通过识别不同的物体,比如猫,狗,车什么的用来识别我们的数字呢?这就要归功于我们的神经元,他们从对猫狗等物体的识别渐渐学会了从物体的边缘到物体的角落,到最后的形状的识别,而这些就恰恰是识别数字中也十分需要的。 

机器学习的完整周期:

我们机器学习主要分为4个周期。第一,先确定我们的模型使用的范围,比如是语音识别还是图像识别等等,第二我们需要收集数据,用到我们的数据增强,数据合成以及单纯的得到更多的数据,第三,我们要对他们进行数据的训练,这里我们需要通过偏差与方差以及我们的误差分析,重新在我们的数据收集和数据训练来上几个循环得到我们最佳的算法模型,最后在部署给公共使用,当然在部署的时候我们也还是需要对我们的模型进行维护等,当然同时我们也会从我们的平时部署中我们得到了更多的数据而不断的改变我们的算法。

关于部署:

 

我们在这里用到了Api调用算法,而我们机器学习的算法主要运行在我们的推理服务器上,我们通过手机的app发送我们的消息,从而从我们的模型中获得我们所预测的值。 

对于要在几百万人使用的情况下,我们需要制造一个软件可以来收集和改进我们的模型性能的问题。

我们也把部署的部分称为我们的MLOps ,它们的职责就是构建,部署,维护机器学习系统,来确保我们的模型性能一直处于一个比较好的状态。

伦理与公平,道德:

我们在创建一个机器学习时,不应该有任何偏见的因素在里面。不要建立对社会有害的机器学习系统。

倾斜数据集的误差指标:

我们在预测班级时,会预测是与不是,而实际也是是与不是看上图我们可以知道两个新的概念,准确率(precision)与召回率(recall):

准确率就是真正阳性/预测阳性,而召回率则是真正阳性/实际阳性。

当我们的预测一致为0时,就说明我们的真正阳性为0,那我们的准确率和召回率也都为0了。

高准确率意味着模型在分类时能够更准确地识别出正样本,而高召回率意味着模型能够更全面地找到所有的正样本。

对于准确率和召回率的平衡也是非常重要的一个课题,我们在逻辑回归中会普遍把我们的0.5作为1和0的分界线,但是当我们把分界线上升到了0.7,这时我们的准确率会上升,而我们的召回率则会下降,但当我们把分界线变为0.3时,我们的召回率会上升而我们的准确率则会下降,在这之间有一个可以让他们保持平衡的值,也就是它们之间的分界线平衡点。 

那我们如何权衡它们的大小关系呢?

我们在这里用到了F1分数的方法:(F1 score)

 它的方法是F1 score = 2*(准确率*回归率)/(准确率+回归率),这样我们就能得到每个算法所得的F1分数了,最大的就是最好的。它也可以被叫做调和平均值。

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

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

相关文章

【嵌入式——QT】MDI应用程序设计

MDI应用程序就是在主窗口里创建多个同类型的MDI子窗口,这些MDI子窗口在主窗口里显示,并享受主窗口上的工具栏和菜单等操作功能,主窗口上的操作都针对当前活动的MDI子窗口进行。 图示 代码示例 QWMainWindow.h #ifndef QWMAINWINDOW_H …

悬浮工具球(仿 iphone 辅助触控)

悬浮工具球&#xff08;仿 iphone 辅助触控&#xff09; 兼容移动端 touch 事件点击元素以外位置收起解决鼠标抬起触发元素的点击事件问题 Demo Github <template><divref"FloatingBal"class"floating_ball":class"[dragging, isClick]&q…

MT笔试题

前言 某团硬件工程师的笔试题&#xff0c;个人感觉题目的价值还是很高的&#xff0c;分为选择题和编程题&#xff0c;选择题考的是嵌入式基础知识&#xff0c;编程题是两道算法题&#xff0c;一道为简单难度&#xff0c;一道为中等难度 目录 前言选择题编程题 选择题 C语言中变…

SpringBoot中RestTemplate 发送http请求

SpringBoot中RestTemplate 发送http请求 引入fastjson <!--fastjson--> <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.47</version> </dependency>创建配置文件 新建c…

C语言指针、数组学习记录

指针 指针是什么 数据在内存中存放的方式 声明一个变量int i 3;&#xff0c;那么在内存中就会分配一个大小为4字节&#xff08;因为int类型占4字节&#xff09;的内存空间给变量i&#xff0c;这块内存空间存放的数据就是变量i的值。 换句话说就是&#xff0c;在内存中给变…

空间复杂度(数据结构)

概念&#xff1a; 空间复杂度也是一个数学表达式&#xff0c;是对一个算法在运行过程中临时占用存储空间大小的量度 。 空间复杂度不是程序占用了多少bytes的空间&#xff0c;因为这个也没太大意义&#xff0c;所以空间复杂度算的是变量的个数。空间复杂度计算规则基本跟实践复…

Grafana dashboards as ConfigMaps

文章目录 1. 简介2. 创建 configmaps3. grafana 界面查看 1. 简介 将 Grafana 仪表板存储为 Kubernetes ConfigMap 相比传统的通过 Grafana 界面导入仪表板有以下一些主要优点: 版本控制&#xff1a; ConfigMap 可以存储在版本控制系统(如Git)中,便于跟踪和管理仪表板的变更历…

人民网(人民号)如何发布文章新闻,人民网怎么投稿,附人民日报价格多少钱

最近有很多朋友问到一个问题&#xff0c;就是人民网如何发布文章新闻&#xff0c;以及人民网怎么投稿。作为一个专业的媒体发稿平台&#xff0c;媒介多多网为大家提供了一个非常好的解决方案。 首先&#xff0c;人民网作为我国权威媒体之一&#xff0c;其新闻发布渠道非常严谨…

python学习笔记------集合(set)

集合定义格式 基本语法&#xff1a; #定义集合字面量 {元素&#xff0c;元素&#xff0c;元素......&#xff0c;元素} #定义集合变量 变量名称{元素&#xff0c;元素&#xff0c;元素......&#xff0c;元素} #定义空集合 变量名称set() #定义集合字面量 {元素&#…

利用Amazon Bedrock畅玩Claude 3等多种领先模型,抢占AI高地(体验倒计时4小时)

快乐的时间总是短暂的&#xff0c;Claude 3 在亚马逊云科技上限时体验仅剩4小时&#xff0c;上次分享了入门级操作教程&#xff0c;本期给大家带来AWS Lambda Amazon Bedrock一起构建可以便捷使用的Claude 3接口 AWS Lambda AWS Lambda 是一项计算服务&#xff0c;可以运行您…

小白也能上手的爬虫项目:从零开始学习数据抓取

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

基于51单片机的定时器时钟设计[proteus仿真]

基于51单片机的定时器时钟设计[proteus仿真] 时钟设计检测系统这个题目算是课程设计和毕业设计中常见的题目了&#xff0c;本期是一个基于51单片机的定时器时钟设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】&#xff0c;赞赏任意文章 2&#xffe5;&…

Git分支管理(Git分支的原理、创建、切换、合并、删除分支)

系列文章目录 文章一&#xff1a;Git基本操作 文章目录 系列文章目录前言一、Git分支是什么二、Git分支的原理三、创建分支四、切换分支五、合并分支六、删除分支 前言 在上一篇文章中&#xff0c;我们学习了如何使用Git的一些基本操作&#xff0c;例如安装Git、创建本地仓库…

IDEA编译安卓源码TVBox

因为电视x受限&#xff0c;无法观看电视直播&#xff0c;为了春晚不受影响&#xff0c;于是网络一顿搜索&#xff0c;试过多个APP&#xff0c;偶尔找到这款开源的TVBox&#xff0c;寒假在家&#xff0c;随便拿来练练手&#xff0c;学习安卓APP的编写&#xff0c;此文做以记录&a…

栈与队列的故事

​​​​​​​ 目录 ​编辑​​​​​​​ 一、栈 1.1栈的概念及结构 1.2栈的实现 1、实现支持动态增长的栈 2、初始化栈 3、入栈 4、出栈 5、获取栈顶元素 6、检测栈是否为空 7、获取栈中有效元素个数 8、销毁栈 9、测试 1.3源码 二、队列 2.1队列的概念及结构…

Python 强大邮件处理库 Imbox

目录 IMAP Mailbox Imbox 安装 特性 提取邮件内容 处理附件 安全性 示例 1&#xff1a;读取收件箱中的邮件 2&#xff1a;搜索并下载附件 3&#xff1a;连接到IMAP服务器获取所有邮件 结论 IMAP Mailbox IMAP&#xff08;Internet Message Access Protocol&#x…

解放生产力,AI加持你也能做这些事!

去年网上流行一个说法叫一人企业或超级IP。一个人就是一家公司&#xff0c;可以更加专注于自身核心技能。既能对工作拥有更大的自主性和控制力&#xff0c;又能舍弃了传统公司管理等繁琐的事务工作&#xff0c;可以全面释放自己的兴趣和潜力。 这个概念给笔者留下了比较深的印…

使用Julia语言和R语言实现K-均值

K-均值算法基础 K-均值聚类算法属于一种无监督学习的方法&#xff0c;通过迭代的方式将数据划分为K个不重叠的子集&#xff08;簇&#xff09;&#xff0c;每个子集由其内部数据点的平均值来表示。计算方法大体如下&#xff1a; 1.初始化簇中心 选择K个数据点作为初始的簇中心…

实用软件分享之自动清理过期备份文件清理文件夹

实用软件分享之自动清理过期备份文件清理文件夹&#xff0c;单文件程序&#xff0c;把程序放在要清理的文件夹内&#xff0c;运行后&#xff0c;可以设置清理指定文件后缀&#xff0c;支持设置保留个数&#xff0c;按文件的修改时候&#xff0c;清理掉最早的文件 初步讲解&am…

【算法面试题】-04

执行时长 def min_execution_time(n, size, tasks):a 0ans sizei 0while i < size:tmp tasks[i]a tmpif a < n:a 0else:a - ni 1ans a // nif a % n ! 0:ans 1return ans# 读取输入 n int(input()) size int(input()) tasks list(map(int, input().split()))…