机器学习笔记03_机器学习基本概念(下)

学习视频:[中英字幕]吴恩达机器学习系列课程
学习资料: https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes
GitHub不好用的话,我在CSDN资源区也上传了开源资料,0积分下载,期待和大家一起进步!

文章目录

12 聚类 Clustering

12.1 无监督学习 Unsupervised Learning

我们将要让计算机学习无标签数据,而不是此前的标签数据。

在这里插入图片描述
应用:市场分割、社交网络分析…

12.2 K-均值算法 K-Means Algorithm

K-均值是一个迭代算法,假设我们想要将数据聚类成 n 个组,其方法为:

首先选择𝐾个随机的点,称为聚类中心(cluster centroids);对于数据集中的每一个数据,按照距离𝐾个中心点的距离,将其与距离最近的中心点关联起来,与同一个中心点关联的所有点聚成一类。计算每一个组的平均值,将该组所关联的中心点移动到平均值的位置

在这里插入图片描述

12.3 优化目标 Optimization Objective

K-均值最小化问题,是要最小化所有的数据点与其所关联的聚类中心点之间的距离之和。

因此 K-均值的代价函数(又称畸变函数 Distortion function) 为:

在这里插入图片描述

12.4 随机初始化 Random Initialization

在运行 K-均值算法的之前,首先要随机初始化所有的聚类中心点:

  1. 我们应该选择𝐾 < 𝑚,即聚类中心点的个数要小于所有训练集实例的数量
  2. 随机选择𝐾个训练实例,然后令𝐾个聚类中心分别与这𝐾个训练实例相等

在这里插入图片描述

12.5 选择聚类数 Choosing the Number of Clusters

在这里插入图片描述

你会发现这种模式,它的畸变值会迅速下降,从 1 到 2,从 2 到 3 之后,你会在 3 的时候达到一个肘点。在此之后,畸变值就下降的非常慢,看起来就像使用 3 个聚类来进行聚类是正确的,这是因为那个点是曲线的肘点,畸变值下降得很快,𝐾 = 3之后就下降得很慢,那么我们就选𝐾 = 3。
当你应用**“肘部法则”** 的时候,如果你得到了一个像上面这样的图,那么这将是一种用来选择聚类个数的合理方法

13 降维 Dimensionality Reduction

13.1 动机一:数据压缩 Data Compression

谈论第二种类型的无监督学习问题,称为降维。数据压缩不仅允许我们压缩数据,因而使用较少的计算机内存或磁盘空间,但它也让我们加快我们的学习算法。

在这里插入图片描述在这里插入图片描述

13.2 动机二:数据可视化 Visualization

在许多及其学习问题中,如果我们能将数据可视化,我们便能寻找到一个更好的解决方案,降维可以帮助我们。
在这里插入图片描述

13.3 主成分分析问题 Principal Component Analysis

在这里插入图片描述

问题是要将𝑛维数据降至𝑘维,目标是找到向量𝑢(1),𝑢(2),…,𝑢(𝑘)使得总的投射误差最小。

主成分分析线性回归
最小化投射误差最小化预测误差
目的:降维目的:预测

在这里插入图片描述
PCA 技术的一大好处是对数据进行降维的处理。我们可以对新求出的“主元”向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到降维从而简化模型或是对数据进行压缩的效果。同时最大程度的保持了原有数据的信息。

13.4 主成分分析算法 Principal Component Analysis Algorithm

之前记录过:MATLAB学习笔记_Day13主成分分析在论文中写作
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
流程:在这里插入图片描述

13.5 选择主成分的数量 Choosing The Number Of Principal Components

主要成分分析是减少投射的平均均方误差:

在这里插入图片描述

在这里插入图片描述
由上述的不等式进而计算得到k的最小值。

我们也可以先令𝑘 = 1,然后进行主要成分分析,获得𝑈𝑟𝑒𝑑𝑢𝑐𝑒和𝑧,然后计算比例是否小于1%。如果不是的话再令𝑘 = 2,如此类推,直到找到可以使得比例小于 1%的最小𝑘 值(原因是各个特征之间通常情况存在某种相关性)。

13.6 重建的压缩表示 Reconstruction from Compressed Representation

在以前的视频中,我谈论 PCA 作为压缩算法。在那里你可能需要把 1000 维的数据压缩100 维特征,或具有三维数据压缩到一二维表示。所以,如果这是一个压缩算法,应该能回到这个压缩表示,回到你原有的高维数据的一种近似。

在这里插入图片描述

在这里插入图片描述

13.7 主成分分析法的应用建议 Advice for Applying PCA

假使我们正在针对一张 100×100 像素的图片进行某个计算机视觉的机器学习,即总共有 10000 个特征。

  1. 第一步是运用主要成分分析将数据压缩至 1000 个特征
  2. 然后对训练集运行学习算法。
  3. 在预测时,采用之前学习而来的𝑈𝑟𝑒𝑑𝑢𝑐𝑒将输入的特征𝑥转换成特征向量𝑧,然后再进行预测。

如果我们有交叉验证集和测试集,也采用对训练集学习而来的𝑈𝑟𝑒𝑑𝑢𝑐𝑒。

错误的主要成分分析情况:

①将PCA应用于防止过拟合中,应该用正则化处理过拟合问题。

原因在于主要成分分析只是近似地丢弃掉一些特征,它并不考虑任何与结果变量有关的信息,因此可能会丢失非常重要的特征。然而当我们进行正则化处理时,会考虑到结果变量,不会丢掉重要的数据。

②将主要成分分析作为学习过程中的一部分。

虽然很多时候有效果,最好还是从所有原始特征开始,只在有必要的时候(算法运行太慢或者占用太多内存)才考虑采用主要成分分析

14 异常检测 Anomaly Detection

14.1 问题的动机 Problem Motivation

在这里插入图片描述

在这里插入图片描述
小结:根据已有的数据建立起估计函数,这样我们可以依据概率能判断新的数据是正常的,还是异常的。

14.2 高斯分布 Gaussian Distribution

在这里插入图片描述

14.3 算法

在这里插入图片描述

在这里插入图片描述

14.4 开发和评价一个异常检测系统

在这里插入图片描述

14.5 异常检测与监督学习对比

在这里插入图片描述

14.6 选择特征 Choosing What Features to Use

对于异常检测算法,我们使用的特征是至关重要的,下面谈谈如何选择特征:
异常检测假设特征符合高斯分布,如果数据的分布不是高斯分布,异常检测算法也能够工作,但是最好还是将数据转换成高斯分布

在这里插入图片描述

14.7 多元高斯分布 Multivariate Gaussian Distribution

假使我们有两个相关的特征,而且这两个特征的值域范围比较宽,这种情况下,一般的高斯分布模型可能不能很好地识别异常数据。其原因在于,一般的高斯分布模型尝试的是去同时抓住两个特征的偏差,因此创造出一个比较大的判定边界。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
m个样本,n个特征。

14.8 使用多元高斯分布进行异常检测

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

小结:多元高斯分布将方差转化成了协方差矩阵,进而控制高斯函数的性状和算法的计算。

15 推荐系统 Recommender Systems

15.1 问题形式化

在这里插入图片描述

𝑛𝑢 代表用户的数量
𝑛𝑚 代表电影的数量
𝑟(𝑖,𝑗) 如果用户 𝑗 给电影 𝑖 评过分则 𝑟(𝑖,𝑗) = 1
𝑦(𝑖,𝑗) 代表用户 𝑗 给电影 𝑖 的评分
𝑚𝑗代表用户 𝑗 评过分的电影的总数

我们希望构建一个算法来预测每个人可能会给他们没看过的电影打多少分,并以此作为推荐的依据

15.2 基于内容的推荐系统 Content Based Recommendations

在一个基于内容的推荐系统算法中,我们假设对于我们希望推荐的东西有一些数据,这些数据是有关这些东西的特征。

在这里插入图片描述

在这里插入图片描述
上面的代价函数只是针对一个用户的,为了学习所有用户,我们将所有用户的代价函数求和

在这里插入图片描述

15.3 协同过滤 Collaborative Filtering

在之前的基于内容的推荐系统中,对于每一部电影,在已知可用的特征,使用这些特征训练出了每一个用户的参数。相反地,如果我们拥有用户的参数,我们可以学习得出电影的特征。
在这里插入图片描述

但是如果我们既没有用户的参数,也没有电影的特征,这两种方法都不可行了。协同过滤算法可以同时学习这两者。

15.4 协同过滤算法 Collaborative Filtering Algorithm

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

如果一位用户正在观看电影 𝑥(𝑖),我们可以寻找另一部电影𝑥(𝑗),依据两部电影的特征向量之间的距离∥𝑥(𝑖) − 𝑥(𝑗)∥的大小。

15.5 向量化:低秩矩阵分解 Vectorization_ Low Rank Matrix Factorization

在这里插入图片描述

在这里插入图片描述
电影 𝑖 有一个特征向量𝑥(𝑖),找到一部不同的电影 𝑗,保证两部电影的特征向量之间的距离𝑥(𝑖)和𝑥(𝑗)很小。

总结:当用户在看某部电影 𝑖 的时候,为了能给用户推荐新电影,你需要做的是找出电影 𝑗,使两者间距离最小。这样就能给用户推荐不同的电影了。

15.6 推行工作上的细节:均值归一化

在这里插入图片描述

在这里插入图片描述

16 大规模机器学习 Large Scale Machine Learning

16.1 大型数据集的学习 Learning With Large Datasets

在这里插入图片描述
首先应该做的事是去检查一个这么大规模的训练集是否真的必要,也许我们只用 1000个训练集也能获得较好的效果,我们可以绘制学习曲线来帮助判断

在这里插入图片描述

左图为高方差,显然增加数据量是可以减小误差的。
右图为高偏差,显然增加数据量无法减小误差。

16.2 随机梯度下降法 Stochastic Gradient Descent

对于许多机器学习算法,例如:线性回归,逻辑回归,聚类,降维,神经网络…我们推导算法的方法是提出一个优化目标或优化方程,然后用梯度下降的算法来求得最小值。

回顾一下线性回归中的梯度下降 (批量梯度下降法)
在这里插入图片描述

如果数据量很大,为例收敛结果,你需要花费很长的时间,因此我们对梯度下降算法进行改进。

首先,要对数据进行重组。
在这里插入图片描述
随机梯度下降讲的是,针对每一个数据,算法都会更新一次参数 𝜃 ,而不需要首先将所有的训练集求和。

每一次求得的参数都为了能更好的拟合下一次的预测,总的来看,我们的参数是朝着全局最小的方向前进的。
总结:随机梯度下降是朝着一个最小值的区域内迂回前进的。
在这里插入图片描述
外层的Repeat决定了循环的次数,一般来说一次就够了,不过仍要取决于你的数据集的数据量有多少。如果很大的话,可能一次大循环就能找到最合适的参数值。

16.3 小批量梯度下降 Mini-Batch Gradient Descent

在这里插入图片描述

在这里插入图片描述

16.4 随机梯度下降收敛 Stochastic Gradient Descent Convergence

当你在运行代码的过程中,你如何知道调试已经完成,参数已经收敛到最优值。并且,如何调整算法中的学习速率呢?
在这里插入图片描述
批量梯度下降法:画出代价函数的图像来判断是否达到了最优值。但是,如果数据集的数据量太大,sum那一项将会导致计算速度非常慢。

随机梯度下降法 :在随机梯度下降中,我们在每一次更新 𝜃 之前都计算一次代价,然后每𝑥次迭代后,求出这𝑥次对训练实例计算代价的平均值,然后绘制这些平均值与𝑥次迭代的次数之间的函数图表。

在这里插入图片描述
对于左上图,当我们适当降低学习率,图线可能有蓝色变为红色。表现为收敛速度变慢了,但收敛后的值更好了。

另一种方法:
在这里插入图片描述
随着迭代的次数不断增加,学习速率也越来越低,迫使算法收敛而非在最小值附近徘徊。

但是你要花时间去确定这两个常数。

总结:要每次对最后 1000(x) 个,求一下平均值。检查我们设置的学习率是否符合要求。还可以设置一种随迭代次数变化而变化的学习率,但你要自己确定常熟1,2。

16.5 在线学习

在这里插入图片描述
我们每次给用户反馈10个手机,看看用户会点开哪个手机的界面。在这之后,我们会得到10个(x,y)数据对。x代表手机,y代用户是否选择了该手机。 然后运用在线学习算法,来更新参数,对这10个数据运用10步梯度下降算法,来更新参数。然后就可以扔到这些数据。
在这里插入图片描述
一旦对一个数据的学习完成了,我们便可以丢弃该数据。这种方式的好处在于,我们的算法可以很好的适应用户的倾向性,算法可以针对用户的当前行为不断地更新模型以适应该用户

16.6 映射化简和数据并行 Map Reduce and Data Parallelism

在这里插入图片描述
在这里插入图片描述
具体而言,如果任何学习算法能够表达为,对训练集的函数的求和,那么便能将这个任务分配给多台计算机(或者同一台计算机的不同 CPU 核心),以达到加速处理的目的。
在这里插入图片描述

很多高级的线性代数函数库已经能够利用多核 CPU 的多个核心来并行地处理矩阵运算,这也是算法的向量化实现如此重要的缘故(比调用循环快)。

17 应用实例:图片文字识别 Application Example: Photo OCR

17.1 问题描述和流程图

OCR(Optical Character Recognition)光学字符识别
在这里插入图片描述

在这里插入图片描述

  1. 文字侦测(Text detection)——将图片上的文字与其他环境对象分离开来
  2. 字符切分(Character segmentation)——将文字分割成一个个单一的字符
  3. 字符分类(Character classification)——确定每一个字符是什么 可以用任务流程图来
    在这里插入图片描述

17.2 滑动窗口 Sliding Windows

在这里插入图片描述
从数据集中收集一些正负样本,来训练分类器。
在这里插入图片描述
在训练集训练出来的窗口尺寸是82*36。运用在测试图片上,图中绿色的窗口从左上方开始,依次向右遍历完第一行。再向第二行遍历,从此实现该图片所有像素点的识别。每一次将框住的图像送入分类器,检测是否为行人。

同理:
Text detection
在这里插入图片描述

在这里插入图片描述
白框代表可能有文字,根据框的性状,初步判断白色区域是不是文本信息。

Character segmentation
在这里插入图片描述

Character classification
最后一个阶段是字符分类阶段,利用神经网络、支持向量机或者逻辑回归算法训练一个分类器即可。

在这里插入图片描述

17.3 获取大量数据和人工数据

获取数据的方式:
① 从0开始自己制作数据
② 基于已有的小的数据集,然后已某种方式扩充训练集。

首先需要确定的是:
如果我们的模型是低方差的,那么获得更多的数据用于训练模型,是能够有更好的效果的。

17.4 上限分析 Ceiling Analysis

在机器学习的应用中,通常需要通过几个步骤才能进行最终的预测,如何能够知道哪一部分最值得我们花时间和精力去改善呢?这个问题可以通过上限分析来回答。
在这里插入图片描述

18 总结 Conclusion

在这里插入图片描述

在这里插入图片描述

完结撒花花~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值