吴恩达 – 机器学习课程笔记(持续更新)

一、机器学习

1.1 机器学习定义

计算机程序从经验E中学习,解决某一任务T,进行某一性能P,通过P测定在T上的表现因经验E而提高
eg:跳棋程序
E: 程序自身下的上万盘棋局
T: 下跳棋
P: 与新对手下跳棋时赢的概率

1.2 监督学习

1.2.1 监督学习定义

给算法一个包含正确答案的数据集,算法的目的是给出更多的正确答案

[En]

Give the algorithm a data set that contains the correct answers, and the purpose of the algorithm is to give more correct answers

1.2.2 例1:预测房价(回归问题)

回归问题目的: 预测连续的数值输出

吴恩达 - 机器学习课程笔记(持续更新)

1. 用直线拟合

吴恩达 - 机器学习课程笔记(持续更新)

2. 用二次函数或二阶多项式拟合(效果更佳)

吴恩达 - 机器学习课程笔记(持续更新)

; 1.2.3 例2:预测肿瘤是良性或恶性(分类问题)

分类问题目的: 预测离散值输出。
就本问题而言,结果只有0和1的输出。

1. 只有一个特征时

吴恩达 - 机器学习课程笔记(持续更新)

2. 有两个特征时

吴恩达 - 机器学习课程笔记(持续更新)

3. 算法最终的目的是解决无穷多个特征的数据集

1.3 无监督学习

1.3.1 无监督学习定义

该算法只给出一个数据集,但没有给出该数据集的正确答案,并且该算法自我分类。

[En]

Only one dataset is given to the algorithm, but the correct answer to the dataset is not given, and the algorithm classifies itself.

1.3.2 聚类算法

  1. 谷歌新闻每天收集几十万条新闻,并按主题分好类
  2. 市场通过对用户进行分类,确定目标用户
  3. 鸡尾酒算法:两个麦克风分别离两个人不同距离,录制两段录音,将两个人的声音分离开来(只需一行代码就可实现,但实现的过程要花大量的时间)

二、单变量线性回归

2.1 线性函数

假设函数 hθ(x) = θ0 + θ1x

代价函数

J(θ0, θ1) = 1 2 m \frac{1}{2m}2 m 1 ​∑ i = 1 n \displaystyle\sum_{i=1}^{n}i =1 ∑n ​ ( h(x(i)) − y(i))2(m表示训练样本的数量)

目标: 最小化代价函数,即minimize J(θ0, θ1)

代价函数也被称为平方误差函数或者平方误差代价函数,在线性回归问题中,平方误差函数是最常用的手段

2.1.1 只考虑一个参数 θ1

改变θ1的值,得到多组J(θ0) = 1 2 m \frac{1}{2m}2 m 1 ​∑ i = 1 n \displaystyle\sum_{i=1}^{n}i =1 ∑n ​ ( h(x(i)) − y(i))2,并作出下右图
得到的minimize J(θ0) 就是线性回归的目标函数

吴恩达 - 机器学习课程笔记(持续更新)

; 2.1.2 θ0和θ1都考虑

  • 得到的三维图如下
    吴恩达 - 机器学习课程笔记(持续更新)
  • 将三维图平面化
    等高线的中心对应最小代价函数
    吴恩达 - 机器学习课程笔记(持续更新)

2.2 梯度下降

算法思路

  • 指定θ0 和 θ1的初始值
  • 不断改变θ0和θ1的值,使J(θ0,θ1)不断减小
  • 得到一个最小值或局部最小值时停止

梯度: 函数中某一点(x, y)的梯度代表函数在该点变化最快的方向
(选用不同的点开始可能达到另一个局部最小值)

吴恩达 - 机器学习课程笔记(持续更新)
梯度下降公式
  • θj = θj − α∂ ∂ θ j \frac{∂}{∂θj}∂θj ∂​ J(θ0, θ1)
    其中 α 为学习速率( learning rate )
  • θ0和θ1应同步更新,否则如果先更新θ0,会使得θ1是根据更新后的θ0去更新的,与正确结果不相符
    吴恩达 - 机器学习课程笔记(持续更新)

关于α
如果Alpha选择太小,每一步的步幅都会很小,需要很多步骤才能最终收敛。

[En]

If the alpha selection is too small, the stride of each move will be very small, and it will take a lot of steps to finally converge.

如果Alpha选择过大,则会导致每个动作的步幅过大,可能会超过最小值,无法收敛甚至发散。

[En]

If the alpha selection is too large, it will cause the stride of each movement to be too large, which may exceed the minimum, unable to converge or even diverge.

吴恩达 - 机器学习课程笔记(持续更新)
实现原理
  • 偏导表示的是斜率,斜率在最低点左边为负,最低点右边为正。 θj减去一个负数则向右移动,减去一个正数则向左移动
  • 在移动过程中,偏导数值会持续减小,然后移动的步幅会继续减小,最终收敛到最低点
    [En]

    in the process of moving, the partial derivative value will continue to decrease, and then the stride of the movement will continue to decrease, and finally converge until it reaches the lowest point.*

  • 在最低点处偏导值为0,不再移动
    吴恩达 - 机器学习课程笔记(持续更新)

; 2.3 线性回归的梯度下降 / Batch梯度下降

  • *公式推导:

J(θ0, θ1) = 1 2 m \frac{1}{2m}2 m 1 ​∑ i = 1 n \displaystyle\sum_{i=1}^{n}i =1 ∑n ​ ( h(x(i)) − y(i))2 = 1 2 m \frac{1}{2m}2 m 1 ​∑ i = 1 n \displaystyle\sum_{i=1}^{n}i =1 ∑n ​ ( (θ0 + θ1x(i)) − y(i))2

j = 0时表示对θ0求偏导
j = 1时表示对θ1求偏导

∂ J ( θ 0 , θ 1 ) ∂ θ 0 \frac{∂J(θ ~0 , θ ~1 )}{∂θ ~0 }∂θ0 ∂J (θ0 ,θ1 )​ = 1 m \frac{1}{m}m 1 ​∑ i = 1 n \displaystyle\sum_{i=1}^{n}i =1 ∑n ​ ( (θ0 + θ1x(i)) − y(i))

∂ J ( θ 0 , θ 1 ) ∂ θ 1 \frac{∂J(θ ~0 , θ ~1 )}{∂θ ~1 }∂θ1 ∂J (θ0 ,θ1 )​ = 1 m \frac{1}{m}m 1 ​∑ i = 1 n \displaystyle\sum_{i=1}^{n}i =1 ∑n ​ ( (θ0 + θ1x(i)) − y(i)) x(i)

x(i)的 i 表示第 i 个样本

进而更新得到:

θ0 := θ0 – α1 m \frac{1}{m}m 1 ​∑ i = 1 n \displaystyle\sum_{i=1}^{n}i =1 ∑n ​ ( (θ0 + θ1x(i)) − y(i))

θ1 := θ0 – α1 m \frac{1}{m}m 1 ​∑ i = 1 n \displaystyle\sum_{i=1}^{n}i =1 ∑n ​ ( (θ0 + θ1x(i)) − y(i)) x(i)

梯度回归的局限性: 可能得到的是局部最优解
线性回归的梯度下降的函数是 凸函数,因此没有局部最优解,只有全局最优解
凸函数

吴恩达 - 机器学习课程笔记(持续更新)

三、矩阵

3.1 矩阵加法和标量乘法

同维矩阵对应位置相加。

吴恩达 - 机器学习课程笔记(持续更新)

矩阵对应位置乘标量。

吴恩达 - 机器学习课程笔记(持续更新)

; 3.2 矩阵乘向量

A12表第一行第二列
A11 * x1 + A12 * x2 + A13 * x3 + …… + A1n * xn = y1
A21 * x1 + A22 * x2 + A23 * x3 + …… + A2n * xn = y2

吴恩达 - 机器学习课程笔记(持续更新)

3.2 矩阵乘法

An1 * B1b + An2 * B2b + …… + Anm * Bab = Cnb

eg:
A11 * B11 + A12 * B21 + A13 * B31 + …… + A1n * Bn1 = C11

吴恩达 - 机器学习课程笔记(持续更新)
矩阵乘法特征(对于一般矩阵而言)
  • 不满足交换律
  • 满足结合律

; 3.3 矩阵逆和矩阵转置

单位矩阵

  • I 表示
  • 主对角线上都是1,其余位置都是0

逆矩阵

  • A-1 表示
  • A * A-1 = I

矩阵转置

  • 用AT表示
  • Anm变为Amn吴恩达 - 机器学习课程笔记(持续更新)

四、多变量线性回归

4.1 多变量线性回归假设函数

x(i) 表示第 i 组样本
xj(i) 表示第 i 组样本中的第 j 个数据

eg:
x4(2)表示第4组样本中的第3个数据,值为40

吴恩达 - 机器学习课程笔记(持续更新)
假设函数
hθ(x) = θ0 + θ1×1 + θ2×2 + …… + θnxn

定义x0 = 1 (即θ0的系数,也即x0(i) = 1 )

x = [x0, x1, x2, ……, xn]T
θ = [θ0, θ1, θ2,…, θn]T, θ∈Rn+1

进而
假设函数可记作:hθ(x) = θTx

; 4.2 多元梯度下降法

∂ J ( θ ) ∂ θ 0 \frac{∂J(θ )}{∂θ ~0 }∂θ0 ∂J (θ)​ = 1 m \frac{1}{m}m 1 ​∑ i = 1 n \displaystyle\sum_{i=1}^{n}i =1 ∑n ​ ( (θ0 + θ1x(i)) − y(i))x0(i)

∂ J ( θ ) ∂ θ 1 \frac{∂J(θ)}{∂θ ~1 }∂θ1 ∂J (θ)​ = 1 m \frac{1}{m}m 1 ​∑ i = 1 n \displaystyle\sum_{i=1}^{n}i =1 ∑n ​ ( (θ0 + θ1x(i)) − y(i)) x1(i)

∂ J ( θ ) ∂ θ 2 \frac{∂J(θ)}{∂θ ~2 }∂θ2 ∂J (θ)​ = 1 m \frac{1}{m}m 1 ​∑ i = 1 n \displaystyle\sum_{i=1}^{n}i =1 ∑n ​ ( (θ0 + θ1x(i)) − y(i)) x2(i)

进而更新得到:

θ0 := θ0 – α1 m \frac{1}{m}m 1 ​∑ i = 1 n \displaystyle\sum_{i=1}^{n}i =1 ∑n ​ ( (θ0 + θ1x(i)) − y(i))x0(i)

θ1 := θ0 – α1 m \frac{1}{m}m 1 ​∑ i = 1 n \displaystyle\sum_{i=1}^{n}i =1 ∑n ​ ( (θ0 + θ1x(i)) − y(i)) x1(i)

θ2 := θ0 – α1 m \frac{1}{m}m 1 ​∑ i = 1 n \displaystyle\sum_{i=1}^{n}i =1 ∑n ​ ( (θ0 + θ1x(i)) − y(i)) x2(i)

4.3 特征缩放

当特征范围相差太大时,会一直来回振荡,梯度下降效率低
(本例子中θ0不考虑)

吴恩达 - 机器学习课程笔记(持续更新)

引入特征缩放解决这一问题

xi = x i − μ σ \frac{x~i~ − μ}{σ}σx i −μ​

μ 为平均值, σ 为range(即max – min)

如下述例子
x1 = x 1 − 1000 5 \frac{x~1~ – 1000}{5}5 x 1 −1000 ​

x2 = x 2 − 2 5 \frac{x~2~ – 2}{5}5 x 2 −2 ​

其中1000 和 2 是事先知道的平均值

通常计算出来的 x 最好在-3 ~ +3之间

4.4 学习率

绘制代价函数J(θ)的变化来反映下降的过程

吴恩达 - 机器学习课程笔记(持续更新)

梯度下降更新公式: θj = θj – α ∂ ∂ θ j \frac{∂}{∂θ~j~}∂θj ∂​J(θ)
形如下左两种情况都是α选取太大导致的。

吴恩达 - 机器学习课程笔记(持续更新)

选取合适的α:… \dots …, 0.001,0.003,0.01,0.03,0.1,0.3,1,… \dots …

以3为倍数找到一个最大值,以该最大值或比该最大值略小的值作为α

; 4.5 特征和多项式回归

房价预测问题

4.5.1 特征

假设有两个特征:x1 是土地宽度,x2 是土地纵向深度,则有hθ(x) = θ0 + θ1×1 + θ2×2
由于房价实际与面积挂钩,所以可假设x = x1 * x2,则有hθ(x) = θ0 + θ1x

数据集样本分布如图所示

吴恩达 - 机器学习课程笔记(持续更新)

; 4.5.2 多项式回归

选用二次模型拟合

曲线后半明显下降,不符合实际

吴恩达 - 机器学习课程笔记(持续更新)
选用三次模型拟合

曲线符合实际,但由于次方的出现,要十分注意自变量范围的选取

吴恩达 - 机器学习课程笔记(持续更新)
选用根号模型

能充分拟合,且自变量范围可变曲度大

吴恩达 - 机器学习课程笔记(持续更新)

4.6 正规方程

4.6.1推导过程

代价函数:

J(θ) = 1 2 m \frac{1}{2m}2 m 1 ​ ∑ i = 1 m \displaystyle\sum_{i=1}^{m}i =1 ∑m ​ (hθ(x{(i)}) – y(i))2

对J (θ) 求偏导并令导数为零可解得: θ = (XTX)-1XTy

推导过程如下:

吴恩达 - 机器学习课程笔记(持续更新)

吴恩达 - 机器学习课程笔记(持续更新)

(加一行x0且值都赋为1)

吴恩达 - 机器学习课程笔记(持续更新)

∂ ∂ θ \frac{∂}{∂θ}∂θ∂​J(θ) = 1 m \frac{1}{m}m 1 ​ ∑ i = 1 m \displaystyle\sum_{i=1}^{m}i =1 ∑m ​ (hθ(x(i)) – y(i))x(i) = 0

可得

θ = (XTX)-1XTy

; 4.6.2 正规方程同梯度下降比较

  1. 是同级算法
  2. 梯度下降缺点是需确定α,需要许多次迭代;优点是适用于样本量大(m > 10000)的数据
  3. 正规方程缺点是不适用于样本量大(m > 10000)的数据,但无需确定α,无需许多次迭代

4.6.3 正规方程与不可逆矩阵

矩阵不可逆的情况很小,导致不可逆可能有以下两个原因:

  1. 两个及两个以上的特征量呈线性关系,如x1 = 3×2
  2. 特征量过多。当样本量较小时,无法计算出那么多个偏导来求出结果

在实际操作中,应删除冗余特征,保留线性关系的多个特征中的一个。

[En]

In the actual operation, the redundant features should be deleted, and one of the multiple features with linear relationship can be retained.

Octave中的pinv即使面对不可逆矩阵,也能计算出结果,得出来的是伪矩阵

五、Octave

5.1 基本操作

5.1.1 加减乘除与逻辑判断

5 + 6
ans = 11
3 - 2
ans = 1
5 * 8
ans = 40
1 / 2
ans = 0.50000
2 ^ 6
ans = 64
1 == 2
ans = 0
1 ~= 2
ans = 1
1 && 0
ans = 0
1 || 0
ans = 1
xor(1, 0)
ans = 1

PS1('>> ')

5.1.2 dips()与format

dips(a);
disp(spintf('2 decimals: %0.2f', a))
format long
format short

吴恩达 - 机器学习课程笔记(持续更新)

5.1.3 矩阵与向量

A = [1 2; 3 4; 5 6]

吴恩达 - 机器学习课程笔记(持续更新)
v = 1:0.1:2
v = 1:6

吴恩达 - 机器学习课程笔记(持续更新)

5.1.4 ones() 、 zeros() 与rands()

ones(2, 3)
2*ones(2, 3)

吴恩达 - 机器学习课程笔记(持续更新)
zeros(1, 3)

吴恩达 - 机器学习课程笔记(持续更新)
rand(1, 3)

吴恩达 - 机器学习课程笔记(持续更新)

5.1.5 hist()

w = -6 + sqrt(10)*(randn(1, 10000))
hist(w)

后续第五节有关Octave,先跳过,后续再补上

六、逻辑回归

6.1 线性回归对于分类问题的局限性

由于离群点的存在,线性回归不适用于分类问题。

如下图(阈值为0.5),由于最右离群点,再用线性回归与实际情况不拟合。

吴恩达 - 机器学习课程笔记(持续更新)
因此,我们引入 逻辑回归(logistic regression) 算法,来解决这个问题。

; 6.2 logistic regression假设陈述

logistic regression的假设函数值总是在0到1之间

吴恩达 - 机器学习课程笔记(持续更新)

logistic regression模型

线性回归中 hθ(x) = θTx
作一下修改,变成下图形式

吴恩达 - 机器学习课程笔记(持续更新)

logistic函数 / sigmoid函数

吴恩达 - 机器学习课程笔记(持续更新)

吴恩达 - 机器学习课程笔记(持续更新)

6.2 决策边界

决策边界不是训练集的属性,而是假设本身及其参数的属性

6.2.1 例1

假设有一个训练集:

吴恩达 - 机器学习课程笔记(持续更新)
用一种方法或者假设,得到参数θ0 = -3,θ1 = 1,θ2 = 1
吴恩达 - 机器学习课程笔记(持续更新)
预测 y = 1 if -3 + x1 + x2 ≥ 0,即x1 + x2 ≥ 3
则有下图,中间的洋红色直线即为 决策边界(x1 + x2 = 3)
吴恩达 - 机器学习课程笔记(持续更新)

; 6.2.1 例2

吴恩达 - 机器学习课程笔记(持续更新)

其他参数更多更复杂的也同理。

6.3 代价函数(cost function)

6.3.1 cost function的导出

将线性回归的代价函数改写为如下形式(即把1/2提到后面去)

吴恩达 - 机器学习课程笔记(持续更新)
进而定义cost函数为
吴恩达 - 机器学习课程笔记(持续更新)

如果在逻辑回归中用线性回归的代价函数,会导致图像为非凸函数,很难得到最小代价函数

吴恩达 - 机器学习课程笔记(持续更新)

; 6.3.2 cost function 运用到逻辑回归中

吴恩达 - 机器学习课程笔记(持续更新)
y表示实际,hθ(x)表示预测
1. 当y = 1时
if hθ(x) = 1, cost = 0
if hθ(x) = 0, cost = ∞ (预测与实际完全不一致,要花费很大的代价惩罚算法)
吴恩达 - 机器学习课程笔记(持续更新)
关于图像的导出
吴恩达 - 机器学习课程笔记(持续更新)

2. 当y = 0时
if hθ(x) = 0, cost = 0
if hθ(x) = 1, cost = ∞ (预测与实际完全不一致,要花费很大的代价惩罚算法)

吴恩达 - 机器学习课程笔记(持续更新)

6.4 简化代价函数与梯度下降

吴恩达 - 机器学习课程笔记(持续更新)
将上述式子合并为一个式子

Cost(hθ(x), y) = -y(hθ(x)) – (1 – y)log(1 – hθ(x))

当y = 1时,后一个式子整体为0
当y = 0时,前一个式子整体为0

进而我们得到

吴恩达 - 机器学习课程笔记(持续更新)
求最小代价函数

吴恩达 - 机器学习课程笔记(持续更新)

吴恩达 - 机器学习课程笔记(持续更新)

注意:

  1. 逻辑回归的代价函数看似与线性回归的代价函数相同,但本质不同。
  2. 逻辑回归中的hθ(x) = 1 / e-θTx(T是θ的上标)
  3. 线性回归中的hθ(x) = θTx

; 6.5 高级优化

本质: 利用一些高级算法,来更快计算出结果。

通常这些算法:

  1. 能够自主选择α
  2. 速度大大快于梯度下降
  3. 比梯度下降更为复杂

Octave中的标号是从1开始的
故theta[1] = θ0,theta[n + 1] = θn

吴恩达 - 机器学习课程笔记(持续更新)
写一个costFunction()函数
该函数需返回
  1. jVal。因此需要一些代码来计算出J(θ)的值
  2. gradient。gradient(1)对应关计算出关于θ0的代码

吴恩达 - 机器学习课程笔记(持续更新)

6.7 多元分类:一对多

多元分类: 结果有多种可能。

下例,有三种可能结果。

吴恩达 - 机器学习课程笔记(持续更新)
将它们两两作为一组,得到
吴恩达 - 机器学习课程笔记(持续更新)

吴恩达 - 机器学习课程笔记(持续更新)
最后需要输入一个x,选择h最大的类别,也即在三个分类器中选择可信度最高,效果最好的
吴恩达 - 机器学习课程笔记(持续更新)

; 七、过拟合问题

7.1 过拟合定义

过拟合
当变量太多时,训练的假设可以很好地拟合训练集,因此代价函数实际上可能非常接近0,但结果曲线不能推广到新的样本,以便尽一切可能拟合数据集。无法预测新的样本数据

[En]

When there are too many variables, the trained hypothesis can fit the training set well, so the cost function may actually be very close to 0, but the resulting curve can not be generalized to the new sample in order to do everything possible to fit the data set. Unable to predict new sample data

泛化
指一个假设模型应用到新样本的能力


下左欠拟合,存在高偏差
下中拟合适中
下右过拟合,存在高方差

吴恩达 - 机器学习课程笔记(持续更新)
解决方法
  • 减少特征数量
    人工选择
    模型选择算法(后续讲到) 缺点:舍弃一部分特征变量也舍弃了关于问题的一些信息
  • 正则化
    减少特征量级或参数θj的大小

; 7.2 过拟合代价函数

7.2.1 房价例子引入

吴恩达 - 机器学习课程笔记(持续更新)
以这个例子为例,其代价函数为
吴恩达 - 机器学习课程笔记(持续更新)
再之后再加上两项(1000为任意一个较大的数)
吴恩达 - 机器学习课程笔记(持续更新)
为了minisize代价函数,自然而然地θ3,θ4要等于0,从而去除了这两项,相当原来的式子变为二次函数

; 7.2.2 代价函数

吴恩达 - 机器学习课程笔记(持续更新)
  • 其中
    + 后的一项为 正则化项
    λ正则化参数,作用是控制两个不同目标之间的取舍
    (1)第一个目标与第一项有关,即我们想要更加拟合数据集。
    (2)第二个目标与第二项有关,即我们想要参数θj尽量小
  • 惩罚从θ1到θn,不包括θ0(实操中有无θ0影响不大)
  • 若 λ 设置的过大,即对θ1θ2θ3θ4的惩罚程度过大,导致θ1θ2θ3θ4都接近于0,最后假设模型只剩一个θ0,出现欠拟合情况
    吴恩达 - 机器学习课程笔记(持续更新)

7.3 线性回归的正则化

7.3.1 梯度下降的正则化

由于正则化是从1到n项,故先将θ0提出来

吴恩达 - 机器学习课程笔记(持续更新)
将第二个式子写成下面这样的形式
吴恩达 - 机器学习课程笔记(持续更新)
其中m是样本量,所以一般都是一个很大的值,λ 正则化参数,一般都不大。故 1 – αλ m \frac{λ}{m}m λ​ 一项的值比1略小
每次迭代时,θj都乘这么一个比1略小的数,效果相当于梯度下降

; 7.3.2 正规方程的正则化

吴恩达 - 机器学习课程笔记(持续更新)

7.4 逻辑回归的正则化

首先有这么个例子

吴恩达 - 机器学习课程笔记(持续更新)
其cost函数为
吴恩达 - 机器学习课程笔记(持续更新)
进而得到其偏导
吴恩达 - 机器学习课程笔记(持续更新)
与之前操作类似的,得到 能计算加上正则项的cost函数的偏导 jVal代码,和计算每一个偏导值的gradient(i)代码
吴恩达 - 机器学习课程笔记(持续更新)

; 八、神经网络

8.1 神经网络的必要性

当特征值只有两个时,我们仍可以用之前学过的算法去解决

吴恩达 - 机器学习课程笔记(持续更新)
但当特征值很多,且含有很多个多次多项式时,用之前的算法就很难解决了

; 例 汽车识别

计算机识别汽车是靠像素点的亮度值

吴恩达 - 机器学习课程笔记(持续更新)
给定数据集汽车和非汽车的数据,按照之前的方法划分
吴恩达 - 机器学习课程笔记(持续更新)
可以看到仅针对50*50像素的灰白图片,就有2500个特征值。当引入rgb时,特征值达到了7500个,如果算上多次多项式,特征值达到了三百万个,显然再继续用之前的算法难以处理这么庞大的数据
吴恩达 - 机器学习课程笔记(持续更新)

8.2 模型展示

8.2.1 神经元的工作方式

神经元由树突接收外界信息,经神经元计算,再由轴突发出信息
神经元之间可互相传递信息

类似地,我们定义一个神经网络如下:

  • x0,a0为偏置单元,默认值为1
  • Layer1是输入层,Layer3是输出层,Layer2的工作过程看不到故为隐藏层
  • ai(j)是第 j 层第 i 个神经元的激活值(即由一个具体神经元计算并输出的值)
  • θ(j)是权重矩阵,控制从第 j 层到第 j + 1层的映射
    吴恩达 - 机器学习课程笔记(持续更新)
    吴恩达 - 机器学习课程笔记(持续更新)
    进而得到 a(2) 和 hθ(x) 的计算公式
    θ是映射,可理解为是中间的连线。
    因为是矩阵相乘,x是4行1列向量(记得算上x0),所以θ是4列,又因为a有三个,所以θ是3行,最后得θ是3行4列向量,则θ × x结果为3行1列向量
    吴恩达 - 机器学习课程笔记(持续更新)
    吴恩达 - 机器学习课程笔记(持续更新)
    *如果一个网络在第 j 层有 sj 个单元,在第 j + 1 层有 sj +1 个单元,则矩阵θj的维度为 sj+1 * (sj +1 )。如θ(2)是3×4矩阵

; 8.2.2 前向传播

从输入单元的激活项开始,进行前向传播给隐藏层,计算隐藏层的激活项,继续前向传播,并计算输出层的激活项

  • 由之前我们有如下式子

吴恩达 - 机器学习课程笔记(持续更新)
  • 其中 x 为 4维向量
    吴恩达 - 机器学习课程笔记(持续更新)
  • z(2) = θ(1)x,从而z是一个 3维向量

吴恩达 - 机器学习课程笔记(持续更新)
吴恩达 - 机器学习课程笔记(持续更新)
  • 进而
    吴恩达 - 机器学习课程笔记(持续更新)
  • 进而 a(2) = g(z(2))
  • 类似的,加上a0(2) = 1,a(2)为 4维向量,进而得到
    吴恩达 - 机器学习课程笔记(持续更新)
    合在一起比较好理解
    吴恩达 - 机器学习课程笔记(持续更新)
    更复杂的神经网络
    中间的均为隐藏层
    一层层往后越来越复杂
    吴恩达 - 机器学习课程笔记(持续更新)

8.3 例:神经网络用于计算XOR,XNOR

  • 定义两个特征x1,x2,它们的值只能为0或1
    吴恩达 - 机器学习课程笔记(持续更新)
  • AND
    引入x0,值为1。对权重 / 参数进行赋值,-30、+20、+20
    x1 = 0,x2 = 0,hθ(x)结果为0
    同理得到另外三组结果
    总结果与 x1 AND x2 一致
    吴恩达 - 机器学习课程笔记(持续更新)
  • OR
    与AND同理
    吴恩达 - 机器学习课程笔记(持续更新)
  • (NOT x1)AND(NOT x2)
    NOT即结果取反。如果x1输入为1,则输出为0
    x1输入0,hθ(x1)输出1;x2输入0,hθ(x2)输出1,再进行AND运算可得最终结果
    其他三种情况同理
    吴恩达 - 机器学习课程笔记(持续更新)

– XNOR
有AND,(NOT x1)AND (NOT x2), OR三个前提
同样在输入层定义x0,x1,x2
在隐藏层中
进行AND运算得到a1(2),进行(NOT x1)AND (NOT x2)运算得到a2(2)
在输出层中
进行OR运算得到a1(3),即为最终结果

每层都是通过计算不断复杂

吴恩达 - 机器学习课程笔记(持续更新)

; 九、神经网络的运用

9.1 代价函数

吴恩达 - 机器学习课程笔记(持续更新)
定义 L,指网络中共有多少层
定义 s~l~,指每层中有多少个偏差单元
如,s1 = 3,s4 = sL = 4

针对01输出问题

  1. 二元分类
    吴恩达 - 机器学习课程笔记(持续更新)
    只有一个输出,则sL = 1
    K = 1(K表示输出层的单元数目)
    吴恩达 - 机器学习课程笔记(持续更新)
    输出结果h(x)是一个实数
  2. 多类别分类
    吴恩达 - 机器学习课程笔记(持续更新)
    K个输出单元(K ≥ 3,不然没有必要用多类别分类)
    吴恩达 - 机器学习课程笔记(持续更新)
    输出结果h(x)是一个K维向量
    (eg:有不同的交通工具,定义一个结果集yk每个车对应向量第j行的值是1,其他位置都为0,将结果h(x)与yk比较,对应得上则说明是该交通工具)

代价函数

在逻辑回归中,我们有如下代价函数

吴恩达 - 机器学习课程笔记(持续更新)
演化到神经网络中,得到如下代价函数
吴恩达 - 机器学习课程笔记(持续更新)
  • 其中
    吴恩达 - 机器学习课程笔记(持续更新)
    两个连加类似for循环。
    这里相当于求k等于从1到4的每一个逻辑回归算法的代价函数,然后按四次输出的顺序,依次把这些代价函数加起来
  • 其次
    吴恩达 - 机器学习课程笔记(持续更新)
    这一项表对所有θji(l)求和
    1 到 L – 1是因为映射是两两之间的

注意 j 和 i没有标错,按照之前的定义,j就是θ向量的行,进而 i 就代表列

吴恩达 - 机器学习课程笔记(持续更新)
在计算中,不将θi0这一项也进行计算,乘出来的结果有些类似于偏差单元的值,但实际运用中,影响不大

; 十、应用机器学习的建议

10.1 应用机器学习的建议

到目前为止,我们已经学习了很多不同的学习算法,但我们可能并不完全理解如何使用它们,所以我们总是把时间浪费在毫无意义的尝试上。因此,接下来我们将学习一些选择正确道路的方法。

[En]

So far, we have learned many different learning algorithms, but we may not fully understand how to use them, so we always waste our time on meaningless attempts. So next we will learn some ways to choose the right path.

我们将关注的是,如果我们正在开发一个机器学习系统,或者如果我们想要尝试提高机器学习系统的性能,我们如何决定下一步选择哪条道路?

[En]

What we will focus on is if we are developing a machine learning system, or if we want to try to improve the performance of a machine learning system, how do we decide which path to choose next?

吴恩达 - 机器学习课程笔记(持续更新)
为了解释这个问题,我们仍然使用了预测房价的学习例子。假设我们已经完成了正则化线性回归,即最小化成本函数的值,但如果在一组新的住房样本上测试该函数,则发现预测房价存在巨大误差。我们如何改进这个算法?
[En]

In order to explain this problem, we still use the learning example of predicting house prices. Suppose we have completed the regularized linear regression, that is, to minimize the value of the cost function, but if the function is tested on a new set of housing samples, it is found that there is a huge error in predicting house prices. How can we improve this algorithm?

吴恩达 - 机器学习课程笔记(持续更新)
第一种办法是使用更多的训练样本。但有时候获得更多的训练数据实际上并没有作用。
第二种方法是尝试选用更少的特征集。如果你有很多特征,我们可以从这些特征中仔细挑选一小部分来防止过拟合。
第三种方式是尝试选用更多的特征,也许目前的特征集,对我们来讲并不是很有帮助。所以我们也许可以从获取更多特征的角度来收集更多的数据,也可以把这个问题扩展为一个很大的项目。
第四种方式是可以尝试增加多项式特征,比如X1的平方,X2的平方,X1和下的乘积等等。
第五种方式是可以考虑其他方法去减小或增大正则化参数的值。

所有这些方法都需要很长的时间,但有一系列简单的方法可以事半功倍,至少消除一半,从而节省了大量不必要的时间。这些方法被称为机器学习诊断。

[En]

All of these methods take a long time, but there are a series of simple ways to get twice the result with half the effort and eliminate at least half of them, thus saving a lot of unnecessary time. These methods are called machine learning diagnostics.

“诊断法” 的意思是:这是一种测试法,你通过执行这种测试,能够深入了解某种算法到底是否有用。这也能告诉我们,要想改进一种算法的效果,去做什么样的尝试才是有意义的。

但同时,这些诊断的实施和实施也需要时间,有时确实需要大量的时间来理解和实施,但这是花费在前沿的时间,这可以为我们在开发学习算法时节省几个月的时间。

[En]

But at the same time, the implementation and implementation of these diagnostics also take time, and sometimes it does take a lot of time to understand and implement, but this is a time spent on the cutting edge, which can save us several months when developing learning algorithms.

; 10.2 评估一个假设

在以前的研究中,我们试图选择参数来最小化训练误差,但得到很小的训练误差并不一定是一件好事,它不一定适用于新的训练集。那么,我们如何判断一个假设函数是否过度匹配呢?

[En]

In the previous study, we tried to select parameters to minimize the training error, but getting a very small training error is not necessarily a good thing, it is not necessarily applicable to the new training set. So how do we judge whether a hypothetical function is overfitted?

吴恩达 - 机器学习课程笔记(持续更新)
对于简单的例子,我们可以绘制假设函数,然后观察图形的趋势,但当右侧有多个特征变量时,很难绘制和观察。因此,需要另一种方法来评估(假设函数过度拟合)。
[En]

For simple examples, we can draw the hypothetical function and then observe the trend of the graph, but it is difficult to draw and observe when there is more than one characteristic variable on the right. So another method is needed to evaluate (assuming that the function is overfitted).

吴恩达 - 机器学习课程笔记(持续更新)
这里显示了10组训练样本,我们将数据分为两部分,第一部分(通常为70%)作为我们的训练集,第二部分(通常为30%)作为我们的测试集。
[En]

Ten sets of training samples are shown here, and we divide the data into two parts, the first part (usually 70%) as our training set, and the second part (usually 30%) as our test set.

用Mtest表示测试样本的总数,(x(1)test, y(1)test)就表示第一组测试样本。
重要的是要注意,在划分成两组数据集之前,数据应该随机排列,然后分组。

[En]

It is important to note that before dividing into two sets of data sets, the data should be randomly arranged and then grouped.

吴恩达 - 机器学习课程笔记(持续更新)
对于 线性回归,假设函数J(θ)由70%的训练集得到。
之后要计算出测试误差,用Jtest来表示。把从训练集中学习得到的参数 θ 放在Jtest中来计算测试误差,这个是测试集平方误差的平均值(样本量为Mtest)。

吴恩达 - 机器学习课程笔记(持续更新)
对于 逻辑回归,同样我们也要从训练集中学习得到参数θ,再放到Jtest中去。这个目标函数和之前的一样,唯一的区别是这里使用的是Mtest个样本。

还有另一种测试度量可能更便于理解,叫做 错误分类,也叫作 0/1分类错误
可以定义一次预测的误差,是关于假设函数和标签y的误差:
(1)误差等于1的情况是,当假设函数h(x)的值大于等于0.5且y的值等于0时;假设函数的值小于0.5,且y的值等于1时;这两种情况都表示假设对样本进行了误判。
(2)其他情况则误差等于0,表示假设能对样本进行正确分类。

然后我们就能用应用错误分类误差(Test error),来定义测试误差,也就是错误分类误差求平均值。

10.3 模型选择和交叉验证集

如果我们想要确定对于一个数据集最合适的多项式次数,怎样选用正确的特征来构造学习算法;或者如果我们要选择学习算法中的正则化参数LAMBDA,要怎么做?这类问题叫做 模型选择问题

吴恩达 - 机器学习课程笔记(持续更新)
我们之前提到过拟合问题,用左边的这些参数来拟合训练集,即使假设函数在训练集中表现得很好,也不意味着假设对新样本有很好的泛化能力。因此,训练集误差不能用来表示假设是否符合新样本。如果参数与数据集很好地匹配,则同一数据集计算的误差,如训练误差,不能很好地估计实际的泛化误差(即数据集的泛化能力)。
[En]

We mentioned the fitting problem before, using these parameters on the left to fit the training set, even if the hypothesis function performs well in the training set, it does not mean that the hypothesis has a good generalization ability for new samples. Therefore, the training set error can not be used to express whether the hypothesis fits the new sample well or not. If the parameters fit a data set well, then the error calculated by the same data set, such as the training error, can not well estimate the actual generalization error (that is, the generalization ability of the data set).

吴恩达 - 机器学习课程笔记(持续更新)
假设我们要在10个不同次数的二项式模型之间进行选择,用参数 d来表示多项式的次数。d=1……d=10。
(1)选择各个模型,分别得到各个参数,为做区别,在参数上加上上标。
(2)用这些参数分别计算得到各个测试集误差。
(3)为从这些模型找到最好一个,应该看哪个模型的测试集误差最小。
(4)假设这里最终选择了五次多项式模型,现在要知道这个模型的泛化能力,可以观察这个模型对测试集的拟合程度,但由于我们拟合了一个参数d,并且选择了一个最好地拟合测试集的参数d的值,因此我们的参数向量θ(5)在测试集上的性能很可能是对泛化误差过于乐观的估计。意思就是说是用测试集拟合得到的参数d,再在测试集上评估假设,所以假设可能对测试集的表现要好过那些其他那些新的测试集中没有的样本。

吴恩达 - 机器学习课程笔记(持续更新)

为了解决模型选择问题,通常使用以下方法来评估假设:

[En]

To solve problems with model selection, the following methods are usually used to evaluate a hypothesis:

给定一个数据集,分为三部分,用60%的数据作为训练集,用 20%的数据作为交叉验证集(CV,也叫验证集),用20%的数据作为测试集。
用Mcv来表示验证集的样本总数,同样用(x(i) ,y(i) )来表示第i个验证样本

吴恩达 - 机器学习课程笔记(持续更新)
用三个样本分别计算测试误差

吴恩达 - 机器学习课程笔记(持续更新)
(1)同样我们用训练集来计算最小代价函数得到各个参数,但这次用验证集来测试。
(2)用计算出的Jcv来观察这些假设模型在交叉验证集上的效果如何。
(3)选择Jcv最小的假设,这里假设选择四次多项式对应的交叉验证误差最小,进而得到d=4
(4)之后就可以用测试集来衡量模型的泛化误差了。

; 10.4 诊断偏差和方差

当我们运行一个学习算法时,如果算法的性能不理想,那么可能会有两种情况:要么偏差较大,要么方差较大。换句话说,情况要么是不适应,要么是过度适应。高偏差、高方差问题,基本上就是欠拟合和过拟合问题。能够判断这两种情况中的哪一种发生是一个非常有效的指标,指出了最有效的方法和改进算法的方法。

[En]

When we run a learning algorithm, if the performance of the algorithm is not ideal, then there are probably two situations: either the deviation is larger, or the variance is larger. In other words, the situation is either under-fitting or over-fitting. The problems of high deviation and high variance are basically the problems of underfitting and overfitting. Being able to judge which of these two situations occurs is a very effective indicator, pointing out the most effective ways and ways to improve the algorithm.

吴恩达 - 机器学习课程笔记(持续更新)
通过之前的研究,我们知道上面图片的左侧是欠拟合的,右侧是过度拟合的,中间是刚刚拟合的,其泛化误差也是最小的。
[En]

Through the previous study, we know that the left side of the above picture is underfitted, the right side is over-fitting, and the middle is just fitting, and its generalization error is also the smallest.

吴恩达 - 机器学习课程笔记(持续更新)
上图的图像,横坐标d代表多项式的次数,左边值为1的时候对应一次函数,右边值为4的时候对应更高的多项式次数。
粉色线Jtrain(θ)代表训练误差,由于次数越高越拟合,所以训练误差是趋于下降的。
红色线Jcv(θ)代表测试误差,d=1时欠拟合,测试误差较高,d=4时过拟合,测试误差较高,而d=2时刚好拟合,测试误差较低。

吴恩达 - 机器学习课程笔记(持续更新)
由上面的分析我们可以知道,
d=1时欠拟合,呈现高偏差,此时训练误差和测试误差都很大,且两者接近;
d=4时过拟合,呈现高方差,此时训练误差很大,测试误差很小,测试误差远大于训练误差。

Original: https://blog.csdn.net/m0_51487301/article/details/123136528
Author: 做一只猫
Title: 吴恩达 – 机器学习课程笔记(持续更新)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/10456/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部
最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总