Machine Learning Chinese NLP :::: Debugging a Learning Algorithm - Chad Salinas ::: Data Scientist
Use Slidify to create motion charts to share with the world on rPubs Chad Salinas or GitHub.
Slidify, rPubs Chad Salinas, Motion Charts, Hans Rosling
1288
post-template-default,single,single-post,postid-1288,single-format-standard,qode-listing-1.0.1,qode-social-login-1.0,qode-news-1.0,qode-quick-links-1.0,qode-restaurant-1.0,ajax_fade,page_not_loaded,,qode-title-hidden,qode_grid_1300,qode-theme-ver-12.0.1,qode-theme-bridge,bridge,wpb-js-composer js-comp-ver-5.4.2,vc_responsive
a

Machine Learning Chinese NLP :::: Debugging a Learning Algorithm

Debugging a Learning Algorithm

到目前为止 我们已经介绍了许多不同的学习算法

如果你一直跟着这些视频的进度学习
你会发现自己已经不知不觉地
成为一个了解许多先进机器学习技术的专家了
然而 在懂机器学习的人当中
依然存在着很大的差距
一部分人确实掌握了
怎样高效有力地
运用这些学习算法
而另一些人
他们可能对我马上要讲的东西
就不是那么熟悉了
他们可能没有完全理解
怎样运用这些算法
因此总是
把时间浪费在
毫无意义的尝试上

我想做的是
确保你在设计
机器学习的系统时
你能够明白怎样选择
一条最合适 最正确的道路
因此 在这节视频
和之后的几段视频中
我将向你介绍一些实用的
建议和指导 帮助你明白怎样进行选择
具体来讲
我将重点关注的问题是
假如你在开发
一个机器学习系统
或者想试着改进
一个机器学习系统的性能
你应如何决定
接下来应该

选择哪条道路?

为了解释这一问题
我想仍然使用
预测房价的学习例子
假如你已经完成了正则化线性回归
也就是最小化代价函数J的值
假如
在你得到你的学习参数以后
如果你要将你的假设函数
放到一组新的房屋样本上进行测试
假如说你发现在预测房价时
产生了巨大的误差

现在你的问题是 要想改进这个算法
接下来应该怎么办?

实际上你可以想出
很多种方法来改进
这个算法的性能

其中一种办法是 使用更多的训练样本
具体来讲 也许你能想到
通过电话调查
或上门调查
来获取更多的
不同的房屋出售数据

遗憾的是
我看到好多人花费了好多时间
想收集更多的训练样本
他们总认为 噢 要是我有
两倍甚至十倍数量的训练数据
那就一定会解决问题的 是吧?
但有时候 获得更多的训练数据
实际上并没有作用
在接下来的几段视频中
我们将解释原因
我们也将知道
怎样避免把过多的时间
浪费在收集更多的训练数据上
这实际上是于事无补的

另一个方法 你也许能想到的
是尝试选用更少的特征集
因此如果你有一系列特征
比如x1
x2 x3等等
也许有很多特征
也许你可以花一点时间
从这些特征中
仔细挑选一小部分来防止过拟合

或者也许你需要用更多的特征
也许目前的特征集
对你来讲并不是很有帮助
你希望从获取更多特征的角度 来收集更多的数据

同样地
你可以把这个问题
扩展为一个很大的项目
比如使用电话调查
来获得更多有关
或者再进行土地测量
来获得更多有关
这块土地的信息等等 因此这是一个复杂的问题
同样的道理
我们非常希望
在花费大量时间完成这些工作之前
我们就能知道其效果如何
我们也可以尝试
增加多项式特征的方法
比如x1的平方 x2的平方
x1 x2的乘积
我们可以花很多时间
来考虑这一方法
我们也可以考虑其他方法
减小或增大正则化参数lambda的值

Chad Salinas working on Plotly

Chad Salinas working on analytics project.

Chad Salinas late nighter
我们列出的这个单子
上面的很多方法
都可以扩展开来
扩展成一个六个月或更长时间的项目

遗憾的是
大多数人用来选择这些方法的标准
是凭感觉的
也就是说
大多数人的选择方法是
随便从这些方法中选择一种
比如他们会说 “噢 我们来多找点数据吧”
然后花上六个月的时间
收集了一大堆数据
然后也许另一个人说
“好吧 让我们来从这些房子的数据中多找点特征吧”
我很遗憾不止一次地看到
很多人花了
不夸张地说 至少六个月时间
来完成他们随便选择的一种方法
而在六个月或者更长时间后
他们很遗憾地发现
自己选择的是一条不归路

幸运的是
有一系列简单的方法
能让你事半功倍
排除掉单子上的
至少一半的方法
留下那些确实有前途的方法
同时也有一种很简单的方法
只要你使用
就能很轻松地排除掉很多选择

从而为你节省
大量不必要花费的时间

在接下来的两段视频中
我首先介绍
怎样评估机器学习算法的性能

然后在之后的几段视频中
我将开始
讨论这些方法

它们也被称为”机器学习诊断法”

“诊断法”的意思是
这是一种测试法
你通过执行这种测试
能够深入了解
某种算法到底是否有用
这通常也能够告诉你
要想改进一种算法的效果
什么样的尝试

才是有意义的
在这一系列的视频中我们将介绍具体的诊断法
但我要提前说明一点的是
这些诊断法的执行和实现
是需要花些时间的
有时候
确实需要花很多时间
来理解和实现
但这样做的确是
更有效率地利用好你的时间
因为这些方法
让你在开发学习算法时
节省了几个月的时间
早点从不必要的尝试中解脱出来
早日脱离苦海

因此
在接下来几节课中
我将先来介绍
如何评价你的学习算法
在此之后
我将介绍一些诊断法
希望能让你更清楚
在接下来的尝试中
如何选择更有意义的方法
最终达到改进机器学习系统性能的目的

Let the dataset change your mindset

– Hans Rosling
No Comments

Sorry, the comment form is closed at this time.