这是小白的第一篇
小白最近开始入门学习机器学习的相关知识以完成一个完全没有接触过的项目,在这里记录小白的每一次任务,见证小白的一次次进步。
第一次任务:机器学习的一些概念(有监督、无监督、泛化能力、过拟合欠拟合(方差和偏差以及各自解决办法)、交叉验证)
哎,这个Markdown编辑器是真的难用。。。。。
(小白想问个问题,这个Markdown怎么输入空格啊,找了几个都是用这个 ;但是为啥没有效果啊,哦原来是用这个啊” 
“)
一、什么是机器学习?
-
先看什么是人工智能。人工智能(Artificial Intelligence),英文缩写为AI。是计算机科学的一个分支,二十世纪七十年代以来被称为世界三大尖端技术之一(空间技术、能源技术、人工智能)。也被认为是二十一世纪三大尖端技术(基因工程、纳米科学、人工智能)之一。1956年夏季,以麦卡赛、明斯基、罗切斯特和申农等为首的一批有远见卓识的年轻科学家在一起聚会,共同研究和探讨用机器模拟智能的一系列有关问题,并首次提出了“人工智能”这一术语,它标志着“人工智能”这门新兴学科的正式诞生。人工智能是对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。数学常被认为是多种学科的基础科学,数学也进入语言、思维领域,人工智能学科也必须借用数学工具。
-
人工智能实际应用:机器视觉,指纹识别,人脸识别,视网膜识别,虹膜识别,掌纹识别,专家系统,自动规划,智能搜索,定理证明,博弈,自动程序设计,智能控制,机器人学,语言和图像理解,遗传编程等。涉及到哲学和认知科学,数学,神经生理学,心理学,计算机科学,信息论,控制论,不定性论等学科。研究范畴包括自然语言处理,知识表现,智能搜索,推理,规划,机器学习,知识获取,组合调度问题,感知问题,模式识别,逻辑程序设计软计算,不精确和不确定的管理,人工生命,神经网络,复杂系统,遗传算法等。人工智能目前也分为:强人工智能(BOTTOM-UP AI)和弱人工智能(TOP-DOWN AI),有兴趣大家可以自行查看下区别。
-
机器学习(Machine Learning, ML),是人工智能的核心,属于人工智能的一个分支,是一个大的领域,是让计算机拥有像人一样的学习能力,模拟和实现人的学习行为和能力,可以像人一样具有识别和判断的能力,可以看作是仿生学。机器学习的核心就是数据,算法(模型),算力(计算机运算能力)。以前也有人工智能,机器学习。不过最近几年网络发展和大数据的积累,使得人工智能能够在数据和高运算能力下发挥它的作用。机器学习应用领域十分广泛,例如:数据挖掘、数据分类、计算机视觉、自然语言处理(NLP)、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人运用等。
二、 有监督、无监督
学习形式分类
1)监督学习(supervised learning)
2)非监督学习(unsupervised learning)
细分的话还有半监督学习和强化学习。
监督学习(Supervised Learning)是指利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练或有教师学习。也就是我们输入的数据是有标签的样本数据(有一个明确的标识或结果、分类)。例如我们输入了 50000 套房子的数据,这些数据都具有房价这个属性标签。监督学习就是人们常说的分类,通过已有的训练样本(即已知数据以及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优则表示在某个评价准则下是最佳的)。再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的。就像我输入了一个人的信息,他是有性别属性的。我们输入我们的模型后,我们就明确的知道了输出的结果,也可以验证模型的对错。
在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”“非垃圾邮件”,对手写数字识别中的“1“,”2“,”3“,”4“等。在建立预测模型的时候,监督式学习建立一个学习过程,将预测结果与“训练数据”的实际结果进行比较,不断的调整预测模型,直到模型的预测结果达到一个预期的准确率。监督式学习的常见应用场景如分类问题和回归问题。常见监督式学习算法有决策树(ID3,C4.5算法等),朴素贝叶斯分类器,最小二乘法,逻辑回归(Logistic Regression),支持向量机(SVM),K最近邻算法(KNN,K-NearestNeighbor),线性回归(LR,Linear Regreesion),人工神经网络(ANN,Artificial Neural Network),集成学习以及反向传递神经网络(Back Propagation Neural Network)等等。下图是几种监督式学习算法的比较:
非监督学习(Unsupervised Learing)是另一种研究的比较多的学习方法,它与监督学习的不同之处,在于我们事先没有任何训练样本,而需要直接对数据进行建模。是否有监督(Supervised),就看输入数据是否有标签(Label)。输入数据有标签(即数据有标识分类),则为有监督学习,没标签则为无监督学习(非监督学习)。在很多实际应用中,并没有大量的标识数据进行使用,并且标识数据需要大量的人工工作量,非常困难。我们就需要非监督学习根据数据的相似度,特征及相关联系进行模糊判断分类。
三、 泛化能力、过拟合、欠拟合
举一反三的能力即泛化能力
泛化能力是模型中对新数据的预测能力。在实际中如果对训练数据能很好的拟合,而对验证集的效果较差,泛化能力较弱,可能出现过拟合。
给出泛化误差公式如下
通过感性的告诉机器一个加上一个等于两个,之后算法通过自己的学习,推广计算多位数的加减法,多位数的加减法是无穷多个的,如果机器在不断的测试中都能够算对,那么我们认为机器已经总结出了加法的内部规律并且能够学以致用,如果说机器只会计算你给机器看过的比如3+3=6,而不会计算没有教过的8+9=17,那么我们认为机器只是死记硬背,并没有学以致用的能力,也就是说泛化能力非常的低,同时我们也把这种现象叫做这个算法过拟合(over-fitting)了。(过拟合是一种分类器会发生的现象,而泛化能力可以理解为对分类器的一种性能的评价)
过拟合通常可以理解为,模型的复杂度要高于实际的问题,所以就会导致模型死记硬背的记住,而没有理解背后的规律。就比如说人脑要比唐诗复杂得多,即使不理解内容,我们也能背下来,但是理解了内容和写法对于我们理解记忆其他唐诗有好处,如果死记硬背那么就仅仅记住了而已。
欠拟合(under-fitting)是和过拟合相对的现象,可以说是模型的复杂度较低,没法很好的学习到数据背后的规律。就好像开普勒在总结天体运行规律之前,他的老师第谷记录了很多的运行数据,但是都没法用数据去解释天体运行的规律并预测,这就是在天体运行数据上,人们一直处于欠拟合的状态,只知道记录过的过去是这样运行的,但是不知道道理是什么。
偏差与方差的直观理解:
偏差:就是偏离的意思,与“标准”之间的差距。
方差:是离散程度,波动程度的意识。
从机器学习方面理解:
偏差:反映的是模型的拟合能力,度量了预测与真实结果的偏离程度,偏差大有可能是 欠拟合,也可能是过拟合。如果是欠拟合则训练集与测试集的loss都大(偏差都大),假如是过拟合,则训练集loss小(偏差小),测试集的loss大(偏差大)
方差:反映的是模型的泛化能力,也可以理解成模型的抗数据扰动的影响,度量的是从训练集训练得到模型在测试集上的性能变化,方差大就意味则过拟合。
改进策略:
- 高方差:采集更多样本数据
- 高方差:减少特征数量,去除非主要特征
- 高方差:增加正则化参数
- 高偏差:引入更多的相关特征
- 高偏差:采用更高阶多项式
- 高偏差:减少正则化参数
四、交叉验证:评估(衡量)机器学习模型的性能
交叉验证(Cross Validation)是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原始数据进行分组,一部分做为训练集(training set),另一部分做为验证集(validation set),首先用训练集对分类器进行训练,在利用验证集来测试训练得到的模型(model),以此来做为评价分类器的性能指标。
常见的交叉验证方法有:
- 留出法 Hold-Out Method
- 2-折交叉验证 (2-fold Cross Validation,记为2-CV)
- K-折交叉验证(K-fold Cross Validation,记为K-CV)
- 留一法(Leave-One-Out Cross Validation,记为LOO-CV)
参考
尊重原创大佬们,膜拜!!!!
机器学习和深度学习概念入门:
https://blog.csdn.net/jay100500/article/details/72851053
markdown中实现首行缩进的两种方法:https://blog.csdn.net/mountzf/article/details/51714763
什么是,泛化能力,过拟合,欠拟合,不收敛,奥卡姆剃刀?:
https://blog.csdn.net/limiyudianzi/article/details/79626702
机器学习泛化问题之偏差和方差:
https://blog.csdn.net/qq_34886403/article/details/82953219
交叉验证:
https://blog.csdn.net/u012706792/article/details/80988709