Andrew Ng 机器学习笔记 ---By Orangestar

Week_6 (1)


In Week 6, you will be learning about systematically improving your learning algorithm. The videos for this week will teach you how to tell when a learning algorithm is doing poorly, and describe the 'best practices' for how to 'debug' your learning algorithm and go about improving its performance.


1. Deciding What to Try Next

如何改进算法?

  1. 使用更多样本
  2. 尝试更少的特征参数
  3. 尝试用更多的特征参数
  4. 尝试多元参数
  5. 试着降低或者升高正则参数

但是,选择一种有效的方法是困难的

所以,我们需要评估一个机器学习算法的性能的方法

Machine learning diagnostic

定义:

2. Evaluating a Hypothesis

如何评估假设函数以及避免过拟合和欠拟合?

如何评价假设函数?

将数据分割:按照某个比例

1.常用训练集

2.测试集

基本步骤:

  • (回归问题):(线性回归)

  • (分类问题):(逻辑回归)

    差不多,用测试集评估。

    问题是:如何计算error(0/1)?

    其实和之前差不多,要定义决策界限

    用0/1错分率来定义error

总结:

3. Model Selection and Train/Validation /Test Sets

模型选择问题//训练集//验证集//测试集

  1. 模型选择:

    还需要选择一个参数d. 也就是最高次数。

    可以逐个选择,然后逐个算出测试集的误差函数。

    然后观察哪个最小。

    而且,这样选出的模型,可能仅仅是可以很好的拟合测试集,但是其他的说不定。所以,我们仅仅是用测试集来拟合样本。不公平!

    所以,我们可以用 交叉验证集!cross validation set

    现在把数据集分为3个部分:

    就是说,验证是最好的模型,可以用交叉验证集来检验!然后,就没有和测试集进行拟合,回避了测试集的嫌疑

    一般的比例为:

4. Diagnosing Bias vs. Variance

如何判断一个算法,是和方差有问题还是和偏差有问题?

用图像来直观理解

注意理解bias error 和 variance error

也就是,区分过拟合和欠拟合的情况

当然,这两种情况都是不好的!

5. Regularization and Bias / Variance

更深入地 探讨一下偏差和方差的问题 讨论一下两者之间 是如何相互影响的 以及和算法的正则化之间的相互关系

首先,我们来看一下正则项:

当然,我们需要先用交叉验证集上进行选择模型

再试着用哪一个正则项更好。来得到最小的J_train_

如图:

总结步骤:

  • for each λ go through all the models to learn some Θ.
  • without regularization or λ = 0

    以上两点很重要

6. 学习曲线learning curves

一种模型,当训练集的样本增加的时候,error是越来越大的

  • 高偏差情况high bias(欠拟合)

结论:

所以,如果模型是高偏差,再多的样本来拟合,也不太会管用

  • 高方差情况high variance(过拟合)

这种情况下,使用更多的样本是有帮助的

总结:

画出曲线,可以更容易看出是高偏差还是高方差的问题,然后来选择改进算法

7. Deciding What to Do Next Revisited

当我们发现方差或者偏差出了问题,我们应该怎么做?

  • 如何和神经网络联系/

    如果发生过拟合,可以使用正则化

    但是,计算量更大。

  • 如何选择hiding layer?

    想用多个隐藏层。可以尝试着数据分割。


总结:

Our decision process can be broken down as follows:

  • Getting more training examples: Fixes high variance

  • Trying smaller sets of features: Fixes high variance

  • Adding features: Fixes high bias

  • Adding polynomial features: Fixes high bias

  • Decreasing λ: Fixes high bias

  • Increasing λ: Fixes high variance.

Diagnosing Neural Networks

  • A neural network with fewer parameters is prone to underfitting. It is also computationally cheaper.
  • A large neural network with more parameters is prone to overfitting. It is also computationally expensive. In this case you can use regularization (increase λ) to address the over-fitting.

Using a single hidden layer is a good starting default. You can train your neural network on a number of hidden layers using your cross validation set. You can then select the one that performs best.

Model Complexity Effects:

  • Lower-order polynomials (low model complexity) have high bias and low variance. In this case, the model fits poorly consistently.
  • Higher-order polynomials (high model complexity) fit the training data extremely well and the test data extremely poorly. These have low bias on the training data, but very high variance.
  • In reality, we would want to choose a model somewhere in between, that can generalize well but also fits the data reasonably well.

week_6的更多相关文章

随机推荐

  1. vue 自定义千位符过滤器

    在main.js页面全局引入 Vue.filter('formatNum', function(value) { if(!value) return '' let num = value.toStri ...

  2. HBase1.4.6安装搭建及shell命令使用

    HBase1.4.6安装搭建 目录 HBase1.4.6安装搭建 一.前期准备(Hadoop,zookeeper,jdk) 搭建Hbase 1.上传解压 2.配置环境变量 3.修改hbase-env. ...

  3. mac通过docker一键部署MySQL8

    目录 mac通过docker一键部署MySQL8 一.前言 二.系统配置 三.安装步骤 Dockerhub查看镜像地址 1.一键安装 1.1.克隆脚本 1.2.安装程序 1.2.1.安装程序详情 1. ...

  4. Request保存作用域

    Request保存作用域,作用范围是在当前请求中有效. 1.客户端重定向 2.服务器内部转发

  5. MPI实现并行奇偶排序

    奇偶排序 odd-even-sort, using MPI 代码在 https://github.com/thkkk/odd-even-sort 使用 MPI 实现奇偶排序算法, 并且 MPI 进程 ...

  6. html点击a标签弹窗QQ聊天界面

    以为很难.以为要第三方.谁知道不用.一句话的事情. 1 <a hfer="tencent://message/?uin=12345&Site=&Menu-=yes&qu ...

  7. Vue学习之--------事件的基本使用、事件修饰符、键盘事件(2022/7/7)

    文章目录 1.事件处理 1.1. 事件的基本使用 1.1.1 .基础知识 1.1.2. 代码实例 1.1.3.测试效果 1.2.事件修饰符 1.2.1. 基础知识 1.2.2 .代码实例 1.2.3 ...

  8. Landau-Vishkin

    基础算法 假设我们有两个字符串:,每个字符串由A C G T四个字母组成. 在两个字符串上,都有三种可能的编辑操作(突变): 删除某个字符 在某个位置插入字符 改变某个字符 每一个编辑操作都有惩罚值. ...

  9. Java Stream流的使用

    流相关的方法可以分为三种类型,分别是:获取Stream流.中间方法.终结方法.中间方法会返回当前流,可以方便的进行链式调用. 流不可重复使用,否则会报错: java.lang.IllegalState ...

  10. Spring Boot 中使用 Swagger

    前后端分离开发,后端需要编写接⼝说明⽂档,会耗费⽐较多的时间. swagger 是⼀个⽤于⽣成服务器接⼝的规范性⽂档,并且能够对接⼝进⾏测试的⼯具. 作用 ⽣成接⼝说明⽂档 对接⼝进⾏测试 使用步骤 ...