✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343
📣专栏定位:为学习吴恩达机器学习视频的同学提供的随堂笔记。
📚专栏简介:在这个专栏,我将整理吴恩达机器学习视频的所有内容的笔记,方便大家参考学习。
💡专栏地址:https://blog.csdn.net/Newin2020/article/details/128125806
📝视频地址:吴恩达机器学习系列课程
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪
在讲支持向量机之前,我们先从逻辑回归开始渡过到支持向量机。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RAbYvx0n-1670030133704)(吴恩达机器学习.assets/image-20211114165544715.png)]](https://1000bd.com/contentImg/2024/04/15/8e2b843d5b6c4455.png)
上面图中粉红色的那条线就是支持向量机的曲线,和逻辑回归很相似,代价函数都分两个部分构成。
支持向量机(Support vector machine)- SVM
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kwyGNDN1-1670030133707)(吴恩达机器学习.assets/image-20211114170558702.png)]](https://1000bd.com/contentImg/2024/04/15/a8b0fa6a92613069.png)
支持向量机和逻辑回归不相同的主要在两个地方:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tyeaRGgM-1670030133710)(吴恩达机器学习.assets/image-20211114171028391.png)]](https://1000bd.com/contentImg/2024/04/15/757d4c6b9107cf57.png)
支持向量机还有一个地方与逻辑回归不同的是,逻辑回归假设函数输出的是概率,而支持向量机假设函数输出的结果是直接预测了y是1还是0。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NoPf6KdB-1670030133713)(吴恩达机器学习.assets/image-20211114171232189.png)]](https://1000bd.com/contentImg/2024/04/15/0400d95fe03f631d.png)
来看看支持向量机代价函数肚饿图像,会发现:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BISjGKUw-1670030133715)(吴恩达机器学习.assets/image-20211114171710451.png)]](https://1000bd.com/contentImg/2024/04/15/20308475413d8cff.png)
而这个-1到1的间隔,我们称为安全间隔,如果我们想要让代价函数第一部分的式子为0,那么就要满足上面y=1或y=0的要求。接下来我们来看看,支持向量机的决策边界会呈现什么效果。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6KjdVoPa-1670030133718)(吴恩达机器学习.assets/image-20211114173216990.png)]](https://1000bd.com/contentImg/2024/04/15/c9e76eb1dbb35414.png)
图中黑色的那条线就是支持向量机分类的结果,可以看出它和绿色与紫色的划分线不同,它与样本之间有一定的间距,所以我们有时候也会称SVM为大间距分类器(Large margin classifier)。
但是,如果我们将C设置的特别大的话,就会出下下面这种情况:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bhj4e1H2-1670030133721)(吴恩达机器学习.assets/image-20211114174002575.png)]](https://1000bd.com/contentImg/2024/04/15/88caf034c12aef27.png)
如上图紫色划分线,如果C太大,支持向量机对于异常值就会特别敏感,导致变化特别大,而如果C设置的很小,支持向量机对于异常值就会几乎忽略不计,就还会是我们上图的黑线那样。
首先,我们来看一个复杂的非线性函数:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JjW2aQBB-1670030133723)(吴恩达机器学习.assets/image-20211114193540968.png)]](https://1000bd.com/contentImg/2024/04/15/26f9da367f0a3983.png)
可以发现,这个函数中包含了一些复合的特征,那对于这种非常复杂的非线性边界,是否有更好的特征去代替这些f1、f2、f3等等呢。
核函数(Kernel)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lwTtbFMu-1670030133726)(吴恩达机器学习.assets/image-20211114194119497.png)]](https://1000bd.com/contentImg/2024/04/15/bc8f68cab15f5e65.png)
假设我们通过给定一个x案例,并且选出三个标记(landmark),然后定义特征f为一个相似度函数,这里用到的函数就是高斯核函数(Gaussian kernels),是核函数中的一种。
接下来,我们来看看新特征内的具体计算。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ocX5xxjf-1670030133728)(吴恩达机器学习.assets/image-20211114194821688.png)]](https://1000bd.com/contentImg/2024/04/15/4a14fada08aabdab.png)
可以发现,如果标记离给出的案例x点很近时,(xj-lj)2会几乎为0,那么e函数会接近于1,所以特征f就会接近于1;同样如果标记离给出的案例x点很远时,特征f就会接近于0,我们再来看一个具体的例子。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pRdM81PX-1670030133730)(吴恩达机器学习.assets/image-20211114195455661.png)]](https://1000bd.com/contentImg/2024/04/15/6c5348cb8396bfc2.png)
上图中我们对σ的值进行了改变,σ是高斯核函数的参数,当σ越小时,可以发现当x离l越远时,下降的比σ原先下降的更快,同理当σ越大时,则下降的会更慢。
现在我们再将这些新的特征代替原来函数中的特征,可以得到下面这个例子:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kdbFTHXb-1670030133731)(吴恩达机器学习.assets/image-20211114200307787.png)]](https://1000bd.com/contentImg/2024/04/15/d907b4c41a799834.png)
我们可以假设θ的值并取一些x进行计算,发现靠近l(1)和l(2)时,y都被预测为1;远离l(1)和l(2)时,y都被预测为0,从而利用核函数得到一个非线性的决策边界。
大概解释完上面核函数的流程后,我们来看看核函数中的标记l是如何选择的。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Eijz6pLe-1670030133734)(吴恩达机器学习.assets/image-20211114201342790.png)]](https://1000bd.com/contentImg/2024/04/15/a8b4750b1b4a6da8.png)
我们得到标记l的方式很简单,可以直接将训练集样本的位置作为标记的位置即可。
接下来,我们来看一下核函数的参数。
C(作用类似于正则化中的1/λ)
σ2
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dO0EICgs-1670030133736)(吴恩达机器学习.assets/image-20211114203248108.png)]](https://1000bd.com/contentImg/2024/04/15/4165bf9fe0f52789.png)
最后,我们再来对支持向量机中的核函数使用过程进行一个小回顾。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LAEnm0Fo-1670030133737)(吴恩达机器学习.assets/image-20211114203204112.png)]](https://1000bd.com/contentImg/2024/04/15/d46d38183c244a45.png)
这节课我们来讨论一下,使用SVM时的一些注意事项。
首先,第一个建议是不要尝试去写一些已经有人写好的数据包,直接去调用即可(例如liblinear,libsvm等)。
其次,你要注意的是,有两个地方是需要你人为完成的:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6uQjkDFd-1670030133738)(吴恩达机器学习.assets/image-20211114204504350.png)]](https://1000bd.com/contentImg/2024/04/15/a6eeb8830449698f.png)
如果你选择了高斯核函数,那么在训练时若你的x特征之间差别特别大,需要进行等比例缩放。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Lbkr2Hj-1670030133739)(吴恩达机器学习.assets/image-20211114205211016.png)]](https://1000bd.com/contentImg/2024/04/15/eed3761b49289202.png)
除上述的两个函数之外,还有其他的核函数,但有效的核函数都要满足默塞尔定理(Mercer’s Theorem),即确保所有的SVM软件包能够利用大类的优化方法并从而迅速得到参数θ。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-joJyDfMy-1670030133741)(吴恩达机器学习.assets/image-20211114210327222.png)]](https://1000bd.com/contentImg/2024/04/15/2f1177419ba46652.png)
再者,我们来讨论讨论SVM一对多的分类情况,这与逻辑回归中的一对多的方法一样,都是分别训练各个类别的分类器,预测时选取分类器得分最高的即可。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wRLKVd2C-1670030133742)(吴恩达机器学习.assets/image-20211114224023044.png)]](https://1000bd.com/contentImg/2024/04/15/c601594edf819869.png)
最后,我们来讨论一下逻辑回归和支持向量机何时使用较好。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CRb3WfsK-1670030133743)(吴恩达机器学习.assets/image-20211114224734634.png)]](https://1000bd.com/contentImg/2024/04/15/a4a79be2372f4f63.png)
神经网络不管对应哪个情形效果都不错,但是缺点是训练速度会比较慢。