第一节

机器学习定义

对于一个计算机程序来说,给它一个任务T和一个性能测量方法P,如果在经验E的影响下,P对T的测量结果得到了改进,那么就说程序从E中学习。

监督学习

回归问题

房价的预测

分类问题

判断肿瘤是否为良性或恶性

无监督学习

聚类问题

通常人们会根据样本间的某种距离或者相似性来定义聚类,即把相似的(或距离近的)样本聚为一类,而把不相似的(或距离远的)样本归为其他类;

图像像素的分组、社会网络分析、市场数据分析、话筒收录的声音的分类;

强化学习

在强化学习过程中,通常会在一段时间内完成一系列决策 ;

控制直升飞机:一个错误的决策不对导致飞机摔下来但是一系列的错误决策会,同样一系列的正确的决定会让飞机飞得更好;

通常通过回报函数来实现强化学习,让机器尽量做多的正确决策和尽量少的决策来获得更多的回报;

聚类和分类的区别

  • 聚类分析是研究如何在没有训练的条件下把样本分为若干类
  • 在分类中,我们事先会确定每一类的范围和区分标准,要做的就是将符合标准的记录标记出来
  • 聚类指事先不知道任何样本的类别标号,希望通过某种算法把某一组未知类别的样本区分出来,以某种度量(如距离)为标准的相似性,在同一聚类中最小化,在不同聚类之间最大化

第二节

线性回归

h(x)=∑i=0nθixi=θθTXh(x)=∑i=0nθixi=θθTX

θiθi被称为参数,最初设置为0,通过机器学习不断更新θiθi(即下面不断对θiθi进行赋值)。利用训练集得出合适θiθi,是机器学习的任务;(x,y)是训练集,hθ(x)hθ(x)是假设h(x)h(x)基于训练集得出的结果。

梯度下降

选取一个点,找到一个下降最快的方向正是梯度的方向前进一步;重复这个过程直到一个最低的位置;

性质

  • 如果切换起始点位置 ,可能会到一个截然不同的局部最低点;
  • 当接近局部最小值的时候,梯度会自动越来越小直至减到0;

批梯度下降法

规则

J(θ)=minθ{∑nj=1(hθ(x(j))−y(j))22}J(θ)=minθ{∑j=1n(hθ(x(j))−y(j))22}

除以2是为了简化之后的数学计算;J(θ)J(θ)对于θiθi求偏导得到θiθi(:=:=是赋值号):

  • 只有一组训练样本:θi:=θi−α(hθ(x)−y)xiθi:=θi−α(hθ(x)−y)xi
  • 对于多组训练样本:θi=θi−α∑nj=1(hθ(x(j))−y(j))x(j)iθi=θi−α∑j=1n(hθ(x(j))−y(j))xi(j)( x(j)表示第j个x而不是j次方或j次偏导)

αα为学习速度,由手动设置,决定每次“前进”的步长。如果设置的值过小,会导致要花很长时间去收敛;如果设置的值过大,可能会导致错过最小值。

分析

每次梯度下降,都要对j从1到n进行求和,程序就要检测所有训练样本,对于几百万甚至几亿的数据十分耗费资源

随机梯度下降算法(增量梯度下降)

规则

对于所有的ii:j=1−>n{θi:=θi−α(hθ(x(j))−y(j))x(j)i}j=1−>n{θi:=θi−α(hθ(x(j))−y(j))xi(j)}

首先第一次仅仅查看第一个训练样本并利用第一个训练样本对θi进行修改;然后再用第二个训练样本θi进行修改;

分析

对于大规模的数据集随机 梯度算法会快得多,但不会精准的收敛到全局最小值,可能会一直在最小值周围徘徊。

正规方程组

定义JJ对于θiθi的梯度是一个n+1维的向量,即∇θJ=(∂J∂θ0,∂J∂θ1,...,∂J∂θn)T∇θJ=(∂J∂θ0,∂J∂θ1,...,∂J∂θn)T

将批梯度下降算法写成:θ:=θ−α∇θJθ:=θ−α∇θJ

定义设计矩阵X包含了训练集中所有输入的矩阵,X=((x(1))T,(x(2))T,...,(x(m))T)X=((x(1))T,(x(2))T,...,(x(m))T)(m个训练样本),定义矩阵Y包含所有训练集的目标数据,也是m维矩阵;

XθXθ−YY=((h(x(1))−y(1)),(h(x(2))−y(2)),...,(h(x(m))−y(m)))T(Xθ−YXθ−Y)T(Xθ−YXθ−Y)2=J(θ)XθXθ−YY=((h(x(1))−y(1)),(h(x(2))−y(2)),...,(h(x(m))−y(m)))T(Xθ−YXθ−Y)T(Xθ−YXθ−Y)2=J(θ)

令∇θJ=0∇θJ=0,即∇θ(Xθ−YXθ−Y)T(Xθ−YXθ−Y)2=0∇θ(Xθ−YXθ−Y)T(Xθ−YXθ−Y)2=0,展开化简经过漫长的计算后可以得到:

θθ=(XXTXX)−1XXTYYθθ=(XXTXX)−1XXTYY

第三节

欠拟合和过拟合

欠拟合:使用了较小的训练集得出了一个比较简单的模型

过拟合:由于使用了过大的训练集导致算法过于复杂,算法仅仅恰好符合给出的训练集的特性而没有反映出更一般的规律

局部加权回归

参数学习算法是一种有固定数目的参数以用来数据拟合的算法

非参数学习算法是一种参数数量会随训练集合大小增加而增加的算法

概念

选取训练集中的一点x,x(i)是x点周边的值,我们通过这种方式来拟合θ的值:h(x)=∑iw(i)(y(i)-θTx(i))2

其中w(i)表示权重,w(i)=exp(-(x(i)-x)2/2τ2)。如果训练样本只有一个,即x(i)和x非常接近,那么w(i)≈1;如何训练样本很大,x(i)离x很远,那么对应的权重w(i)≈0;其中w(i)可以用其他函数,参数τ2被称为波长函数,它控制了权值随距离下降的速率。

局部加权回归是非参数学习算法。

Logistic函数

g(z)=1/(1+e-z)称为Logistic函数或Sigmoid函数,g(z)∈[0,1]

对于非线性函数,特别的我们令hθ(x)=g(θTX)=1/(1+e-θTX)

P(y=1|x;θ)=hθ(x);P(y=0|x;θ)=1-hθ(x),则P(y|x;θ)=hθ(x)y(1-hθ(x))1-y

令L(θ)=P(y|x;θ)=∏iP(y(i)|x(i);θ)=∏ihθ(x)y(i)(1-hθ(x(i)))1-y(i)

对L(θ)取对数得到l(θ),利用之前梯度下降的方法(这里是最大化)得到θ:=θ+α▽θl(θ)

l(θ)对θj求偏导得到:θj:=θj+α∑nj=1(y(i)-hθ(x(i)))x(i)j

这里的hθ(x)是Logistic函数,和前面的线性回归函数不一样。最终得到一样或相似的学习规则并不是巧合。

感知器算法

g(z)=1(z>=0) 0(z<0)

hθ(x)=g(θTX)

θj:=θj+α(y(i)-hθ(x(i)))x(i)j

第四节

牛顿方法

假设我们有一个函数f(θ),想找出f(θ)=0的θ值。

首先随便找一个坐标(θ(0),f(θ(0))),对其求切线并延长与θ轴相交,将相交点的横坐标记为θ(1),再次对其求切线延长与θ轴相交;重复上述步骤直至f(θ(i))=0。

用公式表示即:

记两个θ之间的距离为△,f'(θ(0))=f(θ(0))/△,可以推出△=f(θ(0))/f'(θ(0));

那么θ(1)=θ(0)-△即θ(1)=θ(0)-f(θ(0))/f'(θ(0));

通常来说,对牛顿方法的一次迭代θ(t+1)=θ(t)-f(θ(t))/f'(θ(t))

用相同的思想,如果我们有一个函数l(θ),求其最大值,可以令l'(θ)=0,那么θ(t+1)=θ(t)-l'(θ(t))/l''(θ(t))

对于一般化的牛顿方法(θ是向量的情况下):θ(t+1)=θ(t)-H-1▽θl

这里的▽θl表示l的梯度,H叫做Hession矩阵,Hij=ə2l/əθiəθj

对于合理的特征数量此种算法较快

指数分布族

T(y)是充分估计量

伯努利分布

Ber(Φ) P(y=1:Φ)=Φ

P(y:Φ)=Φy(1-Φ)1-y=exp(logΦy(1-Φ)1-y)=exp(ylogΦ+(1-y)log(1-Φ))=exp(ylog(Φ/(1-Φ))+log(1-Φ))

我们令ŋ=log(Φ/(1-Φ)),T(y)=y,-a(ŋ)=log(1-Φ);由ŋ=log(Φ/(1-Φ))我们可以得到Φ=1/(1+e-ŋ)即Logistic函数

a(ŋ)=-log(1-Φ),将Φ=1/(1+e-ŋ)代入得到a(ŋ)=log(1+e-ŋ)

高斯分布

f(x)=exp(-(x-b)2/(2c2),这里我们令c2=1

1/(2π)1/2exp((-1/2)(y-μ)2)=...=1/(2π)1/2exp(-y2/2)exp(μy-μ2/2)

令μ=ŋ,T(y)=y,a(ŋ)=μ2/2=ŋ2/2

andrew ng 机器学习笔记_机器学习笔记相关推荐

  1. 机器学习 可视化_机器学习-可视化

    机器学习 可视化 机器学习导论 (Introduction to machine learning) In the traditional hard-coded approach, we progra ...

  2. 机器学习:分类_机器学习基础:K最近邻居分类

    机器学习:分类 In the previous stories, I had given an explanation of the program for implementation of var ...

  3. 机器学习指南_机器学习-快速指南

    机器学习指南 机器学习-快速指南 (Machine Learning - Quick Guide) 机器学习-简介 (Machine Learning - Introduction) Today's ...

  4. 机器学习 导论_机器学习导论

    机器学习 导论 什么是机器学习? (What is Machine Learning?) Machine learning can be vaguely defined as a computers ...

  5. andrew ng 机器学习笔记_所有笔记目录 | 数据分析 | 机器学习 | 深度学习等

    持续更新中... 机器学习模型Python复现: 舟晓南:感知机模型python复现 - 随机梯度下降法:梯度下降法:adagrad:对偶形式 舟晓南:k近邻(KNN)模型python复现 - 线性扫 ...

  6. Andrew Ng带我漫步机器学习 - 第七周 支持向量机SVM

    支持向量机 优化目标 模型转换 代价函数 假设方程 模型原理 数学边界 最大间隔分类器 数学原理 - 略,宜看视频 核心程序 概念解析 f特征量 近似核心方程 决策边界 应用指南 参数选择 实战简明教 ...

  7. 机器学习指南_机器学习项目的研究指南

    机器学习指南 Machine Learning projects can be delivered in two stages. The first stage is named Research a ...

  8. 机器学习术语_机器学习术语神秘化。

    机器学习术语 Till this day, my favorite definition of a Machine is ; something that makes work easier. At ...

  9. 如何准备机器学习数据集_机器学习演练第一部分:准备数据

    如何准备机器学习数据集 Cleaning and preparing data is a critical first step in any machine learning project. In ...

最新文章

  1. 3-openstack之keystone上
  2. 专访小书作者刘传君:练太极的“读书机器”
  3. 【166期推荐】医院中电脑耗材采购该不该归信息科负责?
  4. commons-lang常用工具类StringEscapeUtils使用--转
  5. laravel 报错htmlspecialchars() expects parameter 1 to be string, object given
  6. C++面向接口编程和C++多态
  7. Leetcode#206Reverse Linked List
  8. java并发编程实战阅读总结(a)
  9. HDU2006 求奇数的乘积【入门+序列处理】
  10. mybatis入门教程(三) --分页
  11. python负数字符串转成_python 转字符
  12. python 读写三菱PLC数据,使用以太网读写Q系列,L系列,Fx系列的PLC数据
  13. ifconfig 配置ip,netmask,gw
  14. 推荐一款非常实用的VR手势插件VRBasics
  15. 安装ADOBE READER时无法将数值写入键
  16. 20130114 1080p vs. 1080i
  17. 用Python爬取QQ音乐评论并制成词云图
  18. xay loves or
  19. 怎么确定电脑上没有mysql_怎么检查电脑有没有mysql?
  20. 1128_AURIX_TC275的基本参数了解

热门文章

  1. python绝对导入_[编程基础] Python中的绝对导入与相对导入
  2. 每日一题 2020.05.26
  3. (又有惊喜)Redis5.0重量级特性Stream尝鲜
  4. 带你尝鲜LiteOS 组件EasyFlash
  5. 如何基于Jupyter notebook搭建Spark集群开发环境
  6. FusionInsight怎么帮「宇宙行」建一个好的「云数据平台」?
  7. 手把手教你写一个spring IOC容器
  8. 实践案例丨ACL2020 KBQA 基于查询图生成回答多跳复杂问题
  9. 【万字长文】探讨可信构架之道
  10. The tempotron: a neuron that learns spike timing–based decisions 事件驱动