9. 第九章 神经网络:学习(Neural Network:learning)
9.1 代价函数
9.2 反向传播算法(Backpropagation algorithm,BP)
9.3 反向传播直觉
9.4 实现注意:展开参数
矩阵展开成长向量实现。
9.5 梯度检测(Gradient checking)
9.6 随机初始化(Random initialization)
9.7 组合到一起
9.8 无人驾驶(Autonomous driving example)
可以使用多个神经网络的集成学习组成自动驾驶系统。
10. 应用机器学习(Advice for applying machine learning)
10.1 决定下一步做什么
debug学习算法。
问题描述:假设已经实现正则化线性回归算法预测房价。然后,当在新的数据上进行测试时,发现它的预测结果十分不准确,接下来应该做什么?
获取更多的数据
尝试更少的特征
尝试获取更多特征
尝试添加特征的多项式组合
尝试减小λ \lambdaλ
尝试增大λ \lambdaλ
为了选择出要使用哪种策略来提升机器学习算法的性能,需要使用机器学习诊断(Machine learning diagnostic)来进行决策。
诊断:一个你可以运行的测试,以了解学习算法正在/不在工作,并获得关于如何最好地改善其性能的指导。这个工作会花费大量的时间,但很值得。
10.2 评估假设(Evaluating a hypothesis)
10.3 模型选择和训练,验证,测试集(Model selection and training/validation/test sets)
10.4 诊断偏差与方差(Diagnosing bias vs. variance)
10.5 正则化和偏差/方差(Regularization and bais/variance)
10.6 学习曲线(Learning curves)
10.7 接下来做什么(回顾本章开始的例子)
问题描述:假设已经实现正则化线性回归算法预测房价。然后,当在新的数据上进行测试时,发现它的预测结果十分不准确,接下来应该做什么?
获取更多的数据——高方差
尝试更少的特征——高方差
尝试获取更多特征——高偏差
尝试添加特征的多项式组合——高偏差
尝试减小λ \lambdaλ——高偏差
尝试增大λ \lambdaλ——高方差
神经网络和过拟合:
小型神经网络
更少的参数
更可能欠拟合
计算简单
大型神经网络
更多的参数
更可能过拟合(可以使用正则化处理)
计算复杂
11. 第十一章 机器学习系统设计(Machine learning system design)
11.1 确定优先级:垃圾邮件分类示例
特征x xx:选择100个单词作为垃圾邮件和非垃圾邮件的关键词。
注意:在实际应用中,常常选择在训练集中最常出现的n nn(10000到50000)个词作为关键词,而不是手动选择。
问题:有各种方法提升性能,如何选择比较困难?
11.2 误差分析(Error analysis)
帮助解决在各种提升性能的方法中进行选择。
推荐方法
迅速实现一个简单的算法,并且在验证集上进行测试
绘制学习曲线,去决策是否去获取更多的数据或者特征等等
误差分析:手动检查你的算法出错的例子(在交叉验证集中)。看看你是否发现它在哪些类型的例子上有任何系统性的趋势犯错误。
用一个数字去直观的体现算法性能是重要的
误差分析应该在验证集上进行
11.3 不对称性分类的误差评估(Error metrics for skewed classes)
11.4 权衡查准率和查全率(Trading off precision and recall)
11.5 机器学习数据
“不是谁有最好的算法就能获胜。而是谁拥有最多的数据”。
“It’s not who has the best algorithm that wins. It’s who has the most data." ——[Banko and Brill, 2001]
海量数据是合理的。
假设特征x ∈ R n + 1 x \in {R^{n + 1}}x∈R
n+1
已经提供了足够的信息,可以去准确的预测出标签y yy。判断这一点:给出这样的特征输入x xx,人类专家是否可以给出正确的输出。
学习算法可以使用更多的参数(如:逻辑回归,许多特征的线性回归,更多隐含层的神经网络)。
使用更多的训练数据,不易过拟合。