在很久之前,看过粒子群算法等相关的以概率收敛的优化算法。当时那个破教程写的又臭又长,丝毫没看懂。今日考试重温了一下,原来是这么简单。八点半考完的,闲的没事于是手动实现了粒子群算法。之后考虑在本文中添加遗传算法、模拟退火这两个主流的碰运气的优化算法。
这类算法被优化课程的老师嘲讽了一番,缺乏严格的推导证明和参数的解释,大多是以科学的方法去碰运气,在解空间内进行搜索。
在很久之前,看过粒子群算法等相关的以概率收敛的优化算法。当时那个破教程写的又臭又长,丝毫没看懂。今日考试重温了一下,原来是这么简单。八点半考完的,闲的没事于是手动实现了粒子群算法。之后考虑在本文中添加遗传算法、模拟退火这两个主流的碰运气的优化算法。
这类算法被优化课程的老师嘲讽了一番,缺乏严格的推导证明和参数的解释,大多是以科学的方法去碰运气,在解空间内进行搜索。
自从学了『工程优化』这门课程,也意识到优化是一潭很深的水。只是简单的将几个目标线性加权优化,或优化完一个目标在优化另一个目标是很愚蠢的做法,亲身试验后的确发现这是最差的解法,解会出现不收敛、随机性、震荡等各种情况。如果在神经网络中恰好遇到了多任务学习的问题,且两个问题相互制约,那么可以考虑将多任务学习转换为多目标优化,融合成最终的一个loss函数,这会比线性加权好上很多。本论文发表在2018年的NIPS上,个人认为具有借鉴意义和开创性工作,所以记录于此。
这是我第一次开发如此大规模的程序,论文的作者也提供了算法的C语言还是C++版本的软件来?我记不清了。但对于我们来说,Metis只是图划分的上游任务,且不需要完整的Metis算法,只是需要它融合图的一部分,而不需要它的图划分阶段。下游任务必须要用python来处理,考虑到数据结构和数据类型对接的方便性,因此我们考虑使用python来复现Metis算法。还有一点,使用别人的软件,万一结果不好怎么办?万一自己想改算法怎么办?现存的库都是直接返回划分结果,但我们只想融合,自己开发还是灵活。
学业繁忙,作业真多。好久没来写博客了,来水一篇。注:本文没有任何引战的意思,不要在评论区对别人强行安利『自己喜欢,自己认为好,但别人可能根本不需要』的东西,没意思。每个人的想法都不一样。
windows: 只保留word和excel这类我要向世界妥协的软件;ubuntu:入手的第一款linux系统,活在虚拟机里,装软件遇到依赖困难好感全无,之后不了了之;manjaro:入手的第二款linux系统,活在硬盘上。配合gnome桌面环境奔腾了一年。作为主力开发系统,包含了所有的开发工具。再一次滚动更新中坏掉,懒的修了,拿出了关键文件,将系统格掉;Arch:入手的第三款linux系统,活在硬盘上。正在作为主力系统的路上,最近课多,没折腾。我自己写的西安电子科技大学实验报告的LaTeX模板,只是按照老师的要求添加了基本元素,非官方,非官方,非官方。如果老师有明确要求请勿使用此模板。接下来简单介绍下如何使用模板。
在用神经网络的时候,权重的更新方向一直是沿着负梯度进行更新,可有想过为什么要沿着梯度进行更新吗?或者说,为什么负梯度方向就是函数下降最快的方向呢?
湿云如梦雨如尘。之前都没注意到博客建立已经两周年了,当时建立博客也就是想着玩一玩,没想到一路坚持下来了,也越玩越深,这之间也认识了很多很厉害的朋友。折腾过很多主题和样式,以至于我都稍微懂点前端设计了。