请收好这份机器学习保姆级学习路线
前言
大家好,我系乜都识一D嘅鬼仔。最近可能是到了秋招季,很多同学私信鬼仔:如何系统地准备算法岗的面试?这其实是一个比较宏大的命题,鬼仔之前简单整理过几篇算法岗的高频知识点和面试题:但鬼仔的这几篇笔记太零散了,想到哪写到哪,不利于同学们系统性地进行学习和准备算法岗的知识。在算法岗面试中,常常会考察机器学习和深度学习里面的一些基础知识,这部分可能会问的比较广,需要同学们系统地学习和掌握。
鬼仔在大学期间(本科+研究生)看了十几本有关机器学习和深度学习的书籍,也整理了不少笔记。好记性不如烂笔头,看书很重要,总结和整理也同样重要。有的问题你可能理解了,但是在实际面试中表达出来没那么专业,或者错漏一些细节,因此而被扣分就太可惜了。
文章来源公众号:码农鬼仔,专注分享算法知识|面试技巧|职场感悟|内推信息。
机器学习保姆级学习路线
一、机器学习理论知识
理论知识主要分为了三个章节:经典统计学习、深度学习和强化学习。每个章节力求由浅入深,关注重要知识点,以及对应的高频面试题。
Part1:经典统计学习
经典统计学习包括监督学习、非监督学习和弱监督学习三大类,这章主要会介绍整个机器学习的一些基础概念,以及一系列传统的机器学习算法。很多目标算法岗的同学可能会对这一部分有所疏漏,觉得这些算法都很简单,而且老掉牙了,不屑一顾;也有一些非科班的同学是直接跳过经典的统计学习,直接学的深度学习,最后有些人还确实拿到了算法岗offer。
但鬼仔认为这是一种不正确的学习路线,统计学习就像是机器学习大厦的基石,深度学习和强化学习则属于上层建筑。很多算法岗的面试中,面试官都会特意考察这部分的内容,当然如果你的简历足够优秀,发表了一些顶会论文,面试可能就只会问论文创新点。但出来混,迟早要还的。在实际工作中,会面对各种复杂非结构化的现实数据,这个时候往往就会考验你的算法功底,只会深度学习并不能完全解决问题。
Part2:深度学习
深度学习作为机器学习的一个重要分支,有着更加强大的泛化能力。在大数据时代,传统机器学习算法学习能力有限,数据量的增加并不能持续增加学到的知识总量,而深度学习系统可以通过更多的训练数据来提升性能,即“可获得更多经验”。
本章节主要介绍各种网络结构,包括CNN,RNN,GAN,GNN和transformer,接着再介绍常用的网络优化及正则化方法,最后再介绍迁移学习,这里会涉及一些大规模的预训练模型和蒸馏方法。
Part3:强化学习
强化学习同样是机器学习大家族中的一大类,AlphaGo击败中国世界围棋冠军柯洁让AI名声大噪,其背后原理就是强化学习。这个章节主要介绍强化学习常用的求解方法和经典的模型算法,最后阐述其实际的应用场景,即为什么需要强化学习。
二、机器学习实践应用
计算机是实践的科学,当我们掌握了机器学习的理论知识后,就要想办法把它应用到实际场景中解决真实的问题。
这份学习路线中的第二大部分——机器学习实践应用,鬼仔其实还没有特别想清楚具体应该怎么写,因为这一部分写起来难度很大,你需要了解nlp,cv,data mining等多个领域。不过鬼仔恰好都接触过这几个领域,虽算不上精通,但还是可以尽力写个入门级的教程。这得益于鬼仔研究生期间(偷偷)去过多家公司实习,现在又在做多模态的工作,涉及到的技术会比较宽泛。
鬼仔初步规划会将机器学习实践应用划分为6个部分,分别是:
1. 最实用的数据挖掘领域:主要针对表格型数据的挖掘:问题建模、探索性数据分析、特征工程、模型选择和评估、模型融合2. 最赚钱的搜广推领域:语意匹配、用户画像、点击率预测、推荐召回、推荐排序
3. nlp文本领域:文本分类、文本匹配、序列标注、文本生成、语言模型
4. cv视觉领域:图像分类、目标检测、场景文字识别、视频分类
5. speech语音领域:语音识别、语音分类、语音合成
6. 实际工作中的算法工程化:多机多卡分布式训练、spark大数据等
总结
在本文鬼仔主要给大家从宏观的角度分享机器学习领域的研究重点,包括理论知识和实际应用两大模块,而子模块分享的比较粗糙,这是因为每一个子模块是无法只用一篇或两篇文章就能够讲清楚的,涉及到一些细节方面的分享,鬼仔都会在后面【机器学习】专题系列里面进行一一地分享。鬼仔的目的也很简单,就是希望一篇文章能够将一个知识点讲透、讲深,也希望读者能从鬼仔的文章中有所收获。大家记得关注鬼仔,避免错过更新!