【IT168 资讯】近些年,深度学习获得越来越多的吸引力和关注。它主要集中在机器学习的一部分:人工神经网络。本文具体解释了为什么深度学习是分析中的游戏改变者、何时使用它,以及Visual Analytics如何让业务分析师利用由(公民)数据科学家构建的分析模型。
什么是深度学习和人工神经网络?
深度学习是人工神经网络的现代流行词,它是机器学习中构建分析模型的许多概念和算法之一。一个神经网络的工作原理类似于我们从人脑中所了解到的:将非线性交互作为输入并将其传输到输出。在这儿,神经网络是利用连续学习和增加输入和输出之间计算节点的知识。
神经网络在大多数情况下是监督算法,它使用历史数据集来学习相关性以预测未来事件的输出,例如,用于交叉销售或欺诈检测。无监督的神经网络可以用来发现新的模式和异常。在某些情况下,结合监督和非监督算法是有意义的。
神经网络被用于研究数十年,包括各种复杂的概念,如递归神经网络(RNN)、卷积神经网络(CNN)和自动编码器。然而,今天的强大且具有弹性的计算基础架构与其他技术(如具有数千个内核的图形处理单元(GPU))相结合,可以用更深层次的层数进行更强大的计算。因此,术语称为“深度学习”。
以下来自TensorFlow Playground的图片展示了一个易于使用的环境,其中包含各种测试数据集、配置选项和可视化,以学习和理解深度学习和神经网络:
如果您想深入了解深度学习和神经网络的细节,我推荐以下资源:
·“深度学习框架解析”——一篇关于神经网络基本概念和组成部分的文章
·TensorFlow游乐场可以亲自动手操作神经网络,无需任何编码,也可在Github上使用,以建立自己的定制离线游乐场
·在Youtube上的“深度学习简化”视频系列中,对基本概念、替代算法和一些框架如H2O.ai或Tensorflow
尽管深度学习越来越受到人们的关注,但它并不是每个场景的灵丹妙药。
何时不使用深度学习?
深度学习实现了几年前在“大规模生产”中不可能实现的许多新的可能性,例如,图像分类、对象识别、语音翻译或自然语言处理(NLP),而不是深度学习。自动特征工程的一个主要优点是,与大多数其他机器学习方案相比,这花费了大量时间和精力。
您还可以利用深度学习做出更好的决策,增加收入或降低现有(“已解决”)问题的风险,而不是使用其他机器学习算法。例子包括风险计算、欺诈检测、交叉销售和预测性维护。
但是请注意,深度学习有一些重要的缺点:
·非常昂贵,而且缓慢、计算密集,训练深度学习模型通常需要数天或数周,执行时间也比大多数其他算法会花费更多时间
·很难解释:分析模型的结果缺乏可理解性,但它又通常是法律或合规规定的关键要求
·倾向于过度配合,因此需要正规化
深度学习是解决复杂问题的理想方法,它也可以在层级属于中等的问题上超越其他算法。深度学习不应该用于简单的问题。其他算法,如逻辑回归或决策树可以更容易、更快地解决这些问题。
开源深度学习框架
神经网络大多采用各种开源实现之一。各种成熟的深度学习框架可用于不同的编程语言。
下图显示了开源深度学习框架的概述并评估了几个特征:
这些框架的共同之处在于它们是为数据科学家而建立的,即具有编程、统计、数学和机器学习经验的人物角色。请注意,编写源代码并不是一项大任务。通常,构建分析模型只需要几行代码。这与其他开发任务完全不同,例如构建Web应用程序,可能会需要在其中编写数百或数千行代码。在深度学习和一般数据科学中,理解代码背后的概念以建立一个良好的分析模型可能才是最重要的。
一些不错的开源工具,如KNIME或RapidMinerallow视觉编码可以加速开发,并鼓励市民数据科学家(即经验较少的人)学习概念并构建深度网络。这些工具使用自己的深度学习实现或其他开源库,如H2O.ai或DeepLearning4j作为嵌入式框架。
如果您不想构建自己的模型或利用现有的预先训练好的模型进行常见深度学习任务,那么您也可以查看大型云提供商的产品,例如,用于文本到语音翻译的AWS Polly,用于图像内容分析的Google Vision API或微软的 Bot Framework来构建聊天机器人。
这些技术巨头在分析文本、语音、图片和视频方面拥有多年经验,并将他们在复杂分析模型方面的经验作为云服务提供给他们,现收现付。您还可以使用自己的数据改进这些现有模型,例如训练并改善您的具体行业或场景图片的通用图片识别模型。
与视觉分析相结合的深度学习
无论你想用你最喜欢的编程语言还是一个可视化编码工具来“使用”一个框架:你需要能够根据构建的神经网络做出决定。这是视觉分析发挥作用的地方。总之,可视化分析允许任何角色在分析复杂数据集时进行数据驱动的决策,而不是倾听直觉。
业务分析师不了解深度学习的任何内容,只是利用集成分析模型来回答其业务问题。当业务分析师更改某些参数、功能或数据集时,分析模型就会在幕后应用。(公民)数据科学家也可以使用视觉分析来构建神经网络,以更详细地了解技术和非技术人员应该如何使用可视化分析来构建神经网络,从而帮助解决业务问题。甚至一些数据准备工作最好在可视化分析工具中完成。
从技术角度来看,深度学习框架(当然也可以类似于任何其他机器学习框架)以不同方式集成到可视化分析工具中。以下列表包含每种替代方案的TIBCO Spotfire示例:
·嵌入式分析:直接在分析工具中实施(自我实施或“OEM”);可以被业务分析人员使用,而不需要任何有关机器学习的知识(Spotfire:通过输入和输出数据以及群集大小的一些基本简单配置进行群集)
·本地整合:连接器可直接访问外部深度学习群集。 (Spotfire:TERR使用Ras的机器学习库,KNIME连接器直接与外部工具集成)
·框架API:通过Wrapper API以不同编程语言访问。例如,您可以将MXNet通过R或TensorFlow集成到您的可视化分析工具中。如果没有本地集成或连接器可用,则始终可以使用此选项并且是合适的。(Spotfire:通过Spotfire的TERR集成使用任何R库的MXNet?R接口)
通过分析服务器集成为服务:通过分析工具的服务器端组件间接连接外部深度学习群集,分析工具可以以类似的方式访问不同的框架(Spotfire:用于SAS或Matlab等外部分析工具的统计服务器)
云服务:访问预先训练的模型,用于图像识别、语音识别或文本处理等常见深度学习特定任务。不适用于企业的非常具体的个人业务问题。 (Spotfire:通过Spotfire?的TERR / R界面,通过REST服务向AWS,Azure,IBM,Google等公共深度学习服务提供图像识别,语音翻译或Chat Bot等服务)
所有选项的共同之处在于您需要添加一些超参数的配置,即“高级”参数,如问题类型、特征选择或正则化等级。根据集成选项的不同,这可能是非常技术性又低级别的,或者简化、降低灵活性使用业务分析人员所理解的术语。
深度学习示例:TIBCO Spotfire的自动编码器模板
让我们以神经网络的一个特定类别为例:自动编码器寻找异常。自动编码器是一种无监督神经网络,用于通过限制神经网络中隐藏层的数量来复制输入数据集。预测时会产生重建错误。重建误差越高,该数据点成为异常的可能性越高。
自动编码器的使用案例包括打击金融犯罪监控设备传感器、医疗保险索赔欺诈或检测制造缺陷。 TIBCO社区中,免费提供通用的TIBCO Spotfire模板。您可以简单地添加数据集并利用模板来使用自动编码器查找异常情况,而无需任何复杂的配置或编码。引擎盖下,模板使用H2O深度学习实施和它的R API。它在运行Spotfire的计算机上的本地实例中,您也可以查看R代码,但根本不需要使用该模板,因此也是可选的。
真实世界示例:预测性维护的异常检测
让我们列举一个将Autoencoder用于真实世界的例子。在电信公司,你必须不断分析基础设施,以发现网络中的问题。最好在失败之前发生,以便在客户发现问题之前就可以解决问题。看看下面的图片,它显示了电信网络的历史数据:
橙色的点是尖峰,这是基础设施技术问题的首要表现。红点显示了一个不断失败的地方,机械师必须更换部分网络,因为它不再工作。
自动编码器可用于在实际发生之前检测网络问题。 TIBCO Spotfire在后台使用H2O自动编码器来查找异常情况。如前所述,源代码相对较少。以下是使用H2O学习深度学习R API构建分析模型并检测异常情况(通过找出Autoencoder的重建错误):
这个由数据科学家建立的分析模型被集成到TIBCO Spotfire中。业务分析师可以直观地分析历史数据和Autoencoder的见解。这种结合使数据科学家和业务分析师能够流利地合作。实施预测性维护并通过降低风险和成本创造巨大的商业价值从未如此简单。
使用流式分析将分析模型应用于实时处理
本文重点介绍如何使用数据科学框架和可视化分析构建深度学习模型。项目成功的关键在于将构建分析模型实时应用于新事件,以增加业务价值,如增加收入、降低成本或降低风险。
“如何将机器学习应用于事件处理”更详细地描述了如何将分析模型应用于实时处理。或者观看利用TIBCO StreamBase实时应用一些H2O型号的相应视频录像。最后,我们推荐学习各种流式分析框架来应用分析模型。
让我们回到Autoencoder用例来实现电信公司的预测性维护。在TIBCO StreamBase中,您可以轻松应用构建的H2O Autoencoder模型,而无需通过StreamBase进行任何重新开发 H2O连接器。您只需附加由H2O框架生成的Java代码,其中包含分析模型并编译为非常高性能的JVM字节码:
最重要的经验是:在构建分析模型之前考虑执行要求。对于延迟,你需要什么样的性能?您需要每分钟、或者几毫秒能够处理多少事件数量?您是否需要将分析模型分布到具有多个节点的群集?你多久需要改进和重新部署分析模型?您需要在项目开始时回答这些问题,以避免分析模型的双重努力和重新开发!
另一个重要的事实是,分析模型并不总是需要“非常快速或频繁执行模型的实时处理”。在上述电信公司的例子中,这些高峰和失败可能会在随后的几天甚至几周发生。因此,在许多使用案例中,因此,每天或每周应用一次分析模型就好了,而不是每一次新事件。
深度学习+视觉分析+流媒体分析=新一代大数据成功案例
深度学习允许以更高效的方式解决诸如交叉销售、欺诈检测或预测性维护等许多众所周知的问题。另外,您还可以解决其他场景,这些场景之前无法解决,例如准确高效的对象检测或语音到文本的翻译。
可视化分析是深度学习项目成功的关键组件。它简化了(公民)数据科学家对深度神经网络的开发,并允许业务分析师利用这些分析模型来发现新的见解和模式。
今天,(公民)数据科学家使用R或Python等编程语言,Theano,TensorFlow,MXNet或H2O深水等深度学习框架以及像TIBCO Spotfire这样的可视化分析工具来构建深度神经网络。将分析模型嵌入到业务分析师视图中,以便在不知道技术细节的情况下利用它。
未来,可视化分析工具可能会嵌入神经网络功能,就像今天已经嵌入了其他机器学习功能(如聚类或逻辑回归)一样。这将允许业务分析师在没有数据科学家的帮助下利用深度学习,并适用于更简单的用例。
但是,不要忘记,构建分析模型以发现洞察力只是项目的第一部分。事后部署到实时与第二步一样重要。在找到见解和将新见解应用于新事件的工具之间的良好整合可显著提高数据科学项目的上市时间和模型质量。开发生命周期是一个连续的闭环。分析模型需要在特定的序列中进行验证和重建。