聚书轩hbcjlp.com

繁体版 简体版
聚书轩 > 都市小说 > 重生学神有系统 > 第268章 最终版本

第268章 最终版本(1 / 2)

 推荐阅读: 重生之倾城药后 猎妻计划:老婆,复婚吧! 还你余生不负 未来聊天群 霸道总裁:女人,请负责 我不是克苏鲁 地球人都在为我出谋划策 农门弃妇:带着萌娃好种田 超级纨绔系统 早安,宝贝
最新网址:hbcjlp.com

所谓集成学习,就是训练多个机器学习模型,然后组合在一起,让它们协调工作。

俗话说,人多力量大,机器学习算法也是一样。

江寒经过一番认真的设计,确定了一个新的网络拓扑结构。

他从排名4~15的模型里,精心选择了7种,再加上“唯一优胜者”、“黑马中等生”、“书呆子”,一共10个神经网络。

将它们放在一起,简单地并联起来,组成了一个整体,然后设计了一个投票程序。

一张手写数字的图片输入网络后,会同时传递给10个神经网络模型,让它们各自进行计算,输出自己的预测结果。

如果大家的判断完全一致,那自然没什么问题。

但如果大家意见相左,就会启动投票程序,根据票数来决定最终的输出。

票数并不是平均分配的,在验证集上表现更好的模型,手里的选票也应该更多。

所以,理所当然的,“唯一优胜者”拥有最多的票数。

如果他全票投给自己,那么一般来说,他的意见就基本上接近正解,理应得到采纳。

这种情况下,其他模型就算有不同意见,而且全都统一口径,也不应该推翻优胜者的判断。

这就好比领导班子开会,不能光讲民主,还得适当集中……

但很多时候,优胜者对自己的判断,也并不是十分有把握,这个时候,其他“学生”给出的答案,就很有参考意义了。

如果其他人中,有人认为答案是另一个,并得到了多数人的支持,那么就会对优胜者的答案进行“弹劾”。

如果优胜者投给自己的票数,并不足以驳回大家的“弹劾”,那么就会少数服从多数,将最后输出修改为受到更多人认同的。

举例来说,刚才的那个数字5。

优胜者判断有60%的概率是6,37%的概率是5,2%的可能性是其他数字,这个时候,它就会输出错误的答案:6。

但如果在其他“学生”中,有人经过计算,认为答案应该是5,与优胜者判断不一致,就会启动投票程序。

由于优胜者判断只有60%的概率是数字6,折算后,等于它只肯为自己的答案投6票。

这个时候,只要其他9个模型的票数,加一起超过6票,即可弹劾成功。

如果优胜者对自己的判断,有90%以上的把握,那么其他9个人加起来,也不足以推翻他的结论。

意思就是这么个意思,具体的折算比例,当然不会这么简单。

还需要十分细致、耐心地进行调整,以使整个模型的输出,更加接近最优解。

当然,这种投票式的做法,无疑也有极小极小的可能性,产生不那么美好的结果。

比如,优胜者本来的判断明明是正确的,只是对自己信心不够充足,就有可能被其他模型给“纠正”成错误的。

但这种情况发生的几率,远远小于优胜者误判的几率。

所以,集成学习的总体性能,仍然领先于每一个单独的神经网络。

这种集成学习的思想,无疑是比较先进的,但实现起来难度也相当大。

尤其是那个投票程序,相当耗费脑细胞。

江寒全力开动脑力,也足足用了四个多小时,才将集成学习网络打造成功。

时间主要浪费在编写投票程序,以及调整折算比例上了。

至于10个子模块,已经全部训练完毕,得到了权重数据,就无需再耗费时间,重新进行训练了。

也幸亏如此,否则就没办法及时把最终程序,提交到KAGGLE官网上去了。

随后,江寒在最终版本的集成网络上,重新跑了一遍验证集。

结果十分喜人,识别准确率达到了惊人的99.62%。

这个成绩已经十分令人满意。

接下来,江寒就按照官网发布的说明,对自己的代码进行了一点处理。

主要是去掉一些调试语句,再将数据文件的接口,改成主办方要求的方式。

这样,官方在测试时,只需将测试用的数据文件,放入指定的文件夹里,而无需修改任何代码。

也许是对业余爱好者们的表现,并没有特别大的期待?

反正在这次比赛中,官方并没有要求公开源代码。

所以江寒也就没准备提供源代码。

他将自己的程序,用pyinstall编译成了可执行文件。

并使用了一点小技巧,将训练好的10个子网络的权重数据,也一起打包进了exe文件里。

章节错误,点此举报(免注册),举报后维护人员会在两分钟内校正章节内容,请耐心等待,并刷新页面。
『加入书签,方便阅读』