机器学习吴恩达课程总结(一)

文章目录

    • 1. 第一章 简介
      • 1.1 机器学习(Machine Learning)
      • 1.2 有监督学习(Supervised Learning)
      • 1.3 无监督学习(Unsupervised Learning)
    • 2. 第二章 线性回归(Linear Regression)
      • 2.1 假设函数(hypothesis)
      • 2.2 代价函数(cost function)
      • 2.3 简化(Simplified)
      • 2.4 重新加入 θ 0 {\theta _0} θ0分析
      • 2.5 梯度下降(Gradient descent)
      • 2.6 梯度下降总结
      • 2.7 线性回归梯度下降
    • 3. 第三章 线性代数基础
      • 3.1 矩阵和向量(Matrices and vectors)
      • 3.2 矩阵加减与标量(scalar)运算
      • 3.3 矩阵向量乘法
      • 3.4 矩阵乘法
      • 3.5 矩阵乘法特征
      • 3.6 逆和转置
    • 4. 第四章 多元线性回归
      • 4.1 多元特征
      • 4.2 多元变量梯度下降
      • 4.3 多元变量梯度下降:特征缩放(Feature Scaling)
      • 4.4 多元变量梯度下降:学习率 α \alpha α
      • 4.5 特征和多项式回归
      • 4.6 正规方程(Normal equation)解析解法
      • 4.7 正规方程:不可逆矩阵
    • 5. 第五章 Octave基础

1. 第一章 简介

1.1 机器学习(Machine Learning)

机器学习:研究能够从经验中自动提升自身性能的计算机算法。

从数学角度:机器学习就是从数据中学习一个函数 。

机器学习:能过从针对任务T的一些经验E和性能指标P中学习的计算机程序。同时它在任务T上的表现可以通过性能指标P来提高。

1.2 有监督学习(Supervised Learning)

给出“正确答案”。

回归(Regression):输出连续的值。

分类(Classification):输出离散的值。

1.3 无监督学习(Unsupervised Learning)

不给出任何标签,找到数据中暗含的结构或信息。

聚类算法(Clustering):

  • 组织计算集群
  • 社交网络分析
  • 市场分割
  • 天文数据分析

2. 第二章 线性回归(Linear Regression)

2.1 假设函数(hypothesis)

h:hypothesis假设函数: h θ ( x ) = θ 0 + θ 1 x {h_\theta }(x) = {\theta _0} + {\theta _1x} hθ(x)=θ0+θ1x,其中 θ 0 , θ 1 {\theta _0},{\theta _1} θ0,θ1表示要学习的参数。

2.2 代价函数(cost function)

cost function代价函数

目标:选出 θ 0 , θ 1 {\theta _0},{\theta _1} θ0,θ1使得在训练集上,给出 x x x能够合理准确地预测出 y y y的值。

学习目标:
m i n i m i z e θ 0 θ 1 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 \mathop {minimize}\limits_{{\theta _0}{\theta _1}} {1 \over {2m}}\sum\limits_{i = 1}^m {{{({h_\theta }({x_i}) - {y_i})}^2}} θ0θ1minimize2m1i=1m(hθ(xi)yi)2

其中 ( x i , y i ) ({x_i},{y_i}) (xi,yi)表示第 i i i个样本; m m m表示样本总数。(之所以乘以 1 2 {1 \over 2} 21是为了方便求导)

令: J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 J({\theta _0},{\theta _1}) = {1 \over {2m}}\sum\limits_{i = 1}^m {{{({h_\theta }({x_i}) - {y_i})}^2}} J(θ0,θ1)=2m1i=1m(hθ(xi)yi)2

目标函数简写为: m i n i m i z e θ 0 θ 1 J ( θ 0 , θ 1 ) \mathop {minimize}\limits_{{\theta _0}{\theta _1}} J({\theta _0},{\theta _1}) θ0θ1minimizeJ(θ0,θ1)

m i n i m i z e \mathop {minimize} minimize:表示使得后面式子最小时, θ 0 , θ 1 {\theta _0},{\theta _1} θ0,θ1的取值。

J ( θ 0 , θ 1 ) J({\theta _0},{\theta _1}) J(θ0,θ1)称为:代价函数(cost function),优化目标(optimization objective)。

小提示损失函数“(Loss Function )是定义在单个样本上的,算的是一个样本的误差,而代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。

2.3 简化(Simplified)

h θ ( x ) = θ 1 x {h_\theta }(x) = {\theta _1}x hθ(x)=θ1x假设 θ 0 = 0 {\theta _0}=0 θ0=0

J ( θ 0 , θ 1 ) → J ( θ 1 ) J({\theta _0},{\theta _1}) \to J({\theta _1}) J(θ0,θ1)J(θ1)

2.4 重新加入 θ 0 {\theta _0} θ0分析

假设函数: h θ ( x ) = θ 0 + θ 1 x {h_\theta }(x) = {\theta _0} + {\theta _1}x hθ(x)=θ0+θ1x

可学习参数: θ 0 , θ 1 {\theta _0},{\theta _1} θ0,θ1

损失函数: J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 J({\theta _0},{\theta _1}) = {1 \over {2m}}\sum\limits_{i = 1}^m {{{({h_\theta }({x_i}) - {y_i})}^2}} J(θ0,θ1)=2m1i=1m(hθ(xi)yi)2

目标: m i n i m i z e θ 0 θ 1 J ( θ 0 , θ 1 ) \mathop {minimize}\limits_{{\theta _0}{\theta _1}} J({\theta _0},{\theta _1}) θ0θ1minimizeJ(θ0,θ1)

2.5 梯度下降(Gradient descent)

问题描述:

有一些函数如: J ( θ 0 , θ 1 ) J({\theta _0},{\theta _1}) J(θ0,θ1),想要 m i n i m i z e θ 0 θ 1 J ( θ 0 , θ 1 ) \mathop {minimize}\limits_{{\theta _0}{\theta _1}} J({\theta _0},{\theta _1}) θ0θ1minimizeJ(θ0,θ1)

解决步骤:

  1. 设置 θ 0 , θ 1 {\theta _0},{\theta _1} θ0,θ1初值通常为 0 0 0
  2. 改变 θ 0 , θ 1 {\theta _0},{\theta _1} θ0,θ1(通常以较小值改变)减少 J ( θ 0 , θ 1 ) J({\theta _0},{\theta _1}) J(θ0,θ1)直到我们希望的最小值(可以找到一个局部最小值)

梯度下降算法:

repeat until convergence{ θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) {\theta _j}: = {\theta _j} - \alpha {\partial \over {\partial {\theta _j}}}J({\theta _0},{\theta _1}) θj:=θjαθjJ(θ0,θ1)(for j=0 and j=1)}

α \alpha α:学习率(learning rate)

注意:同时更新参数 θ 0 , θ 1 {\theta _0},{\theta _1} θ0,θ1

2.6 梯度下降总结

θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) {\theta _j}: = {\theta _j} - \alpha {\partial \over {\partial {\theta _j}}}J({\theta _0},{\theta _1}) θj:=θjαθjJ(θ0,θ1)

α \alpha α:过小,收敛慢;过大,可能发散,不收敛。

梯度下降可以收敛到局部最小值,即使学习率 α \alpha α固定。

当我们接近局部最小值,梯度下降将要自动得到一个较小的步长。所以,不需要随时间减少学习率 α \alpha α

2.7 线性回归梯度下降

最小化线性回归中的平方损失函数。

∂ ∂ θ j J ( θ 0 , θ 1 ) = ∂ ∂ θ j 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 = ∂ ∂ θ j 1 2 m ∑ i = 1 m ( θ 0 + θ 1 x i − y i ) 2 {\partial \over {\partial {\theta _j}}}J({\theta _0},{\theta _1}) = {\partial \over {\partial {\theta _j}}}{1 \over {2m}}\sum\limits_{i = 1}^m {{{({h_\theta }({x_i}) - {y_i})}^2}}= {\partial \over {\partial {\theta _j}}}{1 \over {2m}}\sum\limits_{i = 1}^m {{{({\theta _0} + {\theta _1}{x_i} - {y_i})}^2}} θjJ(θ0,θ1)=θj2m1i=1m(hθ(xi)yi)2=θj2m1i=1m(θ0+θ1xiyi)2

θ 0 {{\theta _0}} θ0 j = 0 j=0 j=0 ∂ ∂ θ 0 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) {\partial \over {\partial {\theta _0}}}J({\theta _0},{\theta _1}) = {1 \over m}\sum\limits_{i = 1}^m {{{({h_\theta }({x_i}) - {y_i})}^{}}} θ0J(θ0,θ1)=m1i=1m(hθ(xi)yi)

θ 1 {{\theta _1}} θ1 j = 1 j=1 j=1 ∂ ∂ θ 1 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) x i {\partial \over {\partial {\theta _1}}}J({\theta _0},{\theta _1}) = {1 \over m}\sum\limits_{i = 1}^m {{{({h_\theta }({x_i}) - {y_i})}^{}}} {x_i} θ1J(θ0,θ1)=m1i=1m(hθ(xi)yi)xi

同时更新:

θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) {\theta _0}: = {\theta _0} - \alpha {1 \over m}\sum\limits_{i = 1}^m {{{({h_\theta }({x_i}) - {y_i})}^{}}} θ0:=θ0αm1i=1m(hθ(xi)yi)

θ 1 : = θ 1 − α 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) x i {\theta _1}: = {\theta _1} - \alpha {1 \over m}\sum\limits_{i = 1}^m {{{({h_\theta }({x_i}) - {y_i})}^{}}} {x_i} θ1:=θ1αm1i=1m(hθ(xi)yi)xi

小提示:凸函数(convex function):只要一个全局最优

批量梯度下降:每次梯度下降使用所有的训练样本(虽然名字有点歧义)。

3. 第三章 线性代数基础

3.1 矩阵和向量(Matrices and vectors)

矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合。

矩阵维数:行数*列数

A A A:矩阵, A i j {A_{ij}} Aij:表示第 i i i行第 j j j列的元素。

向量: n ∗ 1 n*1 n1的矩阵

y y y:向量,n-dimension 向量

3.2 矩阵加减与标量(scalar)运算

两个行列相等的矩阵才可以相加减:对应元素相加减

标量同一个矩阵相加减乘除:标量与每个元素分别运算,矩阵维数不变

3.3 矩阵向量乘法

A m × n × x n × 1 = y m × 1 {A_{m \times n}} \times {x_{n \times 1}} = {y_{m \times 1}} Am×n×xn×1=ym×1

y i {y_{i}} yi通过 A A A的第 i i i行与向量 x x x对应元素相乘再相加得到。

3.4 矩阵乘法

A m × n × B n × o = C m × o {A_{m \times n}} \times {B_{n \times o}} = {C_{m \times o}} Am×n×Bn×o=Cm×o

矩阵 C C C的第 i i i列是通过矩阵 A A A和矩阵 B B B的第 i i i列相乘得到的。

3.5 矩阵乘法特征

  1. A B = B A AB=BA AB=BA
  2. A × B × C = ( A × B ) × C = A × ( B × C ) A \times B \times C = (A \times B) \times C = A \times (B \times C) A×B×C=(A×B)×C=A×(B×C)
  3. 单位矩阵( I o r I n × n I or {I_{n \times n}} IorIn×n)满足 I i i = 1 {I_{ii}}=1 Iii=1 I I I可以根据需要取不同的维数,如 A m × n × I n × n = I m × m × A m × n = A {A_{m \times n}} \times {I_{n \times n}} = {I_{m \times m}} \times {A_{m \times n}} = A Am×n×In×n=Im×m×Am×n=A

3.6 逆和转置

矩阵的逆:方阵才有逆,满足 A m × m {A_{m \times m}} Am×m A A − 1 = A − 1 A = I A{A^{ - 1}} = {A^{ - 1}}A = I AA1=A1A=I

没有逆的矩阵:奇异矩阵(singular),退化矩阵(degenerate)

矩阵的转置:

img

4. 第四章 多元线性回归

4.1 多元特征

多元特征:特征数大于2

n n n表示特征数量; x ( i ) {x^{(i)}} x(i)表示第 i i i个训练样本的所有输入特征; x j ( i ) x_j^{(i)} xj(i)表示第 i i i个训练样本的第 j j j个输入特征。

假设函数: h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n {h_\theta }(x) = {\theta _0} + {\theta _1}{x_1} + {\theta _2}{x_2} + ... + {\theta _n}{x_n} hθ(x)=θ0+θ1x1+θ2x2+...+θnxn

X ∈ R n + 1 X \in {R^{n + 1}} XRn+1 θ ∈ R n + 1 \theta \in {R^{n + 1}} θRn+1 X 0 = 1 {X_0} = 1 X0=1则化简公式为: h θ ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n = θ T x {h_\theta }(x) = {\theta _0}{x_0} + {\theta _1}{x_1} + {\theta _2}{x_2} + ... + {\theta _n}{x_n} = {\theta ^T}x hθ(x)=θ0x0+θ1x1+θ2x2+...+θnxn=θTx

4.2 多元变量梯度下降

假设函数: h θ ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n = θ T x {h_\theta }(x) = {\theta _0}{x_0} + {\theta _1}{x_1} + {\theta _2}{x_2} + ... + {\theta _n}{x_n} = {\theta ^T}x hθ(x)=θ0x0+θ1x1+θ2x2+...+θnxn=θTx

可学习参数: θ 0 , θ 1 , . . . θ n {\theta _0},{\theta _1},...{\theta _n} θ0,θ1,...θn,其中 θ ∈ R n + 1 \theta \in {R^{n + 1}} θRn+1

损失函数: J ( θ 0 , θ 1 , . . . θ n ) = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 = J ( θ ) J({\theta _0},{\theta _1},...{\theta _n}) = {1 \over {2m}}\sum\limits_{i = 1}^m {{{({h_\theta }({x_i}) - {y_i})}^2}} =J({\theta }) J(θ0,θ1,...θn)=2m1i=1m(hθ(xi)yi)2=J(θ)

参数更新: θ j : = θ j − α ∂ ∂ θ j J ( θ ) 其 中 ( j = 0 , 1 , . . . , n ) {\theta _j}: = {\theta _j} - \alpha {\partial \over {\partial {\theta _j}}}J({\theta})其中(j=0,1,...,n) θj:=θjαθjJ(θ)(j=0,1,...,n)

  • n > = 1 n>=1 n>=1时, θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) {\theta _j}: = {\theta _j} - \alpha {1 \over m}\sum\limits_{i = 1}^m {{{({h_\theta }({x^{(i)}}) - {y^{(i)}})}^{}}} x_j^{(i)} θj:=θjαm1i=1m(hθ(x(i))y(i))xj(i)
  • n = = 1 n==1 n==1时, θ 0 : = θ 0 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) {\theta _0}: = {\theta _0} - \alpha {1 \over m}\sum\limits_{i = 1}^m {{{({h_\theta }({x^{(i)}}) - {y^{(i)}})}^{}}} θ0:=θ0αm1i=1m(hθ(x(i))y(i))

4.3 多元变量梯度下降:特征缩放(Feature Scaling)

思想:确保所有特征数值在相似地范围。这样可以走一条相对简单的路径到最优解,要求特征值组之间取值范围相差不大,默认 − 1 ≤ x i ≤ 1 -1 \le {x_i} \le 1 1xi1

做法:均值归一化(Mean normalization)。使用 x i − μ i {x_i} - {\mu _i} xiμi代替 x i {x_i} xi 确保 0 0 0均值。

x i ← x i − μ i S i {x_i} \leftarrow {{{x_i} - {\mu _i}} \over {{S_i}}} xiSixiμi,其中 μ i {{\mu _i}} μi表示该特征均值, S i {{S_i}} Si表示取值范围(最大值减去最小值)

4.4 多元变量梯度下降:学习率 α \alpha α

如何判断梯度下降算法是否正确工作?

若正常工作在每次迭代后, J ( θ ) J(\theta ) J(θ)都应该减少,可以绘制 J ( θ ) J(\theta ) J(θ)随迭代次数变化的函数判断。

自动收敛测试(automatic convergence test):每次迭代后 J ( θ ) J(\theta ) J(θ)下降的值超过 ε ( 小 正 数 如 : 1 0 − 3 ) \varepsilon (小正数如:{10^{ - 3}}) ε(103)

如果未正常工作可以使用更小的 α \alpha α

对于足够小的 α \alpha α J ( θ ) J(\theta ) J(θ)应该每次迭代均会下降,但是如果 α \alpha α太小,则会导致收敛速度太慢。

如何选择 α \alpha α

. . . , 0.001 , 0.003 , 0.01 , 0.03 , 0.1 , 0.3 , 1... ...,0.001,0.003,0.01,0.03,0.1,0.3,1... ...,0.001,0.003,0.01,0.03,0.1,0.3,1...,采用3倍策略(经验)

4.5 特征和多项式回归

例: θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 {\theta _0} + {\theta _1}x + {\theta _2}{x^2} + {\theta _3}{x^3} θ0+θ1x+θ2x2+θ3x3映射到多元线性回归 h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 {h_\theta }(x) = {\theta _0} + {\theta _1}{x_1} + {\theta _2}{x_2} + {\theta _3}{x_3} hθ(x)=θ0+θ1x1+θ2x2+θ3x3可以用少量特征学习更加复杂的关系。

x 1 = ( s i z e ) , x 2 = ( s i z e ) 2 , x 3 = ( s i z e ) 3 {x_1} = (size),{x_2} = {(size)^2},{x_3} = {(size)^3} x1=(size),x2=(size)2,x3=(size)3,这时特征缩放更为重要。

4.6 正规方程(Normal equation)解析解法

自觉:对于一维的情况,好像在 J ( θ ) J(\theta ) J(θ)导数为0时可以取得最优解。
J ( θ 0 , θ 1 , . . . , θ n ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 , θ ∈ R n + 1 J({\theta _0},{\theta _1},...,{\theta _n}) = {1 \over {2m}}\sum\limits_{i = 1}^m {{{({h_\theta }({x^{(i)}}) - {y^{(i)}})}^2}} ,\theta \in {R^{n + 1}} J(θ0,θ1,...,θn)=2m1i=1m(hθ(x(i))y(i))2θRn+1

∂ ∂ θ j J ( θ ) = . . . = 0 {\partial \over {\partial {\theta _j}}}J(\theta ) = ... = 0 θjJ(θ)=...=0

对于 θ 0 , θ 1 , . . . , θ n {\theta _0},{\theta _1},...,{\theta _n} θ0,θ1,...,θn,可得 θ = ( X T X ) − 1 X T y \theta = {({X^T}X)^{ - 1}}{X^T}y θ=(XTX)1XTy,其中 X ∈ R m × ( n + 1 ) X \in {R^{m \times (n + 1)}} XRm×(n+1)

无需特征缩放。

梯度下降 V S VS VS正规方程

梯度下降 :

  • 需要学习率 α \alpha α
  • 需要多次迭代
  • n n n很大时工作的好

正规方程:

  • 不需要学习率 α \alpha α
  • 不需要迭代
  • 需要计算矩阵 X T X {X^T}X XTX的逆,而该矩阵是 n × n n \times n n×n维的。对于大多数计算机来说,逆矩阵的计算是 o ( n 3 ) {\rm{o}}({n^3}) o(n3)
  • n n n很大时很慢( 1 0 4 {10^4} 104

4.7 正规方程:不可逆矩阵

如果 θ = ( X T X ) − 1 X T y \theta = {({X^T}X)^{ - 1}}{X^T}y θ=(XTX)1XTy无法求逆,则可以求伪逆(大多数求逆矩阵的库,在矩阵不可逆时,自动返回伪逆)。

为什么 X T X {X^T}X XTX不可逆?

  • 多余的特征:存在特征间的线性依赖
  • 太多的特征( m ≤ n m \le n mn

X T X {X^T}X XTX不可逆的解决方案:删除一些特征,或者进行正则化。

5. 第五章 Octave基础

主要讲解 Octave语言,但是人生苦短,我选python,跳过!!!

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