解决做好一个机器学习项目的3个问题
demi 在 周四, 02/21/2019 - 09:19 提交
机器学习是目前人工智能最令人激动的研究方向之一。我们可能更关注机器学习算法的实现细节,沉浸于机器学习所需要的数学功底,但对于机器学习从业者来说,如何更好更快速的实现一个机器学习项目更值得关注。
机器学习(Machine Learning,简称ML)是一种人工智能(AI)的分支,致力于研究让计算机系统能够从数据中学习并自动改进性能的算法和技术。机器学习使计算机系统能够从经验中学习,而不需要明确地进行编程。
机器学习是目前人工智能最令人激动的研究方向之一。我们可能更关注机器学习算法的实现细节,沉浸于机器学习所需要的数学功底,但对于机器学习从业者来说,如何更好更快速的实现一个机器学习项目更值得关注。
NLP的工程化,不是一个个算法的累积,也不是一个个任务的独立优化,而应该是系统工程,综合考虑语言、计算、场景等多种因素,不断演进融合,寻求效果满意解的过程。根据赫伯特.西蒙(图灵奖和诺贝尔奖双料得主)的有限理性模型,受到所处环境的高度复杂性和有限的信息加工能力限制,因此NLP应用落地时,我们不可能遵循”最优化“的策略,而应该以获取当前可接受的“满意解"为目标。
余弦相似度(Cos距离)与欧氏距离的区别和联系:欧式距离和余弦相似度都能度量 2 个向量之间的相似度;放到向量空间中看,欧式距离衡量两点之间的直线距离,而余弦相似度计算的是两个向量之间的夹角;没有归一化时,欧式距离的范围是 (0, +∞],而余弦相似度的范围是 (0, 1];余弦距离是计算相似程度,而欧氏距离计算的是相同程度(对应值的相同程度);归一化的情况下,可以将空间想象成一个超球面(三维),欧氏距离就是球面上两点的直线距离,而向量余弦值等价于两点的球面距离,本质是一样。
有道是“罗马不是一天建成的”,机器学习的发展也是历经了很长时间,在这过程中形成了五大流派:符号主义(Symbolists),贝叶斯派(Bayesians),联结主义(Connectionist),进化主义(Evolutionaries)和行为类比主义(Analogizer),这五大流派各有各的特点。
机器学习(Machine Learning),人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,主要使用归纳、综合而不是演绎的方法研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是一门多领域的交叉学科,涉及到概率论、统计学、逼近论、凸分析、算法复杂度理论和计算机科学等诸多学科。
如今,许多公司都已经开始利用人工智能和机器学习,并且这些技术的影响只会越来越大。虽然这对于想要提高业绩的企业来说是件好事,但许多员工也担心机器人会在未来几年内取代他们的工作。
虽然人工智能可能会改变某些类型的工作,但它们永远不会完全取代人类的工作——你只需要知道如何维持并推销你的技能。来自福布斯教练委员会(Forbes Coaches Council)的成员们分享了一些技巧,让你可以在未来的职业生涯中获取所需的技能。
1. 学会理解数据的价值
虽然新的创新将要求每个人对技术越来越熟悉,但是这并不意味着每个人都能精通技术。而在学习计算和解释数据方面,技术则是一股很大的力量。这项技能将会见证劳动力需求的增加,并将有助于巩固作为雇员或潜在领导者的价值。——LaKisha Greenwade, Lucki Fit LLC
2. 学习,执行,教导,服务
一般来说,学习的过程通常意味着先犯错误以及选择错误的道路,然后再想明白如何在将来避免这些陷阱。机器学习也不例外。当你在你的企业中运用机器学习时,要小心:一些技术营销可能会告诉你机器学习的过程是又快又好的,但这是一种对技术的不切实际的期望。事实是,机器学习过程中必定会出现错误。
生成模型(Generative Model)是相对于判别模型(Discriminative Model)定义的。他们两个都用于有监督学习。监督学习的任务就是从数据中学习一个模型(也叫分类器),应用这一模型,对给定的输入X预测相应的输出Y。这个模型的一般形式为决策函数Y=f(X)或者条件概率分布P(Y|X)。
一、完整机器学习项目流程
1. 数学抽象--任务目标
明确问题是进行机器学习的第一步。机器学习的训练过程通常都是一件非常耗时的事情,胡乱尝试时间成本是非常高的。
这里的抽象成数学问题,指的是根据数据明确任务目标,是分类、还是回归,或者是聚类。
2. 数据获取--数据集
数据决定了机器学习结果的上限,而算法只是尽可能逼近这个上限。
数据要有代表性,否则必然会过拟合。
对于分类问题,数据偏斜不能过于严重(平衡),不同类别的数据数量不要有数个数量级的差距。
对数据的量级要有一个评估,多少个样本,多少个特征,据此估算出内存需求。如果放不下就得考虑改进算法或者使用一些降维技巧,或者采用分布式计算。
作为一个机器学习方面的小白,在闵老师课上学的两个聚类算法,即经典的K-means聚类和基于随机游走的聚类算法,是我学习到的头两个与机器学习相关的算法。算法课上,闵老师先讲了简单但是经典的K-means聚类算法,让我们对聚类算法有了一个初步的理解,紧接着又花了大量的时间剖析了基于随机游走的聚类算法。五周十二次的课程,我学到的不只是算法本身,下面将从几个方面来总结我对本课程的收获。