当前位置: 首页 > 编程日记 > 正文

如何更新你的机器学习模型?手把手带你设计一个可持续的预测模型!

作者 | CloudFactory

译者 | 天道酬勤 责编 | 徐威龙

出品 | AI科技大本营(ID:rgznai100)

高效的机器学习模型需要高质量的数据。训练你的机器学习模型并不是过程中的单个有限阶段。即使将其部署到生产环境中,也可能需要稳定的新训练数据流来确保模型随时间推移的预测准确性。

毕竟,训练数据会显式地调用数据集中的属性,这些属性代表外部世界中不断变化的基本事实。如果不进行周期性的重新训练,随着现实世界变量的演变,模型的准确性自然会随时间下降。

在本文中,我们将讨论为什么不管你的初始训练数据过程多么严格,继续训练你的机器学习模型都是至关重要的。我们还将讨论再训练的方法以及每种方法的优点。

最后,我们将介绍如何在任何机器学习项目开始时预见对后续更新的需求。通过从一开始就建立再训练流程,帮你设计一个可持续的预测模型。

 数据漂移与再训练需求

为什么大多数机器学习模型都需要更新才能保持准确性?答案在于训练数据的性质以及它如何告知机器学习模型的预测功能。

训练数据是一个静态数据集,机器学习模型可从该数据集中推断出模式和关系,并形成对未来的预测。

随着现实世界条件的变化,训练数据的基本事实方面表示可能会不太准确。想象一下用于预测50个大型都会区租金成本的机器学习模型。从2000年到2019年的训练数据可能会以惊人的准确性预测2020年的租金价格。在预测2050年的租金价格时,这种方法可能会不太有效,因为房地产市场的基本性质可能在未来几十年内发生变化。

应用自然语言处理(NLP)来训练聊天机器人提供了数据漂移的另一个有用的例子。我们使用语言的方式正在不断演变,因此必须更新用于聊天机器人的训练数据的语义分析,来反映当前的语言。想象一下,尝试使用1980年代的培训数据来训练聊天机器人与现代消费者进行互动。在40年中,语言可能会发生重大变化,这迫使人们需要更新训练数据。

这一现象已经有了多种描述方法,包括数据漂移概念漂移模型衰减。不管你怎么称呼它,它都代表了机器学习的硬道理:在未来的某个时候,你的训练数据将不再为准确的预测提供基础。

如何应对这个不可避免的挑战呢?答案是定期使用新的或扩展的数据重新训练你的模型。实际上,训练你的模型是一个持续的过程,特别是在质量要求很高的情况下。

你应该如何更新你的机器学习模型?简单来说,你有两个选择:使用更新的输入手动重新训练模型,或构建一个旨在从新数据中不断学习的模型。

手动模型重新训练方法

手动更新机器学习模型的方法本质上是复制你的初始训练数据过程,但要使用一组更新的数据输入。在这种情况下,你可以决定如何以及何时向算法提供新数据。

此选项的可行性取决于你定期获取和准备新训练数据的能力。你可以随时监控模型的性能,确定何时需要更新。如果模型的准确性明显下降,则可能需要对更新的数据进行重新训练。

这种方法的优点之一是修修补补通常可以带来真知灼见和创新。如果密切监视模型并找出缺点,你可能会发现包含额外数据或以更基本的方式修改算法的价值。

模型训练的持续学习方法

持续学习模型通常会从部署了数据的生产环境中合并新的数据流。

消费者每天都会参与持续学习的机器学习模型。以音乐流媒体平台Spotify为例,该平台使用协作过滤功能,根据具有相似爱好的其他用户的偏好向用户提供推荐,来创造价值和竞争优势。

当Spotify用户收听音乐时,与他们的选择有关的数据会反馈到公司的预测算法中。由此产生的反馈循环完善了该应用为其用户提供的推荐,并允许高级个性化设置,例如机器生成的个性化播放列表。Netflix等其他领先的消费媒体服务提供商也使用类似的持续学习系统。

如你所料,构建这些系统所需的技术专业知识和资源对于许多组织来说根本无法满足。此外,你需要稳定的数据流来进行自动集成。在持续学习模型中,人为干预是可能的,但它代表了一个真正的瓶颈。例如,Spotify在将其数百万用户生成的数据反馈回其算法之前,不需要对其进行清理或格式化。

无论是手动更新还是持续学习似乎都是更有效(可行)的选择,你需要从战略上考虑用于生成新数据来进行再培训的劳动力和技术。如果你打算在可预见的将来使用你的模型,则需要合适的资源来保持该模型最新。

预测进化:选择团队

创建训练数据需要人员、流程和工具的战略组合。要解决收集、清理和标记数据的模糊性,你需要一个高效的技术人员团队,其中包括熟练的技术人员和先进的技术。

许多组织无法管理或扩展内部团队来准备训练数据,因此他们寻求利用人类智能的替代方法。众包劳动力是一种常见选择,它使你可以在短时间内找到数百名匿名工人。

然而,匿名众包带来了隐性成本,包括与员工的沟通不畅,这可能导致工作质量低下。而且,如果在开发初期训练数据集时这些缺点很明显,那么当你尝试重新训练和更新模型时,这些缺点将让人特别沮丧。

在一群匿名的众包工人的情况下,几乎不可能进行监督或转移机构记忆。每次开发新的训练数据时,都有发现新的不一致和性能问题的风险。

或许你也可以选择另一种方式,将这个问题外包给靠谱的、专业解决这种问题的企业,会更有保障。

如果有不清楚的地方或其他意见,欢迎评论告诉我们。

原文:

https://hackernoon.com/how-to-keep-your-machine-learning-models-up-to-date-vd5z3yzw

【end】◆有奖征文◆推荐阅读如何用Jupyter Notebook制作新冠病毒疫情追踪器?万人马拉松赛事,人脸识别系统如何快速、准确完成校验?突破性能极限,阿里云神龙最新ASPLOS论文解读DevOps 转型时如何安全融入?对企业产出有何影响?2019年 DevOps 最新现状研究报告解读百万人学AI:CSDN重磅共建人工智能技术新生态漫画:如何给女朋友解释什么是熔断?你点的每个“在看”,我都认真当成了AI

相关文章:

占失物,笔记本电脑电池

公历:2009年3月18日18时11分 农历: 农历己丑年(牛)二月廿二 节气: 2009年3月5日19时2分惊蛰年建:己丑 月建:丁卯 日建:壬戌 时建:己酉 断:玄武中值天地合,故能寻到,在西方,又为长生之地,故为住…

Scala Learn 1 Basic

Chap 0 前言 focus on: Scala 的语法十分简洁Scala 运行在虚拟机之上, 可以使用 java 的海量类库和工具Scala 拥抱函数式编程的同时,并没有废弃面向对象Scala 既有动态语言那样的灵活简洁,同时有保留了静态类型检查的安全与执行效率Scala 既能处理脚本化…

linux下使用NetBeans调试libevent库

1.安装libevent 参考:http://blog.csdn.net/unix21/article/details/8679269 libevent安装在usr/local/libevent下 2.安装netBeans http://www.netbeans.org 3.配置netBeans 1)打开项目的属性选项,选择包含目录,把/usr//local/libevent/…

批量删除指定文件

Linux下的解决方法: # Linux Batch Delete find /home/data/-name ab.doc-exec rm -f {} \;注:最后反斜杠前有一空格,最后一个是分号。Windows下的解决方法:rem Windows Batch Delete 1: DEL /Q /S D:\home\data\*.class 2: FOR /R D…

百万人学AI:CSDN重磅共建人工智能技术新生态

站在AI发展的新十年起点上,CSDN将发挥开发者优势,与中国AI各行业和企业共建“百万人学AI”新技术生态。 作者 | CSDN新媒体事业部 8年前,现图灵奖得主Hinton团队在ImageNet竞赛中首次使用深度学习完胜Google等其它团队,顿时让工…

Android Property Animation属性动画:scale缩放动画(4)

Android Property Animation属性动画:scale缩放动画(4) 和之前我写的附录文章1,2,3相似,本文将接着使用Android Property Animation属性动画实现一个缩放的动画。代码部分和文章1,2,3中的代码大同小异&am…

结构体的两种声明方式:堆上和栈上以及在双链表的应用

在看《算法精解:C语言描述》的双链表chtbl和redis的双链表adlist.c发现代码思路基本是一致的。 但是,对于链表的初始化却不一样 1.《算法精解:C语言描述》风格 /************************************************************************…

COM 组件设计与应用(六)——用 ATL 写第一个组件(vc.net)

一、前言 1、与 《COM 组件设计与应用(五)》的内容基本一致。但本回讲解的是在 vc.net 2003 下的使用方法,即使你不再使用vc6.0,也请和上一回的内容,参照比对。2、这第一个组件,除了所有 COM 组件必须的 IUnknown 接口外&#xff…

《评人工智能如何走向新阶段》后记(再续19)

由AI科技大本营下载自视觉中国304. 也来讨论构建模拟人类思维过程的认知计算机制,好像这个问题迄今尚未获得解决。 我们先从输入的信息类型说起:一类是语言输入(包括词、句、文本),第二类是图像输入(包括图…

PHP下载/采集远程图片到本地

2019独角兽企业重金招聘Python工程师标准>>> PHP下载/采集远程图片到本地01 /** 02* 下载远程图片到本地 03* 04* param string $url 远程文件地址 05* param string $filename 保存后的文件名(为空时则为随机生成的文件名,否则为原文件名&am…

Linux守护进程实现

Linux守护进程 redis版: void daemonize(void) {int fd;if (fork() ! 0) exit(0); /* parent exits */setsid(); /* create a new session *//* Every output goes to /dev/null. If Redis is daemonized but* the logfile is set to stdout in the configuration …

美团十年,支撑最大规模外卖配送的一站式机器学习平台如何炼成?

作者 | 艳伟,美团配送技术团队资深技术专家编辑 | 唐小引题图 | 东方 ICAI 是目前互联网行业炙手可热的“明星”,无论是老牌巨头,还是流量新贵,都在大力研发 AI 技术,为自家的业务赋能。配送作为外卖平台闭环链条上重要…

Windows 2008 R2中的NAP新功能详解

随着Windows Server 2008 R2版本的发布,Windows网络访问保护模式(NAP)又增加了新功能。在本文中,笔者将对新功能进行简要的介绍。Windows Server 2008中提供的网络访问保护(NAP)功能已经更新到R2版本。在Windows功能、无线网络访问…

whoosh学习(1)

2019独角兽企业重金招聘Python工程师标准>>> 背景 当前项目需要用到全文搜索redis不方便实现mysql效率太低搜索引擎选择 pylucenewhoosh(似乎更受欢迎,文档最全)为什么选择 纯python实现,省了编译二进制包的繁琐过程。…

仿照redis写的nginx开机画面

redis有一个开机画面: 下面是我写的的nginx开机画面: 新建一个文件 asciilogo.h //仿照redis风格打印一个logo,这样启动的时候就不会不注意 char *ascii_logo " …

房子成焦点,被挂马的房产网站仍在增加中

统计发现,近期大部分使用极光漏洞挂马,这个漏洞实在是太好用了。没打补丁,没装网盾,按网马广告上说的,有不弹、不卡、不闪三大“优点”,点击挂马网页会中招。今天新增被挂马的知名房产网站列表(…

检测、量化、追踪新冠病毒,基于深度学习的自动CT图像分析有多靠谱?

作者 | Ophir Gozes, Maayan Frid-Adar等译者 | 刘畅出品 | AI科技大本营(ID:rgznai100)背景:新冠病毒的传播非常迅速,并对数十亿人的生活产生了重大影响。由于非对称胸部CT已被证明是检测、量化和追踪该疾病的有效工具&#xff0…

关于产品体验以及产品会被抄袭的思考

一个好产品本来可以以免费让用户注册为开始吸引用户并从而能引导用户进行消费和购买的;但是由于可能考虑到当前这个产品可能会被别人抄袭,从而设定了门槛,然后营销团队进行沟通,和别人说当前的产品是多么多么的好,从而…

Linux socket 网络编程 常用头文件

一 三种类型的套接字:1.流式套接字(SOCKET_STREAM)提供面向连接的可靠的数据传输服务。数据被看作是字节流,无长度限制。例如FTP协议就采用这种。2.数据报式套接字(SOCKET_DGRAM)提供无连接的数据传输服务,…

达摩院实现自动驾驶核心技术突破,达摩院首次实现3D物体检测精度与速度的兼得

阿里巴巴达摩院在自动驾驶3D物体检测领域取得了新突破!达摩院近期一篇论文入选计算机视觉顶会CVPR 2020,该论文提出了一个通用、高性能的自动驾驶检测器,首次实现3D物体检测精度与速度的兼得,有效提升自动驾驶系统安全性能。目前&…

$httpprovider指令中拦截器interceptors的使用介绍

2019独角兽企业重金招聘Python工程师标准>>> $http服务允许我们使用http请求和后台做通信,但是在每一次放松请求之前我们都希望能够捕捉这个请求并且进行操作,比如之前富瑞中每一个请求中header要放入用户名和密码一样,富瑞的做法…

bzero, memset ,setmem 区别

bzero 原型&#xff1a;extern void bzero(void *s, int n);用法&#xff1a;#include <string.h> 功能&#xff1a;置字节字符串s的前n个字节为零。 说明&#xff1a;bzero无返回值。 举例&#xff1a; // bzero.c #include <sysl…

了解这4个重点,带你探索未来将如何设计智能系统和机器人!

作者 | Himanshu Ragtah 译者 | 天道酬勤 责编 | 徐威龙 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 到目前为止&#xff0c;为智能系统设计零件需要从头开始构建零件。从2D草图到可以根据给定的成本、材料和最大重量限制制造的可行且坚固的零件。这通常需要几天…

静态路由和默认路由的配置实例

RTA的配置&#xff1a;interface FastEthernet0/0ip address 1.1.1.2 255.255.255.252duplex autospeed auto!interface FastEthernet0/1no ip addressduplex autospeed autoshutdown!interface FastEthernet1/0ip address 10.10.10.1 255.255.255.0duplex autospeed auto!inte…

Centos运行级别和开机过程

一、Linux运行级别1&#xff09;0&#xff1a;关机2&#xff09;1&#xff1a;单用户3&#xff09;2&#xff1a;多用户状态没有网络服务4&#xff09;3&#xff1a;多用户状态有网络服务5&#xff09;4&#xff1a;系统未使用保留给用户6&#xff09;5&#xff1a;图形界面7&a…

PHP FPM设置

php-fpm启动 拷贝启用文件 # cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm 启动 # /etc/init.d/php-fpm 重启 # killall php-fpm # /etc/init.d/php-fpm ------------------------ 进程不够就会起新&#xff0c;新的不能超过pm.max_children&#xff1b; 但是新的也会变为…

MySQL的binarylog处理

繁忙中測試新到的服務器&#xff0c;調試優化app&#xff0c;再加上月底公司搬家&#xff0c;很多配置都要更改。早上不經意telnet改dns的時候發現MySQL日誌很大了。。。 奇怪&#xff0c;我設置過的都改過了。。後來發現這台是子公司帶過來的機器。。。。以前那幾台都沒寫過配…

IJCAI 2020灭霸式拒稿,AI审稿是否更公平?

来源 | 数据派 THU编辑 | 文婧出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;一、IJCAI 2020灭霸式拒稿引众怒随着AAAI 2020于2月7日作为2020年人工智能学界的第一个顶会在美国纽约开幕&#xff0c;人工智能相关领域的研究者们又要为新一年的顶会忙碌了。对于AI界的…

ASP.NET MVC 中将FormCollection与实体间转换方法

http://blog.csdn.net/lutinghuan/article/details/8449296 将Action动作中传递的FormCollection转变成对应的实体&#xff0c;可以使用Controller的TryUpdateModel()方法。 示例如下&#xff1a; [csharp] view plaincopy [HttpPost] public ActionResult Create(FormCollect…

增量学习不只有finetune,三星AI提增量式少样本目标检测算法 | CVPR 2020

作者 | VincentLee来源 | 晓飞的算法工程笔记该论文研究了非常有意义的增量式少样本目标检测场景iFSD(Incremental Few-Shot Detection)&#xff0c;场景设置如下&#xff1a;检测模型可以在包含充足样本的基础类别上进行训练训练好后&#xff0c;iFSD能够应用到真实世界中&…