10个基于JavaScript的机器学习案例

guxing982 8年前
   <p>在过去的几年里,机器学习的开发库增长很快,可用性也变得越来越可靠,而且没有减慢的趋势。一直以来Python作为机器学习的主力语言,现在神经网络可以应用任何语言了,包括JavaScript!</p>    <p>web生态系统虽然最近一直在取得进步,但是在机器学习领域JavaScropt和Node.js相对Python和Java来说还是稍弱,但是现在它们已经有足够的能力来处理机器学习方法的问题了。Web语言也有一个优势,就是你所有的JavaScript机器学习工程只需要浏览器支持。</p>    <p>现在大部分JavaScript机器学习的库都比较新而且有的还一直在开发中,但是已经实现并且可以尝试使用了。这篇文章我们将一起来了解这些库,一些比较酷的AI的web应用你也可以上手试试。</p>    <p><strong>1. <a href="/misc/goto?guid=4959748289672075481" rel="nofollow,noindex">Brain</a> </strong></p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/2bccf2c2665ccbb9ea0321c0a6d616bd.png"></p>    <p>Brain是一个容易创建神经网络的库,你可以基于它的输入/输出数据来训练。因为训练需要大量的数据资源,虽然有CDN的链接可以通过网络直接加载到网页上。但还是推荐使用Node.js的环境来运行这个库。这里是一个 <a href="/misc/goto?guid=4959748289763564420" rel="nofollow,noindex">例子</a> ,在它们的网站上,被训练来识别颜色的对比。</p>    <p><strong>2. <a href="/misc/goto?guid=4959670886028938781" rel="nofollow,noindex">Deep playground</a> </strong></p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/47ad1f369335ae4814836363502aa77c.png"></p>    <p>带有教育性质的web应用让你参与神经网络的世界,并探索它们不同的组件。它有一个不错的UI, 让你来控制数据的输入,神经元的数量,用什么样的算法,还有其它大量的可调参数来影响最终的结果。还有大量的可以从应用中的场景中学习的东西 — 代码是开源的,而且用了一个可定义的 机器学习库 , 这个库是基于TypeScript并且有丰富的文档可查阅。</p>    <p><strong>3. <a href="/misc/goto?guid=4959748289947982169" rel="nofollow,noindex">FlappyLearning</a> </strong></p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/a2566d486f049fd333346d41e9de1c8b.png"></p>    <p>FlappyLearning是一个JavaScript项目,大概仅仅800行未合并压缩的代码,创建了一个机器学习的库来实现了一个很好玩的例子来玩 Flappy Bird 。这个库里用的人工智能技术叫 Neuroevolution 应用了比较自然的一些神经系统算法,根据每次迭代的成功和失败来动态的学习。这个例子非常容易运行— 用浏览器打开index.html文件就可以了。</p>    <p><strong>4. <a href="/misc/goto?guid=4959623536042912305" rel="nofollow,noindex">Synaptic</a> </strong></p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/02a9b0ea95f9413b484ff123e61bb107.png"></p>    <p>可能是这个列表里最活跃的项目了, Synaptic是一个Node.js和浏览器可用的库,它是一个不可知结构,允许开发者构建任何类型的神经网络。它有一些构建好的结构,来让它可以更快速的测试和对比不同的机器学习算法。同样有比较完善的介绍和文档,一些练习的例子,还有很多非常棒的指导来理解机器学习是怎么工作的。</p>    <p><strong>5. <a href="/misc/goto?guid=4959748290231241670" rel="nofollow,noindex">Land Lines</a> </strong></p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/d13a9e58c80b258faba8b3deeb065012.png"></p>    <p>Land Lines是一个非常有趣的Chrome Web尝试,来找到地球的卫星图片。类似让用户来涂鸦。这个应用没有任何的服务端请求:它整个都运行在浏览器,要多亏机器学习的聪明使用,和WebGL的非常棒的性能表现,甚至在移动设备上。你可以在这里找到源码 <a href="/misc/goto?guid=4959748290308150141" rel="nofollow,noindex">GitHub</a> 或阅读整个 <a href="/misc/goto?guid=4959748290390935875" rel="nofollow,noindex">案例</a> 。</p>    <p><strong>6. <a href="/misc/goto?guid=4958839594896665832" rel="nofollow,noindex">ConvNetJS</a> </strong></p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/38a0ce27ed7e057f60e89330dc622f4e.png"></p>    <p>虽然不再积极的被维护了,ConvNetJS是最深入的JavaScript学习库。最初在斯坦福大学里被开发,ConvNetJS在GitHub上变得非常流行,许多社区开始驱动新的特性和指导手册。它直接在浏览器运行,支持多个学习技术,并且它非常的初级,更适合人们更多的体验神经网络。</p>    <p><strong>7. <a href="/misc/goto?guid=4959748290499201377" rel="nofollow,noindex">Thing Translator</a> </strong></p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/45f83e463b596e1b64e8a9abc28fcc84.png"></p>    <p>Thing Translator是一个网页实验,让你的手机用不同的语言来识别现实对象。这个应用完全应用web技术并且整合了Google的两个机器学习的API - Cloud Vision 来做图片识别, Translate API 来做 神经语言翻译。</p>    <p><strong>8. <a href="/misc/goto?guid=4959741806519726909" rel="nofollow,noindex">Neurojs</a> </strong></p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/a950fb5ec39903398c67b3a275f271a7.png"></p>    <p>构建AI系统基于强化学习的框架。可惜的是,这个开源项目并没有合适的文档。但是其中的例子,一个汽车自动驾驶的实验,有对构造神经网络的不同部分的详细描述。这个库是纯JavaScript语言并且应用了webpack和babel。</p>    <p><strong>9. <a href="/misc/goto?guid=4959748290731554719" rel="nofollow,noindex">Machine Learning</a> </strong></p>    <p>另外的一个可以只用JavaScript来构建并训练神经网络的库。非常容易的安装,需要Nodejs和客户端,对于开发人员非常容易上手的API调用。这个库提供了大量的 <a href="/misc/goto?guid=4958837492438594505" rel="nofollow,noindex">示例</a> 来实现了当下流行的算法,帮助来理解核心的机器学习的原则。</p>    <p><strong>10. <a href="/misc/goto?guid=4959748290838753326" rel="nofollow,noindex">DeepForge</a> </strong></p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/0974996e83fe0fbb545f8a3b780664cf.png"></p>    <p>DeepForge是一个用户友好的开发环境来使用深度学习。允许自己用一些图形接口来设计神经网络,支持远程机器的训练模型,并有版本控制。项目运行在浏览器,并基于Node.js和MongoDB,安装过程对于web开发人员非常熟悉。</p>    <p>非常优秀的博客文章,由Burank Kanber撰写,主要是关于机器学习的基础原理。非常适合JavaScript开发人员的阅读和学习。如果你想深入了解机器学习,这是一个非常棒的资源,推荐给大家。</p>    <p><strong>总结</strong> 虽然基于JavaScript的机器学习生态并没有充分的开发出来,我们推荐这些是你开始了解机器学习和核心技术的的非常好的资源。文中列出的试验性的项目,你可以仅使用浏览器或者一些JavaScript代码,就能探索出非常多好玩的东西。</p>    <p> </p>    <p>来自:http://www.iteye.com/news/32380</p>    <p> </p>