“
很多人都在谈机器学习,无论是专业从业者还是业余爱好者都必须弄清楚一个问题:什么是机器学习?
”
01
机器学习的意义
在开始机器学习的介绍之前,我们先来讨论一个问题:为什么要让机器去学习,机器学习的意义是什么?
小明想买一辆车。他上网查阅了很多信息了解到一辆新车的价格大概20000美元,用过一年的价格19000美元,用过两年的价格在18000美元。所以小明得出一个结论:车的价格和使用年限有关,多使用一年降1000美元,但是不可能低于10000美元。从机器学习的角度看,小明使用到了回归的思想。他基于历史数据预测了一个数值(价格),生活中这种思想的使用无处不在,比如从二手网站购买一个旧的iphone。
02
机器学习三要素
如果想要检测垃圾邮件,首先需要垃圾邮件的样本;如果想要预测股票价格,首先要得到股票的历史价格;如果想要了解用户的喜好,那么需要解析他们在网站上的行为。数据越多样化,预测的效果越好。获取数据的方式有两种:手动和自动。手动收集到的数据,错误较多且耗时长,这部分数据会贵重一些,自动收集的数据相对便宜。一些科技公司会利用他们的客户免费帮助给数据标签,比如我们经常见到的验证码,选择包含人行道的图片。
特征可能是车的行驶里程、用户性别、股票价格或者文字中单词的频率。例如Excel表中存储的数据对应的特征就是它的列表项,比如用户信息表中的身高、体重、性别等。但是如果换成100GB的图片数据呢,显然不能把每一个像素都当作特征处理。这就是为什么选择出正确的特征会比机器学习流程中其他部分更耗时的原因。这一过程更容易出现错误,因为人们更倾向于选择“自己喜欢的”或者“看起来更重要的”。
任何的问题都可以用不同的方法解决。对于机器学习来说,不同的算法会影响到模型最终的预测效果、性能和大小。但是要明确一点:数据很差,再好的算法也无济于事,与其过度地关注算法准确性,不如尝试获取更好的数据。
03
机器学习流程
训练数据是指构建机器学习模型使用到的数据集。某些情况下,训练数据会被打标签,这些标签代表了模型需要识别的特征或者类型。未打标签的情况下,模型需要自行提取这类数据的特征并进行分类。无论哪种情况,都需要充分的准备好数据,这些数据必须随机,且需要剔除一些可能使模型出现偏差的脏数据。最后这些数据被分为两个子集:训练子集(将用于训练应用程序)和评估子集(用于测试和优化应用程序)。
算法的类型取决于训练数据有无标签、数据量和要解决问题的类型。
有标签数据使用的机器学习算法的常见类型包括:回归算法、分类算法
无标签数据使用的机器学习算法的常见类型包括:聚类算法、关联算法
模型训练是一个反复的过程。这个过程中需要不断地进行参数调节,直到达到比较好的学习效果。经过训练且相对准确的算法才是机器学习模型,需要注意这个重要区别,因为“算法”和“模型”经常会被混淆使用。
最后一步是将模型应用于新数据。最好的情况是,随着时间的推移,模型将提高准确性和有效性。实际中,随着时间的推移,模型的效果会出现一些负面的偏差,需要人为干预矫正,例如重训模型等。
04
机器学习与人工智能
很多时候很多人都会将这两个概念混淆使用。下面明确一下:
人工智能:整个知识领域的名称。
机器学习:是人工智能的一部分。重要的部分,但不是唯一的部分。
神经网络:机器学习类型之一。比较受欢迎,但是还有其他类型。
深度学习:构建,训练和使用神经网络的方法。
05
机器学习知识结构
一张图概括,有兴趣的同学可以继续关注后续的文章。