吴恩达机器学习机器学习实践建议13

1.决定下一步做什么

1.评估你的模型

吴恩达机器学习机器学习实践建议13_第1张图片

(1).线性回归

吴恩达机器学习机器学习实践建议13_第2张图片
如果是以下结果,那么模型就需要调整
吴恩达机器学习机器学习实践建议13_第3张图片

(2).分类问题

以识别手写数字1/0为例
吴恩达机器学习机器学习实践建议13_第4张图片
当机器学习应用于分类问题时,实际上J_test和J_train还有另一个更常用的定义,这个定义不用逻辑损失计算测试误差和训练误差,而是去衡量测试集和训练集被错误分类的部分,特别是在国际象棋中,你可以用这个算法,对每个测试样本进行预测1或者0
吴恩达机器学习机器学习实践建议13_第5张图片

2.模型选择&交叉验证

(1).首先将数据集分为三块
吴恩达机器学习机器学习实践建议13_第6张图片
然后可以使用这三个公式计算训练误差、交叉验证误差和测试误差
(2).计算并选择合适的模型
吴恩达机器学习机器学习实践建议13_第7张图片
这个模型选择的流程也适用于在其他类型模型中的选择
比如:选择神经网络的架构
吴恩达机器学习机器学习实践建议13_第8张图片

3.诊断方差/偏差

·J_train不是太高意味着没有高偏差的问题图片.png
·J_cv并不比J_train差太多,这表明它没有高方差的问题图片.png
这就是二次模型为什么适合这个场景
吴恩达机器学习机器学习实践建议13_第9张图片

*summery

高偏差意味着算法在训练集上表现上表现不好,高方差意味着,算法在交叉验证集的表现比训练集差很多
吴恩达机器学习机器学习实践建议13_第10张图片
4.正则化&偏差方差
正则化参数对拟合的影响
吴恩达机器学习机器学习实践建议13_第11张图片
选择正则化参数
吴恩达机器学习机器学习实践建议13_第12张图片
训练误差和交叉验证误差如何随着参数 λ 的函数变化的
λ越大就会导致,参数w越小, λ越小,参数就会越大
吴恩达机器学习机器学习实践建议13_第13张图片
通过Baseline performance衡量高偏差(Biase)、高方差(variance)
吴恩达机器学习机器学习实践建议13_第14张图片
5.学习曲线(Learning curves)
吴恩达机器学习机器学习实践建议13_第15张图片

(1).高偏差算法的学习曲线

如果是模型的问题,不管你再加多少样本到这个图上,直线的拟合性能都不会得到提升,如下图所示
·这就是为什么投入大量精力收集更多的训练数据之前,检查你的算法是否有高偏差(bias)是很重要的,因为算法有高偏差(variance),那你需要采取更多的措施来改善,而不是仅仅添加更多的训练数据
吴恩达机器学习机器学习实践建议13_第16张图片

(2).高方差算法的学习曲线

在这种情况下,你可以通过扩大训练集来降低交叉验证误差,从而让你的算法越来越好
吴恩达机器学习机器学习实践建议13_第17张图片
·summary:
如果你正在构建一个机器学习应用程序,你可以画出它的学习曲线,也就是建训练集划分成不同的子集,即使你有,比如说,1000个训练样本你可以只用100个样本来训练一个模型,看看它的训练误差和交叉验证误差,然后用200个样本训练模型,剩下800个样本暂时不用,然后画出J_train和J_cv.重复以上。然后画出大致的学习曲线。如果我们这样可视化,我们就掌握了另一种通过观察学习曲线判断是否高偏差还是高方差的方法。
(3).6个解决高方差/偏差的方法
吴恩达机器学习机器学习实践建议13_第18张图片
6.神经网络&方差偏差
更大的神经网络可以减少偏差(bisa),但计算成本会增加,可能会使得偏差(variance)变大
吴恩达机器学习机器学习实践建议13_第19张图片
对神经网络进行适当的正则化,可以改善偏差大的问题
吴恩达机器学习机器学习实践建议13_第20张图片
神经网络的正则化
这里只需要添加一串代码即可,每层的λ可以不同
吴恩达机器学习机器学习实践建议13_第21张图片

4.迁移学习

首先在大型数据集上进行训练,然后在较小的数据集上进一步参数调优,这两个步骤被称为监督预训练(supervised pretraining).第二步称为微调(fine tuning),即使用你已经初始化的或从预训练获取的参数,然后运行梯度下降,进一步的微调权重,以适应手写数字识别的特定程序。
吴恩达机器学习机器学习实践建议13_第22张图片
这种算法被成为迁移学习,因为给人的直观感受是,通过学习识别猫、狗、牛、人等。它已经为处理输入图像的前几个层学习了一些合理的参数。然后通过将这些参数迁移到新的神经网络,新神经网络参数的初始值更合适了,这样我们只需要再让算法学习一点,它就能成为一个很好的模型,
方法一:只训练输出层的参数,使用随机梯度下降法或Adam优化算法,只需要更新w[5],b[5]来降低代价函数,是针对你用来学习识别0-9这些数字的训练集的代价函数。
方法二:训练网络中的所有参数,包括w[1],b[1],w[2],b[2]一直到w[5],b[5],但是前四个参数用你上面训练的值(识别猫狗等动物的神经网络前四层的参数w1,,,)进行初始化。
如果你有一个非常小的训练集,那么选项1可能会更好一些,但是如果你有一个稍微大一点的训练集,那么选项2可能会更好一些。
·summary:
吴恩达机器学习机器学习实践建议13_第23张图片

你可能感兴趣的:(机器学习)