开始Java机器学习的最好工具是什么?
这个问题已经有一段时间了,但最近这些日子几乎每个人都在谈论人工智能和机器学习。这已经不再是一个保留给科学家和研究者的秘密,而是几乎实现于每一项新兴技术中。
在下面的章节中,我们会做一个java的机器学习的主要框架的快速概述,并证明Java机器学习是多么容易上手,不需要你另起炉灶或者从头开始创建算法。
人类的人工智能人工智能在一段时间以来是一个广泛并且炫酷的领域,但总是感觉有点难以触及,是特别为科学家所做。如果你想创造一个人工智能系统,你必须实现你自己的核心算法,并且训练它们能识别模式,理解图像并且处理自然语言。
最近关于这领域的演变使得其对于非研究者能更容易触及。你现在能容易触及到相关算法和工具。你不需要知道你正在做什么,但是能很轻松的提升你应用的机器学习能力。
让机器运转为了更简单的阐述,我们决定选出3个项目帮助你开始:
1.Deeplearning4J (DL4J) –开源,分布式,JVM的商业深度学习lib库
BID Data Project –能够运行快速、大规模的机器学习和数据挖掘的模式集合
Neuroph –面向对象的神经网络
顺便说一下, 我们最近发布了另外一些吸引我们注意的有趣的开源GitHub库. 下载.
DL4J – 深度学习
DL4J是一个能帮助你配置多层神经网络的工具。它为JVM提供了深度学习且伴随快速原型设计和大规模定制,同时注重比配置更多的约定。
这个工具是为了帮助已经拥有创建和使用神经网络的理论,但不想亲自实现算法的那些人。你可以在海量数据上解决特定问题和自定义神经网络属性。DL4J 是由Java语言编写的,可以兼容任何JVM语言比如 Clojure, Scala, ,Kotlin,并且可以与Hadoop和Spark集成。
可能的使用案例包括评价或推荐系统如(CRM,adtech, churn prevention),预测分析甚至欺诈检测。如果你要寻找真实的案例,你可以下载 Rapidminer. 这是使用DL4J的开源平台,用来为用户简化预测分析过程。
创建一个新的神经网络如同创建一个新项目一样容易。
BID Data Project (大数据项目)
大数据项目是由那些需要处理大量数据并且对性能敏感的人创建的。 UC Berkeley项目是由许多硬件、软件和设计模式集合而成,能在上使用快速、大规模的数据挖掘。
第一个库是 BIDMach,在单节点或集群上的常规机器学习问题都有记录。你可以使用这个库管理数据源,在CPU或者GPU上优化、分配数据。
BidMach 里面包括许多流行的机器学习算法,他们团队正致力于开发分布式神经网络、图形算法和其他模型
其他两个库分别是BIDMat和 BIDParse。BIDMat是关注与数据挖掘的快速数学矩阵库,BIDParse是GPU加速的自然语言解析。大数据项目的其他类库还包括可视化工具,能够支持在Spark甚至在安卓运行的类库。BIDMach基准比其他解决方案持续表现出更好的结果。甚至将其在单一机器上的运行与其他方案在大集群上的运行相比也是如此。在这里可以找到一个完整的基准列表。
Neuroph
neuroph是用来开发常用的神经网络构架的轻量级java框架。该框架提供了一个java库以及一个GUI工具(称为easyNeurons),你可以用它来在java项目中创建和训练自己的神经网络。
Neuroph包含一个开源的java类库和少量对应基本神经网络概念的基类。对于刚开始使用神经网络,或者想知道它们如何工作的人来说,Neuroph是个非常好的垫脚石。你可以尝试Neuroph的在线演示,看看它是怎么运行的。提示:界面看起来很旧且过时,但你可以用它来创建美妙的东西。它还得过2013的 Duke’s Choice的奖项。
网络视图
其他项目如何呢?
万一以上三个项目不是你所需要的,你想为你的项目寻找一些不同的,也没关系。如果你在GitHub上搜索“机器学习”,将有1506个Java资源让你找到合适的工具。
举个例子, Airbnb中有个有趣的项目是aerosolve,一个设计成具有人类友好性的机器学习库。开始学习一项新的技术很麻烦,如果您期望得到一些帮助,确保你已经下载了Takipi的错误分析工具。
最后的思考
每隔几年就会有些关于人工智能的新声音。这一次,它伴随着机器学习,数据挖掘,神经网络等等的强化来了,我们都很支持。这些类库开源的事实意味着这些信息和能力正待价而沽,而你所有所做的是思考拥有这个能力可以做成什么。
如果你知道其他有趣的项目或者你认为我们漏掉点什么,我们期待在下面的评论里见到它们。