现在市面上的机器学习教程大多先学习数学基础,然后学机器学习的数学算法,再建立机器学习的数学模型,再学习深度学习,再学习工程化,再考虑落地。这其中每个环节都在快速发展,唯独落地特别困难。我们花费大量时间成本去学习以上内容,成本无疑是特别昂贵的。所以我们不如先“盲人摸象”、“不求甚解”地探索下机器学习,浅尝辄止。如果想到自己的应用场景,再学以致用,深入探索。这无疑是使沉没成本最低的决策。
本教程适合兴趣广泛的人士增加自己知识的广度,从应用的角度谨“使用”机器学习这款工具,是典型的黑盒思维。这非常契合笔者的思维方式,当然也是我个人的格局局限。
本教程会浅显易懂,让你走的很快。但如果你想走的更远还请学习数学。当然我们也只是暂时放下数学,先构建自己的知识体系。
先抬头看路,找准适合自己的方向,再埋头赶路,或深耕下去……
把视角拉高从手工到工业化再到人工智能,这是把人类从生产活动中逐渐解放的过程。用机器来帮助人们工作,一直是人类的美好愿望。让机器智能化,以此来代替人力做更智能问题,这可以作为人工智能的简单解释。
很多教程或者书籍把人工智能、机器学习、深度学习的关系解释为从属关系,人工智能 > 机器学习 > 深度学习。这种解释不错,但却无法表示他们之间的更深层次的关系。
机器学习是通过数学方法在数据中寻找解释,以此来实现人工智能的一种手段。而深度学习是参照神经系统在机器学习基础上发展出的一种高级技巧。 它们之间是存在一定的依托关系、进化趋势的。
狭义地讲,传统的机器学习是通过数学模型不断求导来找出数据规律的过程。这其中数学模型的选择尤为重要。随着GPU、TPU等算力的发展,算法技术的进步,甚至出现了自动选模型、自动调参的技术。我们可以构建复杂的神经网络结构,只要有足够的算力支持,足够的时间我们可以用深度学习处理非常复杂的任务。所以在代码操作上,深度学习甚至比传统的机器学习对程序员更友好、更易理解。我们先学习传统机器学习而非直接学习深度学习的好处是,我们可以通过对“黑盒”的拆箱来理解机器学习过程,掌握机器学习的概念,我会对其中应用的数学模型进行解释。
我们先来看一下人工智能产业链的结构,如下图:
我们可以看到,机器学习的三大基石---算力、算法与数据。机器学习的发展离不开算法数学的进步,同样离不开算力的发展。
在技术层面,机器学习在计算机视觉(CV, Computer Vision)和自然语言处理(NLP, Nature Language Processing)取得了关键的发展和应用。
算法分类上,机器学习分为监督学习、非监督学习、半监督学习、强化学习等。
监督学习:数据样本有标签。
非监督学习:数据样本无标签。
半监督学习:数据样本有部分(少量)标签。
强化学习:趋向结果则奖励,偏离结果则惩罚。
所谓Garbage in, Garbage out(垃圾进,垃圾出)。数据是机器学习的重中之重。我们需要花费大量的时间来处理数据,甚至占到整个机器学习任务的90%以上。
比如数据处理过程中的数据采集,如果我们采样的方式欠妥,就可能导致非代表性的数据集,这就导致了采样偏差。
我们的数据可能会有很多无效的数据,我们需要剔除无效的数据,就叫做数据清洗。
我们通过挖掘大量数据来发现不太明显的规律,就称作数据挖掘。
我们以一款工业化流水线工具TFX为例,看一下机器学习的技术流程。
流程分为数据输入、数据验证、特征工程、训练模型、验证模型、应用良好模型和提供模型六个部分:
输入数据,并根据需要拆分数据集。
生成训练数据和服务数据的特征统计信息。通过从训练数据中推断出类型、类别和范围来创建架构。识别训练数据和服务数据中的异常值。
对数据集执行特征工程。
训练模型,调整模型的超参数。
对训练结果进行深入分析,并帮助验证导出的模型。检查模型是否确实可以从基础架构提供服务,并防止推送不良模型。
将模型部署到服务基础架构。
我想通过以上解释,大家应该可以对机器学习的实践方法有了一定宏观的了解。
机器是如何学习的