根据Andrew Ng在斯坦福的《机器学习》视频做笔记,已经通过李航《统计学习方法》获得的知识不赘述,仅列出提纲。

1 初识机器学习

1.1 监督学习(x,y)

分类(输出y是离散值)

回归(输入输出是连续值)

e.g.垃圾邮件、乳腺癌肿瘤好坏、是否患有糖尿病

1.2 无监督学习(x)

e.g. 新闻事件分类(谷歌新闻)、细分市场

2 单变量线性回归

2.1 模型描述

一种可能的表达方式为:\(h_\theta \left( x \right)=\theta_{0} + \theta_{1}x\),因为只含有一个特征/输入变量,因此这样的问题叫作单变量线性回归问题。

\(h\) 代表hypothesis(假设),是一个从\(x\) 到 \(y\) 的函数映射。

2.2 代价函数

\(J \left( \theta \right) = \frac{1}{2m}\sum\limits_{i=1}^m \left( h_{\theta}(x^{(i)})-y^{(i)} \right)^{2}\)

2.3 梯度下降

\({\theta_{j}}:={\theta_{j}}-\alpha \frac{\partial }{\partial {\theta_{j}}}J\left(\theta \right)\)

同步更新(采用temp值)

算法:

repeat until convergence {
\({\theta_{j}}:={\theta_{j}}-\alpha \frac{\partial }{\partial {{\theta }_{j}}}J({{\theta }_{0}},{{\theta }_{1}})\) (for j = 0 and j = 1)
}

求偏导:
\(\frac{\partial }{\partial {{\theta }_{j}}}J({{\theta }_{0}},{{\theta }_{1}})=\frac{\partial }{\partial {{\theta }_{j}}}\frac{1}{2m}{{\sum\limits_{i=1}^{m}{\left( {{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}} \right)}}^{2}}\)

\(j=0\) 时:\(\frac{\partial }{\partial {{\theta }_{0}}}J({{\theta }_{0}},{{\theta }_{1}})=\frac{1}{m}{{\sum\limits_{i=1}^{m}{\left( {{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}} \right)}}}\)

\(j=1\) 时:\(\frac{\partial }{\partial {{\theta }_{1}}}J({{\theta }_{0}},{{\theta }_{1}})=\frac{1}{m}\sum\limits_{i=1}^{m}{\left( \left( {{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}} \right)\cdot {{x}^{(i)}} \right)}\)

算法改写成:

repeat until convergence {
\({\theta_{0}}:={\theta_{0}}-\alpha \frac{1}{m}\sum\limits_{i=1}^{m}{ \left({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}} \right)}\)
\({\theta_{1}}:={\theta_{1}}-\alpha \frac{1}{m}\sum\limits_{i=1}^{m}{\left( \left({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}} \right)\cdot {{x}^{(i)}} \right)}\)
}

3 线性代数回顾

3.1 矩阵和向量

矩阵的维数即行数×列数

3.2 加法和标量乘法

矩阵/向量的加减法

矩阵/向量的标量乘法

即和实数相乘

矩阵的标量除法(即乘以一个分数)

组合运算

3.3 矩阵向量乘法(特殊)

3.4 矩阵乘法(一般)

线性代数函数库能够高效实现矩阵乘法

3.5 矩阵乘法特征

标量乘法:交换律commutative

矩阵乘法:不满足交换律、满足结合律associative

单位矩阵\(I\):主对角线上的元素均为1,以外都为0

3.6 逆和转置

矩阵的逆运算

\(A{{A}^{-1}}={{A}^{-1}}A=I\)

只有方阵才有逆运算,且|A|≠0

奇异矩阵,|A|=0

矩阵的转置运算

4 多变量线性回归

4.1 多变量

\(h_\theta \left( x \right)=\theta_{0} + \theta_{1}x_1 + \theta_{2}x_2 + \cdots + + \theta_{n}x_n\),含有多个特征/输入变量。

引入\(x_{0}=1\),\(h_{\theta} \left( x \right)={\theta_{0}}{x_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n}}{x_{n}}\)

公式可以简化为:\(h_{\theta} \left( x \right)={\theta^{T}}X\)

4.2 多元梯度下降

repeat until convergence {
\({\theta_{j}}:={\theta_{j}}-\alpha \frac{1}{m}\sum\limits_{i=1}^{m}{\left({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}} \right)\cdot {{x}_j^{(i)}}}\)
}

让梯度下降在实际工作中表现更优秀(迭代次数少,快速收敛)

判断梯度下降是否收敛?
  • 绘制迭代次数和代价函数\(J(\theta)\)曲线图(可以判断\(\alpha\)是否过大)
  • 自动收敛测试:选取一个阈值\(\epsilon\)(比较困难),将其与变化值进行比较
特征缩放Feature Scaling

将特征的取值约束到-1 ~ 1(近似即可)之间。

e.g.将特征除以最大值

e.g.均值归一化

使得特征值具有接近0的平均值

将特征减去均值\(x_i←x_i-\mu_i\)

将特征减去均值再除以一个范围\(x_i←\frac{x_i-\mu_i}{S_i}\),其中\(S\)可以是极差,也可以是标准差

学习率\(\alpha\)

如果\(\alpha\)太小,即学习速率太小,这样就需要很多步才能到达局部最低点。

如果\(\alpha\)太大,那么梯度下降法可能会越过最低点,甚至可能无法收敛,甚至发散。

...,0.001,0.003,0.01,0.03,0.1,0.3,1...

4.3 特征和多项式回归

定义新的特征

多项式回归

线性回归并不适用于所有数据,有时需要曲线来适应数据,比如一个二次方模型:\(h_{\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}^2}\) 或者三次方模型: \(h_{\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}^2}+{\theta_{3}}{x_{3}^3}\)

4.4 正规方程normal equation

利用正规方程解出向量 \(\theta ={{\left( {X^T}X \right)}^{-1}}{X^{T}}y\) 。

参考https://zhuanlan.zhihu.com/p/22757336

(我觉得那个例子上下标写反了?yes)

梯度下降 正规方程
需要选择学习率\(\alpha\) 不需要
需要多次迭代 一次运算得出
当特征数量\(n\)大时也能较好适用 需要计算\({{\left( {{X}^{T}}X \right)}^{-1}}\) 如果特征数量n较大则运算代价大,因为矩阵逆的计算时间复杂度为\(O\left( {{n}^{3}} \right)\),通常来说当\(n\)小于10000 时还是可以接受的
适用于各种类型的模型 只适用于线性模型,不适合逻辑回归模型等其他模型

不可逆性

设\(A=X^TX\),如果\(A\)不可逆,可能原因:

  • 特征冗余:\(x_1,x_2\)线性相关,删除其中一个
  • 特征太多:删除一些,或者正则化

采用\(pinv()\),即伪逆函数,这样即使\(A\)不可逆,也可以算出结果。

5 逻辑回归

分类算法

算法输出/预测值介于0 ~ 1之间

\(sigmod\)函数/\(logistic\)函数:\(g(z)=\frac{1}{1+e^{-z}}\)

假设函数\(h_\theta(x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta^Tx}}\),对于输入\(x\),输出\(y\)=1的概率

决策边界

\(\theta^Tx\ge0\),\(y=1\)

自动拟合参数\(\theta\)

代价函数
\[
J(\theta)=\frac{1}{m}\sum_{i=1}^mCost(h_\theta(x^{(i)}),y)
\]

\[
Cost(h_\theta(x),y)=\left\{
\begin{aligned}
-log(h_\theta(x)) && if \ y = 1 \\
-log(1-h_\theta(x)) && if \ y = 0 \\
\end{aligned}
\right.
\]

\[
简化:Cost(h_\theta(x),y)=-ylog(h_\theta(x))-(1-y)log(1-h_\theta(x))
\]

(极大似然估计)

最优化:(梯度下降)

推导过程: \(J\left( \theta \right)=-\frac{1}{m}\sum\limits_{i=1}^{m}{[{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)]}\)

考虑: \({h_\theta}\left( {{x}^{(i)}} \right)=\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}}\) 则: \({{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)\) \(={{y}^{(i)}}\log \left( \frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}} \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}} \right)\)

\(=-{{y}^{(i)}}\log \left( 1+{{e}^{-{\theta^T}{{x}^{(i)}}}} \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1+{{e}^{{\theta^T}{{x}^{(i)}}}} \right)\) 所以: \(\frac{\partial }{\partial {\theta_{j}}}J\left( \theta \right)=\frac{\partial }{\partial {\theta_{j}}}[-\frac{1}{m}\sum\limits_{i=1}^{m}{[-{{y}^{(i)}}\log \left( 1+{{e}^{-{\theta^{T}}{{x}^{(i)}}}} \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1+{{e}^{{\theta^{T}}{{x}^{(i)}}}} \right)]}]\) \(=-\frac{1}{m}\sum\limits_{i=1}^{m}{[-{{y}^{(i)}}\frac{-x_{j}^{(i)}{{e}^{-{\theta^{T}}{{x}^{(i)}}}}}{1+{{e}^{-{\theta^{T}}{{x}^{(i)}}}}}-\left( 1-{{y}^{(i)}} \right)\frac{x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}}]\)

\(=-\frac{1}{m}\sum\limits_{i=1}^{m}{{y}^{(i)}}\frac{x_j^{(i)}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}-\left( 1-{{y}^{(i)}} \right)\frac{x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}]\)

\(=-\frac{1}{m}\sum\limits_{i=1}^{m}{\frac{{{y}^{(i)}}x_j^{(i)}-x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}+{{y}^{(i)}}x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}}\)

\(=-\frac{1}{m}\sum\limits_{i=1}^{m}{\frac{{{y}^{(i)}}\left( 1\text{+}{{e}^{{\theta^T}{{x}^{(i)}}}} \right)-{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}x_j^{(i)}}\)

\(=-\frac{1}{m}\sum\limits_{i=1}^{m}{({{y}^{(i)}}-\frac{{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}})x_j^{(i)}}\)

\(=-\frac{1}{m}\sum\limits_{i=1}^{m}{({{y}^{(i)}}-\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}})x_j^{(i)}}\)

\(=-\frac{1}{m}\sum\limits_{i=1}^{m}{[{{y}^{(i)}}-{h_\theta}\left( {{x}^{(i)}} \right)]x_j^{(i)}}\)

\(=\frac{1}{m}\sum\limits_{i=1}^{m}{[{h_\theta}\left( {{x}^{(i)}} \right)-{{y}^{(i)}}]x_j^{(i)}}\)

仍然可以使用向量化特征缩放

共轭梯度法、BFGS和L-BFGS:

  • 不需要手动选择学习率
  • 收敛比梯度下降快
  • 算法更复杂

多分类

转化为多个二元分类问题

\(h_\theta^{(i)}(x)=P(y=i|x;\theta)\)

6 正则化

过拟合\(overfitting\)/高方差\(high variance\):训练集拟合得很好,不能用来预测

欠拟合\(underfit\)/高偏差\(high bias\):没有很好的拟合数据

处理过拟合问题:

  1. 减少选取特征变量的数量

    • 手动选择保留哪些特征
    • 模型选择算法
  2. 正则化
    • 保留所有特征,但是减少量级或参数大小
    • 当有很多特征时,每一个特征都对预测的值有影响

正则化

较小的参数值

  • 更简单的假设函数,函数更平滑
  • 不容易过拟合

代价函数

加入罚项
\[
J \left( \theta \right) = \frac{1}{2m}[\sum_{i=1}^m (h_{\theta}(x^{(i)})-y^{(i)})^{2}+\lambda\sum_{j=1}^n\theta_j^2]
\]
\(\lambda\),正则化参数,控制两个不同目标之间的取舍

  • 第一项:更好地拟合数据
  • 第二项:参数尽可能小

线性回归的正则化

梯度下降

repeat until convergence {

​ \({\theta_{0}}:={\theta_{0}}-\alpha \frac{1}{m}\sum\limits_{i=1}^{m}{\left({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}} \right)\cdot {{x}_0^{(i)}}}\)

​ \({\theta_{j}}:={\theta_{j}}-\alpha [\frac{1}{m}\sum\limits_{i=1}^{m}{\left({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}} \right)\cdot {{x}_j^{(i)}}}+\frac{\lambda}{m}\theta_j]\\=\theta_j(1-\alpha\frac{\lambda}{m})-\alpha \frac{1}{m}\sum\limits_{i=1}^{m}{\left({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}} \right)\cdot {{x}_j^{(i)}}}\)
}

正规方程

利用正规方程解出向量 \(\theta ={{\left( {X^T}X +\lambda A\right)}^{-1}}{X^{T}}y\) 。

其中,\(A\)为除第一列,对角线均为1,其余均为0的矩阵。

(一定可逆)

逻辑回归的正则化

repeat until convergence {

​ \({\theta_{0}}:={\theta_{0}}-\alpha \frac{1}{m}\sum\limits_{i=1}^{m}{\left({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}} \right)\cdot {{x}_0^{(i)}}}\)

​ \({\theta_{j}}:={\theta_{j}}-\alpha [\frac{1}{m}\sum\limits_{i=1}^{m}{\left({{h}_{\theta }}({{x}^{(i)}})-{{y}^{(i)}} \right)\cdot {{x}_j^{(i)}}}+\frac{\lambda}{m}\theta_j]\)
}

这里的假设函数和线性回归是不一样的!

高级优化算法的正则化:同上

机器学习(1)- 概述&线性回归&逻辑回归&正则化的更多相关文章

  1. 线性回归,逻辑回归,神经网络,SVM的总结

    目录 线性回归,逻辑回归,神经网络,SVM的总结 线性回归,逻辑回归,神经网络,SVM的总结 详细的学习笔记. markdown的公式编辑手册. 回归的含义: 回归就是指根据之前的数据预测一个准确的输 ...

  2. Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)” 清晰讲解logistic-good!!!!!!

    原文:http://52opencourse.com/125/coursera%E5%85%AC%E5%BC%80%E8%AF%BE%E7%AC%94%E8%AE%B0-%E6%96%AF%E5%9D ...

  3. 斯坦福机器学习视频笔记 Week3 逻辑回归与正则化 Logistic Regression and Regularization

    我们将讨论逻辑回归. 逻辑回归是一种将数据分类为离散结果的方法. 例如,我们可以使用逻辑回归将电子邮件分类为垃圾邮件或非垃圾邮件. 在本模块中,我们介绍分类的概念,逻辑回归的损失函数(cost fun ...

  4. Andrew Ng机器学习课程笔记--week3(逻辑回归&正则化参数)

    Logistic Regression 一.内容概要 Classification and Representation Classification Hypothesis Representatio ...

  5. 100天搞定机器学习|Day17-18 神奇的逻辑回归

    前情回顾 机器学习100天|Day1数据预处理 100天搞定机器学习|Day2简单线性回归分析 100天搞定机器学习|Day3多元线性回归 100天搞定机器学习|Day4-6 逻辑回归 100天搞定机 ...

  6. 用Python开始机器学习(7:逻辑回归分类) --好!!

    from : http://blog.csdn.net/lsldd/article/details/41551797 在本系列文章中提到过用Python开始机器学习(3:数据拟合与广义线性回归)中提到 ...

  7. 机器学习(四)—逻辑回归LR

    逻辑回归常见问题:https://www.cnblogs.com/ModifyRong/p/7739955.html 推导在笔记上,现在摘取部分要点如下: (0) LR回归是在线性回归模型的基础上,使 ...

  8. [机器学习] Coursera ML笔记 - 逻辑回归(Logistic Regression)

    引言 机器学习栏目记录我在学习Machine Learning过程的一些心得笔记,涵盖线性回归.逻辑回归.Softmax回归.神经网络和SVM等等.主要学习资料来自Standford Andrew N ...

  9. 吴恩达Machine Learning学习笔记(三)--逻辑回归+正则化

    分类任务 原始方法:通过将线性回归的输出映射到0-1,设定阈值来实现分类任务 改进方法:原始方法的效果在实际应用中表现不好,因为分类任务通常不是线性函数,因此提出了逻辑回归 逻辑回归 假设表示--引入 ...

随机推荐

  1. 20个Flutter实例视频教程-第10节: 一个不简单的搜索条-1

    20个Flutter实例视频教程-第10节: 一个不简单的搜索条-1 视频地址: https://www.bilibili.com/video/av39709290/?p=10 博客地址: https ...

  2. python---socket与socketserver

    1.socket的方socket.getaddrinfo(host, port, family=0, type=0, proto=0, flags=0) #获取要连接的对端主机地址sk.bind(ad ...

  3. 查看python 3中的内置函数列表,以及函数功能描述

    >>> dir(__builtins__)//查看内置函数(BIF)列表 ['ArithmeticError', 'AssertionError', 'AttributeError' ...

  4. HDU3038【种类并查集】

    题意: 给出m组区间[a,b],以及其区间的和,问有矛盾的有几组: 思路: 种类并查集. 主要是几个关系:同类元素的关系,父亲与儿子的关系,不同类元素的关系: 我们可以类似看作一个前缀和,sum[x] ...

  5. Memcached 查看帮助

    进入到memcached目录, 输入命令: memcached -h 即可查看帮助 -p<num>要侦听的TCP端口号(默认值:11211) -u<num>udp监听端口号(默 ...

  6. Unity3D命令行Build

    转自:http://www.cnblogs.com/gameprogram/archive/2012/05/11/2496303.html 本来是没想用这个命令行Build方式,可惜电脑不知道怎么的就 ...

  7. bzoj 4032: [HEOI2015]最短不公共子串【dp+SAM】

    第一.二问: 就是最小的最长公共长度+1,设f[i][j]为a匹配到i,b匹配到j,第一问的转移是f[i][j]=(a[i]==b[j]?f[i-1][j-1]+1:0),第二问的转移是f[i][j] ...

  8. 学习Spring Boot看这两个开源项目就够了!非得值得收藏的资源

    Spring Boot我就不做介绍了,大家都懂得它是一个多么值得我们程序员兴奋的框架. 为什么要介绍这两个开源项目呢? 1.提供了丰富的学习实践案例 2.整合了非常多优质的学习资源 不多说了,直接上链 ...

  9. 在Ubuntu14.04 64位上安装Clion

    1.下载Clion 1.1 下载Linux版Clion的.tar.gz的压缩包 Clion 2017.3.1 下载安装:https://www.jetbrains.com/clion/download ...

  10. mvn从下载安装到纯命令行创建第一个mvn程序(编码,编译,测试,安装,打包)全过程细致分解

    1.maven的下载和安装: a.maven的下载注意事项:如果你是windows,请选择①号,如果你是linux,请选择②号,下载地址:http://maven.apache.org/downloa ...