机器学习吴恩达课程总结(五)
文章目录
- 15. 第十五章 异常检测(Anomaly Detection)
- 15.1 问题动机
- 15.2 高斯分布(Gaussian distribution)
- 15.3 异常检测算法
- 15.4 开发和评估异常检测系统
- 15.5 异常检测VS.监督学习
- 15.6 选择要使用什么特征
- 15.7 多元高斯分布
- 15.8 使用多元高斯分布的异常检测
- 16. 第十六章 推荐系统(Recommender System)
- 16.1 问题规划
- 16.2 基于内容的推荐算法
- 16.3 协同过滤(Collaborative Filtering)
- 16.4 协同过滤算法
- 16.5 矢量化:低秩矩阵分解
- 16.6 实现细节:均值规范化
- 17. 第十七章 大规模机器学习
- 17.1 大数据学习
- 17.2 随机梯度下降(Stochastic Gradient Descent,SGD)
- 17.3 小批量梯度下降法(Mini-batch Gradient Descent)
- 17.4 随机梯度下降法收敛
- 17.5 在线学习
- 17.6 减少映射与数据并行
- 18. 第十八章 应用示例:照片OCR
- 18.1 问题描述与OCR流水线
- 18.2 滑动窗口(Sliding Windows)
- 18.3 获取大量数据:人工数据合成
- 18.4 顶层分析:每一部分工作怎么样
- 19. 第十九章 总结与感想
15. 第十五章 异常检测(Anomaly Detection)
15.1 问题动机
数据集:{x(1),x(2),...,x(m)}\{ {x^{(1)}},{x^{(2)}},...,{x^{(m)}}\}{x(1),x(2),...,x(m)}
现在给出xtest{x_{test}}xtest,它是异常的吗?
异常检测样例:欺诈检测;工业制造;监控数据中心计算机
15.2 高斯分布(Gaussian distribution)
高斯分布也叫正态分布。
x∈Rx \in Rx∈R,如果xxx满足高斯分布,它的均值是uuu,方差是σ2{\sigma ^2}σ2,标准差σ{\sigma}σ,记作x∼N(u,σ2)x \sim N(u,{\sigma ^2})x∼N(u,σ2)
P(x;u,σ2)=12πσexp(−(x−μ)22σ2)P(x;u,{\sigma ^2}) = {1 \over {\sqrt {2\pi } \sigma }}\exp ( - {{{{(x - \mu )}^2}} \over {2{\sigma ^2}}})P(x;u,σ2)=2πσ1exp(−2σ2(x−μ)2)
参数计算:u=1m∑i=1mx(i)u = {1 \over m}\sum\limits_{i = 1}^m {{x^{(i)}}}u=m1i=1∑mx(i),σ2=1m∑i=1m(x(i)−u)2{\sigma ^2} = {1 \over m}\sum\limits_{i = 1}^m {{{({x^{(i)}} - u)}^2}}σ2=m1i=1∑m(x(i)−u)2
15.3 异常检测算法
选择你认为可能象征着异常的特征xi{x_i}xi
计算参数:u1,...,un,σ12,...,σn2{u_1},...,{u_n},\sigma _1^2,...,\sigma _n^2u1,...,un,σ12,...,σn2
uj=1m∑i=1mxj(i){u_j} = {1 \over m}\sum\limits_{i = 1}^m {x_j^{(i)}}uj=m1i=1∑mxj(i),σj2=1m∑i=1m(xj(i)−uj)2\sigma _j^2 = {1 \over m}\sum\limits_{i = 1}^m {{{(x_j^{(i)} - {u_j})}^2}}σj2=m1i=1∑m(xj(i)−uj)2
给出新的样本xxx,计算p(x;u,σ2)p(x;u,{\sigma ^2})p(x;u,σ2)
如果p(x)<εp(x) < \varepsilonp(x)<ε,则异常
15.4 开发和评估异常检测系统
一个真实具体的数值对评估方法是重要的。
当我们开发一个学习算法时,如果我们有评估方法,我们就可以更加轻易的做决定。
假设我们现在有一些有标签的数据,y=0表示正常,y=1表示异常。
训练集:{x(1),x(2),...,x(m)}\{ {x^{(1)}},{x^{(2)}},...,{x^{(m)}}\}{x(1),x(2),...,x(m)}
交叉验证集:{(xcv(1),ycv(1)),(xcv(2),ycv(2)),...,(xcv(m),ycv(m))}\{ (x_{cv}^{(1)},y_{cv}^{(1)}),(x_{cv}^{(2)},y_{cv}^{(2)}),...,(x_{cv}^{(m)},y_{cv}^{(m)})\}{(xcv(1),ycv(1)),(xcv(2),ycv(2)),...,(xcv(m),ycv(m))}
测试集:{(xtest(1),ytest(1)),(xtest(2),ytest(2)),...,(xtest(m),ytest(m))}\{ (x_{test}^{(1)},y_{test}^{(1)}),(x_{test}^{(2)},y_{test}^{(2)}),...,(x_{test}^{(m)},y_{test}^{(m)})\}{(xtest(1),ytest(1)),(xtest(2),ytest(2)),...,(xtest(m),ytest(m))}
示例:飞机引擎示例
10000个正常样本y=0;20个异常样本y=1。
训练集:6000个正常样本
验证集:2000个正常样本y=0;10个异常样本y=1
测试集:2000个正常样本y=0;10个异常样本y=1
算法评估:
在训练集{x(1),x(2),...,x(m)}\{ {x^{(1)}},{x^{(2)}},...,{x^{(m)}}\}{x(1),x(2),...,x(m)}上训练模型
在验证集或者测试集上进行预测:
混淆矩阵,计算F1−scoreF1-scoreF1−score
根据验证集结果选择ε\varepsilon {\kern 1pt}ε
15.5 异常检测VS.监督学习
异常检测:
- 非常少的正例样本(0~20)
- 大量负例样本
- 许多不同 "类型 "的异常现象。任何算法都很难从正例中学习异常现象是什么样子的。未来的异常现象可能看起来与我们目前看到的任何异常都不同
监督学习:
- 大量的正例和反例
- 足够多的正面例子让算法来了解正例是什么样的,未来正面的例子可能是与训练集中的例子相似
15.6 选择要使用什么特征
非高斯分布的特征:可以通过函数变换到高斯分布,log,指数等操作
异常检测的误差分析
如果正常样本希望p(x)p(x)p(x)较大;如果异常样本希望p(x)p(x)p(x)较小
经常遇到的问题是无论正常样本还是异常样本p(x)p(x)p(x)都较大。这样可以通过在训练集上找到这个样本,看是否能通过添加新特征将两类样本区分开来
监测数据中心的计算机:选择那些在异常情况下可能会出现异常大或异常小的特征。
15.7 多元高斯分布
在单元高斯分布中,可能认为a点和b点同样好,但是实际却并非如此。
x∈Rnx \in {R^n}x∈Rn,u∈Rnu \in {R^n}u∈Rn,Σ∈Rn×n\Sigma \in {R^{n \times n}}Σ∈Rn×n(协方差矩阵)
可以对特征空间高度相关的情况建模,Σ\SigmaΣ控制着分布
15.8 使用多元高斯分布的异常检测
多元高斯分布
参数u∈Rnu \in {R^n}u∈Rn,Σ∈Rn×n\Sigma \in {R^{n \times n}}Σ∈Rn×n
参数计算:u=1m∑i=1mx(i)u = {1 \over m}\sum\limits_{i = 1}^m {{x^{(i)}}}u=m1i=1∑mx(i),Σ=1m∑i=1m(x(i)−u)(x(i)−u)T\Sigma = {1 \over m}\sum\limits_{i = 1}^m {({x^{(i)}} - u)} {({x^{(i)}} - u)^T}Σ=m1i=1∑m(x(i)−u)(x(i)−u)T多元高斯分布的异常检测
计算u=1m∑i=1mx(i)u = {1 \over m}\sum\limits_{i = 1}^m {{x^{(i)}}}u=m1i=1∑mx(i),Σ=1m∑i=1m(x(i)−u)(x(i)−u)T\Sigma = {1 \over m}\sum\limits_{i = 1}^m {({x^{(i)}} - u)} {({x^{(i)}} - u)^T}Σ=m1i=1∑m(x(i)−u)(x(i)−u)T
计算新样本:p(x)=1(2π)n2∣Σ∣12exp(−12(x−μ)TΣ−1(x−μ))p(x) = {1 \over {{{(2\pi )}^{{n \over 2}}}|\Sigma {|^{{1 \over 2}}}}}\exp ( - {1 \over 2}{(x - \mu )^T}{\Sigma ^{ - 1}}(x - \mu ))p(x)=(2π)2n∣Σ∣211exp(−21(x−μ)TΣ−1(x−μ))
如果p(x)<εp(x) < \varepsilonp(x)<ε,则异常
原模型与多元对比
原模型p(x)=p(x1;u1;σ12)×p(x2;u2;σ22)×...×p(xn;un;σn2)p(x) = p({x_1};{u_1};\sigma _1^2) \times p({x_2};{u_2};\sigma _2^2) \times ... \times p({x_n};{u_n};\sigma _n^2)p(x)=p(x1;u1;σ12)×p(x2;u2;σ22)×...×p(xn;un;σn2)相当于多个单元,是多元的特例:
原模型:
- 手动创建特征以捕获异常情况,采取不寻常的谷值组合
- 计算效率高,适合n较大时
- 训练集m较小时
多元高斯:
- 自动捕捉特征间的相关性
- 计算代价更高
- 必须保证m>n,或者是Σ\SigmaΣ可逆
16. 第十六章 推荐系统(Recommender System)
16.1 问题规划
- 目前,许多大公司都在尝试搭建自己的推荐系统
- 学习一些特征学习的思想
例如:预测电影评分:根据一些用户多某些电影的打分,预测其对其他电影的打分起到偏好推荐的作用。
16.2 基于内容的推荐算法
基于内容的推荐系统
nu{n_u}nu表示用户数量;nm{n_m}nm表示电影数量;r(i,j)=1r(i,j) = 1r(i,j)=1表示用户jjj已经对电影iii打过分;y(i,j){y^{(i,j)}}y(i,j)表示用户jjj已经对电影iii打的分数(仅在r(i,j)=1r(i,j) = 1r(i,j)=1时有意义)
对于每个用户jjj,学习参数θ(j)∈R3{\theta ^{(j)}} \in {R^3}θ(j)∈R3,预测用户jjj对电影iii的打分(θ(j))Tx(i){({\theta ^{(j)}})^T}{x^{(i)}}(θ(j))Tx(i)
问题规划
r(i,j)=1r(i,j) = 1r(i,j)=1表示用户jjj已经对电影iii打过分
y(i,j){y^{(i,j)}}y(i,j)表示用户jjj已经对电影iii打的分数(仅在r(i,j)=1r(i,j) = 1r(i,j)=1时有意义)
θ(j){\theta ^{(j)}}θ(j)表示用户jjj的参数向量
x(i){x^{(i)}}x(i)表示电影iii的特征向量
预测用户jjj对电影iii的分数(θ(j))Tx(i){({\theta ^{(j)}})^T}{x^{(i)}}(θ(j))Tx(i)
m(j){m^{(j)}}m(j)表示用户jjj打过分的电影数量
为了学习θ(j){\theta ^{(j)}}θ(j):minθj12∑i:r(i,j)=1m((θ(j))Tx(i)−y(i,j))2+λ2∑k=1n(θk(j))2\mathop {\min }\limits_{{\theta ^j}} {1 \over 2}\sum\limits_{i:r(i,j) = 1}^m {{{({{({\theta ^{(j)}})}^T}{x^{(i)}} - {y^{(i,j)}})}^2} + {\lambda \over 2}\sum\limits_{k = 1}^n {{{(\theta _k^{(j)})}^2}} }θjmin21i:r(i,j)=1∑m((θ(j))Tx(i)−y(i,j))2+2λk=1∑n(θk(j))2
为了学习θ(1),θ(2),...,θ(nu){\theta ^{(1)}},{\theta ^{(2)}},...,{\theta ^{({n_u})}}θ(1),θ(2),...,θ(nu):J(θ(1),θ(2),...,θ(nu))=minθ(1),θ(2),...,θ(nu)12∑j=1nu∑i:r(i,j)=1m((θ(j))Tx(i)−y(i,j))2+λ2∑j=1nu∑k=1n(θk(j))2J({\theta ^{(1)}},{\theta ^{(2)}},...,{\theta ^{({n_u})}}) = \mathop {\min }\limits_{{\theta ^{(1)}},{\theta ^{(2)}},...,{\theta ^{({n_u})}}} {1 \over 2}\sum\limits_{j = 1}^{{n_u}} {\sum\limits_{i:r(i,j) = 1}^m {{{({{({\theta ^{(j)}})}^T}{x^{(i)}} - {y^{(i,j)}})}^2}} } + {\lambda \over 2}\sum\limits_{j = 1}^{{n_u}} {\sum\limits_{k = 1}^n {{{(\theta _k^{(j)})}^2}} }J(θ(1),θ(2),...,θ(nu))=θ(1),θ(2),...,θ(nu)min21j=1∑nui:r(i,j)=1∑m((θ(j))Tx(i)−y(i,j))2+2λj=1∑nuk=1∑n(θk(j))2
梯度下降更新:
θk(j):=θk(j)−α∑i:r(i,j)=1m((θ(j))Tx(i)−y(i,j))xk(i)fork=0\theta _k^{(j)}: = \theta _k^{(j)} - \alpha \sum\limits_{i:r(i,j) = 1}^m {({{({\theta ^{(j)}})}^T}{x^{(i)}} - {y^{(i,j)}})x_k^{(i)}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} for{\kern 1pt} {\kern 1pt} k = 0}θk(j):=θk(j)−αi:r(i,j)=1∑m((θ(j))Tx(i)−y(i,j))xk(i)fork=0
θk(j):=θk(j)−α(∑i:r(i,j)=1m((θ(j))Tx(i)−y(i,j))xk(i)+λθk(j))fork≠0\theta _k^{(j)}: = \theta _k^{(j)} - \alpha (\sum\limits_{i:r(i,j) = 1}^m {({{({\theta ^{(j)}})}^T}{x^{(i)}} - {y^{(i,j)}})x_k^{(i)}{\kern 1pt} + \lambda \theta _k^{(j)}){\kern 1pt} {\kern 1pt} {\kern 1pt} for{\kern 1pt} {\kern 1pt} k \ne 0}θk(j):=θk(j)−α(i:r(i,j)=1∑m((θ(j))Tx(i)−y(i,j))xk(i)+λθk(j))fork=0
16.3 协同过滤(Collaborative Filtering)
在基于内容的推荐算法中,我们需要x1,x2{x_1},{x_2}x1,x2特征分别表示电影爱情,电影动作的程度,不过这通常是较难获取的。
现在假设x1,x2{x_1},{x_2}x1,x2未知,而转去向用户获取θ\thetaθ,即对爱情或者动作电影的喜爱程度,提供偏好。
优化算法
给出θ(1),θ(2),...,θ(nu){\theta ^{(1)}},{\theta ^{(2)}},...,{\theta ^{({n_u})}}θ(1),θ(2),...,θ(nu),去学习x(i){x^{(i)}}x(i):minx(i)12∑j:r(i,j)=1m((θ(j))Tx(i)−y(i,j))2+λ2∑k=1n(xk(i))2\mathop {\min }\limits_{{x^{(i)}}} {1 \over 2}\sum\limits_{j:r(i,j) = 1}^m {{{({{({\theta ^{(j)}})}^T}{x^{(i)}} - {y^{(i,j)}})}^2} + {\lambda \over 2}\sum\limits_{k = 1}^n {{{(x_k^{(i)})}^2}} }x(i)min21j:r(i,j)=1∑m((θ(j))Tx(i)−y(i,j))2+2λk=1∑n(xk(i))2
给出θ(1),θ(2),...,θ(nu){\theta ^{(1)}},{\theta ^{(2)}},...,{\theta ^{({n_u})}}θ(1),θ(2),...,θ(nu),去学习x(1),x(2),...,x(nm){x^{(1)}},{x^{(2)}},...,{x^{({n_m})}}x(1),x(2),...,x(nm):minx(1),x(2),...,x(nm)12∑i=1nm∑j:r(i,j)=1m((θ(j))Tx(i)−y(i,j))2+λ2∑i=1nm∑k=1n(xk(i))2\mathop {\min }\limits_{{x^{(1)}},{x^{(2)}},...,{x^{({n_m})}}} {1 \over 2}\sum\limits_{i = 1}^{{n_m}} {\sum\limits_{j:r(i,j) = 1}^m {{{({{({\theta ^{(j)}})}^T}{x^{(i)}} - {y^{(i,j)}})}^2}} } + {\lambda \over 2}\sum\limits_{i = 1}^{{n_m}} {\sum\limits_{k = 1}^n {{{(x_k^{(i)})}^2}} }x(1),x(2),...,x(nm)min21i=1∑nmj:r(i,j)=1∑m((θ(j))Tx(i)−y(i,j))2+2λi=1∑nmk=1∑n(xk(i))2
协同过滤
给出x(1),x(2),...,x(nm){x^{(1)}},{x^{(2)}},...,{x^{({n_m})}}x(1),x(2),...,x(nm),可以计算θ(1),θ(2),...,θ(nu){\theta ^{(1)}},{\theta ^{(2)}},...,{\theta ^{({n_u})}}θ(1),θ(2),...,θ(nu)
给出θ(1),θ(2),...,θ(nu){\theta ^{(1)}},{\theta ^{(2)}},...,{\theta ^{({n_u})}}θ(1),θ(2),...,θ(nu),可以计算x(1),x(2),...,x(nm){x^{(1)}},{x^{(2)}},...,{x^{({n_m})}}x(1),x(2),...,x(nm)
那么是先有鸡还是先有蛋呢?
可以猜想出一个初始θ\thetaθ,然后按照θ→x→θ→x→θ→x→θ→...\theta \to x \to \theta \to x \to \theta \to x \to \theta \to ...θ→x→θ→x→θ→x→θ→...的顺序更新。这样更新下去的条件是:每位用户都对数个电影进行了评价,并且每部电影都被数个用户评价过。
协同过滤算法是指:当你执行算法时,要观察大量的用户,观察这些用户的实际行动来协同地得到更佳的每个人对电影的评分。每位用户都在帮助算法更好地进行特征学习。
16.4 协同过滤算法
将上一节两个优化目标结合
同时最小化θ(1),θ(2),...,θ(nu){\theta ^{(1)}},{\theta ^{(2)}},...,{\theta ^{({n_u})}}θ(1),θ(2),...,θ(nu)和x(1),x(2),...,x(nm){x^{(1)}},{x^{(2)}},...,{x^{({n_m})}}x(1),x(2),...,x(nm):
J(x(1),x(2),...,x(nm),θ(1),θ(2),...,θ(nu))=12∑(i,j):r(i,j)=1m((θ(j))Tx(i)−y(i,j))2+λ2∑i=1nm∑k=1n(xk(i))2+λ2∑j=1nu∑k=1n(θk(j))2J({x^{(1)}},{x^{(2)}},...,{x^{({n_m})}},{\theta ^{(1)}},{\theta ^{(2)}},...,{\theta ^{({n_u})}}) = {1 \over 2}\sum\limits_{(i,j):r(i,j) = 1}^m {{{({{({\theta ^{(j)}})}^T}{x^{(i)}} - {y^{(i,j)}})}^2} + {\lambda \over 2}\sum\limits_{i = 1}^{{n_m}} {\sum\limits_{k = 1}^n {{{(x_k^{(i)})}^2}} } + {\lambda \over 2}\sum\limits_{j = 1}^{{n_u}} {\sum\limits_{k = 1}^n {{{(\theta _k^{(j)})}^2}} } }J(x(1),x(2),...,x(nm),θ(1),θ(2),...,θ(nu))=21(i,j):r(i,j)=1∑m((θ(j))Tx(i)−y(i,j))2+2λi=1∑nmk=1∑n(xk(i))2+2λj=1∑nuk=1∑n(θk(j))2
这时x∈Rn,θ∈Rnx \in {R^n},\theta \in {R^n}x∈Rn,θ∈Rn舍弃x0{x_0}x0,更加灵活
minx(1),x(2),...,x(nm),θ(1),θ(2),...,θ(nu)J(x(1),x(2),...,x(nm),θ(1),θ(2),...,θ(nu))\mathop {\min }\limits_{{x^{(1)}},{x^{(2)}},...,{x^{({n_m})}},{\theta ^{(1)}},{\theta ^{(2)}},...,{\theta ^{({n_u})}}} J({x^{(1)}},{x^{(2)}},...,{x^{({n_m})}},{\theta ^{(1)}},{\theta ^{(2)}},...,{\theta ^{({n_u})}})x(1),x(2),...,x(nm),θ(1),θ(2),...,θ(nu)minJ(x(1),x(2),...,x(nm),θ(1),θ(2),...,θ(nu))
协同过滤算法
随机初始化θ(1),θ(2),...,θ(nu){\theta ^{(1)}},{\theta ^{(2)}},...,{\theta ^{({n_u})}}θ(1),θ(2),...,θ(nu)和x(1),x(2),...,x(nm){x^{(1)}},{x^{(2)}},...,{x^{({n_m})}}x(1),x(2),...,x(nm)
使用梯度下降或者其他高级优化算法最小化J(x(1),x(2),...,x(nm),θ(1),θ(2),...,θ(nu))J({x^{(1)}},{x^{(2)}},...,{x^{({n_m})}},{\theta ^{(1)}},{\theta ^{(2)}},...,{\theta ^{({n_u})}})J(x(1),x(2),...,x(nm),θ(1),θ(2),...,θ(nu))
xk(i):=xk(i)−α(∑j:r(i,j)=1m((θ(j))Tx(i)−y(i,j))θk(j)+λxk(i))x_k^{(i)}: = x_k^{(i)} - \alpha (\sum\limits_{j:r(i,j) = 1}^m {({{({\theta ^{(j)}})}^T}{x^{(i)}} - {y^{(i,j)}})\theta _k^{(j)}{\kern 1pt} + \lambda x_k^{(i)}){\kern 1pt} {\kern 1pt} }xk(i):=xk(i)−α(j:r(i,j)=1∑m((θ(j))Tx(i)−y(i,j))θk(j)+λxk(i))
θk(j):=θk(j)−α(∑i:r(i,j)=1m((θ(j))Tx(i)−y(i,j))xk(i)+λθk(j))fork≠0\theta _k^{(j)}: = \theta _k^{(j)} - \alpha (\sum\limits_{i:r(i,j) = 1}^m {({{({\theta ^{(j)}})}^T}{x^{(i)}} - {y^{(i,j)}})x_k^{(i)}{\kern 1pt} + \lambda \theta _k^{(j)}){\kern 1pt} {\kern 1pt} {\kern 1pt} for{\kern 1pt} {\kern 1pt} k \ne 0}θk(j):=θk(j)−α(i:r(i,j)=1∑m((θ(j))Tx(i)−y(i,j))xk(i)+λθk(j))fork=0
预测用户jjj对电影iii的打分(θ(j))Tx(i){({\theta ^{(j)}})^T}{x^{(i)}}(θ(j))Tx(i)
16.5 矢量化:低秩矩阵分解
找到相关的电影:
对于每个电影iii,我们学习x(i)∈Rn{x^{(i)}} \in {R^n}x(i)∈Rn
如何找到与电影iii相关的电影jjj呢?
用∥x(i)−x(j)∥\parallel {x^{(i)}} - {x^{(j)}}\parallel∥x(i)−x(j)∥衡量两个电影的相似程度。
16.6 实现细节:均值规范化
问题:假设有一个用户没有对任何电影进行评价,那么通过上述算法得出的θ\thetaθ为全零向量,无法向该用户进行推荐。
17. 第十七章 大规模机器学习
17.1 大数据学习
“不是谁有最好的算法就能获胜。而是谁拥有最多的数据”。
“It’s not who has the best algorithm that wins. It’s who has the most data." ——[Banko and Brill, 2001]
17.2 随机梯度下降(Stochastic Gradient Descent,SGD)
问题:当数据量很大时,我们采用批量梯度下降法梯度更新会很慢。
批量梯度下降法:使用全体样本计算梯度
随机梯度下降法:每次只使用一个样本计算梯度
小批量梯度下降法:每次使用一小部分样本计算梯度
随机梯度下降法通常比批量梯度下降法收敛更快!
17.3 小批量梯度下降法(Mini-batch Gradient Descent)
随机梯度下降法无法利用一些并行化的操作,小批量梯度下降法通常更快!
17.4 随机梯度下降法收敛
检查是否收敛:
批量梯度下降法
绘制Jtrain(θ){J_{train}}(\theta )Jtrain(θ)关于迭代次数的函数图像,Jtrain(θ)=12mtrain∑i=1mtrain(hθ(xtrain(i))−ytrain(i))2{J_{train}}(\theta ) = {1 \over {2{m_{train}}}}\sum\limits_{i = 1}^{{m_{train}}} {{{({h_\theta }({x_{train}}^{(i)}) - {y_{train}}^{(i)})}^2}}Jtrain(θ)=2mtrain1i=1∑mtrain(hθ(xtrain(i))−ytrain(i))2,mmm很大,不好计算
随机梯度下降法
- cost(θ,(x(i),y(i)))=12m(hθ(x(i))−y(i))2\cos t(\theta ,({x^{(i)}},{y^{(i)}})) = {1 \over {2m}}{({h_\theta }({x^{(i)}}) - {y^{(i)}})^2}cost(θ,(x(i),y(i)))=2m1(hθ(x(i))−y(i))2
- 学习期间,每次更新θ\thetaθ之前使用(x(i),y(i))({x^{(i)}},{y^{(i)}})(x(i),y(i))计算cost(θ,(x(i),y(i)))\cos t(\theta ,({x^{(i)}},{y^{(i)}}))cost(θ,(x(i),y(i)))
- 每1000次迭代绘制过去1000次cost(θ,(x(i),y(i)))\cos t(\theta ,({x^{(i)}},{y^{(i)}}))cost(θ,(x(i),y(i)))平均值的图像
对于随机梯度下降法,如果图像波动过大,可增大迭代次数取平均;如果上升趋势,调小学习率;如果下降,良好;如果平直,出错。
学习率可以缓慢下降。
17.5 在线学习
适合大量数据流下,每次使用一个数据,用过即弃。
能够实时跟随用户偏好,例如CTR学习。
不使用固定数据集,而是连续的数据集。
17.6 减少映射与数据并行
Hadoop开源平台
18. 第十八章 应用示例:照片OCR
18.1 问题描述与OCR流水线
照片光学字符识别(Photo Optical Character Recognition)
OCR流程
18.2 滑动窗口(Sliding Windows)
文本识别
首先训练好一个可以对小图片中是否有字符进行分类的分类器,然后用窗口滑动框出原始图片的小区域,进行分类,最后将相邻很近且都有文字的地方连接成大矩阵(二维滑动,监督学习)。
再用一维滑动窗口分割出每个字符
字符分类(监督学习,多分类)
18.3 获取大量数据:人工数据合成
从零开始自行生成
对于OCR任务,可以获取不同的字库,将字体放到不同的背景上,然后用模糊算子或者仿射变换得到数据集。
通过引入失真来合成数据
例如:拉伸压缩变换
引入的失真应该代表测试集中的噪声/失真类型。
通常情况下,向你的数据添加纯粹的随机/无意义的噪音是没有帮助的。
讨论得到更多数据
在花费精力之前,请确保你有一个低偏差的分类器(绘制学习曲线)。例如,不断增加神经网络中的特征数/隐藏单元数,直到你有一个低偏差的分类器。
要获得10倍于我们目前所拥有的数据,会有多少工作?
- 人工合成数据
- 自己收集
- 众包(亚马逊众包平台)
18.4 顶层分析:每一部分工作怎么样
估算每个组成部分造成的误差(上限分析)。
核心思想:假设一个模快是完美的,看看它对提升整个系统的性能的增益是多少?值不值得花费大量的时间,避免浪费时间。木桶效应。不要凭直觉决定要干什么!!!
19. 第十九章 总结与感想
总结主要章节:
- 监督学习
- 线性回归;逻辑回归;神经网络,SVM
- 无监督学习
- k-means;PCA;异常检测
- 具体应用
- 推荐系统;大规模机器学习
- 构建机器学习系统的利器
- 偏差方差分析;正则化;决定下一步做什么;评估学习算法;学习曲线;误差分析;上限分析
有朝一日能够造福其他人的生活!!!
机器学习吴恩达课程总结(五)相关推荐
- 机器学习吴恩达课程总结(一)
文章目录 1. 第一章 简介 1.1 机器学习(Machine Learning) 1.2 有监督学习(Supervised Learning) 1.3 无监督学习(Unsupervised Lear ...
- Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Support Vector Machines)
Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Support Vector Machines) 文章目录 Ex6_机器学习_吴恩达课程作业(Python):SVM支持向量机(Su ...
- 机器学习-吴恩达网易云课堂笔记
机器学习-吴恩达网易云课堂笔记 Machine Learning: A computer program is said to learn from experience E with respect ...
- Residual Networks(吴恩达课程)
Residual Networks(吴恩达课程) # UNQ_C1 # GRADED FUNCTION: identity_blockdef identity_block(X, f, filters, ...
- Deep Learning Art: Neural Style Transfer(吴恩达课程)
Deep Learning & Art: Neural Style Transfer(吴恩达课程) # UNQ_C1 # GRADED FUNCTION: compute_content_co ...
- Image Segmentation with U-Net(吴恩达课程)
Image Segmentation with U-Net(吴恩达课程) # UNQ_C1 # GRADED FUNCTION: conv_block def conv_block(inputs=No ...
- Transfer Learning with MobileNetV2(吴恩达课程)
Transfer Learning with MobileNetV2(吴恩达课程) # UNQ_C1 # GRADED FUNCTION: data_augmenter def data_augmen ...
- coursera-斯坦福-机器学习-吴恩达-第9周笔记(下)-推荐系统
coursera-斯坦福-机器学习-吴恩达-第9周笔记(下)-推荐系统 coursera-斯坦福-机器学习-吴恩达-第9周笔记下-推荐系统 1预测电影等级 1任务设想 2基于内容的推荐 2协同过滤 1 ...
- Autonomous Driving - Car Detection(吴恩达课程)
Autonomous Driving - Car Detection(吴恩达课程) # UNQ_C1 (UNIQUE CELL IDENTIFIER, DO NOT EDIT) # GRADED FU ...
最新文章
- 应力循环次数60ant_中国航发:金属粉末循环使用导致的成分及打印件性能变化...
- Android上常见度量单位【xdpi、hdpi、mdpi、ldpi】解读
- android开发中,可能会导致内存泄露的问题
- java策略模式 if else_Java如何利用策略模式替代if/else语句
- 什么是用户账户?-联科教育
- 自己动手架设linux下Web服务器(图)6
- Gym 101915J(并查集)
- Unity2020.1新功能探路:脚本开发相关更新
- 为什么有的工人喜欢午餐和晚餐配着一瓶啤酒?
- Cent 6.5中安装NFS、Rpcbind 实现共享主机文档。
- 运用jmeter做接口与性能测试
- [高通SDM450][Android9.0]CTA认证--去掉通话记录功能
- 医院新手入门(一)--医保知识
- 史上最全!数据分析进阶教程,看这一篇就够了!
- 论文笔记:3D-CVF(ECCV 2020)
- [柒穆雨] 2020平面设计的发展趋势
- Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 15
- 淘宝商家开通淘金币可以提高商品转化率吗?
- nvidia驱动卸载与安装
- 每秒处理10万高并发订单支付系统架构