建设门户网站的目的和意义,遵义论坛网,视频广告对接平台,网站设计工作流程目录 第 7 周 12、 支持向量机(Support Vector Machines)12.1 优化目标 第 7 周 12、 支持向量机(Support Vector Machines)
12.1 优化目标
到目前为止,你已经见过一系列不同的学习算法。在监督学习中#xff0c;许多学习算法的性能都非常类似#xff0c;因此#xff0c;重… 目录 第 7 周 12、 支持向量机(Support Vector Machines)12.1 优化目标 第 7 周 12、 支持向量机(Support Vector Machines)
12.1 优化目标
到目前为止,你已经见过一系列不同的学习算法。在监督学习中许多学习算法的性能都非常类似因此重要的不是你该选择使用学习算法 A 还是学习算法 B而更重要的是应用这些算法时所创建的大量数据在应用这些算法时表现情况通常依赖于你的水平。比如你为学习算法所设计的特征量的选择以及如何选择正则化参数诸如此类的事。还有一个更加强大的算法广泛的应用于工业界和学术界它被称为支持向量机(Support Vector Machine)。与逻辑回归和神经网络相比支持向量机或者简称 SVM在学习复杂的非线性方程时提供了一种更为清晰更加强大的方式。因此在接下来的视频中我会探讨这一算法。在稍后的课程中我也会对监督学习算法进行简要的总结。当然仅仅是作简要描述。但对于支持向量机鉴于该算法的强大和受欢迎度在本课中我会花许多时间来讲解它。它也是我们所介绍的最后一个监督学习算法。
正如我们之前开发的学习算法我们从优化目标开始。那么我们开始学习这个算法。为了描述支持向量机事实上我将会从逻辑回归开始展示我们如何一点一点修改来得到本质上的支持向量机。 那么在逻辑回归中我们已经熟悉了这里的假设函数形式和右边的 S 型激励函数。然而为了解释一些数学知识.我将用z表示 θ T x θ^Tx θTx。
现在考虑下我们想要逻辑回归做什么如果有一个 1的样本我的意思是不管是在训练集中或是在测试集中又或者在交叉验证集中总之是 1现在我们希望ℎ() 趋近 1。因为我们想要正确地将此样本分类这就意味着当 ℎ()趋近于 1 时 θ T x θ^Tx θTx 应当远大于 0这里的意思是远远大于 0。这是因为由于 表示 θ T x θ^Tx θTx当 远大于 0 时即到了该图的右边你不难发现此时逻辑回归的输出将趋近于 1。相反地如果我们有另一个样本即 0。我们希望假设函数的输出值将趋近于 0这对应于 θ T x θ^Tx θTx或者就是 会远小于 0因为对应的假设函数的输出值趋近 0。 如果你进一步观察逻辑回归的代价函数你会发现每个样本 (, )都会为总代价函数增加这里的一项因此对于总代价函数通常会有对所有的训练样本求和并且这里还有一个 1 m \frac{1}{m} m1项但是在逻辑回归中这里的这一项就是表示一个训练样本所对应的表达式。现在如果我将完整定义的假设函数代入这里。那么我们就会得到每一个训练样本都影响这一项。
现在先忽略 1 m \frac{1}{m} m1 这一项但是这一项是影响整个总代价函数中的这一项的。 现在一起来考虑两种情况 一种是等于 1 的情况另一种是 等于 0 的情况。在第一种情况中假设 1 此时在目标函数中只需有第一项起作用因为 1时 (1 − )项将等于 0。因此当在 1 的样本中时即在 (, )中 我们得到 − l o g ( 1 1 e − z ) −log(\frac{1}{1e^{−z}}) −log(1e−z1)这样一项这里同上一张幻灯片一致。
我用 表示 θ T x θ^Tx θTx即 θ T x θ^Tx θTx。当然在代价函数中 前面有负号。我们只是这样表示如果 1 代价函数中这一项也等于 1。这样做是为了简化此处的表达式。如果画出关于 的函数你会看到左下角的这条曲线我们同样可以看到当 增大时也就是相 当于 θ T x θ^Tx θTx增大时 对应的值会变的非常小。对整个代价函数而言影响也非常小。这也就解释了为什么逻辑回归在观察到正样本 1时试图将 θ T x θ^Tx θTx设置得非常大。因为在代价函数中的这一项会变的非常小。
现在开始建立支持向量机我们从这里开始我们会从这个代价函数开始也就是 − l o g ( 1 1 e − z ) −log(\frac{1}{1e^{−z}}) −log(1e−z1)一点一点修改让我取这里的 1点我先画出将要用的代价函数。
新的代价函数将会水平的从这里到右边(图外)然后我再画一条同逻辑回归非常相似的直线但是在这里是一条直线也就是我用紫红色画的曲线就是这条紫红色的曲线。那么到了这里已经非常接近逻辑回归中使用的代价函数了。只是这里是由两条线段组成即位于右边的水平部分和位于左边的直线部分先别过多的考虑左边直线部分的斜率这并不是很重要。但是这里我们将使用的新的代价函数是在 1的前提下的。你也许能想到这应该能做同逻辑回归中类似的事情但事实上在之后的优化问题中这会变得更坚定并且为支持向量机带来计算上的优势。例如更容易计算股票交易的问题等等。
目前我们只是讨论了 1的情况另外一种情况是当 0时此时如果你仔细观察代价函数只留下了第二项因为第一项被消除了。如果当 0时那么这一项也就是 0 了。所以上述表达式只留下了第二项。因此这个样本的代价或是代价函数的贡献。将会由这一项表示。并且如果你将这一项作为的函数那么这里就会得到横轴。现在你完成了支持向量机中的部分内容同样地我们要替代这一条蓝色的线用相似的方法。 如果我们用一个新的代价函数来代替即这条从 0 点开始的水平直线然后是一条斜线像上图。那么现在让我给这两个方程命名左边的函数我称之为cos1()同时右边函数我称它为cos0()。这里的下标是指在代价函数中对应的 1 和 0 的情况拥有了这些定义后现在我们就开始构建支持向量机。 这是我们在逻辑回归中使用代价函数()。也许这个方程看起来不是非常熟悉。这是因为之前有个负号在方程外面但是这里我所做的是将负号移到了表达式的里面这样做使得方程看起来有些不同。对于支持向量机而言实质上我们要将这替换为cos1()也就是cos1( θ T x θ^Tx θTx)同样地我也将这一项替换为cos0()也就是代价cos0( θ T x θ^Tx θTx)。这里的代价函数cos1就是之前所提到的那条线。此外代价函数cos0也是上面所介绍过的那条线。因此对于支持向量机我们得到了这里的最小化问题即: 然后再加上正则化参数。现在按照支持向量机的惯例事实上我们的书写会稍微有些不同代价函数的参数表示也会稍微有些不同。
首先我们要除去1/这一项当然这仅仅是由于人们使用支持向量机时对比于逻辑回归而言不同的习惯所致但这里我所说的意思是你知道我将要做的是仅仅除去1/这一项但是这也会得出同样的 最优值好的因为1/ 仅是个常量因此你知道在这个最小化问题中无论前面是否有1/ 这一项最终我所得到的最优值都是一样的。
第二点概念上的变化我们只是指在使用支持向量机时一些如下的标准惯例而不是逻辑回归。因此对于逻辑回归在目标函数中我们有两项第一个是训练样本的代价第二个是我们的正则化项我们不得不去用这一项来平衡。这就相当于我们想要最小化加上正则化参数然后乘以其他项对吧这里的表示这里的第一项同时我用 B 表示第二项但不包括我们不是优化这里的 × 。我们所做的是通过设置不同正则参数达到优化目的。这样我们就能够权衡对应的项是使得训练样本拟合的更好。即最小化。还是保证正则参数足够小也即是对于 B 项而言但对于支持向量机按照惯例我们将使用一个不同的参数替换这里使用的来权衡这两项。你知道就是第一项和第二项我们依照惯例使用一个不同的参数称为同时改为优化目标 × 因此在逻辑回归中如果给定一个非常大的值意味着给予 B 更大的权重。而这里就对应于将 设定为非常小的值那么相应的将会给比给更大的权重。因此这只是一种不同的方式来控制这种权衡或者一种不同的方法即用参数来决定是更关心第一项的优化还是更关心第二项的优化。当然你也可以把这里的参数 考虑成1/同 1/所扮演的角色相同并且这两个方程或这两个表达式并不相同因为 1/但是也并不全是这样如果当 1/时这两个优化目标应当得到相同的值相同的最优值 。因此就用它们来代替。那么我现在删掉这里的并且用常数来代替。因此这就得到了在支持向量机中我们的整个优化目标函数。然后最小化这个目标函数得到 SVM 学习到的参数。 最后有别于逻辑回归输出的概率。在这里我们的代价函数当最小化代价函数获得参数时支持向量机所做的是它来直接预测的值等于 1还是等于 0。因此这个假设函数会预测 1。当 θ T x θ^Tx θTx大于或者等于 0 时或者等于 0 时所以学习参数就是支持向量机假设函数的形式。那么这就是支持向量机数学上的定义。
在接下来的视频中让我们再回去从直观的角度看看优化目标实际上是在做什么以及 SVM 的假设函数将会学习什么同时也会谈谈如何做些许修改学习更加复杂、非线性的函数。