第01周:吴恩达 Andrew Ng 机器学习

学习内容:

1 机器学习

1.1 机器学习定义

①Arthur Samuel:在没有明确设置的情况下,使计算机具有学习能力的研究领域。

        e.g.跳棋游戏,使计算机与自己对弈上万次,使计算机学习到什么是好布局并获得丰富的下棋经验。

②Tom Mitchell:计算机程序从经验E中学习解决某一任务T,进行某一性能度量P,通过P测定在T上的表现因经验E而提高。

       e.g.跳棋游戏:经验E是程序与自己下几万次跳、任务T是玩跳棋、性能度量P是与新对手玩跳棋时赢的概率。

1.2 监督学习

教计算机如何去完成任务。它的训练数据是有标签的,训练目标是能够给新数据(测试数据)以正确的标签。

1.2.1 回归类问题

给定的数据集是真实的一系列连续的值。计算机通过学习选择适当的模型来模拟这个数据值(比如一次函数或二次函数等)。

1.2.2 分类问题

计算机通过学习,根据输入的特征值,得出的结果是一个离散值,比如肿瘤问题,根据年龄、肿瘤大小,得出肿瘤是良性0或恶性1。

1.3 无监督学习

只给算法一个数据集,但是不给数据集的正确答案,由算法自行分类。

1.3.1 聚类算法

  • 谷歌新闻每天搜集几十万条新闻,并把相似的新闻进行分类
  • 市场对用户进行分类
  • 鸡尾酒算法

2 线性回归

  • 假设函数(用来进行预测的函数)

h_{\theta }\left ( x \right )=\theta _{0}+\theta _{1x}

2.1 代价函数

(平方误差代价函数):解决回归问题最常用的手段。

J\left ( \theta _{_{0}},\theta _{1} \right )=\frac{1}{2m}\sum_{i=1}^{n}\left ( h_{\theta }\left ( x^{\left ( i \right )} \right )-y^{\left ( i \right )} \right )^{2}

(其中m表示训练样本的数量)

优化目标:minimize J\left ( \theta _{0},\theta _{1} \right )

2.1.1 只含一个参数\theta _{1}

不断改变\theta _{1}的值,通过代价函数J\left (\theta _{1} \right )=\frac{1}{2m}\sum_{i=1}^{n}\left ( h_{\theta }\left ( x^{\left ( i \right )} \right )-y^{\left ( i \right )} \right )^{2}得到多组结果,并找到最小的的代价结果,即最优目标minimize J\left (\theta _{1} \right )

2.1.2  同时考虑两个参数\theta _{0}\theta _{_{_{1}}}

此时,将代价函数变成三维图像以及平片图(等高线图),其中等高线最小椭圆中心点代表代价函数的最小值,即minimize J\left ( \theta _{0},\theta _{1} \right )

 2.2 梯度下降算法

  • 目标:最小化代价函数
  • 思路:

        ①初始化参数\theta _{0} 和 \theta _{1} 的值(通常为0)

        ②不断地一点点改变两个参数\theta _{0} 和 \theta _{1} 的值,使代价函数的值J\left ( \theta _{0},\theta _{1} \right ) 变小,直到找到J 的最小值或局部最小值。

  • 梯度 函数中某一点(x, y)的梯度代表函数在该点变化最快的方向(当所选的开始点有偏差的时候,可能到达另一个局部最小值)。

  • 梯度下降算法的公式

\theta _{j}:= \theta _{j}-\alpha \frac{\partial }{\partial \theta _{j}}J\left ( \theta _{0},\theta _{1} \right ) \left ( for j = 0 and j = 1 \right )

         其中\alpha被称为学习率,控制梯度下降的步子大小,\alpha越大,梯度下降越快。

      同时, \theta _{0} 和 \theta _{1} 的值需要同时更新,若先更新了 \theta _{0} 的值,会影响temp1的值,使其与同时更新的值不同。

  • \alpha的选取:如果\alpha太小,会导致每次移动的步幅都很小,最终需要很多步才能最终收敛;
    如果\alpha太大,会导致每次移动的步幅过大,可能会越过最小值,无法收敛甚至会发发散。

  • 更新\theta _{j} 的原理

        在梯度下降法中,当接近局部最低点时,梯度下降法会自动采取更小的幅度(因为局部最低时导数\frac{\partial }{\partial \theta _{j}}J\left ( \theta _{0},\theta _{1} \right )等于零),所以越靠近最低点,导数值越小,所以实际上没有必要另外减小α.

2.3 线性回归(Batch)的梯度下降 

  •     公式推导过程

J\left ( \theta _{0},\theta _{1} \right )=\frac{1}{2m}\sum_{i=1}^{m}\left ( h\left ( x^{\left ( i \right )} \right )-y^{\left ( i \right )} \right )^{2}=\frac{1}{2m}\sum_{i=1}^{m}\left ( \left ( \theta _{0}+\theta _{1}x^{\left ( i \right )} \right )-y^{\left ( i \right )} \right )^{2}

  • j=0时,对\theta _{0}求偏导

\frac{\partial J\left ( \theta _{0},\theta _{1} \right )}{\partial \theta _{0}}=\frac{1}{m}\sum_{i=1}^{m}\left ( \left ( \theta _{0}+\theta _{1}x^{\left ( i \right )}\right )-y^{\left ( i \right )} \right )

  • j=1时,对\theta _{1}求偏导

\frac{\partial J\left ( \theta _{0},\theta _{1} \right )}{\partial \theta _{1}}=\frac{1}{m}\sum_{i=1}^{m}\left ( \left ( \theta _{0}+\theta _{1}x^{\left ( i \right )}\right )-y^{\left ( i \right )} \right )x^{\left ( i \right )}

  • 更新\theta _{0} 和 \theta _{1}

 \theta _{0 }:= \theta _{0 } -\alpha \frac{1}{m}\sum_{i=1}^{m}\left ( \left ( \theta _{0}+\theta _{1}x^{\left ( i \right )}\right )-y^{\left ( i \right )} \right )

\theta _{1}:= \theta_{1}-\alpha \frac{1}{m}\sum_{i=1}^{m}\left ( \left ( \theta _{0}+\theta _{1}x^{\left ( i \right )}\right )-y^{\left ( i \right )} \right )x^{\left ( i \right )}

  • 线性回归的梯度下降函数是凸函数,凸函数没有局部最优解,只有一个全局最优(总是收敛到全局最优)。

3 矩阵 

 3.1 矩阵加法、标量乘法运算

  • 两个矩阵相加,将这两个矩阵的每一个元素都逐个相加(只有相同维度的两个矩阵才能相加,结果还是与相加的两个矩阵维度相同的矩阵)。

  • 矩阵中每个元素逐个乘以标量。 

3.2 矩阵向量乘法

  • 一个矩阵和一个向量乘得到一个新的列向量。
  • 列向量的维数就是矩阵的行数。
  • 矩阵的列数必须等于向量的维数。

3.3 矩阵乘法及特征 

  • 矩阵A×B,只要求A的列数要等于B的行数,而不一定要求A的行数等于B的列数;得到的结果矩阵C的行数和A的行数相等、C的列数和B的列数相等。
  • A矩阵每一行分别于B矩阵的每一列逐个相乘求和。

  •  特征:①矩阵乘法不符合交换律;②矩阵乘法符合结合律。
  • 单位矩阵(I):①维度n*n;②主对角线上为1,其余为0;③矩阵A\cdot I=I\cdot A=A

3.3 逆和转置

  • 逆矩阵:①A的逆矩阵为A^{-1};②A\cdot A^{-1}=1;③不存在逆矩阵的矩阵为奇异矩阵(退化矩阵);
  • 转置矩阵:①A的转置矩阵为A^{^{T}};②A^{T}的维度与A的维度行列颠倒(m x n → n x m);③将原矩阵变为转置矩阵,将第n行变为第n列。

4 多元线性回归 

4.1 假设函数(含有多个特征)

4.1.1 多变量样本数据及假设函数公式

其中, n表示特征数量;x^{(i)}表示第i组样本的特征值组合;x_{j}^{(i)}表示第i组样本特征值中第j个特征值数据。

  • 公式:h_{\theta }\left ( x \right )=\theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+......+\theta_{n}x_{n} (定义x_{0}=1,即x_{0}^{\left ( i \right )}=1)
  • x=[x_{0},x_{1},x_{2},...,x_{n}]^{T} x\epsilon R^{n+1}
  • \theta=[\theta_{0},\theta_{1},\theta_{2},...,\theta_{n}]^{T} \theta\epsilon R^{n+1}
  • h(\theta)=\theta^{T}x

4.2 多元梯度下降法

  • 代价函数J(\theta_{0},\theta_{1},...,\theta_{n})=\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^{2}
  • 梯度下降算法:\theta_{j}:= \theta_{j}-\alpha \frac{\partial }{\partial \theta_{j}}J(\theta_{0},...,\theta_{n})
  • 先求偏导:

\frac{\partial J(\theta)}{\partial \theta_{0}}=\frac{1}{m}\sum_{i=1}^{m}((\theta_{0}+\theta_{1}x^{i})-y^{(i)})x_{0}^{(i)}

\frac{\partial J(\theta)}{\partial \theta_{1}}=\frac{1}{m}\sum_{i=1}^{m}((\theta_{0}+\theta_{1}x^{i})-y^{(i)})x_{1}^{(i)}

\frac{\partial J(\theta)}{\partial \theta_{2}}=\frac{1}{m}\sum_{i=1}^{m}((\theta_{0}+\theta_{1}x^{i})-y^{(i)})x_{2}^{(i)}

  • 然后更新:

\theta_{0}:= \theta_{0}-\alpha \frac{1}{m}\sum_{i=1}^{m}((\theta_0+\theta_{1}x^{(i)})-y^{(i)})x_0^{(i)}

\theta_{1}:= \theta_{0}-\alpha \frac{1}{m}\sum_{i=1}^{m}((\theta_0+\theta_{1}x^{(i)})-y^{(i)})x_1^{(i)}

\theta_{2}:= \theta_{0}-\alpha \frac{1}{m}\sum_{i=1}^{m}((\theta_0+\theta_{1}x^{(i)})-y^{(i)})x_2^{(i)}

4.3 梯度下降法Ⅰ——特征缩放

  • 使不同特征的取值在相近的范围内,梯度下降法可以更快收敛。所以如果特征值范围相差较大,特征缩放就是一种有效的方法。

  •  执行特征缩放的目的:将特征的取值约束到-1到+1的范围内。(-1、+1不绝对,仅表示适中的范围,不过大,不过小)
  • 均值归一化:使特征值减去平均值再除以取值范围

X_{i}=\frac{x_{i}-\mu }{\sigma }    (\mu为此特征的平均值,\sigma为此特征范围max-min)

       e.g. 房子的面积(取值0~2000,假设平均面积为1000)

X_1=\frac{x_1-1000}{2000}

  • 只要特征值转换为相近似的范围即可,特征范围无需很精确,仅为了让梯度下降更快,迭代次数更少。

4.4 梯度下降法Ⅱ——学习率

  •        在梯度下降算法正常工作的情况下,每一步迭代之后代价函数值J(\theta) 都应该下降,J(\theta)与迭代次数的图像应该是一条逐渐下降的曲线。

  •      此图像可帮助判断梯度下降算法是否已经收敛,当迭代次数达到一定值,代价函数值趋于不变,此时近乎收敛。 
  • 图像还可帮助确定梯度下降算法是否正常运行。当学习率\alpha取值过大时,会导致,代价函数非正常进行,例如当随着迭代次数增长,代价函数J(\theta)值反而越来越大,说明选取学习率过大,使,下降过程中屡次直接越过最小值。解决方法是使用较小的学习率。

  •  只要学习率\alpha足够小,每次迭代之后代价函数值都会下降;若没有下降,解决办法就可以尝试一个较小的学习率,但学习率也不能太小,因为过小可能会造成梯度下降算法收敛很慢。
  • 选取合适的\alpha: 0.001,0.003,0.01,0.03,0.1,0.3,1,…以3为倍数找到一个最大值,以该最大值或比该最大值略小的值作为\alpha
     

4.5 特征和多项式回归

4.5.1 特征

  • 有时可以不用一开始使用的特征,定义新的特征可能会产生新的更好的模型,这取决于审视特定问题的角度。例如房价预测:可设两个特征,房子土地宽度x_1,和土地长度x_2,那么假设函数可写为h_{\theta}(x)=\theta_0+\theta_1x_1+\theta_2x_2;还可直接设一个特征,即为房子所占土地面子x,因为面积为长乘宽,此时假设函数可写为h_{\theta}(x)=\theta_0+\theta_1x.

4.5.2 多项式回归

比如有一个住房价格数据集,可能存在多个不同的模型用于拟合。

  • 选择二次函数与数据拟合

   但随着面积继续增大,住房价格开始下降,二次模型不合理。

  • 选择三次函数与数据拟合

但使用三次函数,需要进行特征缩放,因为三个特征值范围相差较大。

  •  选择平方根函数与数据拟合

 4.6 正规方程(区别于迭代方法的直接解法)

对于某些线性回归问题,是一种更好求参数\theta最优值的方法。

  • 求最优值过程:对代价函数J(\theta)求偏导,使导数等于0,即可求得\theta的最优值。

J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^2

求偏导,再求\theta

\theta=(X^TX)^{-1}X^Ty

根据例子可知

x^{(i)}=\begin{pmatrix} x_0^{(i)}\\ x_1^{(i)}\\ .\\ .\\ .\\ x_n^{(i)}\end{pmatrix}\in R^{n+1},y=\begin{pmatrix} y_1\\ y_2\\ .\\ .\\ .\\ y_m\end{pmatrix}\epsilon R^m

需要加入一列x_0,令其都等于1

X=\begin{pmatrix} 1 & x_1^{(1)}& .& .& .& x_j^{(1)}& .& .& .& x_n^{(1)}\\ 1& x_1^{(2)}& .& .& .& x_j^{(2)} & .& .& .& x_n^{(2)}\\ . & .& .& & & .& .& & & .\\ .& .& & .& & .& & .& & .\\ .& .& & & .& .& & & .& .\\ 1 & x_1^{(m)}& .& .& .& x_j^{(m)}& .& .& .& x_n^{(m)}\end{pmatrix}=\begin{pmatrix} (x^{(1)})^T\\ (x^{(1)})^T\\ .\\ .\\ .\\ (x^{(m)})^T\end{pmatrix}\in R^{m\times (n+1)}

 对J(\theta)求偏导并令其等于0得

\frac{\partial }{\partial \theta}J(\theta)=\frac{1}{m}\sum_{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})x^{(i)}=0

可求得\theta=(X^TX)^{-1}X^Ty 

  • 梯度下降的优点: 在特征变量很多的情况下,也能运行的相当好。

        梯度下降得缺点:①需要选择合适的学习率\alpha(需要运行多次尝试不同的学习率);②需要更多次迭代过程,计算可能会更慢。

  • 正规方程优点即不需要选择学习率,也不需要迭代。只需要运行一次。

       正规方程的缺点:需要计算(X^TX)^{-1},若矩阵维度n较大,计算会很慢。

4.7 正规方程在矩阵不可逆的情况下的解决办法

      矩阵不可逆的情况很小,导致不可逆可能有以下两个原因:①两个及两个以上的特征量呈线性关系,如x_1=kx_2,此时可以删去其中一个。②特征量过多。当样本量较小时,无法计算出那么多个偏导,所以也求不出最优结果,这种情况可以在无影响的情况下,可以删掉一些,或进行正则化。
 


学习时间:

  • 周一至周五晚上 7 点—晚上10点

学习产出:

  • 初步了解了机器学习
  • 通过吴恩达机器课程对单变量线性回归、矩阵、多变量线性回归理论进行学习
  • 整理了以上四部分笔记
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值