回复 13F dong0022 的帖子
你老是强调SVM算法,但是不难看出你不了解这个算法,这个算法是统计学算法,虽然和样本的维数无关,但是和样本是数量是有关的,SVM需要小样本,并不是说样本的绝对数量少(实际上,对任何算法来说,更多的样本几乎总是能带来更好的效果),而是说与问题的复杂度比起来,SVM算法要求的样本数是相对比较少的。QVM不是不需要病毒库,是他在学习的过程中把恶意程序的特点记住,实际上他自身就是库和算法的集合,不过是通过统计的方式判断哪个字符或者字符串出现的频率来判断软件是否为恶意程序的可能性。而且官方自己的解释是说不需要频繁更新病毒库,不是没有库。
另外,QVM引擎采用SVM算法就存在一个问题,那就是核函数向高维空间映射后,仍然是线性不可分的解决办法,如果其中的噪声过多(就是QVM学习的一下样本的干扰性过多),噪声的容错性是在人脑中存在,但是电脑就不存在了,严重的噪声会造成整个算法的无解,即使用了松弛变量,采用软间隔分类器的方法(不论是一阶还是二阶),都没有能解决多少问题,数据集偏斜也会产生比较大的影响。所以QVM误杀率不会低,本地的高度精简是为了保守,至于这次AV-C的误杀少,个人觉得也是有运气。
第三,我说QVM不能本地化不是说QVM有多大,本身现在恶意代码都很短,就一万个病毒样本也就1m左右,所以这个不是问题,SVM算法虽然比knn算法要好的多,但是解析解的时间复杂度最坏可以达到O(n^3),是一个在O(1/n)到O(n^3)的复杂度,O(1/n)的复杂度还好说,估计我们的电脑能跑的起来,但是不能说我们的电脑里就装一个杀毒软件,如果是O(n^3),那除非样本比较少,如果样本多一点就10000个样本,也就是说100个需要1s,那么1000个就要100s,1w个就要1000s,一个文件走一次算法你要扫到什么时候,所以,这个算法要大型云端的服务器才能使用。