第一幕
旁白:周启源觉得舍友谢晨皓说得有道理。作为一个队长,自己不能太专制,把所有事情都留给自己干。何况,他觉得,一个小队,实际上,也是成员与成员之间的“开源”。既然自己已成写完第一问,也有了初步的论文作品,也应该开诚布公,和他们讨论一番。
于是,三人约好在某个教室,讨论题目的解法。如果可以,周启源还打算安排任务。
场景:教学楼的某一教室中
周启源将带来了两瓶核桃奶饮料,放在队友许晓胜、曾喜缘的桌子上。
周启源:“这是我们三个人第一次见面哈。”
许晓胜:“好贴心哦,不过,你还是坐中间吧,这样方便一点。”
本来许晓胜坐最右边,曾喜缘坐中间,周启源坐在最里面。这么一说,曾喜缘、周启源两人觉得有理,就彼此对调了座位。
周启源(打开电脑,展示论文):“第一问,根据污水特征,建立出水指标预测模型,已经写完了。不过,我觉得预测的效果,似乎不太好。”
曾喜缘:“你是用什么方法做的呢?”
周启源:“我用的 BP 神经网络。评价指标是 R 方、训练集、测试集按 7:3 划分。你们看, R 方的值才 0.6 那样。”
(注:类似于统计学的一元线性回归,BP 神经网络也是根据输入,预测输出的。R 方是根据实际值、预测值算出来,评价模型的拟合优度指标。越接近于一,则模型预测结果越准确。训练集是用于训练模型的参数,测试集用于评价模型。)
曾喜缘(小声嘀咕):“BP 神经网络年代很久远了。”
许晓胜:“是的...吧?”
周启源:“那有其他改进的意见吗?”
曾喜缘:“我觉得可以用 SVG。”
周启源:“SVG?呃...不好意思,我从来没听过 SVG 耶...”
曾喜缘:“就是那个,emmm,支持...向量...”
周启源心想:支持向量机,简称 SVM。在特定情况下,也叫支持向量机回归,即 SVR。可能是曾喜缘记错了。不过,为了避免团队伤了和气,自己也没必要去纠正他的错误。然而,在使用 BP 神经网络之前,周启源已经尝试了,包括 SVM 在内的许多机器学习模型。可惜,效果都不是很好。
许晓胜:“我们先不说这个了,看看论文吧。”
三人大致浏览了 15 分钟。
周启源(自谦):“你们也看到了,在语言表达上,我不是一个能手......”
许晓胜:“没事呀。有我们呀,我们来改!!”
周启源:“我有一个想法,就是之所以 BP 神经网络效果不好,是否因为数据带有时序性呢?也就是说,当前的污水处理的出水,与上一次污水的入水、出水有关呢?”
许晓胜:“是的...吧?”
曾喜缘目视前方,冷静思考中。
周启源(兴奋地望向曾喜缘):“那么,我可以尝试,用一些时序预测模型,或许会更好哦。”
许晓胜:“是的...吧?”
曾喜缘(手捂着额头):“先不说这个,你数据预处理方面,是怎么做的?”
(注:机器学习中,为了提高模型的精确性,很有必要进行数据的预处理。如将取值范围弄成 0 到 1,即归一化;或者均值,方差弄成 0 和 1,即标准化;当然,还有缺失数据的处理、以及自变量的降维等)
周启源:“因为缺失数据比较少,我就直接删除了。你们觉得,要不要结合整体数据,算出它们的分布,再填补进去?这样做,虽然会让样本增多,但准确性就降下来了。”
许晓胜:“是的...吧?”
周启源:“由于自变量个数太多,我就用 PCA 降了维。”
曾喜缘(小声嘀咕):“PCA 是一个很老旧的方法了...”
周启源:“那有什么更好的方法没?”
曾喜缘不语,把头摆向一边,冷静思考中。
会议似乎是周启源的一言堂,三人继续讨论,“一致”认为第一问应该使用,时序模型进行预测。至于第二问,尚未有商讨结果。现在已经是下午 5 点了,三人都略有疲惫。
曾喜缘:“你想得很好,但我总觉得缺了点什么。”
许晓胜:“是的...吧?可能还需要再改进一下。”
周启源:“嗯,我再试一试,看看时序神经网络的效果怎么样。如果可以,你们写一下第二问吧。我自己也看看,能不能把第二问顺带解决了。”
许晓胜:“那么,时间不早了,我先走了。”(下)
曾喜缘:“我也是,我晚上还由课。晓胜,我们一起去吃饭吧。”(下)
周启源:“嗯,那你们慢走。”
许晓胜、曾喜缘下,只剩周启源一人,独自打代码。约莫 6 点左右,周启源也去饭堂吃饭了。
落幕
第二幕
旁白:周启源已经写好了新的代码。这次,他用了时序神经网络,Elman 神经网络,来解决这个问题。模型正在训练中。趁着这段时间,周启源继续开发他的 Word 转手写体软件。底层功能上,他已经开发得差不多了。现在正在写 GUI 界面的代码。
晚上 9:30 左右,模型训练完毕,只见其在测试集上的 R 方为 0.6。周启源见状崩溃,于是在微信群上吐苦水。
场景:微信群(群名:数模冲冲冲)
周启源:“哭了,我用了时序神经网络模型:Elman 网络,效果还是不太好[哭]”
曾喜缘(秒回):“Adam?”
周启源心想:所谓 Adam,是训练模型的一个算法,并不属于任何机器学习、或者神经网络模型。我在训练 Elman 网络的时候,用的就是 Adam...可能曾喜缘并不懂这个。不过,现在还是不要怼他的好,毕竟和为贵,我还是装作不懂好了。让他自己去学学,这样对彼此都好。
周启源:“不懂耶[笑哭]”
曾喜缘:“Ada_Nesterov?”
周启源心想:这又是一个训练算法!哎,我无力辩解,装不懂吧...
周启源:“不懂[笑哭]”
曾喜缘:“那好,我试试”
一小时后...
曾喜缘:“我今天恐怕要挂在 SVR 上了。好难...”
许晓胜:“辛苦了,加油[亲吻]”
没过多久...
周启源:“我想到了。是不是 Elman 网络的反馈步长为一。也就是说,Elman 网络只能记住上一次,而不能记住上上一次,所以导致效果不好呢。”
周启源:“我打算改用回馈步长可以为 n 的 NARX 网络来写,需要全改吗?”
曾喜缘:“冲冲冲!”
周启源;“好,我全都改!”
许晓胜:“冲冲冲[握拳],比赛结束后,我请你们吃海底捞”(下)
无人回答...
落幕