算法工程师之路

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_27935693/article/details/80657337

认识算法

        进入算法世界要从2015年开始研究生生活说起。2015年3月,我顺利的考上了某211/985院校的硕士研究生,于是提前的进入学校跟着导师一起学习。

        在还不知道为什么的情况下,导师让我学习《数据结构》和《数据挖掘》,这是我第一次接触算法相关,也是第一次认识算法。由于是刚进入研究生生活,一个阶段的刚开始总是热情洋溢的,因此很认真的看《数据结构》和《数据挖掘》。由于本科学习过《c++》等相关课程,因此《数据结构》看了一遍大致能理解。但是《数据挖掘》完全没有理解,但是在没有理解的情况下我也是看了两遍,有了大致的影响。

        正式开始研究自己的课题,一开始拟定的课题是故障检测与异常识别,因此各种查看文献搜索关于故障检测和异常识别的方法,并做了相关总结。

        由于神经网络的火热,无意中就锁定了神经网络。可能是自己的懒惰吧,最后选择了神经网络中最简单的极限学习机。

        就这样,我就开始了研究极限学习机之旅。

慢慢入门

        依然是以查看文献为主,原理、方法、思想,其实质上也是机器学习的一种。有一次无意间看到导师看的一本书《机器学习》(西瓜皮的那本),于是我就问导师借来看了,从线性回归到集成学习,基本的思想和流程的都看过一遍。另外,由于同学的影响和自己的反复思考在大家都在学习c++的时候,我选择了学习简单的编程语言Python,看了一遍廖雪峰关于Python的博客,基本的语法就有了一个大致的了解,不懂的在用的时候查询。就这样,以Python为语言工具,慢慢的进入算法。

        由于这些算法中,涉及到了优化的问题,因此自己有通过看书和看博客学习了遗传优化算法和随机优化算法,其实到现在我还是不是很明白各种算法的好处到底在哪里,只是记住了。        

        进而,慢慢的知道了机器学习算法中的一些问题和小策略,比如过拟合、泛化性能不佳、陷入局部最优等,常常使用加正则化项、改变优化方法、集成策略等等方法。

        通过看书《机器学习》、《统计学方法》、《机器学习实战》,《数据挖掘》后慢慢的开始入门。无意间看到一个阿里天池的大数据比赛,于是就参加了,那是的我其实在实践上还是一无所知的。但是在一个群里面找到了一个战友,这个战友教会我很多东西,包括整个比赛的过程、相互讨论偷偷向他学习、他推荐我看了关于机器学习。

        就这样我就一直查看关于机器学习的书籍、博客、公开课、视频。

进一步

        到了研二下学期的时候开始找实习工作了,那会锁定的是机器学习,其实整个过程不是很顺利。找到的都是一些小公司的机器学习工程师。面试欢聚时代的时候,技术面很差劲,很多东西对现在的我来说只是基础,但是那会的我却什么都不知道,由于种种原因,我在备胎池里被捞了出来,使我有机会接触到深度学习,并进行实践。

        在欢聚时代实习的两个多月里,我的进步可以抵得上我一年的学习了。那会我就意识到只有实践才能真正成长,再加上周围团队的支持,进步是飞快的。因此,非常感谢那段时间的人和事,是我的启蒙。。。。

        即使是进步了,到最终还是无缘,没有能留下来。我也看到了自身的不足之处,但是就算弥补也是晚了。

进入秋招

        有了两个多月的实习经验,秋招的我更是目标明确。但仍然存在实践过少的问题,各个公司一一惨败,幸运的是还是有offer的,还是有机会让我积攒更多经验,然后不断进步的。。。

        

现在依然只是菜鸟级别,非常期待进入公司后的进一步蜕变。。。

敬请期待!!!

----------------------------------------------------------更于2018年9月15日---------------------------------------------

       正式参加工作快三个月了,因为之前的理论基础,加上项目的事件过程,是我成长的飞快。

       这三个月主要做的是GAN算法的应用。

       首先,因为接到的项目任务是GAN算法的研究,于是抽了一周的时间就GAN相关的论文过了一遍,大概弄清楚了其理论基础,算法流程,应用,及其优点和难点。(在这里我不详细叙述,很多博客都能找得到。后面会有相关的整理的)。了解了基本算法之后,就开始想我们要做什么可以放在现有公司的产品上呢。经过讨论之后,我们决定做一个人脸老化算法,这个算法是根据现有的论文自己来实现的,由于是第一次实现GAN,训练过程遇到过很多坑,幸运的是都是能够解决的坑。训练模型/遇到问题/解决问题,大概经历了两个月的时间。但结果不尽人意,可能是数据集的有限,导致训练的效果总是和预想的差很远。即使是这样,这个过程远比我想象的收获到的会更多,学到了很多东西(其中最珍贵的就是遇到问题时,解决问题的方法与技巧)。

        接着,在这个基础上,我又开始做一个更换性别的模型,有了之前的经验之后,这个就简单很多了,差不多一个星期就有初步结果了。遇到的问题也很快就能解决了。

         后面又想做一个换天空的模型,需要训练一个抠天空的模型,使用现成的数据集和deeplab语义分割模型,差不多训练了一晚上就可以用了。

        在这过程中,项目中相关问题和算法,我都是找了很多论文来参考,学习了很多延申的知识,充实了很多。

猜你喜欢

转载自blog.csdn.net/sinat_27935693/article/details/80657337