写在前面:
最近,跟着彭亮在麦子学院学习人工智能相关的课程,课程讲的很好,所以打算一边学,一边记。这个系列就当是一个学习笔记。希望可以帮助到更多的人。
注明:此系列课程适用人员为有一定编程基础,最好有Python的编程基础的从业人员,或相关行业的从业人员,另外所有的人工智能相关的课程,无论是深度学习,还是机器学习。或多或少的都需要一定的数学基础。关于数学,我的看法是,有最好,没有问题也不大。除非你要做底层的基础理论研究。
另外这个课程,在记笔记的过程中,我可能会发表一些自己的想法和建议。或许不够专业。希望各位谅解!有想法的同学可以一起学习,一起讨论!
下面就正式开始彭亮人工智能之机器学习理论基础的第一课:
第一课主要的内容是对机器学习相关的概念,术语,以及应用场景的一个简单介绍。这里需要特别说明的一点是人工智能(AI),机器学习(ML),深度学习(deep Learning)这三者之间的关系。
首先人工智能是一个大的范畴,是一个很宽泛的定义。这个是百度百科给出的一个定义:
而机器学习,是隶属于人工智能的子集,我的理解就是通过机器学习的方式来实现人工智能的目的。当然通往罗马的路肯定不是一条。
彭老师给出的定义是:机器学习是一门交叉学科,以数学知识理论为基础,通过计算机/编程的方式来实现的一门学科,他是一门多学科相互融合的产物(包含了生物学,脑科学等),是AI的核心。
最后才是深度学习,他是属于机器学习范畴的一种算法,与什么决策树,SVM以及一些其他的算法是一样的。只是近年来随着数据量和计算机硬件的发展,使得深度学习的算法在准确率上进步比较大。
彭老师给出的概念:以大脑结构为启发的神经算法,基于大数据和计算能力的提升而发扬光大。
了解了人工智能,机器学习,深度学习的概念之后,我们需要了解一下几个概念:
1.概念学习:我们可以通过人类的认知过程中得到启发,例如一个婴儿,从有到无的一个认知过程,通过家长不断的输入,什么是鸟,什么是飞机,什么是汽车。婴儿的大脑将经过不断的纠正脑海中的认识。来学习相关的概念。
彭老师定义:概念学习是指从有关摸个布尔函数的输入输出训练阳历中推断出该布尔函数。
在这里有一个定义,叫做实例(x),就相当于给婴儿的每一次输入。那么所有的实例的集合称之为样例(X),而最终产生的目标,成为目标函数,记做c
目标函数和样例之间的关系记做:f: X->C(x),教程中举了一个小明是否享受水上运动的例子来说明。我这里偷懒就没有将课件完全拷贝过来。
2.训练集:顾名思义,训练集就是用来训练算法模型的.
更专业点的说法是:确定模型后,用于训练参数,注意训练的是普通参数(每多加入一个数据对模型进行训练,模型中就会受到影响的参数,通过多次迭代不断更新,是一个梯度下降的过程)而不是超参数(超参数是指训练开始之前设置的参数,超参数的选择与训练过程实际上是独立的,训练过程不会影响超参数。但是训练结束后可以根据训练结果考虑超参数是否可优化,可优化的话就调整超参数的值开始下一次训练)
3.验证集:用训练集对模型训练完毕后,再用验证集对模型测试,测试模型是否准确而不是训练模型的参数。
4.测试集:虽然验证集没有对模型的参数产生影响,但是我们却根据验证集的测试结果的准确度来调整参数(这里调整超参数?),所以验证集对结果还是有影响的,即使得模型在验证集上达到最优。就是在很多个模型中,验证集选择了代价函数最小的一个模型。虽然在这个模型上代价很小,但并不代表在其他数据上代价也小。所以需要一个完全没有经过训练的测试集来再最后测试模型的准确率。
5.特征向量:属性的集合,每一个实例有一个特征向量。
6.监督学习:训练集有标记的学习。
7.无监督学习:训练集没有标记的学习。
8.半监督学习:有一部分实例有标记,有一部分实例没有标记的学习。
9.分类问题:结果是有限集。类似小明是否享受游泳的问题。目标笔记为类别型数据。
10.回归问题:结果是无限集合,成线性分布。例如房价的预测等问题。目标标记为连续性数值。
最后说一下机器学习的步骤框架:
1.把数据拆分为训练集和测试集。
2.通过训练集和训练集的特征向量来训练算法。
3.用学习来的算法运用在测试集上,来评估算法。(可能涉及到调整参数。)
以上,记做第一,二章节的学习笔记。