首页 > 其他分享 >cv学习总结(SVM,softmax)10.24-10.30

cv学习总结(SVM,softmax)10.24-10.30

时间:2022-10-30 20:44:43浏览次数:89  
标签:KNN SVM 10.24 训练 10.30 矩阵 算法 图片

 

         本周完成了SVM课程笔记的阅读,包括SVM的基本原理以及SVM的优化过程,以及实现了SVM的两种损失函数(svm以及softmax)的线性分类器,以及学习了反向传播以及神经网络的初步。其中:svm在测试集上的准确率为37.4%,softmax损失函数在测试集上的准确率为35.6%,相较于KNN的27.4%提升约为36.5%及29.9%,提升幅度相对较大,此外SVM相较于KNN来说,时间性能更佳;之前学习的KNN算法属于直接将所有的训练图片数据化,根据图片的像素值进行判断,最简单的NN算法是用与待判断图片的差距最小(距离最近)的那张图片的类别当做此图片的类别,我们不难看到,1NN算法的正确性很差,相较于完全随机的10%的正确率,其正确率也不过只有20%左右,正确率低。我们用KNN算法则是用与其临近的K张图图片进行“投票”,得票最多的类别即为此图片的类别,可以看到,KNN算法有效的排除了某些噪声的干扰,但是主体的思路仍然是直接进行比较,此算法的缺点在于时间复杂度高,即每次判断一张新图片时,我们都需要遍历所有的训练数据,将训练数据的值与待判断题图片的像素值进行比较,而且十分不精确。

  SVM算法的特点是需要模型需要经过长时间的训练(例如在本次实践中,训练模型就花了2.5分钟,这还仅仅是在数据规模不是很大的情况下),而之前的KNN不需要任何的训练和迭代过程,所谓的训练,仅仅是将所有的像素值都存在了一个矩阵中进行比较而已。但是SVM的判断过程极其迅速,只需要做一个矩阵乘法,然后找到其中分数最高的类就可以实现,不需要遍历整个训练集,能够更为方便的判断数据,这是SVM相较于KNN在时间性能上比较优秀的地方,此外,在算法的正确性方面,SVM跟KNN比较也有了长足的进步。

      此外,针对SVM整体的实现思路以及更多的细节,我写了一篇博客https://www.cnblogs.com/Lbmttw/p/16830180.html

 

      本周学习遇到的困难是在神经网络的部分的反向传播,当f=wx+b中的wx都是矩阵时,其梯度的计算让我下午的时候推导了好久,怎么想都觉得应该是一个的三维矩阵才能描述,后来忽然想到这个三维矩阵中大部分元素都是0,并且根据矩乘法的性质只有输出的fij和xij中的i相等时,梯度才不为0,根据这个性质,可以将三维矩阵压缩为一个二维的n*m的矩阵。数学在反向传播中还是比较重要的。最大的收获是初步确定了当前阶段的学习方法:先看完cs231n的视频讲解部分,然后看英文的笔记,针对笔记中不懂的地方去拓展学习,学习完毕后将代码复现出来。写完代码过后,将整个算法的具体思路复现出来,以此为一个循环。

 

标签:KNN,SVM,10.24,训练,10.30,矩阵,算法,图片
From: https://www.cnblogs.com/Lbmttw/p/16842177.html

相关文章

  • 10.30
    本周总结1.正则表达式2.re模块3.第三方模块4.网络爬虫模块之requestsmk模块5.自动化办公领域之openpyxl模块6.hashlib加密模块7.subprocess模块8.logging日志模块......
  • 10.24-10.28周末回顾
    目录一、购物车二、hashlib模块1.加密的含义,如何理解加密2.加密算法的基本使用3.加密补充说明4.加密操作的用处5.优秀hash算法的特性三、子进程模块subprocess模块四、logg......
  • [2022.10.30]常用类—Date与DateFormat
    importorg.junit.Test;importjava.util.Date;/*1.用system类中的currentTimeMillis()方法2.java.util.Date类1)两个构造器的使用......
  • Faker团队展示10.30
    Faker团队展示团队特点及宣言团队特点:人狠话多、人菜瘾大团队宣言:有cat了,不想和没cat的人说话了   团队成员介绍队长:20201215王馨瑶个人简......
  • 10.30周日,复盘
    复盘一级标题二级标题三级标题c编程小感悟迭代的使用当一个变量名,不断出现新值替代旧值时,此时该变量就是迭代变量。写代码最忌讳的:一步到位初学者很忌讳一下把代......
  • 2022.10.30每日一题
    DaimayuanOnlineJudge-出栈序列判断题目描述现在有一个栈,有\(n\)个元素,分别为\(1,2,…,n\)。我们可以通过push和pop操作,将这\(n\)个元素依次放入栈中,然后从栈......
  • SVM(支持向量机)原理与应用
    1.支持向量机支持向量机(SupportVectorMachine,SVM)是一类按监督学习(supervisedlearning)方式对数据进行二元分类的广义线性分类器(generalizedlinearclassifier),其......
  • SVM主题思路和代码实现
    之前学习的KNN算法属于直接将所有的训练图片数据化,根据图片的像素值进行判断,最简单的NN算法是用与待判断图片的差距最小(距离最近)的那张图片的类别当做此图片的类别,我们......
  • 10.24集训解题报告
    T1方程(\(equation\))题面:给定\(4\)个正整数\(a\),\(b\),\(c\),\(d\),并且保证\(c\)\(×\)\(d\)\(≤\)\(10^6\),请你求出有多少组正整数对\((x,y)\)满足如......
  • 【闲话】2022.10.24
    今天考试,又炸了乐死怎么会有考试一次出两个诈骗题啊(笑今日一歌是《有顶天变》!晚上有一会自由活动时间大家都疯了,大家都疯了(笑对了,我,Kaguya和WR进行了混沌的三星......