思考

    xiaoxiao2022-07-14  149

          2019年5月28号,觉得该把这段时间做一下总结了, 大概包括心理变化方面、找工作方面吧, 这个时候师兄师姐在找工作,每天都来去匆忙,然而去年的我还在佛系搞课题,根本没想到自己找工作的时候找什么工作,找专业的还是非专业的,找什么岗位,只是一心看论文,虽然什么东西也研究不出来,什么结果也得不到,整天用java,其实到现在java用的也不怎么样。

           研究生期间很幸运的拥有一个实力很强的师兄,在项目方面有带一下我。研一刚开始的时候入门数字信号处理。研一中期开始学图像相关的东西,老师说研究图像的“相位信息”,当时真的是无比懵懵哒,查“相位”,一查全都是物理方面的相位,最后才发现是图像傅里叶变换后系数的相位。傅里叶变换之前也没学过,经常有人说傅里叶变换就是在神的角度看你的问题,是啊,把时域的东西变到频域来看,真的不知道傅里叶是怎么发现这个频域的。傅里叶变换刚理解完开始理解小波变换,解决傅里叶无法将时频域连接起来的问题,可以分析每时每刻对应的频率,对一个标准的母小波进行各种伸缩变换来适应不同频率的信号,对应到图像中就是,边缘、角点、纹理等细节信息就是高频信息,也就是时域的灰度变化快的地方,过度区间就是低频信息,也就是灰度变化很缓慢的地方,小波变换可以适应与不同频率信号的分析。对绝世美女Lena图进行了基本的小波分析之后就到了双树复小波,当时也是理解老难了,保留一个低频图像,六个不同方向的高频信号,然后建模分析,做实验,还自己写了非下采样双树复小波,打算用来做边缘检测结果的融合,反正是前前后后一直在好好学图像,一直在做实验,用实验来验证已知的理论,还挺有意思的,重构啊,边缘检测啊,阈值设定啊什么的,真真切切的被老师看着手推了一篇经典边缘检测论文的公式,对图像信号的提取,边缘信号的形态都有了比较实际的认识,虽然后来也没有再做下去边缘检测了,但是真的很感谢老师带给我的思想和学东西的方式。

           转眼就慌慌忙忙过完了研一,来到了研二,研二第一学期末也就是十二月底是要开题的,但也就在十月中旬的时候老师开始让我做图像分类,又是一脸懵啊,还是自己手动搭建多级网络框架,哈哈哈,开始了。读了很多论文,不过老师说的很对,你连一篇真真正正读懂的论文都没有,要不然你早就找到自己的点了,读论文很飘,经常讨论的时候被问到很多没考虑到的点,其实很多东西是不会的,也有查的,但是真的查不到,数学知识(线代、随机过程、概率论等等)和数学思想并没有真正的理解,查到一分,理解一分,还是get不到论文中的思想,其实我也在慢慢钻进去。然后写开题报告,是自然语言处理相关的,做保险智能问答聊天人,后来老师说先写一部分吧,然后就费劲的重新写了一篇两万多字的开题报告。你要解决的问题是什么,传统的方法有什么缺点,CNN有什么特点,那么你建立的这个轻量级散射多级网络有什么优点,也就是不用海量的样本,不用很长的训练时间而是使用预定义的滤波器作为卷积核来提取信号,还有一个就是能在数学上分析为什么要利用多级结构。嗯,思路无比清晰了,ppt改的比较有条理,开题前把ppt发给负责收集的同学,开题的时候还比较顺利,老师没问很深的问题。

           记得去年有一次和老师聊天,老师说问我以后想干哪方面的工作,我说想干一个非本专业的工作,不用费脑子,老师说为什么咱们学校很多研究生出去干专业的工作会很吃力会很难跟上公司的节奏,就是因为从本科开始就没有形成学习问题和思考问题的方式,只会被动的接受一些理论或结果,而从来不问为什么,从根本上就没有理解,只是知道一个概念而已,这在以后是很害怕的,因为各行各业发展到现在,很多方面已经很成熟了,而想要创新必定是在细节上的,你们连为什么都不知道,更不用说细节了,所以研究生期间要培养的是你们的思维方式,并不是要发多少论文,得到多少成果,虽然能有这些是更好的,但这不是终极目标,终极目标是让你们知道该怎么学习,该怎么搞研究,该怎么思考,该多问几个为什么。从老师说这些话到今天应该已经过去了一年了吧,但是我还是记得很清楚,虽然能力有限,但是思维要开阔,思维决定了你能到的地方,如果你思维都到不了,那能力更到不了。

           开完题了,没压力了,也不想做课题了,虽然啥也没做出来,然后就有闲时间思考找工作的事情了。其实我真的不想思考找什么工作,专业的还是非专业的,本地的还是外地的,互联网还是非互联网的,就想着一心搞好课题,发论文,拿奖学金。但是那个时候Y整天跟我探讨这个问题,搞得我整天不高兴,可能就是不想面对压力吧,不想考虑未来,就想过安逸的生活。可是他就和我说,以前一个师兄发了SCI,拿了两万块的奖金,说这个并不是说我没有发论文我厉害什么的,确实是因为没有能力,发不了,还是很佩服发论文的大牛的。后来我想,发不了论文,那总得找工作,既然迟早得面对,那就好吧,好好探讨一下吧。

           首先分析要找什么工作,也就是2018年11月份,当时还不太了解这个行业,在一个大数据公司做算法实习,不行,觉得自己编程不擅长,到时候肯定不长;软测吧,虽然学历越高工资越高,但是连大专的也能和你竞争;所以,还是找算法的工作吧,算法又分的很多,机器学习的,深度学习的,图像的,语音的,文本的,大数据的,算了,考虑的太多了,关键还考虑不到点上,那就开始学习吧。经过分析之后,觉得基本的东西找工作肯定是要用的,所以经过讨论之后,觉得就学这些东西吧:python+Tensorflow/caffe等框架+机器学习算法+深度学习模型。

           那段时间每天就两件事,一是在菜鸟教学上面学python,二是学并敲代码《Tensorflow:实战GoogLeNet》。开始真的很难,知道python是一门语言,但是他和matlab不一样,python自己的IDE功能,嗯,好像用的人比较少,然后Y就说要用pycharm,好吧,pycharm是一个高级IDE,工业上用的比较多,好不容易理解了pycharm是用来干嘛的,又说要装很多库,幸好发现Anaconda好像比较流行,没有一个个库踩坑安装,装好了,没有不学习的理由了。开始学python,学Tensorflow,每天就在上看各位高人是怎么学的,收藏了一大堆网页,也看了很多别人的学习路程,看着看着一天就过去了,好像也没实质性的理解某个算法或者模型。1月中旬到一月底,每天就是学python的常用库,Numpy、matplotlib、pandas什么的,其实说实话,单一的学这些太容易忘了,还是得用实际的项目来加深记忆,二月初的时候就是看Tensorflow的书,把书里边的内容整理到博客上,因为的习惯在看书的时候整理出来笔记,要不然总感觉看完了跟没看一样,啥都记不住,敲敲程序,看看内容,就快到过年了,就回家啦。

           开学三月份了好像,依然无心做课题,还是学东西比较简单,研究东西太难了。同时开始看《机器学习实战》这本书,也是和西瓜书齐名的机器学习入门好书,讲的很细很全面,同样在博客做了总结,跑了代码,学起来真的是吃力啊,作为一个计算机专业的,也是很艰难了。把书看完了,也总结完了,也跑代码了,感觉自己好像对机器学习比较懂了,可以应付面试了。

           五月份的时候可以开始找实习了,其实本身不是想找实习,只是想看看面试到底是怎么样的,然后在四月中的时候就接到了两三个电话面试,首先会问项目,自己的项目一定要理解,而且要有和应聘的岗位有较大关系的项目,这样会比较有优势,问我最多的项目就是“算法基础,公式推导”,简单介绍了后面试官就会问,样本怎么采集的啊,样本量是多少啊什么的,问完项目后回问些基本的参数初始化或者基础算法的问题,其中一个公司是阿里,面试官问了解机器学习算法吗,我说了解,然后让我介绍几个自己掌握的比较好的,还讲了我发明的两个专利,不过他问的太细了,导致我紧张到,不敢说出实验结果。最后挂了。另一个是朋友介绍的,打电话第一次在睡觉,第二次在忙,当时一下懵了,就开始说决策树,还没说两句,面试官问随机森林知道吗,不知道,Xgboost知道吗,不知道,那你介绍一下卷积神经网络的经典模型吧,GoogLeNet知道吗,听过,那你能介绍一下他的框架和创新点吗,不好意思我不太了解,blabla,那个决策树除了,分类,回归还有什么?我愣了,还有什么,也没回答上来,后来想了一下,应该是特征工程。那你还有什么问题想要问的吗,咱们公司招人比较看重什么方面,还是比较看重基础知识吧,然后就没有然后了。

           面试之后我意识到其实我只是自以为自己掌握了那些算法,实际上只是停留在能看懂书的层面而已,自己并没有很理解的情况下,是没有办法再面试中很好的表达给面试官的。看了一遍又一遍机器学习实战,但还是觉得很难走进机器学习的世界。每天有空刷刷题库,还在考研时候学过数据结构和刷leetcode,目前知识也是吃老本的,没怎么认真学习过。

           五月份左右,基本上没学习,发生了很多事情,好的不好的,可控的不可控的,反正是很凌乱,年轻,冷静,幼稚。

           六月的时候,思前想后打算去实习,自己的课题做不下去,也没有思路,一直在拖也不是办法,考公准备太多,也不行,没那个心静下来复习 ,去实习也是学习,我想达到的理想效果是,能在做的项目中得到启发,迁移到我的项目中,最坏想法,如果不行,要重新开题 ,趁早,还能有选择机会,不然,真怕明年毕业问题,对那些算法,我的一般的思考方法,都有了很串联的理解,串联就是其实机器学习要解决的东西是一样的,只是你构建不同的损失函数,利用不同的优化方法,选择适应你项目的算法,来实现对未知东西的预测。一步步理解了线性回归和逻辑回归的关系,从逻辑回归到决策树,决策树真的是一个大树啊,包含的知识点太多了,决策树和boosting、bagging的结合,回归树和分类树的不同,集成学习的不同方法,Adaboost、Random forest、Xgboost,不同的学习基,参数更新的方法,等等等太多了。还有一大经典手推算法,当然是SVM了,这个算法说实话是真的难懂,在之前我看过五六遍吧,但真的还是完全理不通思路,可能真的是脑子不行,又查了些写的比较好的博客,这才理清,然后试着手推,其实也就是那几个关键点,不过是理解起来比较费劲而已。,总之就是使得自己对那些概念的理解更清楚了,不像以前真的就是只知道概念,知道过拟合是什么,但并没有对这个概念形成自己的理解。我觉得学习的过程还是要多问自己为什么,为什么这个曲线是这个样子,为什么用交叉熵损失,为什么交叉熵可以衡量两个分布的距离,等等等。

         八月中应该开始投简历了,不管如何,都要全心备考。

           最后还是象征性的总结一下吧,秋招找算法岗位,掌握,真的是掌握机器学习算法,深度学习模型,找一个比较细的方向下手,不要图像、语言、文本、强化什么的都想懂,那除非是大牛,一般的,比如说我,反正是肯定达不到的,所以要确定目标,其次是项目,一定要有相关的项目,哪怕你现在没有,那也要在网上或者找人拿到比较好的项目,一般情况下面试官会让你介绍一个你觉得你做的比较好的的项目,那这个时候你有没有一个出彩的项目就很重要了,哦还有,一般还会让你选择一个掌握的比较好的算法,用自己的话介绍一遍,所以不管哪个方面,总要有拿的出嘴的算法,然后比较重要的一个方面也是我跌的最惨的一个方面就是数据结构,找算法也一定会问数据结构的。珍惜每一次笔试和面试的机会,后面会越来越皮,但是你真的不知道哪一次真的可能就成功了,所以要好好珍惜,好好准备,好好学习,感谢遇到的所有人。

           

    最新回复(0)