《Arduino家居安全系统构建实战》——1.8 更进一步

简介:

本节书摘来异步社区《机器学习项目开发实战》一书中的第1章,第1.1节,作者:【美】Mathias Brandewinder(马蒂亚斯·布兰德温德尔),更多章节内容可以访问云栖社区“异步社区”公众号查看

1.8 更进一步

人们第一次看到算法时,我常常看到的反应之一是“但是……这有点蠢。”他们真正的意思是,“但是……哪里有学习?”机器学习的正式定义是:“编写一个程序,在得到更多数据时,更好地执行某项任务。”我们的模型——1-最近邻算法完全符合这一定义:可以预期,越大的样本“工作得越好”(反过来,可以预期减少样本会使性能降级)。另一方面,它不太符合我们对“学习”的直观理解。我们的模型实际上记住了看到的所有情况,而人们倾向于将学习视为对高层抽象的辨别,这提供了经验的更紧凑表现形式。当你看到一个数字的图像时,不会重温一生中见过的所有图像以决定是否匹配——你知道用于过滤和识别的高层概念(“0就像一个圆圈”)。

可以在我们的问题上使用更高级的算法(如支持向量机或者神经网络,第8章中将这么做),它们的行为和“学习”的概念更符合:在训练阶段处理数据,并提取简化的表现形式。这样做的明显缺点是训练阶段实际上将变得更加复杂,好处是所得到的模型更小、更快。

那么,应该使用支持向量机、神经网络还是其他方法?和往常一样,答案是“看情况”。首先,这取决于你的终极目标。你的目标可能是更加精确;如果代码部署于生产环境,目标也可能是更快、使用更少内存或者其他。

正如前面所讨论的那样,实际上没有办法知道某种模型是否好于另一种——你必须尝试,这可能代价很高。所以,在追求更好的模型之前,要仔细考虑:当前模型是否足够好?工作是否集中于正确的问题?正如法国谚语所说“更好是好的敌人”。我们的简单算法已经达到大约95%的分类正确率,相当不错了。如果这已经足够,就不要浪费时间,转向感兴趣的下一个问题。机器学习问题有能力自己生存,除非你有一个快速、100%准确的完美模型,否则永远不能说“完成”了,回到工作中继续改善、挤出每一点精确度是很有诱惑的。因此,必须提前想好什么是“足够好”,否则可能需要很长时间来追求完美!

相关文章
|
7月前
|
存储 安全 数据安全/隐私保护
聊聊身边的嵌入式,智能电表
聊聊身边的嵌入式,智能电表
|
传感器 人工智能 IDE
《物联网硬件开发基础及HaaS EDU轻应用初体验》| 学习笔记
快速学习《物联网硬件开发基础及HaaS EDU轻应用初体验》
301 0
《物联网硬件开发基础及HaaS EDU轻应用初体验》| 学习笔记
|
传感器 供应链 数据可视化
【HaaS成功案例】基于HaaS开发框架的智能农业物联网大棚系统
【HaaS成功案例】基于HaaS开发框架的智能农业物联网大棚系统
【HaaS成功案例】基于HaaS开发框架的智能农业物联网大棚系统
|
存储 监控 安全
物联网入门训练营“W800开发板的奇思妙想”:基于WiFi模块的智能门锁系统
如果你有好的创意或者对文中的创意有更多延展想法,也可以在本文后评论,我们还有少数试用开发板的机会,期待你的评论。
物联网入门训练营“W800开发板的奇思妙想”:基于WiFi模块的智能门锁系统
|
安全 传感器 机器人
《Arduino家居安全系统构建实战》——导读
Arduino Uno是一种建立在单一电路板上的开源微控制器,它能够接收来自环境的感知输入并对交互的物理对象进行控制。Arduino Uno同时还是一种开发环境,你可以使用Arduino编程语言来为这个电路板编写程序。
1998 0