人工智能范围很大,包括机器学习,群体优化算法,遗传算法,人工免疫系统等等内容。机器学习是人工智能的一个重要分支,其与人的学习过程是一样的。人类都是先感知外界的内容,然后通过小学,中学,大学等一步步来提高自己的知识水平,然后,再根据自己的知识储备来解决一系列的问题。
机器学习的原理与人类的学习过程是一致的,都是通过模型训练,然后将这个模型运用到具体的场合中去。
机器学习大致可以分为分类,聚类,预测几个方面。主要有基于统计的机器学习方法和神经网络,复杂一些的神经网络可以用作深度学习,具有强大的拟合能力。所谓的拟合,就是通过机器学习的模型来进行预测,分类和聚类的能力。
基于统计的机器学习方法算法很多,又可以分为监督学习和无监督学习。
所谓监督学习是指用一个(x,y)对来进行训练,对于每一个训练元素x都对应给他一个结果标签。从而寻找从x到y的映射函数f(x).
这个过程就好比我们用(1,2),(2,4),(3,6)这三个数据来训练一个模型f,那么就有:
f(1) = 2;
f(2) = 4;
f(3) = 6;
我们很自然而然地就能得出这个映射关系:
f(x) = 2*x
那么,这个f(x)也就是我们想要的最终模型。我们可以通过这个训练模型去做其他的预测活动,例如当x=4的时候,我们就可以知道对应的结果是8,这样就达到了训练的效果,可以用这个模型来作预测。
显而易见地,这个训练好的机器学习模型是一个线性的模型,他的特征向量是一维的,也就是只有x这一个,如果高中学得比较好的童鞋,可能会记得线性回归方程,或者说最小二乘法,用最小二乘法去做线性拟合是很合适的。
类似这种模型的应用,我们可以脑洞大开地根据外面的温度来决定穿多厚的衣服。通过训练温度与衣服厚度之间关系的模型,就可以得到一个帮助我们选择合理穿衣服的方案了。而实际上这个方案,我们大家心里都有数,这是我们长期观察生活得出来的。回想这个过程,是不是也是一个训练过程呢?只不过很难说出来具体多少度穿多厚的衣服。机器学习用数字来表征,变得更加具体了。
但是,实际上,数据并不可能这么刚刚好,肯定或多或少会存在一些误差,这些误差的存在是在所难免的。如果过分去追求拟合效果,反而会使得模型变差。
我们对于拟合过分强烈的,称之为过拟合;对拟合能力不足的模型,称之为欠拟合。举个例子:
我们看到上图这片树叶,树叶很明显有这么几个特征:
绿色的,叶片边缘有锯齿,叶片上有脉络,形状多是类似椭圆形的。
那么,我们就将这几个特征作为叶片的特征,然后根据这几个特征的程度来区分是否是树叶。但是,有的时候,对于这样的叶片可能区分不足:
因为,他的边缘锯齿并不是很明显,所以,我们还得用这样的叶片类型来训练这个分类模型。否则,如果是叶片而无法判断其为叶片,这种状态我们就可以认为拟合能力不足,称之为欠拟合。
但是,有的时候,训练出来的模型对于某些特征特别“较真”,认为满足个特征的一定就是树叶了,那么会造成这样的现象:
如上图所示,这很明显,不是一片树叶,是草叶。但是,训练后的模型认为他是绿色的,而且有脉络,所以一定是树叶。很显然,这个模型对于绿色和脉络这两个特征太较真了,凡是有这两个特征就被判断为树叶,这样导致这两个特征量太过头了,我们将其称之为过拟合。
解决过拟合和欠拟合问题,需要我们合理选择用于训练的数据集,我们需要用大量合理的数据集对机器学习模型进行训练,一遍其在具有强大的拟合能力的同时,也能够有效避免过拟合问题的发生。
领取专属 10元无门槛券
私享最新 技术干货