吴恩达机器学习第12-13章

吴恩达机器学习第12-13章

第12章

12-1 优化目标

在监督学习中,很多监督学习算法的性能都非常相似,所以经常要考虑的东西不是你要去选取A算法或者B算法,而是更多地考虑你构建这些算法时所使用的数据量,这就体现了你应用这些算法时的技巧。比如你所设计的用于学习算法的特征的选择以及正则化参数的选择等等。但是还有一个更加强大的算法,它广泛地应用于工业界和学术界,它被称为支持向量机。与logistic回归和神经网络相比,支持向量机或称为SVM,在学习复炸的非线性方程时,能够提供一种更为清晰和更加强大的方式。
我们将logistic回归的代价函数进行小小的改动,将y=1的部分用左边的函数表示,将y=0的部分用右边的函数表示,有了这些定义就可以开始构建支持向量机了。
请添加图片描述
我们将定义好的COST1和COST0函数替换logistic回归的函数的对应位置。支持向量机的函数形式可以简化为A+λB或者CA+B,因此A的系数和λ就是我们所要优化的目标
请添加图片描述
这就是支持向量机的假设函数形式。
请添加图片描述

12-2 直觉上对大间隔的理解

有时候人们会把支持向量机叫做最大间隔分类器。
在假设函数中,如果y=1,则只需θTX大于等于0.如果y=0,则只需θTX小于等于0,但为了当区分度更加明显,我们会使θTX大于等于1,θTX小于等于-1,这就相当于构建了安全因子。
请添加图片描述
对于一些线性可分的例子,总存在一条直线能够将正样本和分样本分开。而有些直线会看起来不太友好,支持向量机则会做出一条更加稳健的直线来区分正样本和负样本,所以支持向量机也叫做大间距分类器。
请添加图片描述

12-3 大间隔分类器的数学原理

因为涉及的数学符号比较多,且比较晦涩,所以感兴趣的朋友可以去看看这一节。

12-4 核函数1

这一节我们将改造支持向量机算法来构造复杂的非线性分类器。主要的技巧就是被称为核(kernel)的东西。
如果你有这样的数据集,并希望拟合一个非线性的判别边界来区别正负实例。一种办法是构造 一个复杂多项式特征的集合。
请添加图片描述
有一个可以改造新特征的方法,对于新特征X1和X2,我们选取三个点,叫做标记1,2,3。特征分别是x和l1、l2、l3的相似度。相似度函数就被称为核函数,当然以后还会有很多各种各样的核函数。我们用K(x,l1)来标记核函数。
请添加图片描述
如果x和其中l1很近的话。f1会接近与e的0次方。如果x和l1很接近的话,f1会接近于0.
在这里插入图片描述
我们来画个图更好的理解核函数。当σ的平方等于1,x等于l1时,f1就等于1.当x原理l1时,就越接近0。当σ的平法等于0.5时,我们会发现核函数还是非常相似的,只是突起的宽度变窄了,等高线图也收缩了一些。当σ的平方等于3时,当远离l1时,特侦值缩小的速度变得比较慢。
请添加图片描述
我们假设θ0=-0.5,θ1=1,θ2=1,θ3=0,来看看假设函数的效果。我们假设训练数据X接近l1,则f1接近1,f2和f3约等于0。则假设函数的结果等于0.5大于等于0,所以预测的值y等于1。我们假设另一个点,且f1,f2,f3约等于0,于是我们得到的假设函数的结果等于-0.5,所以预测值y等于0。之后就可以画出决策边界。
请添加图片描述

12-5 核函数2

通过核函数和训练样本,我们可以得到f1,f2,等等的预测函数的参数。
请添加图片描述
我们具体的做出这个过程。
假设有m个给定的训练集。我将选取与训练集完全同样的位置作为我的标记点。给定样本的训练集也可以属于交叉验证集,或者属于测试集。我们接下给定样本x来计算这些特征值,如f1,f2等等。(图中的l1实际上就时x1)这就组成了特征向量f。于是我们就讲x映射到了f上。
请添加图片描述
请添加图片描述
支持向量机的参数C和1除以λ的作用非常类似。更高的C,会导致低偏差,高方差,更低的C会导致高偏差和低方差。
更大的σ平方,会导致特征变化更加的平滑,但也会导致高偏差和低方差。反之更低的σ平方,会让特征变化比较陡峭,并且低偏差和高方差。
在这里插入图片描述

12-6 使用SVM

在使用支持向量机时,有很多的技巧,无外是对参数的选择。你可能需要去选择参数C和核函数,当然,你也可以不使用核函数,这就使得SVM变成了线性函数。对于核函数的选择,你可以构建一个高斯核函数,当你选择之后,你还需要选择一个参数σ的平方,而σ的大小的影响,在上一节中我们也讨论过了。那么什么时候我们会选择高斯核函数呢?当n很小,m很大时,即训练集很多,样本集比较少时,为了拟合一个复杂的非线性决策边界,高斯核函数是一个不错的选择。
请添加图片描述
对于K分类的情况,也可以使用SVM进行分类,分别进行K次循环,第一次可以得到一个参数向量θ1来区分出一类,之后可以得到θ2来区分二类等等。
请添加图片描述
对于logistic还有SVM,我们应该进行如何选择呢?
当n(特征)的值很大的时候,n远大于m(训练数量)时。通常使用logistic回归,或者不带核函数的SVM,也就是使用线性核函数。。如果n很小,m中等时,使用高斯核函数可以很大的进行分类。如果n很小,m很大时,高斯核函数运行速度会比较慢,这时通常使用logistci回归,或者不带核函数的支持向量机。
请添加图片描述

第13章

13-1无监督学习

这节我们将介绍一下聚类算法,也就是无监督学习。监督学习是带标签的数据集,用假设函数去进行拟合。而无监督学习是不带标签的数据集。通过算法,将数据集进行分类。

13-2 K-means 算法

这节我们将一起了解K均值算法的定义以及原理。
K-means算法,用图像的方式来解释的话,在合适不过了。
第一步是随机生成两个点,这两个点叫做聚类中点。
请添加图片描述
k-means算法是一个迭代算法,它会做两件事情。第一个是簇分类,第二个是移动聚类中心。
第二步我们会遍历每一个样本点。然后根据每个样本点是和哪个聚类中心更近,来讲样本点进行分类。
请添加图片描述

第三步,我们要做的是将两个聚类中心移动到同一类的点的均值处。
在这里插入图片描述

接下来我们会继续进行分类。再次重新计算新的聚类中心,然后进行分类。
在这里插入图片描述
请添加图片描述
然后再做上诉过程进行分类。当算法的迭代不再发生变化的时候,那么分类就完成了。
在这里插入图片描述
K-means算法会有一个参数K,代表分为几类。还有一个参数表示数据集的输入。因为是无监督学习,所以不需要再带有标签。
请添加图片描述

13-3 优化目标

K-means算法也有一个优化目标的函数或者一个用于最小化的代价函数。
当运行K-means算法时,我们会对两个参数进行追踪。一个是Ci,它表示簇的序号。
另一个是,表示的是第k个聚类中心的位置。
还有一个符号是表示的是Xi所属的那个簇的聚类中心。
K-means算法的优化函数如下。请添加图片描述

13-4 随机初始化

对于K的选取,我们应该让K小于m,这是理所当然的。在训练样本中,随机挑选K个值,作为聚类均值。根据聚类的随机初始化状态不同,就有可能收敛到不同的结果。请添加图片描述
在下图中,我们很显然的可以看出训练样本应该分为三个类别。但因为随机的聚类中心的选取不同,就可能导致不同的结果。为了能找到理想的结果,避免落入局部最优解。我们可以初始化K-means算法很多次,进行比较,来保证我们尽可能的得到一个很好的结果。
请添加图片描述

13-5 选取聚类数量

这节我们一起讨论一下如何选取K的大小。
在实际情况中,类别的种类总是不太确定的。
有一个办法叫做肘部法则,我们要做的就是改变K,然后计算代价函数J。通过画图,可以看到有一个拐点类似于人的肘部,这就是肘部法则。因为这个点的左边下降得非常快,右边又下降的非常慢。所以这个点就非常有可能是最佳的点。但肘部法则运用的不太多,因为在实际问题中,很有可能是一个比较平滑的图。
请添加图片描述
还有另外一种方法,我们可以看哪个聚类数量能够更好的运用到后续目的中。例如短袖的例子,因为我需要三种尺寸。所以我们选择K等于3(小中大三个号)。或者K等于5(特小号,小号,中号,大号,特大号)。请添加图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值