吴恩达机器学习第十一章---应用机器学习的建议

决定下一步做什么

                                吴恩达机器学习第十一章---应用机器学习的建议_第1张图片

       当得到一个如上图中上半部分所示的代价函数,需要对其进行优化。那如何进行优化才能使得这个式子能够更进一步得出更准确的模型那?

         给出几个方式:

         1.可以收集更多的训练样本

         2.尝试使用更少的特征(防止过拟合)

         3.也有可能需要更多的特征

         4.增加多项式特征

         5.减小或增大正则化数lambda的值

     但是如何确选择哪一种优化方法又成为一个新的问题。方法并不是随便选取的,不然很有可能你花费了很长时间最后得到的效果却并不好。

     如同算法有评估方法一样,机器学习也有对应的评估方法。被称为机器学习诊断法。

评估假设

                                     吴恩达机器学习第十一章---应用机器学习的建议_第2张图片

       实际上并非假设函数与训练集拟合的越相似越好,很有可能出现过拟合的问题。为了判断对应的假设函数是否过拟合,对于如上图所示的简单的假设函数,可以直接通过画图来观测,但实际上可能给定的特征成百上千个,无法画出。

                                           吴恩达机器学习第十一章---应用机器学习的建议_第3张图片

      由于要测试假设函数,而又无法画出,因此将给定的数据集划分为两部分,一部分作为训练集,一部分作为测试集,一般来说是3-7分。30%用来测试,70%用来训练。

                                               吴恩达机器学习第十一章---应用机器学习的建议_第4张图片

       以回归问题中的线性回归举例,使用测试数据集得出假设函数的参数,即使平方误差最小。然后使用由训练给出的模型来预测测试集的平方误差,可以通过这个平方误差来判断生成的假设函数的好坏。

                                                  吴恩达机器学习第十一章---应用机器学习的建议_第5张图片

      与回归问题一样,当面对分类问题时,先使用对应的训练数据集得出假设函数的参数,然后使用测试数据集判断分类误差。最后通过上图中最下面所示的式子来定义测试误差。

模型选择和训练,验证,测试

                                          吴恩达机器学习第十一章---应用机器学习的建议_第6张图片

       训练误差并不能用来判断该假设函数对新样本的拟合的好坏。即使训练集中表现的拟合能力很好,也并不能说明该假设函数有多么好的泛化能力。

                                                  吴恩达机器学习第十一章---应用机器学习的建议_第7张图片

      我们使用训练集来确定了参数θ,但对应的假设函数实际上有多种,选择哪一种成为对于我们来说较为重要的。在上图中的拟合过程是,我们现在不知道要选择哪一个假设函数,我们通过训练集确定参数,我们通过一次函数确定θ1,二次函数确定θ2,以此类推。然后我们在上图中十个式子的基础上通过将测试集代入,将对应的十个均方误差都求出最后选定最小的那一个就是我们要用到的假设函数。我们实际是使用测试集来确定选择模型的的。因此实际上我们由测试集得到的均方误差可能并不准确。

                                              吴恩达机器学习第十一章---应用机器学习的建议_第8张图片

    我们由上述得知实际上我们使用了测试集来拟合数据得。因此对应的模型实际上并不能反映出真正的泛化能力。为解决这个问题,将数据集由原来的分为两部分划分为三部分,分别是对应的训练集,交叉验证集,测试集,比例如上图所示。

   那么它的确定过程就如下图所示:

                                               吴恩达机器学习第十一章---应用机器学习的建议_第9张图片

      同样使用训练集来确定参数θ,但是通过交叉验证集来选择模型,最后使用验证集来表现其泛化能力。训练集确定θ,
交叉验证集确定d,测试集评价泛化能力。

诊断偏差与方差

                                                   吴恩达机器学习第十一章---应用机器学习的建议_第10张图片

      

        在上一部分讨论了将给定的数据分成三部分即训练集,交叉验证集,测试集。其中测试集是用来判断生成的模型的泛化能力的,不参加具体的诊断。现在要来判断对应算法的好坏,仔细想来要么是方差,要么是偏差。换句话说要么是欠拟合,要么是过拟合。我们对应上图,其中横轴代表多项式的次数,而纵轴代表对应的代价函数(均方误差函数)的大小。其中凹的是交叉验证误差对应的图,而呈下降趋势的则是训练误差的对应的图。由此我们可以看出交叉验证误差比较大有两种情况,而训练误差比较大只有一种情况。我们由图可得:当是高偏差即欠拟合的情况时,交叉验证误差与训练误差都比较大。当是高方差即过拟合的情况时,训练误差会比较小,但交叉验证误差会比较大。仔细思考会发现其实交叉验证误差本身反应的是交叉验证集中的拟合情况,一旦交叉验证误差过大那么要么是过拟合,要么是欠拟合。而对于训练误差来说,它本身就是用来训练模型的,一旦它的误差比较大,那么只可能是欠拟合即高偏差。

正则化和偏差,方差

                                                       吴恩达机器学习第十一章---应用机器学习的建议_第11张图片

       在前面的学习中已经了解到对于过拟合的问题可以使用正则化的方式来解决,但正则化要考虑好对应的λ值。当λ值过大则会导致降的太多变成欠拟合,如上图中最左边的部分所示。而当λ值过小则又会导致代价函数几乎没有正则化,依旧是过拟合。所以应当尽量选择一个合适的λ值使得最后的模型如中间的图所示。

                                                      吴恩达机器学习第十一章---应用机器学习的建议_第12张图片

       如何选择最合适的λ值?我们可以一步一步尝试。刚开始将λ设置为0。然后给定一个步长,逐步增大。以上图为例逐渐增加λ的值。设定的步长为2,即每次扩大二倍。最后一共得到12个不同值得λ的参数。我们得出这些不同的参数后,用交叉验证集来评估它们。选出交叉验证集最小的那个模型作为最终选择。同时得出最合适的λ值。

                                                           吴恩达机器学习第十一章---应用机器学习的建议_第13张图片

    那么对应于λ,训练数据集的代价函数和交叉验证数据集的代价函数的图像应该是怎样的?

    如上图左边对应的后两个式子分别是训练数据集和交叉验证数据集对应的代价函数。不使用正则化就如上所示。

    而在加上对应的正则项后两个数据集的均方误差如右图所示。当λ值较小时几乎没有进行正则化则会导致过拟合问题的出现。当过拟合出现时对于训练集来说均方误差函数十分小,对于交叉验证数据集来说均方误差就会很大。同理,当λ变得较大后,则会导致欠拟合问题的出现。这样无论是训练集还是交叉验证集对应的均方误差都很大。

学习曲线

          如何实时的判断某一算法是否处于偏差,方差问题还是二者均有。在这里就使用到了学习曲线。

                                                             吴恩达机器学习第十一章---应用机器学习的建议_第14张图片

         如上图左下角所示,该曲线对应的横轴为m(训练集中样本的个数),纵轴代表的是平均误差的取值。对于训练集来说,对应的均方误差会随着给定的样本数的增多而增加,越来越不好拟合。而对于交叉验证集来说,当取得的样本数量较少时,泛化程度很不好,不能够很好的适应。只有当使用一个更大的数据集时才能更好的拟合数据的假设。而交叉验证集会随着样本的增多而减小。

                                                        吴恩达机器学习第十一章---应用机器学习的建议_第15张图片

          如上图所示,当处于高偏差的情况时(欠拟合),这个时候随着给定的样本的数量的增加交叉验证集的均方误差与训练集的均方误差最后会很接近,我们在最开始的图中也可以看到,当处于欠拟合的情况时,交叉验证数据集的均方误差和训练集的均方误差都比较大。此时增加更多的数据也没什么用。并不会使得均方误差函数下降。

                                                    吴恩达机器学习第十一章---应用机器学习的建议_第16张图片

       对于高方差(过拟合)的情况,与高偏差又不相同,因为一直属于过拟合的情况,那么实际对应的训练集的均方误差一直都很小。与此同时,对于交叉验证集来说,随着给定的集合的增大它的对应的均方误差会逐渐的减小。如上图所示。因此,当处于高方差的情况时,增加数据的个数还是十分有用的。

决定接下来做什么

                                                        吴恩达机器学习第十一章---应用机器学习的建议_第17张图片

         那么现在来尝试总结出对应高方差和高偏差的解决办法。

         之前提出的几个办法现在则一一对应。

         如上图所示:高方差(过拟合),高偏差(欠拟合)

        增加数据集--->解决高方差

        减少特征数量--->高方差

        增加特征---->高偏差

        增加多项式特征--->高偏差

        减小正则化系数--->高偏差

        增大正则化系数--->解决高方差

                                                       吴恩达机器学习第十一章---应用机器学习的建议_第18张图片

                我们在使用神经网络时同样会出现这样的问题。当我们选择了一个如上图中左边那样的小型神经网络后,会发现它由于参数少,很容易出现欠拟合的问题。它的优势是计算量比较小。而对于上图中右边的较为复杂的神经网络来说,由于参数过多又很容易出现过拟合的问题。实际上越大的网络性能越好,但有时候会出现过拟合的情况,为解决这个情况可以使用正则化。

你可能感兴趣的:(笔记,吴恩达,机器学习笔记,机器学习)