[W6]机器学习应用建议

采取什么措施来进一步优化

主要有五种措施
1.获取更多训练样本
2.尝试使用更小规模的特称
3.尝试增加特征
4.尝试使用多项式特征
5.增加或者减小正则参数λ

评估假设

我们如何评估一个已经做出的假设是否合理呢?也许我们的假设在训练集合上面有较好的表现,但是对于其他的数据却表现得不好。

这时候我们需要使用一些方法来评估我们的假设是否合理。
首先,我们需要把训练样本分为两部分,训练集合和测试集合
接着做如下步骤:
1.使用训练集合训练参数集合Θ 以及最小化Jtrain(Θ)
2.使用测试集合运算误差Jtrain(Θ)

测试集合误差计算

1.对于线性回归问题,按照如下公式

%e7%ba%bf%e6%80%a7%e5%9b%9e%e5%bd%92%e6%b5%8b%e8%af%95%e9%9b%86%e5%90%88%e8%af%af%e5%b7%ae
2.对于分类问题,(非0即1)
%e5%88%86%e7%b1%bb%e9%97%ae%e9%a2%98%e8%af%af%e5%b7%ae%e8%ae%a1%e7%ae%97
%e5%88%86%e7%b1%bb%e8%af%af%e5%b7%ae%e5%9d%87%e5%80%bc
第二个公式结果给出了分类错误的概率

模型选择以及训练/验证/测试集合

我们增加一个交叉验证集合
我们可以把学习样本分成三部分
1.训练样本 60%
2.交叉验证样本 20%
3.测试集合 20%
首先训练训练样本,然后将结果在交叉验证样本进行调试,最后使用测试样本进行测试。

诊断偏差和方差

1.高偏差意味着我们的方案对训练样本的适应性不够
2.高方差意味着我们过度的适配了训练样本
这两种情况都会导致我们的解决方案对新加入的样本无法正确预测/适配

如何判断是否高偏差/高方差

高偏差, Jtrain(Θ) 和 JCV(Θ) 都很高而且相近
高方差, Jtrain(Θ) 很低 JCV(Θ) 很高
如下图

%e9%ab%98%e6%96%b9%e5%b7%ae%e9%ab%98%e5%81%8f%e5%b7%ae

正则化参数λ对偏差和方差的影响

过大的λ会导致高偏差(过度正则化,不适配训练样本)
反之,过小的λ会导致高方差(过度适配训练样本)
如下图

%e6%ad%a3%e5%88%99%e5%8c%96%e5%8f%82%e6%95%b0%e7%9a%84%e5%bd%b1%e5%93%8d

学习曲线

即随着学习样本的增加,error的变化情况的曲线

高偏差

在样本数量较小时,Jtrain(Θ)较小,JCV(Θ)较大
样本数量较多时,Jtrain(Θ)和JCV(Θ)都会较高且接近
当我们的算法高偏差时,增加样本数量不会对结果有明显的改善

%e9%ab%98%e5%81%8f%e5%b7%ae%e5%ad%a6%e4%b9%a0%e6%9b%b2%e7%ba%bf

高偏差

样本较小时与高偏差无异
样本较多时,JCV(Θ)减小,Jtrain(Θ)增加,JCV(Θ) > Jtrain(Θ),不会互相近似
高偏差时,增加测试样本可以提高算法学习精度

%e9%ab%98%e6%96%b9%e5%b7%ae%e5%ad%a6%e4%b9%a0%e6%9b%b2%e7%ba%bf

使用哪些手法优化机器学习效率

1.获取更多的训练样本
可以提高高方差情况下的效率
2.尝试使用更小规模的特称
可以提高高方差情况下的效率
3.尝试增加特征
可以提高高偏差情况下的效率
4.尝试使用多项式特征
可以提高高偏差情况下的效率
5.减小正则参数λ
可以提高高偏差情况下的效率
6.增加正则参数λ
可以提高高方差情况下的效率

神经网络问题的优化方法

1.参数较少的神经网络问题更易于不耦合训练样本,计算量也较少
2.拥有更多参数的神经网络问题容易过度耦合训练样本,但是计算量较大,可以用正则化来优化。

模型选择

主要有两方面的问题,选择多项式次数,选择哪些参数可以被留下,去掉哪些参数
主要有三个方式来解决这个问题
1.获取更多的数据(非常困难)
2.选择适合训练样本的模型(非常困难)
3.通过正则化来避免过度耦合

u3coding

A software developer

1 Comment

Leave a Comment

Your email address will not be published. Required fields are marked *

*