2020暑期旷视科技经历总结

三个月时间飞逝,暑假余额也所剩无几。很有幸到刘帅成博士带领的旷视科技成都研究院进行学习/实习,几个月来学到了太多,更重要的是见识到深度学习巨大的魅力和潜力,也结识了几位成研院优秀的算法研究员。最后几周花一些时间总结、吸收、实践一下之前收获的机器学习、深度学习相关知识。

5月28号,以一个稍有一定算法基础,几乎毫无工程能力的小白来到天府软件园C区。在李海鹏师兄的推荐下花了两三周自学Andrew Ng的机器学习课程前七周的内容。这部分主要覆盖了机器学习的线代基础、逻辑回归、正则化、朴素神经网络(手推了一次后向传播)、验证集,也了解到支持向量机(Support Vector Machine)和K均值聚类算法(K-means)。

之后从6月底开始的一个月内,主要学习了Andrew Ng的深度学习专项课程前四门(Sequence Models之前)。这部分干货比较多的是第一门神经网络与深度学习以及第四门Convolutional Neural Networks,中间夹着的两门主要讲一些深度学习的技巧比如正则化、调参、错误分析等等(可能以后实践会用到)。干货除了朴素神经网络和卷积神经网络,也介绍了一些比较先进的网络比如Inception网络和残差网络(Resnet)等等,也涉及了Momentum,RMSprop,Adam等优化方法。第四门课程还介绍了目标检测的YOLO算法,虽然目前还不具备自己实现的能力,但对算法的原理有了较深的认识。非常值得一提的一个内容是神经风格迁移(Neural Style Transfer)。这类算法在图像上的应用堪称惊艳!然而在音乐等序列模型上的表现还达不到图像生成的震撼,感觉这方面还可以大有作为,某一天深度学习可能可以实现真正的AI Producer?

在这段时间也第一次手写了部分深度学习的代码(课程包含的编程作业),算是初次上手实践,当训练完成的一些模型的准确率达到99%甚至更高,并对一些图片进行正确地分类时,内心阵阵暗喜,被深度学习的"super power"折服。然而这些简单的实践还是有很大的局限性,毕竟一个Jupyter Notebook里的代码有90%以上是提前写好的,也就是说正确写完这部分代码只能说明对算法的关键概念有了一定了解,但它的工程框架毕竟是别人写好的,不利于培养做深度学习的整体思维。这一点也使我暂时没有继续学习序列模型(只大致了解了一下RNN和LSTM),转而开始尝试自己写模型实现一些简单的分类任务。个人以为这一决定还是比较靠谱,毕竟刘老师后来的原话是“得上手炼丹才行”。

大概从7月底开始,我开始学习使用一些深度学习框架(Keras、PyTorch)。一开始在Keras官方文档的帮助下用ANN和CNN做了了MNIST以及Fashion-MNIST的分类,之后在跟海鹏师兄的交流中了解到TensorFlow静态图不便调试的弊端,开始尝试PyTorch。PyTorch属于包裹程度不太大的框架,需要直接deal with tensors,而且采用动态图,方便了调试。在完成Deeplizard的PyTorch课程后,开始慢慢上手,模仿Inception网络的思想(目前看来没有仿到精髓......)写了一遍Fashion-MNIST。最近在尝试做Kaggle的猫狗分类,边做边开始学自己预处理图片数据。

快三个月时间内学了以上内容,谈不上有多高效,但对一个之前只听过“机器学习”等名词概念的小白来说,可谓收获颇丰。也让自己意识到一些方面的不足,比如数学基础还不够(多变量微积分、概率论两门课在学校都还没上......),以及Python工程能力的欠缺(对Matplotlib等库不熟悉),工程代码习惯也要慢慢培养,不能像搞竞赛一样,一上来变量名就是n,m,x,y等等。

马上开始的新学年,除了ACM,要认认真真上学校的Honors Theory of Probability,抽空打Kaggle,继续学Deep Learning。再次感谢刘老师提供的这个近距离与Megvii成都研究院大佬们接触、学习的机会!感觉在公司就只帮忙采集了一点训练数据...有愧“实习”之名,希望一年后若机会合适,可以再到成研院进项目组,真正意义上去implement something。

一顿操作猛如虎,一看精度0.5?灵材真火八卦炉,砥砺前行炼丹路~

你可能感兴趣的:(Deep,Learning自学笔记)