【IT168 评论】如果说机器学习的分支中最令人激动的部分当属深度学习,基于深度学习构建的复杂的模式识别系统,提供从自动化语言翻译到图像识别所需的一切功能。深度学习对非结构化数据的处理有很大潜力,只是目前还有很多问题需要解决。
▲图源于网络,侵权可删
不过,没关系。深度学习领域已经有了很多厂商在竞争,比如Google的TensorFlow和百度的PaddlePaddle。但是,目前还不涉及独角兽的争夺,大部分企业还是在研究更新自己的项目,但竞争已经相当激烈了。
从最初的算法和概念阶段投入商用,目前的竞争已经集中到了硬件与软件层面。深度学习的下一个重大进展可能就是设计用于模型培训和服务预测的专用硬件,或者是将更好、更智能、更高效的算法投入商用,而无需硬件辅助。最后,就是让更多普通人可以参与到这场科技革命中,而非一场只有人工智能专家的赛事。
Microsoft认知工具包:这会让TensorFlow紧张吗?
任何时候,一个技术想向世界展示其实力,最好的方式就是表明其可以如何使用,对企业而言可以带来多大价值。NoSQL、Hadoop和Spark都以这样的方式被世界接受,现在这一切正发生于深度学习身上。Google的TensorFlow现已被推广为十分强大的解决方案,其将深度学习应用与Google云服务融合,并充分利用了Google专有硬件的加速技术。
微软在深度学习领域推出了认知工具包(曾用名为深度学习工具包CNTK)。CNTK 2.0在多个方面都具备挑战TensorFlow的实力。其提供了一个Java API,允许与类似Spark这样的处理框架直接集成,并支持为流行的神经网络库Keras编写代码,这可能会导致Keras用户从Google的解决方案向微软转型。
同时,微软的认知工具包更快、更准确,并提供具备不同功能的Python API。微软甚至提出了从TensorFlow转为认知工具包的原因列表,有兴趣的可以自行搜索查看。
速度和准确性不仅仅是吹牛,如果Microsoft系统默认情况下比谷歌快,这意味着人们有更多的选择,而不仅仅是通过Google定制(和专有)的TPU处理器,在TensorFlow的加速问题上投入更多的硬件。这也意味着与TensorFlow和认知工具包(如Spark)接口的第三方项目将获得提升,TensorFlow和Spark已经在合作了,如果微软的认知工具包和Spark的结合可以带来更多收益,认知工具包将成为十分吸引人的一个选择。
百度PaddlePaddle:对中国开发者而言十分有益
▲图源网络,侵权可删
虽然经历了“PPT错字门”,但百度在人工智能领域的研究成果还是十分值得关注的。起初,Paddle是百度内部使用的深度学习平台,后来才全面开放并更名为PaddlePaddle。其全面支持Mac操作系统、以及Cuda8.0和GCC5.支持,在百度内部也得到了非常广泛的应用和训练。该领域内的很多专家表示,百度的PaddlePaddle对中国开发者而言十分有利,设计师只需关注模型的高层结构,而无需关注琐碎的底层问题。程序员有望通过该平台将深度学习应用于金融、医疗等领域,进而让人工智能发挥最大作用。
Graphcore和Wave Computing:为深度学习提供硬件支持厂商之间的竞争
Google的TPU缺点之一是它们只能在Google云端使用,这对于已经投入GCP的人来说,可能不是一个问题;但对其他人来说,这是一个潜在的阻碍。现在有不少公司都在研制专门用于深度学习的硬件,例如Nvidia的通用GPU。(以下是以其中两家公司为例)
最近,不少公司推出了专门用于深度学习应用的GPU专用硅片,Graphcore就是其中一家,它推出了深度学习处理器,专门用于处理神经网络中使用的图形数据的硅片。根据该公司的说法,这部分挑战集中于创建优化的硬件来运行网络,这些网络会相互重复或互相连接到其他网络。
Graphcore实现加速的一个方法是将网络模型尽可能靠近硅片,并避免与外部存储器的往返。尽可能避免数据移动是加快机器学习的常用方法,但Graphcore正在将该方法应用到另一个级别。
Wave Computing是另一家为深度学习提供专有硬件的公司。与Graphcore一样,该公司认为,在应用程序的固有局限性显露出来之前,新一代的GPU就应该被推送出来。Wave Computing的计划是构建“数据流设备”,使用定制芯片的机架式系统,可以提供2.9 petaops的计算(注意,定位操作是“petaops”,而不是浮点运算的“petaflops”)。如果真如该公司所言,这样的速度已经超过了Google TPU提供的92个数量级。
但目前尚不清楚每个petaop的价格是否比其他解决方案更具竞争力。但Wave正在一边琢磨价格优势,一边吸引更多潜在用户。TensorFlow将成为该产品支持的第一个框架,微软的认知工具包和亚马逊的MXNet之后可能也将使用。
Brodmann17:模型少,速度更快(深度学习领域创业公司兴起)
硬件厂商虽然可以帮助实现一款具有更好硬件的TPU产品,其他第三方则展示了更好的框架和算法进而提供更强大的机器学习。
Google对优化TensorFlow在移动设备上的表现有一些影响,比如其推出的TensorFlow Lite。名为Brodmann17的创业公司也在寻求使用其他解决方案的“5%的资源(计算,内存和培训数据)”在智能手机级硬件上提供深度学习应用程序的方法。
根据首席执行官兼联合创始人Adi Pinhas的说法,该公司使用现有的标准神经网络模块创建了一个更小的模型。Pinhas表示,与其他流行的深度学习架构相比,较小的型号相当于“不到培训数据的10%”,但培训所需的时间大约相同。最终的结果是预测速度与精度之间的轻微折衷,速度加快的同时降低了功耗,减少了所需内存。
目前,还不要指望这些作为开源工具,Brodmann17的业务模式是为云解决方案提供API,并为本地计算提供SDK。Pinhas表示,希望将来不断扩大产品,产品商业化只是初步。
深度学习对其他行业的影响
▲图源网络,侵权可删
今年早些时候,InfoWorld的贡献者James Kobielus预测,随着深度学习框架的兴起,Spark将会再次迎来一个小高潮。如上所述,TensorFlow已经接入了Spark,Spark的主要商业提供商Databricks也在研发提供自己的开源软件包,将深度学习框架与Spark更好地结合。自此,Spark将可以调用像TensorFlow和Keras这样的库(也可能是CNTK)。这些框架的模型可以以相同的方式进行大规模训练,例如Spark通过其他方式进行规模化,通过Spark来处理数据和深度学习模型。此外,许多数据驱动程序已经熟悉Spark并可与之配合使用。
深度学习会普及到所有人吗?
深度学习的内在复杂性并不是需要克服的唯一障碍,深度学习仍然是一个特别的领域,有很多空白需要填补,所有平台、框架和云的商业设备正在争取填补类似于端到端的解决方案。
接下来的关键一步可能不仅仅是寻找到一个真正的深度学习框架,而是寻找到一个一致的工作流程,将深度学习变为业务流程中可以运行的一部分。