机器学习的概念
机器学习是人工智能的一个分支,是近年来逐渐具备实用性的各种人工智能应用的基础。其本质是(我目前的个人理解)利用针对已知的数据集合抽取采样特征,然后利用某种数据模型(核心是某种算法:如kNN、SVM、朴素贝叶斯等)对数据进行计算处理,得到一组可以预测未知数据集特征的参数和手段,从而可以对数据进行预测判断的一种数据处理方法。
机器学习相关的名词
- 神经网络:是机器学习的一种实现方式,从概念上来说,小于“机器学习”,但是由于其在图像识别、语音识别、语言翻译等领域的优异表现,以至于现在提到机器学习就认为是神经网络,实际则不然,机器学习的概念更大,更加基础,是实现神经网络应用的基础理论和方法;
- 深度学习:是神经网络的应用特例,同样是在应用层表现优异,可以理解为神经网络的一种实现;
- 大数据:机器学习的数据处理基础支撑,近年来机器学习在应用层面表现较好主要得益于大数据技术的发展,可以使得模型训练内容量级增加,极大的提高了模型准确度;
- n维向量:来自线性代数,在机器学习中起到重要作用,在机器学习中一般用于各种特征数据的载体,在不同的算法过程中传递和计算。
机器学习相关的工具
- 编程语言:目前比较流行的是Python,因为有比较丰富易用的程序包,很多科技公司也开源了较为成熟的框架,再加上Python语言本身的简单易上手,使得Python成为这个领域最流行的语言。当然C和C++、Java还是实现各种算法的根基,Python更多是提供了一种调用接口;
- iPython:Python语言的交互控制台,可以较为方便的测试、调试Python程序,有较强的交互功能,比语言发行版自带的强大;
- jupyter:提供Python语言的Web交互界面,通过网页即可编写代码,并及时反馈执行结果,由于是B/S架构,所以可以使得运行时跟开发环境分开。编辑界面同时支持基于Markdown语法的文档编写,使得“文学化”编程成为一种可能,非常适合用于科研人员的汇报材料或论文;
- TensorFlow:谷歌开源的机器学习框架,快速灵活部署机器学习应用,可以应用与大规模、工业级场景;
- keras:基于Python编写的高级神经网络API,属于对机器学习的深度封装,如果以学习机器学习原理为目标的,不建议使用,还是先手动将若干种核心算法实现一遍比较深刻;
预期的学习方法
- 通过阅读相关的书籍,对于概念有所了解,这个过程可以是粗糙的浏览,不求详细的理解各种原理和算法;
- 尝试一些教学视频,了解实操的基本流程,对于自己读书得到的概念进行验证,修订理解,并熟悉基本工具的使用(如Python的numpy、plot等);
- 细读书籍,按照书中的事例进行实操,并尝试推导算法的基本原理,理解后,形成自己的文字;
- 定义简单的任务,贯穿数据准备、数据清洗、特征值提取、模型建立、模型应用各个阶段,一般来说可以是手写文字识别,或者给新闻文章分类等;
- 循环和迭代这个过程,一边输入信息,一边将学到的东西结合思考,形成有效的输出(文字、视频等);