集成学习
集成学习--简要梳理
前言
我们都知道,一个人的意见往往带有主观色彩,如果只听信一人之言,当这个人做出错误判断时,那会影响我们对整个事情的判断。为了对事物的认知更加全面正确,我们可以找多个可靠的人,让每个人都做判断,然后选择相信大多数人都认可的看法。这种用“多”代之“少”,减小偏差的思想便是集成学习。
集成学习
集成学习不是一种具体的机器学习算法,而是一种思想:将多个只在某些方面表现较好的弱分类器组合,通过一定的方式得到一个全方面表现较好的强分类器。
两个问题:
怎样得到多个弱分类器?
怎样组合?
依上述问题,集成思想可以分为Boosting和Bagging。
Boosting是一种串行集成,通过将弱学习器提升成为强学习器以提高预测精度。利用弱学习器间的关系,在一轮学习结束后,对之前训练中错误标记的样本赋上较高的权重,改变训练数据的概率分布(改变权值),然后再用算法学习得到一个分类器。针对不同训练数据集用算法学习出一系列分类器。典型算法是AdaBoost。
每一轮如何改变训练数据的权值:AdaBoost中,提高前一轮被弱分类器分类错误的样本的权值,降低被正确分类的样本的权值。 ...
MD4Collison
MD4碰撞攻击
目 的:以论文梳理为主,回顾总结课程学习。
参考论文:2005年王小云教授等人发表的 Cryptanalysis of the Hash Functions MD4 and RIPEMD
MD4算法 MD4是较早出现的hash函数,在MD4后出现 了MD5,HAVAL,RIPEMD,RIPEMD-160,SHA-1,SHA-256等更加复杂的hash函数,但设计原理和结构与MD4类似(碰撞原理也类似)。
消息摘要函数MD4将任意长度的消息压缩至128bit。算法对一个消息做如下操作:
step 1(填充):将消息m填充至512的倍数(如果本身是512bit的消息,仍要填充,因为必须有64bit放消息长度)
填充部分:|m | 100… | len
对应长度:| 448bit | 64bit
step2(压缩):填充完后,对每一个512bit消息块使用压缩函数将其压缩成128bit,最后一个消息块压缩完后得到的压缩值为整个消息的压缩值。
压缩函数有3轮:
N ...