一份在移动应用程序项目中使用机器学习的指南

2017年11月24日 由 yuxiangyu 发表 764474 0

机器学习是人工智能的核心,旨在创建一个解决类似问题的通用方法。机器学习已经被整合到我们经常在日常生活中使用应用中,比如iPhone的Siri。本文是一个包含了如何在移动应用中使用机器学习的指南。



机器学习的工作原理


机器学习是基于人工神经网络的实现,人工神经网络在我们日常生活中的APP(比方说语音助手)和系统软件中都被广泛使用。它们可以进行诊断测试、探索生物学与合成材料。而人工神经网络相当于人类的神经元和中枢神经系统。这可能有点难以理解,所以我们来看看人脑是如何进行记忆和识别的。

与计算机不同,人脑更加强大。即使在光线不足,并且存在多个无关的物体,我们也能够轻松识别人脸。计算机目前在解决类似的任务时做得不是很好。我们的大脑是与计算机不同:它不会在生病的时候停止工作,就像在某些关键地方(例如硬盘或CPU)损坏的计算机一样。而且,我们不需要任何特殊的硬件,软件或操作系统来吸收新的信息。

但这种事情对于计算机复杂得多,所以科学家们仍然在积极寻找能够复制中枢神经系统工作的算法。他们发现为了将信息传递给大脑,神经网络产生电脉冲,将最简单的信号从一个神经元传递到另一个神经元。

在这个概念的基础上,第一个人造神经元在1943年诞生了。然而人脑的秘密仍然没有得到揭开。几十年后,科学家们证明,在人类记忆机制模仿和分析的基础上,只能解决一小组线性分离的问题。也就是说,任务的预期结果可以预先系统化或预先确定。

但并不是所有的任务都线性可分。所以,现在我们将讨论用什么样的机器学习可以解决特定类型的问题。

机器学习的类型


监督学习


受监督的机器学习基于大量实例的分析,并被用于绝大多数现代公共平台基于人工智能的应用程序开发。

要实现学习过程,要讲需要分析的实例加载到机器中。这些实例,需要包括各种信息:地理定位数据,日期和对象分析本身的具体特征。然后,在此的基础上生成一些模板。让算法找到与大多数相关信息对应的最佳模板。这样,机器就会得到实际的信息(例如照片上有一只猫),甚至是预测信息(如预测美元未来的汇率)。

在有监督的机器学习环境中,有三种标准算法:

  • 分类(比如,当预期的结果某个物品时);

  • 回归(用于预测价格和其他数值数据);

  • 异常检测(常用于商业领域,例如电子商务或金融行业,也用于数据挖掘以检测黑客软件的干预)。


因此,该算法多适用于电子商务机器学习应用。

无监督学习


在不受控制或无人监督的学习中,机器即不接收任何特定的输入数据,也不能独立地检测到用户请求中的特定模式。在训练过程中,没有收到任何来自外界的提示,即哪些样本是正确的,哪些不是。这种应用的活动完全基于与特定用户合作的经验。

强化学习


它把教师提供的知识和自己的经验抽象出来。例如,你可以创建一个自动管理机器来分析用户评论,并提高服务质量。机器人和物联网APP中使用了类似的算法。目前,强化学习算法是最难实现的,因此它很少被用于在软件平台上创建基于AI的应用程序。

机器学习的问题


机器自主学习的主要问题是编译正确的训练样本的能力。虽然学习成功的主要取决于训练实例的数量,但机器可以使用错误的标识来生成样本,从而产生不正确的结果。例如,机器仅识别背景中包含森林的房屋的图像。如果在包含森林的背景中看到一张长凳的照片,机器也可能将其识别为房屋。

为了尽量减少这种风险,机器学习软件平台使用如下各种方法:

  • 数据增强(这意味着必须对图像进行一些修改,创建样本的中心对象仍然保持完整)。

  • 硬样本挖掘(Hard sample mining,当样品通过类似于中央对象的对象形成,然后机器根据大量的例子分析它们之间的差异);

  • 数据添加模仿(在这种情况下,部分神经元的链接被无效化,因此,机器在其存储器中仅包含与目标对象有关的数据,不包含背景元素)。


现在,让我们来看看主要的问题:如何创建一个定制的机器学习移动应用程序。我们首先将看看开发人员经常使用的平台。

机器学习开发移动应用程序的五大平台


Api.ai


Api.ai是一个由Google开发团队创建的平台它可以积极地使用上下文相关的依赖关系。使用此平台,你可以成功地为iOS和Android个人助理创建业务解决方案,改善特定用户使用的功能。它的工作原理十分简单。其活动基于两个基本概念:实体(上面提到的中心对象)和角色(确定中心对象活动的伴随元素)。更简单地说,它旨在揭示用户请求中的主体(执行者实体)和谓词(角色)。此外,尽管科学家们证明,即使是新生儿也有一些关于世界的概念,Api.ai的创造者通过强大的数据库加强了他们的算法。这个数据库就是所谓智能体的用作指导,提供基于这个平台的软件解决方案。

Wit.ai


Wit.ai的原理与前面提到的平台大致相同。它的特点还包括将语音转换成印刷文本的工具。我们需要注意到Wit.ai中的“历史”功能,它能够分析上下文相关的数据,从而为请求生成最准确的请求(尤其是在商业站点中创建聊天机器人时)。这个平台也是使用机器学习创建Windows Phone,iOS和Android应用程序的不错选择。

Tensorflow


Tensorflow是Google的一个开源库,它允许你创建基于深度机器学习(这是解决非线性问题必需的)的解决方案。通过在用户环境中与用户交流的经验,基于Tensorflow的应用逐渐为用户请求产生正确的答案。请注意,这个库不是初学者的最佳选择。

IBM Watson


IBM Watson系统是提供了处理用户请求的全面方法的解决方案。无论采用何种格式收集到的数据(语音,图像等)都可以采用多种方法快速分析。这种搜索解决方案的方法将IBM Watson与上面提到的涉及复杂的ANN逻辑链的其他解决方案区分开来。这种多任务在大多数情况下是赢家。它与使用多级算法选择最佳模板的方法相比,确定了最小错误风险的因素。

Azure


Microsoft Azure是一个云解决方案,它拥有非常大的支持社区、高质量的多语言文档以及大量的可访问的教程。这个平台基于编程语言R和Python。由于先进的分析机制,你可以创建能够生成准确预测的应用程序。可以预见哪个候选人将赢得下一次竞选活动,也可以检测恶意软件,揭示公司特定软件的异常行为。

现在,我们来看看在移动应用中实现机器学习技术的最着名的例子。

基于机器学习的移动应用成功案例


Shazam


我们不懂IT的朋友对这个应用程序的工作方式一直感到困惑。这是因为Shazam是基于机器学习的原理。通过将音乐转换为数字数据,Shazam将其与之前在学习阶段分析过的所有曲目进行比较。

Magic Keyboard 2


这个移动应用程序的基础是一个有趣的谷歌播放设计的键盘。只要它与主人一起工作就能获得经验,可以产生经常使用的短语或正确的单词,就像臭名昭着的T9一样。

Siri


现在还没有熟悉基于iOS的移动设备的人会不了解Siri。这是最成功的机器学习iOS应用程序之一。它作为基于人工智能的个人助理呈现,可以帮助用户简化日常工作。

Seer Predictive Speed Dialer


这个从谷歌的移动应用程序可以让你减少电话簿的使用,你可以直接从主界面拨打最活跃的联系人。基于自动学习例程和对用户行为的预测分析,应用程序根据当前位置和之前的调用更改快速拨号小部件上可用联系人的选择。

Migraine Buddy


该应用程序基于Healint机器学习服务,可在iOS和Android平台上使用,作为慢性偏头痛患者的助手。MIGRAINE BUDDY对用户的生活方式和日常生活习惯进行了广泛的研究,并考虑了当地天气,以前的发病的特点,服用的药物,健康状况等因素,预测了后续头痛的可能性以及预防方法。

结论


那么,开发者在机器学习方面有哪些优势呢?人工智能,特别是机器学习的概念,使你可以实现软件的全新功能。基于AI的商业应用程序到目前为止只能执行简单的任务。其原因是组织人工神经网络活动方法的不完善。同时,尽管他们的潜力每天都在增长,但价格相对较高。在某种程度上,我们很快就能获得高度智能的软件,可以轻易地超越人的思维。
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
写评论取消
回复取消