来自一位搞算法的本科生的学习感想

背景

首先,我写这一篇文章针对是在本科生阶段来写的,本人处于在大三学习阶段,目前学习方向是图像处理——主要还是以机器学习/深度学习算法解决问题。我想现在很多人都会叫你去转行,不要去搞算法了,现在搞算法的已经是寒冬了,很多搞算法都转行为开发了。这个时候我想你心里的决定已经摇摇不定了。

新的想法改变

首先,我先让你们考虑几个问题再回答你的想法

  1. 你为何要搞算法? 为了追逐前浪吗;
  2. 你对搞算法还兴趣吗 如果只是当时的一个冲动的决定,现在又后悔了,那我只能被你们;
    在这里插入图片描述
  3. 你对算法有怎么样的理解 我复现了别人的论文就结束了这一个知识点的掌握了?
  4. 你有没有精读过国际大牛的论文 这个要的吗?
  5. 算法只需要学好理论就行吗 我看到好多人都是这样的?
  6. 搞算法的要不要读研 这个我回答一下:强力推荐
  7. 是不是学习玩深度学习就可以了? 我的回答是:
    在这里插入图片描述

举例本人例子

本人曾在大二时开始搞人脸识别算法,没错在外行的听起来就像是很厉害的样子,可现实呢还是比较残酷点的。
在这里插入图片描述
从大二暑假开始就忙于人脸识别的各自算法,在大三的时候用了神经网络模型弄得效果还行,不过在这里我肯定说比起谷歌,阿里简直是菜鸟。也有人说用深度学习搞人脸识别很容易啊,随便搭建个模型就OK了,那我想请问一下,目前有多少个大厂能够推向市场——阿里,Face++,百度等,还有吗?我的回答是没有,因为你是很难很难百分之百复现出来大佬论文模型准确度。首先数据问题,数据处理,硬件配置问题,各种环境条件不一样。还有就是你的识别率在实际测试的情况下真的能行吗?
对于我来说,你搞人脸识别算法,只是单单实现了人脸识别神经网络就可以了吗?答案是no?首先你要考虑的问题是人脸识别算法有很多,为什么要选择神经网络呢?而不是支持向量机、PCA和CV呢?假设上面要求你在单片机里/嵌入式里实现,你用神经网络模型能做出来吗?你的模型有多大,单片机计算能力能不能达到。?这个时候你会说这是应用的问题,我只需要搞好模型就可以了。那你想多了,在学生阶段是为算法而算法,但是在工作,比赛中是为开发而算法。在学生阶段你可以吹你对哪些什么算法的研究怎么高大上都可以,但是你以后搞实验/工作不行,既然你说得那么厉害,那做出来啊,你做不出来就不要说。
我在实现人脸识别算法时首先了解它的相关算法——支持向量机、PCA、cv里面的和深度学习。了解目前人脸识别的难点问题。首先在做出应用时,你要面对的是实际情况,光照强度不一的影响,人脸姿态的问题,微表情的问题,用传统算法是很难的,这个时候采取神经网络,可以较好的解决这个问题,然后是怎么样去选择什么样的网络模型,传统CNN分类?
no,no,no,no,传统CNN不能够很好的解决增加类别分类问题需重新训练,这个时候你需要阅读大量地论文了。
本人在一个暑假的时候尝试了多种方法,最终还是选取神经网络——FaceNet,这个模型结构就很好的解决这个问题了,将人脸图像映射到128维的欧几里得空间里,利用欧氏距离来判断是否同一个人。这个FaceNet是没有官方公开的源码,所以就算你想复现是较难的,而且我使用的是Pytorch,这个时候你会说为什么不一开始使用这个方法呢?答案是因为我一开始是想在树莓派中使用的,树莓派对深度学习神经网络模型有着硬性的要求,要是你的模型几百兆大小,那你的树莓派加载这个模型肯定不行,运算能力太菜了。所以还是从简单的算法了解做起。
不管怎么样,现在搞算法的大都数都去追着人工智能了,不是不行而是你不要忘了老本啊。
最后,
在这里插入图片描述
思考一下上面的七个问题,有什么想法的都可以留言一下。

发布了7 篇原创文章 · 获赞 14 · 访问量 3212

猜你喜欢

转载自blog.csdn.net/weixin_41673576/article/details/103789229