之前是通信行业工程师,作为流水线上的一颗螺丝钉N年,只是耕耘在自己熟悉的领域,视野比较窄。 兴趣是最好的老师,兴趣引我转向了这个行业。
最开始 我对数据分析比较感兴趣, 后来是数据挖掘,再是机器学习,深度学习.. 自然走在这条路上。本人资质也只是勉强够用,学习过程中也有觉得很难想放弃过,还好克服了走过了。分享学习道路如下吧 :)
前些年读了一些关于大数据的文章,有初步的了解。后来在平时相关的运营支撑工作中接触了一个大数据的产品,学习了大数据分析挖掘的流程及初步了解一些算法知识。后来车品觉老师来(前)我司分享,参加后很是受用。
如果没有类似条件也没关系,开始时为了培养对大数据这个行业的兴趣,推荐阅读车品觉老师的"决战大数据",书中数据运营运维的思想让我转到一个新世界。 "大数据时代"中译者周涛老师的序言比原文作者带给我的共鸣冲击更大。 从数据分析到数据挖掘,谭磊老师"大数据挖掘" 也让我冲出了那一步,知道数据挖掘也没我想象中那么难 :)
一路上的第一个目标 转行成为数据分析师要做的:
https://www.zhihu.com/question/29265587/answer/44010658
我曾经去捯饬那些excel函数,VBA, 补看数据库教程,看powerBI、数据可视化等教程。那些日子虽然也只是今年上半年的事但觉得已远去但觉得没白过。。
正传了:
一:最最基础要预备的:
1) python 最开始本人看的菜鸟教程, 如果有其他语言基础,可以看廖雪峰老师的python教程;否则个人觉得类似菜鸟教程可能更适合一点。当然只是入门,如果想熟悉一门语言,需要投入大量的项目锻炼还需要看不止一本书/一套教程。 另外有个好消息:不用学习R语言啦,python就够用了,具体原因刘建平老师的文章里也有。
2) 数学知识 高数/线代/概率和统计/ 离散数学
虽然数据挖掘/机器学习是统计学的范畴 现在感觉前两门相对更重要..
关于高数:
其实我也是看到公式就怕的人,直到现在。。palmface 对推导过程不太明白,但现在原理还是能理解一些。以前读书时数学也很一般,现在几乎是从头学起,嗯,对,从三角函数以及排列组合看起。。
推荐"遇见数学"公众号, 里面有高数的专集。 里面的图解数学相当不错。底下很多人留言要是当年学习时有这样的指导就好了.. 本人看了台湾单维彰老师的视频专辑:大学微积分入门合集。看完后过了两周再又再看了一遍。 而当我花大概四五天看完一本纸质高数书时(图书馆任借一本高数教材即可,无推荐的好书),虽然当时也记了几十条看不懂的问题,但还是会回想,为啥大学要花一学期或是一学年来学高数呢...好像看一周应该能考 50/60分, 两周能考70分,一月能考8,90分吧,猜的..:) 链式求导,求偏导很重要,搞不懂的不能轻易放过。
关于线代:
我是从 知乎live课程: 线性代数入门:从方程到映射 开始的。我没加群拿到最新的胶片,live里的胶片有几处小错误让我很费解,不过整体还是不错的。 有很多是在知乎上找到答案的。除了"遇见数学"公众号,matongxue314 马同学看图学数学 应该也很不错
关于概率和统计:
SSE, MSE, RMSE SSR SST 这些,卡方分布,T分布,F分布,各种检验等。p值 置信区间含义等。
关于离散数学:
有时间看离散数学,不吃亏。在好几份源码中,都有DAG的相关处理。后面的 知识图谱里,用到了一点描述逻辑。了解描述逻辑和一阶逻辑的关系 。
可以听听知乎大神SimonS的课程 机器学习入门需要哪些数学基础 https://www.zhihu.com/lives/818124675715600384
这里我还想分享一些锁碎的名词或概念,可以去单独去搜一搜。能搜到不同的文章,这样一篇没看明白时,可能再看看另一种讲解的风格就懂了,或者明白了后再多看另一种观点,又有不同的收获。 而且这些名词懂了以后,其他文章也好看一些,不明白的话有可能卡住。 我经常得在读文章时,跳出来去搜这些概念。
全概率公式和贝叶斯公式 正态分布 高斯分布 二项分布 beta分布 共轭分布 Dirichlet分布 可以顺便了解Gamma分布,泊松分布 共轭分布 Dirichlet分布等在NLP中有使用,beta分布看到知乎这条解释(答主小杰)就比较容易理解了:https://www.zhihu.com/question/30269898
频率派与贝叶斯派各自不同的思考方式:
什么是无偏估计 有偏估计 概率和似然的区别
ROC曲线,lift曲线 分别适合于什么场景等,搞清TPR,TFR,召回率和准确率等指标的含义。F1分数。有F2分数吗?
什么是凸函数, 什么是对偶问题? 拉格朗日对偶问题 kkt条件
机器学习常见的损失函数有哪几种。 对于0-1损失 平方损失 绝对值损失来度量损失是好理解的,而对数为什么能度量这个损失,要绕个弯从其他角度想想,我也绕了好一圈才习惯。
什么是熵,什么是信息熵,基尼指数,基尼不纯度。 相对熵 交叉熵 条件熵 互信息(注意基尼指数常用来收入平衡状态,理想情况是要比较大即比较均匀。而数据挖掘机器学习里的基尼不纯度是要越小越好,两者是从不同的角度看问题!我刚开始搜索基尼时是糊涂的.. 其实基尼相关的 目前应该不太重要,了解即可。主要是几种熵 很重要。 )
为什么常用的损失函数是交叉熵 而不是均方差? 而VAE生成的图像,较GAN来说相对模糊,模糊的原因是?(第二个问题需要了解了 VAE/GAN之后再看 )
生成模型和判别模型的区别是什么?
什么是归一化(normalization),标准化(standardization)? 机器学习中更常用的是哪一种? 逻辑回归需要做吗?
白化,这个在看完刘建平老师的PCA后,可继续了解。因为PCA后的目的可能就是要做白化,为数据进一步处理做准备。
什么是范数 有助于处理。。情况? 什么是condition number
搞清楚矩阵乘法是怎么乘的。
矩阵的行列式,意义 (顺便了解下迹:行列式是特征值的乘积,迹是特征值的加和)
特征值和特征向量 先从公式和计算上入手 A* V = λ * V (A矩阵* V向量 = λ常数 * V向量) 再了解在数据挖掘 机器学习中特征值和特征向量的意义,这个一搜就一大把了。
关注数据挖掘的话还需要多去了解特征工程。
矩阵对角化的意义。相似矩阵的意义。 矩阵左乘,变换基。逆矩阵。 这几个话题知乎上有很多很好的解答,令人茅塞顿开。
什么是协方差,相关系数。协方差矩阵 格拉姆矩阵 的意义?
雅可比矩阵 海森矩阵 牛顿法迭代求解
各种距离 余弦相似度
张量的含义和性质?
什么是超参数 什么是batch_size epoch_size等。 batch_size大小对训练的影响?
hadoop, map reduce方法,spark,hive,hbase,这些,以及大数据分析挖掘流程 也需要了解
二:数据挖掘 机器学习 基本的常用算法
强烈推荐刘建平pinad老师的blog。这可以是机器学习的线索或目录。http://www.cnblogs.com/pinard/ 我从第一篇文章看起的。从感知机 决策树 SVM开始一直讲到DNN,CNN。(当然后期神经网络的那些,还有很多很好的文章可以看,仅看刘老师这一篇可能是不够的。) 隐马模型看完后,我心里觉得对算法工程师这个职位要做的事和方法 有个大概的谱了。 感谢刘老师的无私分享! (其实刘老师的分享我觉得要有一点数学基础的人看比较合适,如果看不懂时可再搜其他的文章,但其作为 学习的线索/目录肯定是很好的)
在学习正则化,范数,EM算法时,包括后面的图像卷积时卷积核的含义和效果时 zouxy老师的blog也让我受益匪浅:http://blog.csdn.net/zouxy09/article/details/24971995
在学习各种组合方法时,要了解bagging/boosting各适用于什么场景,谁的基模型为强模型及目标是降什么,谁的基模型为弱模型及目标是降什么。
看刘老师的KNN算法时,仍是不能很好的理解。 关于KNN,这个很不错: https://zhuanlan.zhihu.com/p/22345658?refer=hgjjsms
这些算法在学习时就边看边动手,后面可以去参加一下天池的新人离线赛,实际操作感受一下数据清洗/处理过程,寻找特征工程等数据挖掘的过程,熟悉dataframe的各种操作,熟悉sklearn等这些库的使用。
三: 真正到深度学习了
先大概有个分类吧, 深度学习大方向有三个: CV图像领域,NLP及时序数据,推荐。 个人对推荐不太感兴趣,后面的也主要是对图像和NLP而言的。图像的比较基础一些,主业图像的同学可能对时序数据NLP没那么熟悉,但主业NLP的同学应该对图像处理不陌生。
有很多tensorflow的介绍入门文章。动手尝试。
另外 opencv也可以了解 https://docs.opencv.org/3.3.0/index.html (其实我没怎么看 这里要展开又是一大段了)
对于图像:先了解什么是通道数。
了解DeepID DeepID2 人脸识别/人脸比对的区别
了解triplet loss,centor loss
我看过几集莫烦的深度学习视频。其实还有很多视频推荐,还有很多英文的,吴恩达老师的应该也很好, 我觉得看视频比较费时间,打算后面再多看一点。
刘建平老师的blog里中期就介绍了DNN,随之而来的CNN RNN LSTM。 只看刘建平老师的应该理解还不够,多看看其他文章。
再去多搜搜CNN的卷积,多一点卷积意义上理解,而不是只了解到 卷积计算过程的GIF动图。
多通道的多个卷积核过程。卷积核有通道的概念吗? 还是只是二维的? 使用1*1的卷积核为什么能达到降维的效果?
Feature Map/输出通道/神经元/感受野/padding等概念
卷积与全连接相比,是如何减小参数个数的?
需要理解 卷积神经网络各层的参数和连接个数是多少? http://blog.csdn.net/dcxhun3/article/details/46878999
高斯卷积 高斯模糊。 模糊是怎么来的? 把清楚的照片(像素之间大差距) 缩小差距,使得数字从整体看更平均,照片就模糊了。
不容错过的"YJango的卷积神经网络", yjango老师好多次让我茅塞顿开,非常感谢他无私用心的分享,受益非浅。
全连接层的意义? 为什么cnn rnn的最后经常拼接一个dnn?
http://blog.csdn.net/zouxy09/article/details/49080029
这篇文章里提到了 时域上的卷积等于频域上的乘积,这样就需要了解傅里叶变换了。知乎上有很受欢迎的"掐死我"文章,我也是它的受益者。
另外我看有一些文章里提到了人脸识别的haar特征,haar小波变换我也顺便看了一下,但暂时好像还没用上
继续了解一下卷积网络架构的发展历史
Inception v1 v2 v3 v4 模型
NIN (Network in Network)
resnet网络
有很多很好的文章,这里推荐几个: 比如上面的inception模型和残差网络,下面这篇文章就比较容易理解。
https://zhuanlan.zhihu.com/p/27642620
https://zhuanlan.zhihu.com/p/27857399
我之前只知道调参时可以增加CNN层数和每层的神经元个数来,也看过很多的文章关于cnn的结构。但增加层数和神经元数意味着什么? 这篇文章让我通了很多。
http://www.eepw.com.cn/article/201706/360625.htm
可以学习下SIFT算法,虽然现在不如CNN
mtcnn:
理解BN。顺带可以一起理解 Layer Normalization、Instance Normalization及Group Normalization 。https://blog.csdn.net/malefactor/article/details/82154224 张俊林老师写得相当好。
这里有图像的知乎live,后面这个串讲了神经网络
计算机视觉从入门到放肆 https://www.zhihu.com/lives/848170558016356352
深度学习中的常见名词术语(图像方向) https://www.zhihu.com/lives/904295186979508224
人脸识别的论文:
FaceNet: A Unified Embedding for Face Recognition and Clustering
Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks
Deep Residual Learning for Image Recognition
Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning
Densely Connected Convolutional Networks
时序数据ARIMA模型了解一下 不需要做为重点。 FBprophet也可动手试试。
RNN的理解很重要,假如你看到三个从左到右排列展开的cell图,是代表网络图中有三个cell吗? 不是,它是同一个cell在不同时序的展开。
RNN的结构图,应该这样画 才更清晰,对初学者更友好: https://www.zhihu.com/question/68552209 Scofield的回答
静态rnn 动态rnn区别是什么?
LSTM中几个门的作用是什么?
理解embedding (知乎上word embedding和解答很多)
怎么进行词嵌入呢? word2vec是一种算法,它有两种训练模型CBOW skip-gram. 这个刘建平老师的blog中有介绍。但是在张俊林老师的分享中了解一下 这个发展的背影,理解起来更容易。不然可能会有很多疑问。
关于概率和统计:
word2vec, 旁边还有item2vec, graph embedding 在等你
除了基本的DNN CNN LSTM外, 还需了解attention模型,transformer模型,xlnet等。 深度学习枕边书(最近19年中啦)也在啃:https://blog.csdn.net/malefactor/article/details/82051716
beam search原理
什么是语言模型/掩码语言模型/乱序语言模型?
吴军老师的 数学之美 这本书,我听着这名字,原以为会是一系列的公式推到最后得到一个很简洁的结果,这才能体现数学之美嘛。没想到,这本书的目标 竟然是非IT工作者的科普读物! 其实刘建平老师前面的那些BLOG读过了,有一点NLP的基础来看都OK的,不用害怕看不懂,讲得很好的。除了布隆过滤器是对我来说是完全全新的内容,其他都是以前见过的。不过吴老师对于人工神经网络的分享,有点意外.. 呵呵
对于强化学习,刘建平老师的blog更新了一系列的文章!
对抗生成网络GAN,变分自编码器VAE, 以及他们的很多变体! CGAN WGAN GAN-GP info-gan... CVAE... 有一个开心的事 就是 GAN到CGAN VAE到CVAE代码改变动只需要一两行! GAN到WGAN理论有一些 代码只需改动几行!不过得搞清为啥要这样做。 还有GAN动物园 很多变种, 搜一下就知道。
变分推断是什么?标准自编码器和变分自编码器的区别 是什么?VAE的两个损失是什么? VAE是假设p(z)先验分布为正态分布吗?(no)
VAE/GAN的异同点主要是什么?两者能否结合?强化学习与GAN有没有类似的地方?
知识图谱: 新世界的大门等着你。https://zhuanlan.zhihu.com/p/32122644
其实如果你走到这一步了,要看什么心里应该早有方向了。 万事开头难, 后面。。也难。。不过会越来越好, 就是要多投时间。
......
上面总结的东西难免有错误和遗漏,也有不太重要的,欢迎各位告知我修改补充,权当各位学习路上的小小的参考。
上面列的东西,我也没有全部掌握,后面的论文也没看多少。书单还有一大串。。(最基本的有统计学习方法 西瓜书 花书等等...)
路还挺长。曾有个朋友说:学习使我快乐。 我觉得这也是我心里的话。 如果没有这种快乐满足的感觉,挺难坚持的; 有的话,好像都不用用坚持这样的字眼。
看到知乎上说 阿里后来面试都不太在乎在天池赛中取得的好名次了,想想熟悉了那些套路,解这些赛题应该也比较简单。我刚转行,很想在新领域中再成为这样的骨干,但这需要时间精力还要点机遇。 一年来潜水看了好多大侠的精彩分享,很少付费,不好意思,那我也来分享点浅薄的东西吧。(而且刚开始看时会很惊奇,世界上为什么有那么多人愿意无条件花时间来写这么多,还想法设法用着各式各样幽默的语言,搞笑的图片.. 非常感谢这样的陌生人!)
转载:https://blog.csdn.net/anthea_luo/article/details/78767894