开篇
简介
本人是个搞机器学习和深度学习的菜鸟,啥都懂些!当今在深度学习横行的时代,越来约觉得各类深度学习(强化学习、元学习、迁移学习、图表征学习、对抗学习、multi-view/multi-task/multi-model/multi-label)算法都在讲故事,在工业界一顿操作猛如虎,一看效果0.5(可能还不到),最后包装成一个技术创新的算法。原理啥都不懂,搞一些奇奇怪怪的网络结构,用几个数据集跑下看下效果,提升的时候根本不讲特征工程的作用。各类顶会上灌水的文章一大堆,东拼西凑搞些A模型+B模型=C模型,最后画一个好看的网络图。
吐槽归吐槽,吐槽不代表讨厌算法,因为这种事情本人也做过。对于算法工程师而言,技术创新是必须的,就算提升很少,提出了技术创新也是很好的,主要吐槽一些夸大吹嘘的风气。放在学术界,这种风气可能并不是很大问题,找几个算法适用的数据集跑跑拿到实验效果,找些数据挖掘类理论性证明没有那么高的顶会(水会),如现在的KDD(已经沦落了)。本人一直觉得,对工业界而言(只是工业界,不喜勿喷!),真正有用的算法是这2大类:
1.全新算法。提出了一种创新的思路,创新的领域的方法,这种算法不管说工业界能不能直接用,比如很难大规模使用,但是观点insight啥的很make sense。本人最崇拜的就是LDA的开篇论文,各种理论知识,一开始也很难大规模,后面有学者前赴后继搞出了PLDA等等。当然LDA算法确实是顶尖牛逼的。
2.微创新但有用的算法。在别人的算法上进行创新,稍加修改也好,但是如果真正能够用并且有不错的提升效果也是很牛逼的。毕竟大家都是普通人,不可能每个人都是理论大家,搞出全新的理论算法。
工作几年,越来越觉得工业界的算法工程师要注重这3大能力:
1.特征工程。现在的特征工程不仅仅是选特征,也包含了特征对应的模型工程。工业界最提效的其实还是特征,但现在的特征的使用也对应了模型,如常用的序列特征,对用的序列模型,rnn, lstm, transformer等。特征工程做的好,算法的效果90%(甚至不止)都拿到了,最后的最多10%是靠算法本身带来的。
2.数学模型。本人不是学数学专业出身,但对数学有着无比的热情。数学模型的简洁,不跟你讲一堆废话,简单的几个符号就可以说明很多事情。世界上最伟大的公式之一E=MC2,多简洁,就是一个线性表达式,描述了能量和质量的关系。为啥是之一,欧拉公式、三角公式都是伟大的公式。当然对于算法工程师来说,不用那么懂理论,还是需要有扎实的数学功底,能够用数学解决实际问题。
3.业务能力。当然这偏向于业务部门的算法工程师。单纯做个算法模型是没有用的,要用算法去解决业务问题才能带来真正的价值。当然,业务能力是需要积累的,也依赖于各种商,多想多思考,尝试去锻炼自己就行。
最后,有2句话勉励自己前行,虽然我现在特别讨厌各种鸡汤,也不会找各种奋斗语句鸡励自己,但是有些实在的话还是不错的。
1.优秀是一种习惯。
2.兴趣是最好的老师。

浙公网安备 33010602011771号