【cs229】吴恩达MachineLearning-2/2

本系列相关链接
【cs229】吴恩达MachineLearning-1/2

4. Neural Networks

4.1 Why not linear

线性模型的缺点是,特征量太大且冗余,计算困难;
无法模拟异或门;
在这里插入图片描述

4.2 What about brain

神经重接实验证明,大脑皮层其实是通用的,不是专用的。换句话说,如果连上声音信号的采集器,这块区域就是一个声音处理器;如果连上视频信号,这块区域就是一个视频处理器,原来大脑是万能的。

如果我们能找出大脑的学习算法,然后在计算机上执行大脑学习算法或与之相似的算法,也许这将是我们向人工智能迈进做出的最好的尝试。人工智能的梦想就是有一天能制造出真正的智能机器。
(https://zhuanlan.zhihu.com/p/199833762)

4.3 Terminology in NN

θ ⇔ \theta\hArr θ weights, parameters
a i l = g ( z i l ) ⇔ {a_i}^l=g({z_i}^l)\hArr ail=g(zil) activation of unit i i i in layer l l l
s l ⇔ s_l\hArr sl the number of units in layer l l l, not counting bias unit
L ⇔ L\hArr L total number of layers
Θ l ⇔ \Theta^l\hArr Θl matrix of weights controlling function mapping from layer l l l to layer l + 1 l+1 l+1, shape is s l + 1 × ( s l + 1 ) s_{l+1}\times(s_l+1) sl+1×(sl+1)
Θ k , t l ⇔ {\Theta_{k,t}}^l\hArr Θk,tl weight controlling function mapping from layer l l l input t t t-th unit to layer l + 1 l+1 l+1 output k k k-th unit.
δ j l ⇔ {\delta_j}^l\hArr δjl “error” of node j j j in layer l l l.

4.4 Backpropagation Algorithm

导数的计算还是没明白,先跳过,务必看完补上
g ( z ) = 1 1 + e − z g ( z ) − 1 = g ( z ) ( 1 − g ( z ) ) δ L = a L − y δ l = ( Θ l ) T δ l + 1 . ∗ ∂ ∂ Θ l a l = ( Θ l ) T δ l + 1 . ∗ a l . ∗ ( 1 − a l ) J ( Θ ) = − 1 m [ ∑ i = 1 m ∑ k = 1 K y k i l o g h θ ( x i ) k + ( 1 − y k i ) l o g ( 1 − h θ ( x i ) k ) ] + λ 2 m ∑ l = 1 L − 1 ∑ i = 1 s l ∑ j = 1 s l + 1 ( Θ i j l ) 2 Δ l : = Δ l + δ l + 1 ( a l ) T ⇐ ( 初 始 化 时 Δ i j l 全 0 , K 次 累 加 ) D i j l = ∂ ∂ Θ i j l J ( Θ ) = 1 m Δ i j l + λ m Θ i j l ≈ J ( Θ i j l + ϵ ) − J ( Θ i j l − ϵ ) 2 ϵ ⇐ ( G r a d i e n t C h e c k i n g ) \begin{aligned} g(z)&=\frac{1}{1+e^{-z}}\\ g(z)^{-1}&=g(z)(1-g(z))\\ \delta^L&=a^L-y\\ \delta^l&=(\Theta^l)^T\delta^{l+1}.*\frac{\partial}{\partial\Theta^l}a^l\\ &=(\Theta^l)^T\delta^{l+1}.*a^l.*(1-a^l)\\ J(\Theta)&=-\frac{1}{m}[\sum_{i=1}^{m}\sum_{k=1}^{K}{y_k}^ilogh_\theta(x^i)_k+(1-{y_k}^i)log(1-h_\theta(x^i)_k)]\\ &+\frac{\lambda}{2m}\sum_{l=1}^{L-1}\sum_{i=1}^{s_l}\sum_{j=1}^{s_{l+1}}({\Theta_{ij}}^l)^2\\ \Delta^l:&=\Delta^l+\delta^{l+1}({a^l})^T\lArr(初始化时{\Delta_{ij}}^l全0,K次累加)\\ {D_{ij}}^l&=\frac{\partial}{\partial{\Theta_{ij}}^l}J(\Theta)=\frac{1}{m}{\Delta_{ij}}^l+\frac{\lambda}{m}{\Theta_{ij}}^l\\ &\approx\frac{J({\Theta_{ij}}^l+\epsilon)-J({\Theta_{ij}}^l-\epsilon)}{2\epsilon}\lArr(Gradient Checking) \end{aligned} g(z)g(z)1δLδlJ(Θ)Δl:Dijl=1+ez1=g(z)(1g(z))=aLy=(Θl)Tδl+1.Θlal=(Θl)Tδl+1.al.(1al)=m1[i=1mk=1Kykiloghθ(xi)k+(1yki)log(1hθ(xi)k)]+2mλl=1L1i=1slj=1sl+1(Θijl)2=Δl+δl+1(al)T(Δijl0,K)=ΘijlJ(Θ)=m1Δijl+mλΘijl2ϵJ(Θijl+ϵ)J(Θijlϵ)(GradientChecking)

打破对称 Symmetry breaking
如果 Θ \Theta Θ初始化为相同值,则:
同一layer的所有 a i l {a_i}^l ail都相同,所以同一layer的所有 δ i l {\delta_i}^l δil都相同,则:
同一layer连接下一层同一个node的所有 ∂ ∂ Θ i j l J ( Θ ) \frac{\partial}{\partial{\Theta_{ij}}^l}J(\Theta) ΘijlJ(Θ)都相同( i i i l l l固定),则:
每次迭代后 Θ i j l {\Theta_{ij}}^l Θijl都相同( i i i l l l固定),那就永远相同下去,就冗余了。

5. Machine Learning System Design

如何评估ML系统是否work?

  • 数据集切分为训练集+测试集;
  • model selection problem: 切分为训练集+验证集+测试集;
    (三份数据,一份用来训练,一份用于选择模型,一份用于在最终的模型上做测试);
  • underfit = high bias, overfit = high variance
  • underfit时,增加样本量不能解决问题;
  • error analysis, 分析交叉验证集中的哪些样本被错误分类(臭名昭著的特征工程
  • Precision/Recall (需要权衡)
    Skewed Data 倾斜数据 样本不均衡
    P r e c i s i o n ⇔ Precision\hArr Precision预测的患癌症的人,有多少是真正的癌症患者;
    R e c a l l ⇔ Recall\hArr Recall真正的癌症患者,有多少被我们识别出来;
    F 1 s c o r e = 2 P R P + R F_1score=2\frac{PR}{P+R} F1score=2P+RPR验证集上计算 F 1 s c o r e F_1score F1score,选定threshold,然后预测测试集;

6. SVM

6.1 Large Margin

l o g i s t i c   r e g r e s s i o n : J ( θ ) = − 1 m ∑ i = 1 m y i l o g h θ ( x i ) + ( 1 − y i ) l o g ( 1 − h θ ( x i ) + λ 2 m ∑ j = 1 n θ j 2 = 1 m ∑ i = 1 m − y i l o g h θ ( x i ) − ( 1 − y i ) l o g ( 1 − h θ ( x i ) + λ 2 m ∑ j = 1 n θ j 2 y = 1 时 , 期 望 θ T X ≥ 0 ; y = 0 时 , 期 望 θ T X < 0 ⇓ ( C = 1 λ ) S V M : J ( θ ) = C ∑ i = 1 m y i c o s t 1 ( θ T x i ) + ( 1 − y i ) c o s t 0 ( θ T x i ) + 1 2 ∑ j = 1 n θ j 2 y = 1 时 , 期 望 θ T X ≥ 1 ; y = 0 时 , 期 望 θ T X ≤ − 1 ⇓ 等 效 于 y = 1 时 , 期 望 P ∥ θ ∥ ≥ 1 ; y = 0 时 , 期 望 P ∥ θ ∥ ≤ − 1 ( C 很 大 时 , 上 述 第 一 项 逼 近 0 ) \begin{aligned} logistic~regression&:\\ J(\theta)&=-\frac{1}{m}\sum_{i=1}^{m}y^ilogh_\theta(x^i)+(1-y^i)log(1-h_\theta(x^i)+\frac{\lambda}{2m}\sum_{j=1}^{n}{\theta_j}^2\\ &=\frac{1}{m}\sum_{i=1}^{m}-y^ilogh_\theta(x^i)-(1-y^i)log(1-h_\theta(x^i)+\frac{\lambda}{2m}\sum_{j=1}^{n}{\theta_j}^2\\ y&=1时,期望\theta^TX\geq0; y=0时,期望\theta^TX<0\\ &\Downarrow(C=\frac{1}{\lambda})\\ SVM&:\\ J(\theta)&=C\sum_{i=1}^{m}y^icost_1(\theta^Tx^i)+(1-y^i)cost_0(\theta^Tx^i)+\frac{1}{2}\sum_{j=1}^{n}{\theta_j}^2\\ y&=1时,期望\theta^TX\geq1; y=0时,期望\theta^TX\leq-1\\ &\Downarrow 等效于\\ y&=1时,期望P\Vert\theta\Vert\geq1; y=0时,期望P\Vert\theta\Vert\leq-1\\ (C&很大时,上述第一项逼近0) \end{aligned} logistic regressionJ(θ)ySVMJ(θ)yy(C:=m1i=1myiloghθ(xi)+(1yi)log(1hθ(xi)+2mλj=1nθj2=m1i=1myiloghθ(xi)(1yi)log(1hθ(xi)+2mλj=1nθj2=1θTX0;y=0θTX<0(C=λ1):=Ci=1myicost1(θTxi)+(1yi)cost0(θTxi)+21j=1nθj2=1θTX1;y=0θTX1=1Pθ1;y=0Pθ10)
在这里插入图片描述
还记得正则化的用处吗?防止少数用例对模型整体影响太大。SVM中 C C C的作用也是如此,如果C非常大,相当于 λ \lambda λ非常小,则正则化效果不明显,或者说受少数用例影响大。因此SVM算法中 C C C得是个合适的大值。

在这里插入图片描述
t a n α = u 2 u 1 t a n ( α + θ ) = v 2 v 1 = t a n α + t a n θ 1 − t a n α t a n θ ⇓ 两 式 可 得 : t a n θ = u 1 v 2 − u 2 v 1 u 1 v 1 + u 2 v 2 ⇓ 又 有 : t a n 2 θ + 1 = s e c 2 θ s e c θ = ∥ V ∥ P = v 1 2 + v 2 2 P ⇓ 综 上 可 得 : P = u 1 v 1 + u 2 v 2 ( u 1 2 + u 2 2 ) ( v 1 2 + v 2 2 ) ⇓ 也 即 : U T V = P ⋅ ∥ U ∥ = V T U \begin{aligned} tan\alpha&=\frac{u_2}{u_1}\\ tan(\alpha+\theta)&=\frac{v_2}{v_1}=\frac{tan\alpha+tan\theta}{1-tan\alpha tan\theta}\\ &\Downarrow两式可得:\\ tan\theta&=\frac{u_1v_2-u_2v_1}{u_1v_1+u_2v_2}\\ &\Downarrow又有:\\ tan^2\theta+1&=sec^2\theta\\ sec\theta&=\frac{\Vert V\Vert}{P}=\frac{\sqrt{v_1^2+v_2^2}}{P}\\ &\Downarrow综上可得:\\ P&=\frac{u_1v_1+u_2v_2}{\sqrt{(u_1^2+u_2^2)(v_1^2+v_2^2)}}\\ &\Downarrow也即:\\ U^TV&=P\cdot\Vert U\Vert=V^TU \end{aligned} tanαtan(α+θ)tanθtan2θ+1secθPUTV=u1u2=v1v2=1tanαtanθtanα+tanθ:=u1v1+u2v2u1v2u2v1=sec2θ=PV=Pv12+v22 =(u12+u22)(v12+v22) u1v1+u2v2=PU=VTU

6.2 Landmarks and Kernels

选择标记点,选择合适的核函数,设计新特征
f e a t u r e x = s i m i l a r i t y ( s a m p l e , l a n d m a r k x ) = k e r n e l k ( s a m p l e , l a n d m a r k x ) \begin{aligned} feature_x&=similarity(sample, landmark_x)\\ &=kernel_k(sample, landmark_x) \end{aligned} featurex=similarity(sample,landmarkx)=kernelk(sample,landmarkx)
标记点的选择:可以选所有正样本(or 所有样本?<–所有样本,并不适用 y i y^i yi,正负样本的概念用0\1的输出表示了)
核函数设计特征的方法,为什么没有用于逻辑回归?计算量大,无法迁移使用针对SVM的 高级优化()。

常见的核函数有:

  • 线性核
  • 高斯核 g a u s s i n ( x , y ) = e x p ( − ∥ x − y ∣ 2 2 σ 2 ) gaussin(x,y)=exp(-\frac{\Vert x-y \vert^2}{2\sigma^2}) gaussin(x,y)=exp(2σ2xy2)(别忘记用feature scale)
  • 多项式核,例如 ( X T Y ) 2 {(X^TY)}^2 (XTY)2 ( X T Y + 4 ) 3 {(X^TY+4)}^3 (XTY+4)3

7.Unsupervised Learning

7.1 K-means

算法核心:

  1. 可视化数据,手动选择K值
  2. 初始化K个中心
  3. 遍历所有数据看每个数据最靠近哪个中心
  4. 根据所附着的样本的均值移动中心
  5. 重复3-4,直到损失 J J J最小( J J J指所有样本离自己所在中心的距离的和)
  6. 重复2-5,多次随机初始化后,取损失最小的
    (因为不同的初始化位置,可能导致聚类并不是最优的,例如将两类合为一类,又将一类分成两类)
  7. 重复1-6,多个K值后,选择拐点Elbow的K值,K太小误差大,K太大没意义

注意,K-means也能用于无明显界限的数据聚类,例如将衣服尺寸根据体重身高强行分成S\M\L三个档次。

7.2 Data Compression and PCA

数据压缩/降维的好处:减小计算量,降低内存
Principal Component Analysis
在这里插入图片描述
PCA跟线性回归完全不同,线性回归试图找到一条线将所有样本基本贯穿,误差是红线上的预测值和样本标签/纵坐标的距离;PCA试图找到一条线能基本投影所有样本,误差是样本点到红线的投影高度。

PCA算法核心:

  1. 预处理数据 X 维 度 m × n X维度m\times n Xm×n,减均值除范围
  2. 构造协方差矩阵 S i g m a = X T X 维 度 n × n Sigma=X^TX维度n\times n Sigma=XTXn×n
  3. 奇异值分解: [ U , S , V ] = s v d ( S i g m a ) [U,S,V] = svd(Sigma) [U,S,V]=svd(Sigma)
  4. U U U的前K个列向量,作为主成分 U r e d u c e U_{reduce} Ureduce
  5. z = U r e d u c e T x , x 维 度 n × 1 , U r e d u c e 维 度 n × k z={U_{reduce}}^Tx,x 维度n\times1, U_{reduce}维度n\times k z=UreduceTxxn×1,Ureducen×k
  6. 如果想将数据恢复成高维, x a p p r o x = U r e d u c e z x_{approx}=U_{reduce}z xapprox=Ureducez
  7. PCA无法解决过拟合

选择合适的K,例如保留99%的方差:
∑ i = 1 m ∥ x i − x a p p r o x i ∥ 2 ∑ i = 1 m ∥ x i ∥ 2 ≤ 0.01 \frac{\sum_{i=1}^{m}{\Vert x^i-{x_{approx}}^i\Vert}^2}{\sum_{i=1}^{m}{\Vert x^i\Vert}^2}\leq0.01 i=1mxi2i=1mxixapproxi20.01
另一个等效的、更快的方法是,根据svd返回的对角线矩阵 S S S,其只有对角线非零并按照顺序表示特征的重要性依次递减。

8. Anomaly Detection

8.1 Gaussian/Normal Distribution

X ∼   N ( μ , σ 2 ) X\thicksim~ \Nu(\mu,\sigma^2) X N(μ,σ2)
p ( x ) = 1 2 π σ e x p ( − ( x − μ ) 2 2 σ 2 ) p(x)=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x-\mu)^2}{2\sigma^2}) p(x)=2π σ1exp(2σ2(xμ)2)
σ 2 = 1 m ∑ i = 1 m ( x i − μ ) 2 \sigma^2=\frac{1}{m}\sum_{i=1}^{m}(x_i-\mu)^2 σ2=m1i=1m(xiμ)2,数学上的标准差的定义是m-1,但是ML常用的是m,好计算,且m很大时两者没有理论上的区别。
在这里插入图片描述

8.2 vs. supervised learning

异常检测的数据中,异常样本(样本)远远少于正常样本;异常检测中,异常样本之间互不相同、无法“以此类推”。
原始数据不符合高斯分布怎么办?虽然能work,但是不能很好拟合,所以最好先进行转换(例如sqrt、n次幂、log…)使得预处理的数据基本符合高斯分布。

8.3 Multivariate Gaussian Distribution

多个单维高斯分布= Σ \Sigma Σ只有对角线非零的多参高斯分布。

9.Recommender Systems

9.1 Content Based Recommendations

已知每部电影的特征值 x x x,根据每个用户已经看过的电影的评分,学习参数 θ \theta θ,最后预测该用户对一个没看过的电影的评分 θ u s e r T x m o v i e {\theta_{user}}^Tx_{movie} θuserTxmovie

9.2 Collaborative Filtering

已知每个用户的评分标准 θ \theta θ,根据每个用户已经看过的电影的评分,学习电影的特征值 x x x,最后预测用户对该没看过的电影的评分 θ u s e r T x m o v i e {\theta_{user}}^Tx_{movie} θuserTxmovie

不断根据 θ \theta θ x x x互相推导、迭代更新,则可以不错的进行推荐。
θ 1 , . . . , θ n u     m i n 1 2 ∑ j = 1 n u ∑ i : r ( i , j ) = 1 ( ( θ j ) T x i − y i , j ) 2 + λ 2 ∑ j = 1 n u ∑ k = 1 n ( θ k j ) 2 x 1 , . . . , x n m     m i n 1 2 ∑ i = 1 n m ∑ j : r ( i , j ) = 1 ( ( θ j ) T x i − y i , j ) 2 + λ 2 ∑ i = 1 n m ∑ k = 1 n ( x k j ) 2 ⇓ J ( x 1 , . . . , x n m , θ 1 , . . . , θ n u ) = 1 2 ∑ ( i , j ) : r ( i , j ) = 1 ( ( θ j ) T x i − y i , j ) 2 + λ 2 ∑ j = 1 n u ∑ k = 1 n ( θ k j ) 2 + λ 2 ∑ i = 1 n m ∑ k = 1 n ( x k j ) 2 \begin{aligned} _{\theta^1,...,\theta^{n_u}}^{~~~min}\frac{1}{2}\sum_{j=1}^{n_u}\sum_{i:r(i,j)=1}((\theta^j)^Tx^i-y^{i,j})^2&+\frac{\lambda}{2}\sum_{j=1}^{n_u}\sum_{k=1}^{n}({\theta_k}^j)^2\\ _{x^1,...,x^{n_m}}^{~~~min}\frac{1}{2}\sum_{i=1}^{n_m}\sum_{j:r(i,j)=1}((\theta^j)^Tx^i-y^{i,j})^2&+\frac{\lambda}{2}\sum_{i=1}^{n_m}\sum_{k=1}^{n}({x_k}^j)^2\\ &\dArr\\ J(x^1,...,x^{n_m},\theta^1,...,\theta^{n_u})=\frac{1}{2}\sum_{(i,j):r(i,j)=1}((\theta^j)^Tx^i-y^{i,j})^2&+\frac{\lambda}{2}\sum_{j=1}^{n_u}\sum_{k=1}^{n}({\theta_k}^j)^2+\frac{\lambda}{2}\sum_{i=1}^{n_m}\sum_{k=1}^{n}({x_k}^j)^2\\ \end{aligned} θ1,...,θnu   min21j=1nui:r(i,j)=1((θj)Txiyi,j)2x1,...,xnm   min21i=1nmj:r(i,j)=1((θj)Txiyi,j)2J(x1,...,xnm,θ1,...,θnu)=21(i,j):r(i,j)=1((θj)Txiyi,j)2+2λj=1nuk=1n(θkj)2+2λi=1nmk=1n(xkj)2+2λj=1nuk=1n(θkj)2+2λi=1nmk=1n(xkj)2
统一公式如上,实际上可以用偏导同时更新 θ \theta θ x x x;

向量化公式为: X Θ T = Y , 其 中 Y 是 n m × n u 的 打 分 矩 阵 X\Theta^T=Y,其中Y是n_m\times n_u的打分矩阵 XΘT=YYnm×nu

面对新用户A,上面的 J ( ) J() J()的第一项不存在, ∂ ∂ θ A J ( ) \frac{\partial}{\partial\theta^A}J() θAJ()也就只有第二项跟 θ \theta θ有关,最小化 J ( ) J() J()会导致 θ A \theta_A θA全0,那怎么推荐?
Mean Normalization的做法就是根据所有用户的观看评分计算每部电影的平均得分,作为新用户的预测得分,也就是 ( θ j ) T x i + μ i (\theta^j)^Tx^i+\mu_i (θj)Txi+μi;
类似的,面对新电影,也可以使用Mean Normalization方法。

10. Large Datasets

数据量大一定好吗?不,例如high-bias问题,增加样本量并不能解决问题,而应该增加特征数,或者重新设计特征。

10.1 Stochastic Gradient Descent

区别于普通梯度下降算法(也叫Batch梯度下降),随机梯度下降每次只使用一个样本,就迈出一小步。随机体现在样本被shuffle,随机选样本。

10.2 Mini-batch Gradient Descent

区别于随机梯度下降算法,Mini-batch梯度下降每次使用多个样本。
不仅更快,而且向量化之后,可以借助很多计算库加速、并行化。

10.3 Online Learning

源源不断的新数据,不仅能进一步训练网络,而且可以捕捉到市场的新变化。

10.4 Map Reduce and Data Parallelism

数据量太大,可以调度多个机器计算。

11. OCR

Optical Character Recognition

  1. 检查文本框
  2. 字符分割
  3. 字符识别
  4. 单词校正

Artificial Data
人工合成新数据

  1. 确保生成的数据应该出现在数据集中
  2. 确保现在的分类器是low-bias的

Ceiling Analysis
分析pipeline中的哪个模块最值得花时间提高性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值