机器学习基础

关于数据

机器学习,需要给算法提供大量的数据,从而在算法中得到相应的关系。
所以,我们需要了解在机器学习领域,与数据相关的概念。下面以著名的鸢尾花数据集为例,来描述数据相关概念:
在这里插入图片描述
在这里插入图片描述
注意:特征向量一般表述为列向量。

为了表述方便,取前两个特征(即萼片长度、萼片宽度)分别作为每个样本点的x值、y值,可以绘制出这样的二维可视化结果:
在这里插入图片描述

  • 每个样本的本质就是在这两个特征组成的空间中的一个点,那么这个空间就叫做特征空间(feature space)
  • 通过上面的可视化结果,可以清晰的看到,这两类鸢尾花在这个特征空间的分布是具有极大的不同,我们完全可以在这两类鸢尾花的样本点中画一条直线来切分。也就是说分类任务的本质就是在特征空间切分
  • 这里我们为了方便表述原理,只采用了两种特征。但是其实低维空间的方法是可以无缝的推广到高维空间。

在上面鸢尾花数据集中,萼片长度、萼片宽度、花瓣长度、花瓣宽度这些特征值是非常明确的。但是在现实生活中,特征并不一定具有语义,特征也可以是很抽象的,比如数字识别:
在这里插入图片描述

主要任务

学习机器学习,我们关注的基本任务主要有两类:分类任务、回归任务。

分类任务,顾名思义,这类机器学习的主要任务就是将数据分类。分类任务还可以细分为:

  • 二分类任务,比如判断是否是垃圾邮件、判断某支股票的涨跌等
  • 多分类任务,比如手写数字识别、图像识别、判断发放信用卡评级等
  • 多标签分类,一种比较前沿的技术
  • 很多复杂的问题也可以转换成多分类问题,比如下围棋,无人驾驶等
  • 一些算法只支持完成二分类的任务,但是多分类的任务可以转换成二分类任务,也有一些算法天然可以完成多分类任务。

回归任务,这类任务的特点就在于最终特点是一个连续数字的值,而非一个类别。比如预测房屋价格、股票价格、学生成绩等。

  • 有些算法只能解决回归问题,有些算法只能解决分类问题。有些算法的思路既能解决回归问题,也能解决分类问题。
  • 在一些情况下,回归任务可以简化成分类任务。比如预测学生的成绩,可以演化成预测学生成绩的评级。

其实,机器学习算法本质上就是获得一个f(x)函数,x就是样本资料。我们可以把一个新的x送到f(x)函数模型中,如果得到的结果是一个类别的话,那么解决的就是一个分类问题;如果得到的是具体的数值,那么解决的是一个回归问题。

监督学习、非监督学习、半监督学习、增强学习

从任务的角度,机器学习可以分为分类任务和回归任务。但是从算法的角度,机器学习又可以分为监督学习、非监督学习、半监督学习、增强学习。

  • 监督学习,指的是给机器训练的数据集拥有“标记”或者“答案”。这里“监督”二字,指的是人类已经对现有的数据进行了划分,那么这个划分本身就被称为“监督信息”。
  • 非监督学习,指的是给机器训练的数据没有任何的“标记”或者“答案”,比如电商网站对客户群体进行分类。非监督学习的意义是:对没有标记的数据进行分类(即聚类分析)。非监督可以做的另外两个个非常重要的作用:1.对数据进行降维提取,主要包含特征提取(将不重要的特征扔掉)、特征压缩(尽量少的损失信息的情况下,将高维的特征向量压缩成低维的特征向量,这样可以大大提高机器学习的运行效率,但是不影响结果的准确率)、方便可视化。2.异常检测,也是可以通过非监督学习算法来解决的。
  • 半监督学习,指的是给机器训练的数据集中,有一部分数据有标记,有一部分没有标记。一般这类数据集是由于各种原因造成的标记缺失。这类任务通常都先使用无监督学习手段对数据做处理,之后使用监督学习手段做模型的训练和预测。换而言之,半监督学习就是监督学习与非监督学习的结合。
  • 增强学习,指的是根据周围环境的情况,采取行动,根据采取行动的结果,学习行动的方式。增强学习十分适用于无人驾驶、机器人领域。
    增强学习

批量学习、在线学习、参数学习、非参数学习

从另外两个维度来看,又可以将机器学习分为批量学习与在线学习,参数学习与非参数学习。

机器学习就是要收集大量的样本资料,然后将这些样本资料送给机器学习算法中,最后机器学习算法训练出来一个模型,这个模型就可以直接投入到生产环境中,在具体应用中,也许会出现新的样例,但是在这个过程中,新的样例不会作为训练集来优化模型,训练出来的模型不会再发生变化,这就是批量学习。批量学习有以下特点:

  • 优点:简单,只需要学习算法本身,不需要考虑如何逐步优化算法。
  • 但是也会有个显然的问题:如何适应环境变化?可以通过“定时重新批量学习”的方式来决解,但是有些巨大运算量在24h内无法运行完,那么每天重新运算一遍是不现实的。在某些情况下,即使运算性能能跟上,也不能采取批量学习的方式,因为有些环境变化的非常快(如股市的变化),批量学习算法无法及时适应环境的变化,那么此时就可以采用在线学习的方式了。

在线学习与批量学习的区别在于:在线学习将新的样例及相关信息迭代进机器学习算法,从而不断优化模型。在线学习在应用模型得到结果的同时,还在不断的让算法进行学习。
在这里插入图片描述
在线学习的特点:

  • 优点:及时反映新的环境变化
  • 问题:新的数据带来不好的变化。为了防止学习到错误的数据,所以我们需要加强对数据的监控。
  • 在线学习也适用于数据量巨大,完全无法批量学习的环境。

参数学习,就是先做一个带参数的假设,然后参数学习的本质就是找出这些参数。参数学习最大的特点就是一旦学到了参数,就不再需要原有的数据集了

非参数学习,和参数学习的区别就是:不对模型进行过多假设。但是非参数学习不等于没参数。

机器学习相关的哲学思考

思考一:数据即算法?

  1. 数据确实非常重要,所以我们需要收集更多的数据、提高数据的质量、提高数据的代表性、研究更重要的特征。
  2. 现阶段使用的机器学习处理的大多数任务都是数据驱动型

思考二:算法为王?

算法本身非常重要,再好的数据依然需要高效、优秀的算法作为辅助,才可以最大程度的发挥数据本身的作用

思考三:如何选择机器学习算法?

选择算法可以参考这两个原则:

  1. 奥卡姆的剃刀,也就是简单的就是好的。但是又引发了一个问题,到底在机器学习领域,什么叫“简单”?
  2. 没有免费的午餐定理。可以严格地数学推导出:任意两个算法,他们的期望性能都是相同的。具体到某个特定问题,有些算法可能更好。但没有一种算法,绝对比另一种算法好。所以说,脱离具体问题,谈哪个算法好是没有意义的。另外,在面对一个具体问题的时候,尝试使用多种算法进行对比实验是必要的。

思考四:面对不确定的世界,怎么看待使用机器学习进行预测的结果?

对于机器学习预测出来的准确结果,到底是机器学习本身起到了作用,还是只是一个巧合呢?这可能是我们需要思考的问题。另外一方面,当我们可以利用机器学习进行预测的时候,在某些应用的场景需要格外的小心,比如通过人脸特征预测出成为罪犯的概率,那么我们应该怎么看待这样的预测结果呢?甚至,可能会产生一个新的学科 —— 机器伦理学。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值