[IT技术] 机器学习中有哪些形式简单却很巧妙的idea?

[复制链接]
tombbb 发表于 2023-10-27 05:13:37|来自:中国 | 显示全部楼层 |阅读模式
AI论文中,有哪些像GAN这种形式简单却功能强大的idea。
全部回复5 显示全部楼层
hb163 发表于 2023-10-27 05:13:54|来自:中国 | 显示全部楼层
dummy class
做多元分类的时候,加1-3个假类别。比如做3分类,output弄成4分类,那个虚拟出来的假类别(dummy class)不需要训练数据什么,input层面不用管他,只需要output里面写成4分类这么简单。结果会比单纯3分类同样条件下好几个点。
紫色梦烙印 发表于 2023-10-27 05:14:34|来自:中国 | 显示全部楼层
我斗胆来回答一下吧,我看到貌似没有人提及到这个trick,就是在做图像的多类别分类的时候,把两张图片按照随机比例加起来,然后把label定义成两张图片的类别的比率,然后直接训练就好了,在部分模型上可以提大约5个点左右
我觉得满足了形式简单,巧妙和有效这三个点了
guyama 发表于 2023-10-27 05:15:29|来自:中国 | 显示全部楼层
当然是2017年获得NeurIPS Test of the Time Award的Random Fourier Feature。
分类问题经常会用把数据project到高维,再做correlation,即计算 。但是由于lifting function 会把数据投到很高维,使得计算内积变得十分昂贵,所以人们发明了kernel trick,即用一个positive definite的function , 使得 ,这样就避免了计算两个高维向量的内积。但是kernel trick需要计算数据的gram matrix,即 。如果你有一百万条数据的话,计算gram matrix几乎是不可承受的开销。
于是Ali Rahimi 和 Ben Recht在2007年提出了一种randomized 的feature, 即寻找一种mapping , 使得
虽然这也需要计算内积,但是 的维数远小于 的维数。比如常用的Gauss Kernel,其对应的lifting function会把数据map到无穷维,而 的维度D大概只需要 , 其中 的误差。
这种approximation既避免了计算gram matrix,又不需要计算无穷维向量的内积,而且它还和真实值偏差不大。那么这种好用又实惠的mapping 怎么寻找呢?数学原理是这样的,先做个傅里叶变换:

对,就是找到一个function , 使得 是它的傅里叶变换(对 做逆变换即可找到 )。神奇的地方来了,Bochner's theorem 告诉我们,
当且仅当一个连续函数是一个非负测度的傅里叶变换时,这个函数是positive definite function。
这个theorem很拗口,翻译成人话就是如果 是positive definite(这个我们在前面已经保证过了)的,那么 就一定是一个d维的概率分布。现在我们再来看(1)式,其实就是 这个随机变量的期望啊。如果我们定义 ,那(1)式就等价于 。由于这些量都是实数,我们可以舍弃虚部,只保留cos项,于是我们可以定义 ,最终得到
于是我们可以通过sample D个 , 带入 ,得到2个D维的向量,再用他们做内积,效果和计算 是“几乎”一样好的。(不要忘了之前我们可是得用俩无穷维的向量做内积的- -)
那么问题来了,这个"几乎一样好"大概有多大概率呢?其实通过随机变量的concentration不难证明:

式子很长,但主要就说了一件事,就是random fourier feature“玩砸”的概率,会随着投影维数D的增大,而指数般的减小。当D趋向无穷时,random fourier feature完全等价kernel trick。
PS. 话说Ali Rahimi就是当年在NIPS上怼深度学习是“炼金术”的那个人,后来还和Lecun在twitter上大战。。
twinsbbs 发表于 2023-10-27 05:15:45|来自:中国 | 显示全部楼层
有一个idea,它匪夷所思,简单粗暴,却效果惊人。
它不仅仅是一个idea,它还在机器学习各个领域的坑都填的差不多的今天,又挖开了一个天坑,开创了一个新的领域,引来了无数填坑的人,不知道又要拯救多少无法毕业的学生。
它就是:
Federated Averaging Algorithm

故事发生在冬天,那一年冬天,阴雨连绵,同样阴沉的,是人的心情。
“什么?不能上传用户的数据,那怎么训练模型?!“ 研究员老A的手离开了键盘,抬得老高,继续说到:
“怎么就他们要求这么多,现在的机器学习功能,哪个不是先建一个收集数据的pipeline,有了海量数据以后,再训练模型。没有数据,怎么训练?!“
“没办法啊,现在社会对数据隐私的要求越来越高了,欧盟的GDPR,只是个开始。作为大公司,肯定要在这方面当先行者。“ 产品经理老C也很无奈。
众人也是面面相觑,不过并不是所有人都丧失信心,至少研究员老F和他的实习生小Y不是。
“就算不上传数据,也不是不可以训练啊“ 老F思忖了一下,继续说道。“你仔细想一想,SGD算法是怎么个流程?”
“先随机选取一个batch的数据,更新梯度,再换下一个batch,再更新。模型收敛以后,就停止训练“ 实习生小Y自信的说到。
研究员老F点点头:“你看,这不是一回事吗,不一定需要一个集中的数据中心嘛。你把一批用户的数据想像成一个batch。“
“哦,对啊!在每个用户的手机里训练模型,然后上传更新的梯度。之后再换下一批用户,再更新一次梯度,直到收敛为止。“ 实习生小Y抢道。
“对嘛。小伙子很聪明嘛。“ 研究员老F的眼里充满了慈爱。“我们就叫它FederatedSGD算法吧。”
“那不对啊“ 实习生小Y好像发现了什么。 “在数据中心里训练,不需要考虑上传梯度的传输问题啊。但是在用户的手机和服务器之间,有大量的数据上传,手机流量铁定用没了。”
“不光是流量的问题。这每个batch都要上传一次模型的梯度,要收敛可能要几万个batch,那就是说训练一次模型要上传几万次。移动数据网络的带宽有多少?多久能完成一次训练?“ 老F思考了一会儿,继续说道:
“要不我们试试这样行不行,先在用户的手机上训练,训练到差不多收敛了,再上传模型。我们把所有获得的模型相加取平均,就是我们最终的模型。这样大大减少了对带宽的需求。“
“这能行吗,没听说过谁这么训练啊“ 小Y很怀疑,“不过我也没啥事做,试试呗。”
“好的,你试试看,然后告诉我结果。“ 老F安排完任务,就继续工作了。
过了几天,办公室的某个角落,传来了小Y的惊呼:“我去,这都可以!”
“怎么回事?“ 老F问?
“您上次让我试的方法,居然work了!“
“噢,我看看。“ 老F和小Y讨论了一会儿实验,确认了这个结果,并且将这个算法命名为Federated Averaging。
随后的一段时间,大家都很兴奋,针对这个idea提了很多意见以及后续的实验方案,并且也花了很多精力增加了对这个结果的理论支持。
其实,这个idea也不能照抄到所有的应用场景。在一些现实场景中,不同用户的数据分布可能差异很大,数据可能不均衡,这个idea并不能适用于所有的机器学习算法。
不管怎样,基于Federated Averaging算法,一个崭新的机器学习领域 - Federated Learning 诞生了。这个领域还非常非常年轻,很多基础的工作还没有完成。欲知这个大坑里有哪些小坑,且听我下回分解。
yhc8325 发表于 2023-10-27 05:16:30|来自:中国 | 显示全部楼层
异常检查算法Isolation Forest(孤立森林)

原理超简单,但检测效果可以说是state of the art. 对一个空间进行二分,早划分「孤立」出来的就是很可能异常的。「孤立」指的是这一边只有这一个数据点。因为是二分,我们可以构建一颗二叉树。例如下图的一棵树,第一次二分,左边有数据的a,b,c,右边只有d,那么d大概率就是异常点。为啥?想想你画一条线,把一把米分成了两边,左边只有一粒,那左边那粒很可能是离其他米粒很远。


为了更直观,有更多一步了解,请看下图,直觉上我们就知道 是普通点, 是异常点。那么用Isolation tree怎么解释呢?


如果要把 孤立出来,需要很11次划线,而 需要的次数要少很多。所以 更可能是异常点。
一棵树不够可信?没事,记得随机森林random forest不?没错,这里也引进一堆树。如果多数的树都在前几次分割时分出同一个点,那么这个点是异常点的概率就非常高了。


可以看到,树的数量(横轴)超过10时,平均分割次数(纵轴)就收敛了。从这个图我们可以看出,某个点 被「孤立」前,平均分割次数低于5,那么 就是异常点。

原理是不是超级简单呢。如果想了解更多数学上的原理,可以参考下面的参考文献。
参考文献:

https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/icdm08b.pdf

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则