| 导语 简述一个2010年入坑的后台如何转向作算法和机器学习的历程和感悟,附录一个书单c++
写在前面:算法
本文主要介绍的是本身的一些经历,以及读过的一些书,实际应用的经验并无介绍,包括如今不少机器学习的书通常也是侧重于理论,结合实践的时候会发现和模型比起来,数据清洗、特征工程的实际效果更明显,而这方面很难有系统的理论知识,怎么办呢?读paper,去搜索本身应用领域有关的、大公司的经典的paper,里面对数据清洗、样本筛选、特征构造、系统搭建这方面会有详细的介绍,在正式出版的书里,这块不多,因此读书只是基础,结合工做场景去应用才知道“纸上读来终觉浅,绝知此事要躬行”。另外若是碰到比较抽象的问题而难以理解的时候,有一个诀窍是,多和生活联系起来,不少计算机上的难题在生活中是有相似的事情和成熟的解决方案,好比优化与登山;“世事洞明皆学问,人情练达即文章”-共勉编程
正文:浏览器
04年高考发挥失常,花了五分钟填了两个志愿,华科光电+华科计算机,感谢当年光电专业超高的分数线把我刷掉了,我被调到了计算机;收到通知书之后,本来比较坚决的复读的打算变的动摇,家境有比较糟糕,因而抱着早点读完,早点出来挣钱的想法读完了四年华科计算机;老实说,我不是一个特别爱动手的人,本科四年把全部c语言的书几乎都读了一遍,但动手能力仍是很通常;保研之后,由于家里断了我全部经济支持,我花了比较多时间去挣生活费,因此专业也不算学的很好,只是晚上坚持把APUE和算法导论英文版啃完了,顺便把unix网络编程、c++设计新思惟、stl源码剖析看完了,算是有一点基础吧。网络
找工做的时候,执拗的想找一个后台开发,美其名曰能够多年钻研,沉淀技术;实际上回想起来不过是胆小,怕跟不上变化太快的技术节奏(有多少人和我同样?)进入鹅肠之后,确实是作了几年的后台开发,从一个小白到负责浏览器后台日活千万的图片转码服务,这中间的摸索、挫折、被叼不足为外人道也,工做三年左右,我前后接触过浏览器后台几乎全部的server模块,对公司海量学习、柔性可用也有一些理解,也隐隐看到了传统后台的天花板,下一步该作什么呢?必定要去造轮子、写框架吗?app
刚好这个时候,咱们成立了一个小说的项目组,而你们都知道我是一个骨灰级网络小说爱好者,起点阅读记录是3.5亿,阅仙称号,因而我有机会去作小说项目;在这个项目里咱们碰到了一些文本处理的难题,好比怎么自动聚合同一个章节的多个数据源并挑选一个最优的候选源,怎么识别内容不对的源;在这个过程当中,和搜索转岗过来的bencai有了比较多的交流,开始知道什么叫词袋模型、什么叫NLP、什么叫朴素贝叶斯、Kmeans聚类;将这些算法应用到小说业务场景,确实取得了不错的效果,因而一扇新的大门缓缓开启。框架
我开始阅读信息检索导论,这本书是介绍搜索的一本书,但其中涉及到不少基础的机器学习算法,好比谱聚类、kmeans聚类、LSA等等;中间转作过一段视频,不是很成功,最后又开始转为商业化,一开始咱们想作点击率模型,后来由于是cpm模式,对点击率要求不高,就开始作商业画像;这个过程当中,读过的基本比较重要的是李航博士的统计学习方法,里面把浅层学习的几个算法都从数学上给出了比较严谨的推倒,也是看这本书的时候意识到本身的数学基础还不是很好,虽然我对数学仍是比较有兴趣,可是出来几年,不少也都忘了。机器学习
读这本书过程发现,机器学习对数学分析、几率论、线性代数以及优化理论都有不低的要求,因而开始回过头来重读数学分析,穿插着看了周志华的机器学习(俗称西瓜书);深度学习方面第一本书才刚刚付梓,可是网上有些博客仍是有的,我读了一篇tutorial性质的博客。再回过头来看,人工智能是一个很大的概念,机器学习知识其中一部分,机器学习能够有各类定义和解读,能够说是让计算机从大量数据中自动学习规律,并应用;能够从信息压缩角度理解为,讲大量数据压缩陈成模型等等,他的应用也很普遍,应用在文本方面就是天然语言处理;应用在图像方面就是图像、模式识别;应用在推荐上就是推荐系统;应用在视频上能够作动做捕捉、实体识别等等;应用在汽车上能够是自动驾驶;在商业上,是广告排序。函数
五花八门的应用,又混杂了数学、统计、编程等知识,看起来就像一只凶悍的刺猬,做为一个只熟悉后台开发的码农?该怎么入手呢?复杂的问题,答案每每简单;大抵能够从这么三个方向入手:数学、文本或搜索、编程;我我的的经历实际是从文本处理入手,但并不推荐全部人都走这条路,若是你的工做和文本处理搭不上边,大可没必要学习太多和文本相关的奇技淫巧。直接从数学的统计或者几率入手,可能会更直接。学习
下面我按照个人一个学习大概历程给一个书单吧,不必定是最全的,也不必定是最合理的,仅供你们参考:
1.统计学习方法,李航博士是华为诺亚方舟的首席科学家,前不久一次会上见到了本尊,这本书的特色是:算法齐备、推倒严谨,薄薄的一本书几乎涵盖了浅层学习全部的算法,并都从数学上给出了较为严谨的推倒,适合有必定数学基础的人入门使用;过程当中发现本身数学上的不足,再回头去补;
2.数学分析新讲:北大张筑生老师的,一套三册,我花了大约一年的时间才读完,很是费劲,可是很值得,比普通的高等数学要周全的多,惟一小有瑕疵的地方是实数连续统的描述用了计数法,不过这里能够参考陶哲轩的实分析,他是从peano千米体系出发来论述;费尔金斯的大做里则是用戴德金分割来论述的,都对比一下会颇有意思;
3.最优化导论:看完数学分析之后再看1中的推倒会发现仍是有不少地方不甚了了,举个例子牛顿法或者说LBFGS能够用在多种算法的推导上,那牛顿法、海瑟矩阵究竟是怎么回事呢?这时候就是该祭出这本书的时候了,这本书我以为是补齐了从数学到统计学习方法之间确实的一环,里面主要介绍一些优化理论;简单来讲,机器学习里一个很大的困难是函数没有解析式,那么对函数求解最优解是不可能像二次函数同样经过公式直接求得的,必须经过迭代的方式逐渐去逼近最优解,就像爬一座山,不能一会儿看到山顶,可是咱们能够看到比如今更高的地方,因而先爬一小段,到了那个位置再往上看,又能看到最高的地方,因而又换个方向再爬一段,最终咱们必定能够爬到山顶;最优化导论的几个算法几乎均可以往这个例子里面套,不过是观望和路线指定的策略略有差别罢了。
4.机器学习,周志华:你们都知道有一个mithell写过的机器学习,但实话说,那本书的内容真的比较陈旧了,不如读周老师这本西瓜书,由于全书都在用西瓜举例;这本书和1有很多重合的地方,区别在于这本书是从机器学习自身出发,弥补了1偏数学理论,而工程实践严重缺失的不足,这本书则从基础概念讲起,让你对机器学习有一个基础的、正确的理解,打个比方就和陈近南给韦小宝的那本绝世秘籍的目录差很少,读完这本书,你并不会立刻得到很高的算法设计调优的能力,可是你拿到了入场券,你能够选一两个方向或一两个算法去深刻研究;
5.《neural networks and deep learning》http://neuralnetworksanddeeplearning.com :这就是我提到的深度学习的一篇优秀的blog,配有代码,深刻浅出的介绍了神经网络、bp算法、深度学习的一些基本概念,适合入门;深刻的话能够看看三位大神合著,最近刚出版的那本deep learning;72美刀的价格不便宜,好在有电子版
小结1:上面5本书基本能够作一个很好的入门了,以后的路该怎么走,相信读完了的同窗通常都会有本身的见解,任何一个领域,良好的入门手续才是比较难的,入门之后登堂入室的路怎么走其实你们都会有本身的主见。接下来的书单我并没所有读完,仅供进一步参考,这里也再也不排序
1.线性代数,我读完了浙大版的线性代数,但很遗憾,这本书过于简单,对矩阵分解、奇异值分解等机器学习里的经常使用只是没有涉及,网上比较推崇的是strang的两本书,一本是introduction to linear algebra 另外一本事applied linear algebra;我是准备配合视频读前一本
2.几率论后续是随机过程、统计模拟、时间序列这方面的资料,包括贝叶斯分析、吉布斯采样、mcmc方法:统计这块个人感受比较差,理解比较慢,推荐陈希孺的两本书吧,一本是几率 一本数理统计;贝叶斯的书我以前的文章有提到,你们能够去找找;吉布斯 mcmc建议看博客
3.实分析:陶哲轩
4.微分流形:陈省身
5.点集拓扑:北大教材
6.泛函分析
这几本书是进阶版了,大部分可能用不到,想研究流形优化、核方法的同窗能够挑战一下
7.PRML:模式识别与机器学习,很是翔实的一本书,也是经典,惋惜我没有读完,只看了前几章;
8.凸分析:最优化导论的升级版,应该是目前优化理论的集大成者;
9.数学之美:吴军博士的书,消遣的时候翻一翻吧
10.deep learning:三位大神版本
如下推荐几本智能相关的书,博你们一笑
1.心智社会:马文明斯基的巨著,他本身的总结挺好:没有心智社会就没有智能,智能源于笨拙。这本书主要是探索人的思惟的本质,颇有意思的论述;
2.弗洛伊德:马文明斯基推崇的内心学家,我也没怎么看,只翻了一点点梦的解析
3.上帝掷骰子吗,量子物理史话:推荐读一读,对量子、意识有一点了解;
4.周易:配合孔子的十翼看看,中国玄学、文化起源的神书;
5.波若波罗蜜多心经:心浮气躁的时候默念一下
总结2:这部分比较随性,有深刻研究ml的书,也有一些看似不着调的书,归根到底,全部的神秘都会归结于灵魂、意识,佛学说法不外求不是没有道理的,毕。
此文已由做者受权腾讯云技术社区发布,转载请注明文章出处