机器学习 | 吴恩达机器学习第一周学习笔记

课程视频链接:https://www.coursera.org/learn/machine-learning/home/welcome

第一周PPT汇总下载链接:https://pan.baidu.com/s/1VzdQJa0WlHnhsUDbhQqmZQ  密码:pbbl

       

        Ng在Coursera上开设的机器学习课程,主要是面对零基础的学习者,课程内容非常友好,可以使学习者对机器学习有整体上的把握,是入门机器学习的不二之选。第一周的课程比较简单,主要是对机器学习的一些概述,大体分为机器学习简介;模型和代价函数(单变量线性回归);参数学习(梯度下降法)以及线性代数基础知识回顾四部分。接下来笔者将结合课程内容在这四方面进行展开。

 

目录

 

一、机器学习简介

1.什么是机器学习

2.机器学习分类:

监督学习

扫描二维码关注公众号,回复: 3600345 查看本文章

无监督学习

3.监督学习

(1)定义:

(2)分类:

(3)举例:

4.无监督学习

(1)定义:

(2)举例:

二、模型和损失函数

1.模型表示

(1)基本术语:

(2)机器学习过程:

2.代价函数(损失函数)

(1)房价数据集:

(2)线性回归(单变量):

三、参数学习

1.梯度下降法:

2.参数更新过程:

3.使用梯度下降法求解线性回归(单变量)

4.Batch-梯度下降

四、线性代数基础复习

1.基本表示

2.矩阵(向量)加减法与数乘

3.矩阵乘法

4.矩阵相乘的性质

5.矩阵的逆和转置


一、机器学习简介

1.什么是机器学习

       A Computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance at tasks in T , as measured by P , improves with experience E.

意译:一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E后,经过P评判,程序在处理T时的性能有所提升。

example:玩跳棋

经验E:之前积累的玩多局跳棋的经验

任务T:玩跳棋这项任务

性能度量P:程序将赢得下一局跳棋的可能性

2.机器学习分类:

  • 监督学习

  • 无监督学习

3.监督学习

(1)定义:

已给定一个标注数据集(已经知道正确的输出),旨在确定输入和输出之间的关系。比如:给定房价数据集,对于其中的每条房子属性数据(房子面积,地理位置,寿命等),算法都知道对应的正确房价,算法的结果是算出更多正确的价格,对于任意给定的新的房子属性数据,得到其对应的房价。

(2)分类:

  • 回归问题

意在预测一个连续值的输出,即将输入变量映射到某个连续函数。

  • 分类问题

意在预测一个离散值的输出,即将输入变量映射到某个类别。

(3)举例:

  • 回归问题实例

example 1:给定有关房子面积的数据来预测它的价格,价格作为面积的函数是一个连续的输出。

example 2:给定一个人的照片,在此基础上预测他的年龄。

  • 分类问题实例

example 1:将上述房价问题的输出改为是否高于/低于要价,此时基于房价将房子分为两类。

example 2:给定一个患肿瘤的病人,预测这个肿瘤是良性的还是恶性的。

4.无监督学习

(1)定义:

使我们能在很少或根本不知道的我们的结果是什么样的情况下解决问题(数据集未标记),我们可以从数据中导出其蕴含的结构,可以通过数据中输入变量间的关系聚类数据来推导出这种结构。

(2)举例:

example 1:(聚类)收集1,000,000个不同的基因,找到一种方法能自动将这些基因分为不同的组(事先并不知道有哪些组以及这些基因应该属于哪个组),其中每个组在一些不同的变量(寿命,位置,角色等)上相似或相关。

example 2:(非聚类)"鸡尾酒会算法"允许你在嘈杂的环境中找到其中蕴含的结构,比如从一个鸡尾酒会的混杂声音中分离解析出某个人的声音和背景音乐的声音。

二、模型和损失函数

1.模型表示

(1)基本术语:

  • m : 训练集中训练样本的总数
  • x : 输入变量/特征变量 (可以有多个维度)
  • y : 输出变量/目标变量
  • n : 输入变量x的维度
  • (x,y) : 训练集中的训练样本
  • (x^{(i)},y^{(i)}) : 训练集中第i个样本    i=1...m
  • \Theta : 模型参数(可以有多个维度)

(2)机器学习过程:

给定一个训练集通过学习算法来学习一个函数hhx\rightarrow y 的一个映射。

2.代价函数(损失函数)

接下里以预测房价为例,得到线性回归(单变量)的代价函数。

(1)房价数据集:

输入变量为房子的面积,输出变量为房价。

(2)线性回归(单变量):

根据训练样本(x,y)选择一组参数(\Theta _{0},\Theta _{1}),使预测值h_{\Theta }(x)接近真实值y,即使得代价函数最小。其中h_{\Theta }(x)=\Theta _{0}+\Theta _{1}\cdot x

  • 代价函数在此使用的是均方误差
  • 代价函数中前乘1/2,是为了约掉平方项求导产生的2

三、参数学习

1.梯度下降法:

机器学习中主要采用梯度下降法来最小化代价函数,从而找到最优的一组参数。注意梯度下降法可以找到局部最优解,并不能保证得到全局最优解,且得到的最优解不唯一。

如上述两幅图所示,梯度下降法可以是一个下山的过程,每走一步前,先环顾四周,找到一个梯度下降最快的方向,然后移动,以此循环,直到走到一个局部最优解,此时参数将不会再更新,该组参数即为所求,它唯一确定一个函数,并且使得代价函数最小。

2.参数更新过程:

重复迭代直至收敛

\left \{ \Theta _{j}:=\Theta _{j} -\alpha \cdot \frac{\partial }{\partial \Theta _{_{j}}}\cdot J(\Theta _{0},\Theta _{1})\right \}      j=0,1

  • 所有参数同时更新:

上图为正确的参数更新方式,下图是错误的,因为它在更新完一个参数后,此时再代入代价函数更新另一个参数(代价函数变了),必须保证所有参数同时更新,即在一次更新过程中代价函数是不变的。

  • 符号:=:=为赋值符号
  • \alpha为学习率,用以调整参数的更新幅度。

 

上述两幅图以一个参数为例进行说明。当学习率很小时,梯度下降会很缓慢(上图);当学习率很大时,梯度下降可能会越过最小值,可能不会收敛甚至出现发散的情况(下图).

  • 若已在局部最优点,此时梯度下降中的导数项将为0,即参数将不会再更新,反之亦然。随着梯度下降的进行,导数项会越来越小,这就意味着我们有时不必不断的调整学习率,在学习率固定的情况下,参数更新的幅度会越来越小,直至收敛到局部最优解。

3.使用梯度下降法求解线性回归(单变量)

以上述房价预测线性回归模型为例进行演示。

  • \frac{\partial }{\partial \Theta _{j}}\cdot J(\Theta _{0},\Theta _{1})=\frac{\partial }{\partial \Theta _{j}}\cdot \frac{1}{2*m}\cdot \sum_{i=1}^{m}\left ( h_{\Theta } (x^{(i)})-y^{(i)}\right )^{2}=\frac{\partial }{\partial \Theta _{j}}\cdot J(\Theta _{0},\Theta _{1})=\frac{\partial }{\partial \Theta _{j}}\cdot \frac{1}{2*m}\cdot \sum_{i=1}^{m}(\Theta _{0}+\Theta _{1}\cdot x^{(i)}-y^{(i)})^{2}
  • j=0: \frac{\partial }{\partial \Theta _{0}}\cdot J(\Theta _{0},\Theta _{1})=\frac{1}{m}\cdot \sum_{i=1}^{m}\cdot (\Theta _{0}+\Theta _{1}\cdot x^{(i)}-y^{(i)})=\frac{1}{m}\cdot \sum_{i=1}^{m}\cdot (h_{\Theta }(x^{(i)}-y^{(i)})
  • j=1 : \frac{\partial }{\partial \Theta _{1}}\cdot J(\Theta _{0},\Theta _{1})=\frac{1}{m}\cdot \sum_{i=1}^{m}(\Theta _{0}+\Theta _{1}\cdot x^{(i)}-y^{(i)})\cdot x^{(i)}=\frac{1}{m}\cdot \sum_{i=1}^{m}(h_{\Theta }(x^{(i)})-y^{(i)})\cdot x^{(i)}

 

4.Batch-梯度下降

每一步梯度下降使用所有m个训练样本进行计算。

四、线性代数基础复习

1.基本表示

  • 一般用大写字母A,B,C,X表示矩阵       A_{ij}表示矩阵中第i行第j列的元素
  • 一般用小写字母x,y,a,b表示向量(n\times 1的矩阵)        y_{i}表示向量中第i个元素

2.矩阵(向量)加减法与数乘

  • 矩阵(向量)加减法,维度要相同,对应位置相加减
  • 矩阵(向量)数乘,每个元素都与该标量相乘

3.矩阵乘法

  • A(m*n)\times B(n*k)=C(m*k)     A第列数等于B的行数
  • 矢量编程(提高效率)

4.矩阵相乘的性质

  • A\times B\neq B\times A
  • 单位矩阵I_{n\times n}  (主对角线元素全为1,其余元素全为0)

    A(m*n)\times I(n*n)=I(m*m)\times A(m*n)=A(m*n)

5.矩阵的逆和转置

  • 矩阵的逆:若Am*m维的方阵并且有逆矩阵,则 A\cdot A^{-1}=A^{^{-1}}\cdot A=I(m*m)
  • 奇异矩阵:矩阵没有逆矩阵
  • 矩阵的转置:行列互换 A(m*n)       A^{T}(n*m)  且A_{ij}=A^{T}_{ji}

  

       

       

猜你喜欢

转载自blog.csdn.net/sdu_hao/article/details/82973212
今日推荐