序言
Machine Learning,也即机器学习ML,这一源自人工智能领域的专业术语自16年(Alphago面世)来异常流行,尽人皆知,已是一现象级的概念。
尽管现如今资本大量涌入这一领域,学习者多如过江之鲫,遍及各行各业,每个大学都会有AI-ML-DL实验室,看似烂大街的货色,但对之保持学习精神是很必要的————一个卓越的程序员永远都要对核心技术和关键算法保持关注和敏感,尽可能多地了解,掌握。
用不用是政治问题,会不会写是技术问题,就像军人不关心打不打的问题,而要关心如何打赢的问题。
ML学习必备
正确的入门可减少很多学习过程中的同感,本文主要为笔者自学ML过程中寻找的合适方法,门路的总结,仅供欲自学该技术的同学参考。
-
Kaggle-Competitions——打怪升级必备之选,Kaggle是一个进行数据挖掘和预测(也即ML,DL)的权威在线平台,前些年已被Google收购,其价值不言而喻。
对初学者而言,其最大的特点在其上有很多面向初学者的入门级比赛,以及详细的新手成长文档和其他dalao分享的,备注详细的模板模型。 此外,Kaggle上还有关于ML,DL的各种入门教程,可以尝试(只不过是纯英文而已,手动滑稽)。
-
数据挖掘和机器学习核心四模块:
- NumPy 低级数字Python库
- Pandas 较高级别的数字Python库
- Sklearn/Keras 通用(传统)/封装于tf的 机器学习库
- Matplotlib 数据集可视化工具
若想学好机器学习,从入门到精通,必须要沉心静气,扎扎实实地把这四个模块通透地学习一遍,最稳(ku)妥(zao)的路线便是把官网的官方文档全部过一边。
在此对Keras,tensorflow与Sklearn的关系做出解释,sklearn的定位是通用机器学习库,而tensorflow的定位主要是深度学习库,前者更倾向与使用者自行处理数据,且高度抽象化,使用难度降低但自由度不高;而有着很高自由度的tensorflow则不同,可自行实现算法进而去做传统机器学习做的事,而封装在tensorflow等工具库上的keras就像深度学习界的sklearn一样。
常见情况下,通常将sklearn和tensorflow,甚至keras结合起来使用,sklearn肩负基本的数据清理任务,keras用于对问题进行小规模实验验证想法,而tf用于在完整的的数据上进行严肃的调参(炼丹)任务。
更详细的辨析,讲解可以参考scikit-learn和tensorflow的区别
机器学习的确存在一定门槛(当然也是其核心竞争力),以上四个模块的学习和与机器学习有关的参考论文,网站中充斥的英文和数学公式便是其入门试炼,如若没有做好充分的思想准备和足够的觉悟,只能是从入门到放弃。
附录
笔者深受触动的文章推荐: