机器学习策略篇:快速搭建你的第一个系统,并进行迭代(Build your first system quickly, then iterate)
快速搭建的第一个系统,并进行迭代
如果正在考虑建立一个新的语音识别系统,其实可以走很多方向,可以优先考虑很多事情。
比如,有一些特定的技术,可以让语音识别系统对嘈杂的背景更加健壮,嘈杂的背景可能是说咖啡店的噪音,背景里有很多人在聊天,或者车辆的噪音,高速上汽车的噪音或者其他类型的噪音。有一些方法可以让语音识别系统在处理带口音时更健壮,还有特定的问题和麦克风与说话人距离很远有关,就是所谓的远场语音识别。儿童的语音识别带来特殊的挑战,挑战来自单词发音方面,还有他们选择的词汇,他们倾向于使用的词汇。还有比如说,说话人口吃,或者说了很多无意义的短语,比如“哦”,“啊”之类的。可以选择很多不同的技术,让听写下来的文本可读性更强,所以可以做很多事情来改进语音识别系统。

一般来说,对于几乎所有的机器学习程序可能会有50个不同的方向可以前进,并且每个方向都是相对合理的可以改善的系统。但挑战在于,如何选择一个方向集中精力处理。即使已经在语音识别领域工作多年了,如果要为一个新应用程序域构建新系统,还是觉得很难不花时间去思考这个问题就直接选择方向。所以建议,如果想搭建全新的机器学习程序,就是快速搭好的第一个系统,然后开始迭代。的意思是建议快速设立开发集和测试集还有指标,这样就决定了的目标所在,如果的目标定错了,之后改也是可以的。但一定要设立某个目标,然后建议马上搭好一个机器学习系统原型,然后找到训练集,训练一下,看看效果,开始理解的算法表现如何,在开发集测试集,的评估指标上表现如何。当建立第一个系统后,就可以马上用到之前说的偏差方差分析,来确定下一步优先做什么。特别是如果错误分析让了解到大部分的错误的来源是说话人远离麦克风,这对语音识别构成特殊挑战,那么就有很好的理由去集中精力研究这些技术,所谓远场语音识别的技术,这基本上就是处理说话人离麦克风很远的情况。
建立这个初始系统的所有意义在于,它可以是一个快速和粗糙的实现(quick and dirty implementation),知道的,别想太多。初始系统的全部意义在于,有一个学习过的系统,有一个训练过的系统,让确定偏差方差的范围,就可以知道下一步应该优先做什么,让能够进行错误分析,可以观察一些错误,然后想出所有能走的方向,哪些是实际上最有希望的方向。

所以回顾一下,建议快速建立的第一个系统,然后迭代。不过如果在这个应用程序领域有很多经验,这个建议适用程度要低一些。还有一种情况适应程度更低,当这个领域有很多可以借鉴的学术文献,处理的问题和要解决的几乎完全相同,所以,比如说,人脸识别就有很多学术文献,如果尝试搭建一个人脸识别设备,那么可以从现有大量学术文献为基础出发,一开始就搭建比较复杂的系统。但如果第一次处理某个新问题,那真的不鼓励想太多,或者把第一个系统弄得太复杂。建议构建一些快速而粗糙的实现,然后用来帮找到改善系统要优先处理的方向。见过很多机器学习项目,觉得有些团队的解决方案想太多了,他们造出了过于复杂的系统。也见过有限团队想的不够,然后造出过于简单的系统。平均来说,见到更多的团队想太多,构建太复杂的系统。
希望这些策略有帮助,如果将机器学习算法应用到新的应用程序里,的主要目标是弄出能用的系统,的主要目标并不是发明全新的机器学习算法,这是完全不同的目标,那时的目标应该是想出某种效果非常好的算法。所以鼓励搭建快速而粗糙的实现,然后用它做偏差/方差分析,用它做错误分析,然后用分析结果确定下一步优先要做的方向。
机器学习策略篇:快速搭建你的第一个系统,并进行迭代(Build your first system quickly, then iterate)的更多相关文章
- ubuntu之路——day11.2 快速搭建系统并进行迭代、在不同的划分上进行训练和测试
快速搭建系统并进行迭代 1.建立dev/test set,并确定你的目标 2.快速建立初始化的系统 3.使用前面提到的bias/variance分析和错误分析来进行模型优化和迭代 针对以上的过程,An ...
- ng-深度学习-课程笔记-10: 机器学习策略2(Week2)
1 误差分析( Carrying out error analysis ) 假设你训练了一个猫的二分类模型,在开发集上的错误率是10%,你想分析这10%的错误率来自哪里,怎么做呢? 先把这些错分的图片 ...
- 快速搭建一个Quartz定时任务【转载,好文 ,值得收藏,亲身试用 效果不错】
Quartz.NET 入门 概述 Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔 ...
- 快速搭建ELK7.5版本的日志分析系统--搭建篇
title: 快速搭建ELK7.5版本的日志分析系统--搭建篇 一.ELK安装部署 官网地址:https://www.elastic.co/cn/ 官网权威指南:https://www.elastic ...
- .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统
.NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...
- 玩转 SpringBoot 2 快速搭建 | RESTful Api 篇
概述 RESTful 是一种架构风格,任何符合 RESTful 风格的架构,我们都可以称之为 RESTful 架构.我们常说的 RESTful Api 是符合 RESTful 原则和约束的 HTTP ...
- 聊聊SpringBoot | 第一章:快速搭建SpringBoot第一个应用
快速搭建SpringBoot第一个应用 1.简介 本章仅介绍如何快速搭建第一个SpringBoot应用,细节内容下一章再做讲解,如果有需要,各位可以直接到Spring官网去了解. 从 Spring B ...
- 玩转SpringBoot 2 快速搭建 | Spring Initializr 篇
SpringBoot 为我们提供了外网 Spring Initializr 网页版来帮助我们快速搭建 SpringBoot 项目,如果你不想用 IDEA 中的插件,这种方式也是不错的选择.闲话少说,直 ...
- DeepLearning.ai学习笔记(三)结构化机器学习项目--week2机器学习策略(2)
一.进行误差分析 很多时候我们发现训练出来的模型有误差后,就会一股脑的想着法子去减少误差.想法固然好,但是有点headlong~ 这节视频中吴大大介绍了一个比较科学的方法,具体的看下面的例子 还是以猫 ...
- 基于Docker快速搭建多节点Hadoop集群--已验证
Docker最核心的特性之一,就是能够将任何应用包括Hadoop打包到Docker镜像中.这篇教程介绍了利用Docker在单机上快速搭建多节点 Hadoop集群的详细步骤.作者在发现目前的Hadoop ...
随机推荐
- kettle使用2-增量插入
1.新建转换 2.在DB连接中,新建2个数据库连接 3.在输入中,新建:表输入 4.在输入中,新建:表输入 5.在输出中,新建:表输出
- sql审计平台部署
其它数据库管理平台:Orchestrator部署 包链接:https://github.com/hhyo/Archery/tree/master 部署链接:https://github.com/hhy ...
- Kmesh进入CNCF云原生全景图,实现网格治理sidecarless化
本文分享自华为云社区<Kmesh进入CNCF 云原生全景图> ,作者:云容器大未来. 近日,Kmesh 正式进入 CNCF 云原生全景图,位于 Service Mesh 类别下. CNCF ...
- 解决linux家目录模板文件被删之后显示不正常的问题
想必经常使用linux的小伙伴都遇到过下面这种情况: 下面讲解遇到这种问题之后如何解决: [root@node5 ~]# rm -rf /home/elk/.bash* [root@node5 ~]# ...
- Android 12(S) ALooper AHandler AMessage(一)
卧榻之侧岂容他人酣睡,到现在ALooper AHandler AMessage的工作原理一直都没搞懂,很慌!看他们的路径都在libstagefright/foundation下,作为一个foundat ...
- EF CORE 命令行
EF 命令行 使用管理台模式 Add-Migration 添加一个新的迁移(名词),string是迁移的名称remove-Migration 删除上一次的迁移Update-Database 更新最近一 ...
- LlamaFS自组织文件管理器
LlamaFS是一个自组织文件管理器.它可以基于文件内容和修改时间等属性自动重命名和组织您的文件.它能让你不把时间花在对文件的复制.粘贴.重命名.拷贝.排序等简单操作上.有幸在Github上看到Lla ...
- 机器学习策略篇:详解进行误差分析(Carrying out error analysis)
从一个例子开始讲吧. 假设正在调试猫分类器,然后取得了90%准确率,相当于10%错误,,开发集上做到这样,这离希望的目标还有很远.也许的队员看了一下算法分类出错的例子,注意到算法将一些狗分类为猫,看看 ...
- kettle从入门到精通 第五十三课 ETL之kettle MQTT/RabbitMQ consumer实战
1.上一节课我们学习了MQTT producer 生产者步骤,MQTT consumer消费者步骤.该步骤可以从支持MRQTT协议的中间件获取数据,该步骤和kafka consumer 一样可以处理实 ...
- kettle从入门到精通 第三十一课 mysql 数据连接连接池配置
无论开发应用程序还是做ETL研发,都离不开连接池的应用,如下是kettle中mysql 连接池设置界面,今天重点讲解下连接池中的参数配置. defaultAutoCommit 当 defaultAut ...