CS229 笔记03

CS229 笔记03

局部加权线性回归

  • Non-Parametric Learning Algorithm (非参数学习方法)

Number of parameters grows with the size of sample. (参数的数目随着样本的数目增加而增加。)

  • Locally Weighted Regression (局部加权线性回归)

损失函数的定义为: $ J_\Theta=\sum_i{w^{(i)}(y^{(i)}-\Theta^{{\rm T}}x^{(i)})^2} $ 。

其中 $ w^{(i)}={\rm {exp}}[-\frac{1}{2}(x^{(i)}-x)^2] $ . 即对于一个待预测的 \(x\) ,训练集中离 \(x\) 越远的样本,其对于模型的影响就越小。这也就意味着在每作出一个预测之前,都要重新训练一遍模型。

线性模型的概率解释

  • Probabilistic Interpretation (概率解释)

假设真实房价 \(y^{(i)}=\Theta^{{\rm T}}x^{(i)}+\varepsilon^{(i)}\) ,其中 \(\varepsilon^{(i)}\) 为误差。

因为误差是由很多其它未知因素引起的,在未知因素比较多,且假设这些未知因素是相互独立的时候,根据中心极限定理,可以认为 \(\varepsilon^{(i)}\) 服从正态分布。

即 \(\varepsilon^{(i)} \sim {\scr N}(0,\sigma^2)\) , \({\rm P}(\varepsilon^{(i)})=\frac{1}{\sqrt2 \pi \sigma}\exp{\left[-\frac{(\varepsilon^{(i)})^2}{2\sigma^2}\right]}\) 。

从而对于给定的 \(\Theta\) 和 \(x^{(i)}\) ,\(y^{(i)} \sim {\scr N}(\Theta^{{\rm T}}x^{(i)}, \sigma^2)\) ,即 \(P(y^{(i)}|x^{(i)};\Theta)=\frac{1}{\sqrt2 \pi \sigma}\exp{\left[-\frac{(y^{(i)}-\Theta^{{\rm T}}x^{(i)})^2}{2\sigma^2}\right]}\) 。

对于整个样本集 \(X\) ,模型所做出的估计与真实值 \(Y\) 的相似程度(也称作“似然性”)可以看作是模型预测出“正确”的 \(Y\) 的概率,即似然性可表示为 \(L(\Theta)=P(Y|X;\Theta)\) 。

对于每个样本 \(x^{(i)}\) 及其目标值 \(y^{(i)}\) ,若假设每个目标值都是独立同分布的(IID),所可则直接把 $P(y^{(i)}|x^{(i)};\Theta) $ 连乘起来,即 \(L(\Theta)=P(Y|X;\Theta)=\prod_i{P(y^{(i)}|x^{(i)};\Theta)}\) 。

而训练模型所需的工作就是最大化预测出“正确”的 \(Y\) 的概率,即最大似然估计(Maximize Likelihood)。

为了方便,令 \(l(\Theta)=\log{L(\Theta)}\) 。

?

\[
\begin{eqnarray*}
l(\Theta)&=&\log{L(\Theta)} \\[1em]
&=&\log{\prod_{i}^{m}{P(y^{(i)}|x^{(i)};\Theta)}} \\[1em]
&=&\log{\prod_{i}^{m}{\frac{1}{\sqrt2 \pi \sigma}\exp{\left[-\frac{(y^{(i)}-\Theta^{{\rm T}}x^{(i)})^2}{2\sigma^2}\right]}}} \\[1em]
&=&\sum_{i}^{m}{\log{\frac{1}{\sqrt2 \pi \sigma}}-\frac{(y^{(i)}-\Theta^{{\rm T}}x^{(i)})^2}{2\sigma^2}} \\[1em]
&=&m\log{\frac{1}{\sqrt2 \pi \sigma}}-\frac{1}{\sigma^2}\sum_{i}^{m}{\frac{(y^{(i)}-\Theta^{{\rm T}}x^{(i)})^2}{2}} \\[1em]
\end{eqnarray*}
\]

要想最大化 \(l(\Theta)\) ,就要最小化 \(\sum_{i}^{m}{\frac{(y^{(i)}-\Theta^{{\rm T}}x^{(i)})^2}{2}}\) 。

而\(\sum_{i}^{m}{\frac{(y^{(i)}-\Theta^{{\rm T}}x^{(i)})^2}{2}}\) 就是之前提到过的 \(J(\Theta)\) 。

这就从概率方面解释了为什么误差要用最小二乘(Minimize Square),而不是最小化 \(y^{(i)}-\Theta^{{\rm T}}x^{(i)}\) 的绝对值或者三次方、四次方等等。

逻辑回归

  • Logistic Regression (逻辑回归)

虽然叫做“回归”,实际上是用来解决分类问题。

  • Logistic Function / Sigmoid Function

\(g(z)=\frac{1}{1+e^{-z}}\)

  • 训练过程推导

在Logistic Regression中,估计函数变成了 \(h_\Theta(x^{(i)})=g(\Theta^{{\rm T}}x)=\frac{1}{1+e^{-\Theta^{{\rm T}}x}}\) 。

由于 \(g(z)\) 的取值范围是 \((0,1)\) ,所以函数值可以直接看作是概率,即:

?

\[
\begin{eqnarray*}
P(y^{(i)}=1|x^{(i)};\Theta)&=&h_\Theta(x^{(i)}) \\[1em]
P(y^{(i)}=0|x^{(i)};\Theta)&=&1-h_\Theta(x^{(i)}) \\[1em]
P(y^{(i)}|x^{(i)};\Theta)&=&\left[h_\Theta(x^{(i)})\right]^{y^{(i)}}\left[1-h_\Theta(x^{(i)})\right]^{1-y^{(i)}} \\[1em]
\end{eqnarray*}
\]

根据之前的讨论,令 \(L(\Theta)=P(Y|X;\Theta)=\prod_i^m{P(y^{(i)}|x^{(i)};\Theta)}\) , \(l(\Theta)=\log{L(\Theta)}\) 。

?

\[
\begin{eqnarray*}
l(\Theta)&=&\log{L(\Theta)} \\[1em]
&=&\log{\prod_i^m{P(y^{(i)}|x^{(i)};\Theta)}} \\[1em]
&=&\log{\prod_i^m{\left[h_\Theta(x^{(i)})\right]^{y^{(i)}}\left[1-h_\Theta(x^{(i)})\right]^{1-y^{(i)}}}} \\[1em]
&=&\sum_i^m\log{\left[h_\Theta(x^{(i)})\right]^{y^{(i)}}\left[1-h_\Theta(x^{(i)})\right]^{1-y^{(i)}}} \\[1em]
&=&\sum_i^m{y^{(i)}}\log{\left[h_\Theta(x^{(i)})\right]}+({1-y^{(i)}})\log{\left[1-h_\Theta(x^{(i)})\right]} \\[1em]
\frac{\partial}{\partial \Theta}l(\Theta)&=&\frac{\partial}{\partial \Theta}{\sum_i^m{y^{(i)}}\log{\left[h_\Theta(x^{(i)})\right]}+({1-y^{(i)}})\log{\left[1-h_\Theta(x^{(i)})\right]}} \\[1em]
&=&\sum_i^m\frac{y^{(i)}}{h_\Theta(x^{(i)})}\frac{\partial}{\partial \Theta}\left[h_\Theta(x^{(i)})\right]+\frac{1-y^{(i)}}{1-h_\Theta(x^{(i)})}\frac{\partial}{\partial \Theta}\left[1-h_\Theta(x^{(i)})\right] \\[1em]
&=&\sum_i^m\frac{y^{(i)}}{h_\Theta(x^{(i)})}\frac{\partial}{\partial \Theta}\left[h_\Theta(x^{(i)})\right]-\frac{1-y^{(i)}}{1-h_\Theta(x^{(i)})}\frac{\partial}{\partial \Theta}\left[h_\Theta(x^{(i)})\right] \\[1em]
&=&\sum_i^m\left(\frac{y^{(i)}}{h_\Theta(x^{(i)})}-\frac{1-y^{(i)}}{1-h_\Theta(x^{(i)})}\right) \frac{\partial}{\partial \Theta}\left[h_\Theta(x^{(i)})\right] \\[1em]
\end{eqnarray*}
\]

训练的目标就是找到一个理想的 \(\Theta\) ,最大化 \(l(\Theta)\) 。

所以训练过程就是:

\[
\Theta :=\Theta+\alpha \nabla_\Theta l(\Theta)
\]

感知机

  • Perception Algorithm(感知机算法)
  • Step Function(阶梯函数)

    \[
    g(z)=\begin{cases}1, &{z\geq0}\\0,&{\text{Otherwise}}\end{cases}
    \]

    ?

时间: 2024-10-11 06:04:27

CS229 笔记03的相关文章

python学习笔记(03):函数

默认参数值:   只有在行参表末尾的哪些参数可以有默认参数值,即 def func(a, b=5 )#有效的 def func( a=5,b )#无效的 关键参数: #!/usr/bin/python # Filename: func_key.py def func(a, b=5, c=10): print 'a is', a, 'and b is', b, 'and c is', c func(3, 7) func(25, c=24) func(c=50, a=100) #输出: $ pyth

HTTP 学习笔记03

通用信息头 Cache-Control : no-cache(不缓存当前请求) [*] Connection:close(返回当前请求后立即断开)[*] Date:...(HTTP消息产生的时间) Pragma:no-cache (不缓存) [*] Trailer:Date(哪些能放到实体内容后的头字段) Transfer-Encoding:chunked (指定传输编码方式)[*] Upgrade:HTTP/2.0,SHTTP/1.3 (支持的版本) Via:HTTP/1.1 Proxy1,H

《30天自制操作系统》笔记(03)——使用Vmware

<30天自制操作系统>笔记(03)--使用Vmware 进度回顾 在上一篇,实现了用IPL加载OS程序到内存,然后JMP到OS程序这一功能:并且总结出下一步的OS开发结构.但是遇到了真机测试和U盘启动的一些问题.本篇就来解决之. 遇到的问题 物理机测试 简单来说,把软盘(U盘)做成启动盘后,自然想要用来启动物理机器.毕竟这才是真正的测试.(用QEMU总没多大的成就感)但物理机测试的麻烦在于太慢了,每次都要关掉Windows,重启,测试,然后再重启Windows.而且还没办法截图. 而用Vmwa

C++ GUI Qt4学习笔记03

C++ GUI Qt4学习笔记03 qtc++spreadsheet文档工具resources 本章介绍创建Spreadsheet应用程序的主窗口 1.子类化QMainWindow 通过子类化QMainWindow可以创建一个窗口 图形用户界面(GUI)应用程序通常会使用很多的图片,最常见的为应用程序提供图片的方法是使用Qt的资源机制(resource mechanism) 使用Qt资源系统,必须创建一个资源文件,并且在识别该资源文件的.pro文件中添加一行代码. RESOURCES = spr

mongodb 学习笔记 03 -- 查询表达式

mongodb 学习笔记 03 – 查询表达式 不等于,大于,小于 !=: db.stu.find({name:{$ne:'billvsme'}}) 名字不是'billvsme' > : db.stu.find({age:{$gt:18}}) 年纪大于18 < : db.stu.find({age:{$lt:18}}) 年纪小于18 >=: $gte <=: $lte in/not in/all $in :db.goods.find(stu_id:{$in:[93001,93002

Android自定义View学习笔记03

Android自定义View学习笔记03 预备知识 BitMap类 BitMap位图类,其中有一个嵌套类叫Bitmap.Config,内部有四个枚举值.这个类的作用是定义位图存储质量,即存储一个像素的位数,以及是否能显示透明.半透明颜色(Possible bitmap configurations. A bitmap configuration describes how pixels are stored. This affects the quality (color depth) as w

SWIFT学习笔记03

1.断言 let age = -3 assert(age >= 0, "A person's age cannot be less than zero") // 因为 age < 0,所以断言会触发 2.Swift赋值符(=)不返回值,以防止把想要判断相等运算符(==)的地方写成赋值符导致的错误.数值运算符(+,-,*,/,%等)会检测并不允许值溢出. 3.在对负数b求余时,b的符号会被忽略.这意味着 a % b 和 a % -b的结果是相同的,但-a是不一样的. 4.不同

HTML学习笔记03

HTML学习笔记03 一.HTML标题 HTML标题通过<h1>-<h6>等标签进行定义的,<h1>定义最大的标题,<h6>定义最小的标题. 二.HTML水平线 HTML水平线可以用<hr>标签. 三.HTML注释 HTML注释采用设置<!--注释-->进行注释. 四.HTML段落 HTML段落采用<p>标签,还可以使用<br>标签进行换行. 五.文本格式化 <b>定义粗体文本,<big>

【OpenGL 学习笔记03】点画多边形

1.点画多边形 //定义填充多边形的点画模式.mask为32 x 32 的位图指针,1画0不画,使用前必须启用多边形点画功能 void glPloygonStipple(const GLubyte* mask); //绘制一个矩形 void glRectf(GLfloat x1,GLfloat y1,GLfloat x2,GLfloat y2); 2.示例 #include <GL/glut.h> #include <stdlib.h> void display(void) { G