当前位置: 首页 > 科技观察

在人工智能和大数据产品的开发中,有哪些需要特别注意的地方?

时间:2023-03-18 13:54:13 科技观察

人工智能是近年来科技发展的重要方向,大数据采集、挖掘和应用技术越来越受到关注。在人工智能和大数据产品的发展过程中,有哪些需要特别注意的点?人工智能领域的算法大师、华盛顿大学教授佩德罗·多明戈斯(PedroDomingos)对此进行了深入思考。大观数据《智能Web算法》最新译本(第2版),高度总结了PedroDomingos教授的观点,提炼出12个关注点,为行业发展实践提供了重要参考:注1:YourDatamaynotbereliable在实际应用中,有多种原因可能导致您的数据不可靠。所以大家在用数据解决问题的时候,一定要时刻注意检查数据是否可信。不管人多么聪明,如果他们根据糟糕的数据进行挖掘,他们总是会得到糟糕的结果。导致数据可靠性问题的一些常见因素如下:用于开发的数据往往与实际数据分布不同。例如,你可能想根据身高将用户分为“高”、“中”、“矮”三个等级,但是如果系统开发使用的数据集中用户的最小身高是6英尺(184cm),那么很可能你开发的系统会将“只有6英尺”的用户称为“矮”用户。您的数据集中有很多缺失数据。事实上,除非是人为构造的数据集,否则很难避免数据缺失的问题。如何处理缺失数据的问题,是一件很有技巧的事情。在实践中,我们要么简单地丢弃一些不完整的数据,要么想办法计算一些值来填补这些缺失值。任何一种方法都可能导致不稳定的应用结果。您的数据可能随时更改。数据库的表结构可能发生变化,数据定义也可能发生变化。您的数据可能未规范化。假设您可能正在观察一组用户的体重。为了得到有效的结论,首先需要对每个重量的计量单位进行归一化,是磅还是千克,不要混淆。您的数据可能不适合相应的算法。数据有多种形式和规格,或者说数据类型(datatypes),有的是数值型数据,有的则不是。有些数据集可以排序,有些则不能。有些是离散化的数据(比如房间里的人数),有些是连续的(比如温度或气压等数据)。注2:计算很难在瞬间完成。任何人工智能解的计算都需要一定的时间才能完成。解决方案的响应速度对商业应用的成功起着关键作用。你不能总是盲目地假设任何算法都可以在指定时间内在所有数据集上完成。您需要测试算法的性能是否在可接受的应用范围内。以搜索引擎为例,用户对返回结果的时间有限制。如果用户等待超过10秒,就会流失50%的用户,如果等待时间超过1分钟,就会流失90%以上的用户。在开发智能应用系统时,为了达到更好的算法精度,系统运行和等待时间是不能忽略的,否则整个产品就会失败。注3:数据大小很重要当我们考虑智能应用时,数据大小是一个非常重要的因素。数据规模的影响可以分为两点:第一点是规模会影响应用系统的响应速度,我们在上一节中刚刚提到过;第二点是在大数据集上挖掘出有价值的结果的能力会受到考验。例如,为100个用户开发的电影或音乐推荐系统可能效果很好,但当同样的算法移植到100,000个用户的环境中时,效果可能不尽如人意。其次,使用更多数据进行训练的简单算法往往比遭受维度诅咒的复杂算法表现得更好。对于像谷歌这样拥有海量数据的大型企业来说,出色的应用效果不仅来自精巧复杂的算法,更来自于其对海量训练数据的大规模分析和挖掘。注4:不同的算法具有不同的可扩展性我们不能假设所有的智能应用系统都可以通过简单地增加服务器来扩展性能。一些算法是可扩展的,而另一些则不是。例如,如果我们想从数以亿计的文章标题中找到标题相似的文章,注意此时并不是所有的聚类算法都能并行运行,在设计系统性时就应该考虑可扩展性。在某些情况下,您需要将数据拆分成更小的集合,并能够在每个集合上并行运行智能算法。设计系统时选择的算法往往需要有并行化的版本,这需要从一开始就考虑到,因为通常围绕算法会有很多关联的业务逻辑和架构需要一起考虑。注5:没有一刀切的解决方案。你可能听过一句谚语,“手上拿着锤子,看什么都像钉子”。在这里我想表达的是,没有一种解决方案可以适用于所有的智能应用。问题的算法。智能应用软件与所有其他软件一样,都有其特定的应用领域和局限性。面对新的应用领域时,必须充分验证原有方法的可行性,最好尝试用新的视角来审视问题,因为不同的算法在解决具体问题时会更加有效和有效。合适的。注6:数据不是万能的从根本上说,机器学习算法并不神奇。它需要从训练数据开始,逐渐扩展到未知数据。例如,假设你已经对数据的分布有了一定的了解,那么通过图形模型来表达这些先验知识是非常有效的。除了数据之外,您还需要仔细考虑可以应用该领域的哪些先验知识,这对于开发更有效的分类器非常有帮助。数据与行业经验相结合,往往能事半功倍。注7:模型训练时间差异较大在具体应用中,某些参数的微小变化可能会导致模型训练时间差异较大。例如,深度神经网络训练过程中会发生各种参数调整。人们往往会直观地感觉到,在调整参数时,训练时间基本稳定。例如,假设有一个系统计算地球平面上任意两点之间的距离,那么任意给定两点的坐标时,计算时间几乎是一样的。但在其他系统中,情况并非如此,有时微小的调整会造成显着的时间差异,有时差异甚至可能大到几小时而不是几秒。注8:泛化是目标机器学习实践中最常见的误解之一是陷入细节而忘记了最初的目标——通过调查获得处理问题的一般方法。测试阶段是验证一个方法是否具有泛化能力的关键环节(通过交叉验证、外部数据验证等),但要找到合适的验证数据集并不容易。在只有几百个示例的集合上训练具有数百万维特征的模型时,试图获得出色的准确性是荒谬的。注9:人的直觉可能不准确。当特征空间扩大时,输入信息之间形成的组合关系会迅速增加,这使得像中等数据集这样的数据很难采样和观察一部分。更令人不安的是,随着特征数量的增加,人类对数据的直觉会迅速退化。例如,在高维空间中,多元高斯分布并不是沿着均值分布,而是像扇贝一样围绕着均值分布,这与人们的主观感受完全不同。在低维空间建立分类器并不难,但当维数增加时,人类就很难直观理解了。Note10:考虑加入更多的新特性你可能听过这句格言“garbagein,garbageout”(垃圾进,垃圾出),这在构建机器学习应用程序时尤为重要。为了防止挖掘效果失控,关键是要充分把握问题的领域,通过调查数据生成各种特征。这种方法将极大地帮助提高分类的准确性和泛化能力。仅仅通过将数据扔进分类器就可以得到好的结果的幻想是不可能的。注11:现在越来越流行学习各种模型的组合(Ensemble)技术,因为组合的方法可以以一点偏差为代价大大减少算法的差异性。肯定。在著名的Netflix算法竞赛中,冠军队和优秀队都采用了组合模型的方法,组合了100多个模型(将高阶模型叠加在模型上形成组合)来提升效果。人工智能在实际应用中,从业者普遍认为,未来的算法有时会通过模型组合获得更好的准确率,但这也会提高非专业人士理解系统机制的门槛。注12:相关性与因果关系不同。值得反复强调。我们可以用一个笑话来解释:“全球变暖、地震、龙卷风等自然灾害,都与18世纪以来全球海盗数量的减少有直接关系”。这两个变量的变化是相关的,但不能说是因果关系,因为往往还有未观测到的第三类(甚至第四类、第五类)变量在起作用。相关性应被视为潜在因果关系的衡量标准,但还需要进一步研究。在开发人工智能和大数据应用系统时,抓住以上十二个注意点,将能够有效避免实战中的各种“陷阱”,帮助技术在走出实验室走向应用时发挥更强大的作用.陈允文,大观数据创始人兼CEO,博士。复旦大学计算机学士,上海市计算机学会多媒体分会副会长,美国计算机协会(ACM)和电气与电子工程师协会(IEEE)高级会员。曾任盛大文学首席数据官、腾讯文学高级总监、数据中心负责人、百度核心技术研发工程师。曾代表中国参加ACM等多项国际数据挖掘竞赛并获得冠军。