当前位置:首页 > 智能硬件 > 人工智能AI
[导读]   毫无疑问,神经网络和机器学习在过去几年一直是高科技领域最热门的话题之一。这一点很容易看出,因为它们解决了很多真正有趣的用例,如语音识别、图像识别、甚至是乐曲谱写。   PyBrain

  毫无疑问,神经网络和机器学习在过去几年一直是高科技领域最热门的话题之一。这一点很容易看出,因为它们解决了很多真正有趣的用例,如语音识别、图像识别、甚至是乐曲谱写。

  PyBrain的概念是将一系列的数据处理的算法封装到被称之为Module的模块中。一个最小的Module通常包含基于机器学习算法的可调整的参数集合。Modules包含一个输入和输出的buffer,外加误差buffer用于存在误差反向传播的场景。

  Modules被嵌入到Network类中,并且使用ConnecTIon对象进行连接,其中可能包含一系列可调整的参数,比如连接的权重。而Network类本身又是一个Module,因此可以基于此构建多层网络结构。库中有快捷的方式构造最常用网络结构,但原则上这个系统允许嵌入最随机的连接方式来形成一个无循环图。

  网络中的参数通过Trainer进行调节,它从Dataset中学习到最优化的参数。还有的增强方式的实验是通过相关的最优化的目标构造模拟环境进行参数学习。

  

  Python是最好的编程语言之一,在科学计算中用途广泛:计算机视觉、人工智能、数学、天文等。它同样适用于机器学习也是意料之中的事。

  当然,它也有些缺点;其中一个是工具和库过于分散。如果你是拥有unix思维(unix-minded)的人,你会觉得每个工具只做一件事并且把它做好是非常方便的。但是你也需要知道不同库和工具的优缺点,这样在构建系统时才能做出合理的决策。工具本身不能改善系统或产品,但是使用正确的工具,我们可以工作得更高效,生产率更高。因此了解正确的工具,对你的工作领域是非常重要的。

  在我看来,Python是学习(和实现)机器学习技术最好的语言之一,其原因主要有以下几点:

  语言简单:如今,Python成为新手程序员首选语言的主要原因是它拥有简单的语法和庞大的社区。

  功能强大:语法简单并不意味着它功能薄弱。Python同样也是数据科学家和Web程序员最受欢迎的语言之一。Python社区所创建的库可以让你做任何你想做的事,包括机器学习。

  丰富的ML库:目前有大量面向Python的机器学习库。你可以根据你的使用情况、技术和需求从数百个库中选择最合适的一个。

  上面最后一点可以说是最重要的。驱动机器学习的算法相当复杂,包括了很多的数学知识,所以自己动手去实现它们(并保证其正常运行)将会是一件很困难的任务。幸运地是,有很多聪明的、有奉献精神的人为我们做了这个困难的工作,因此我们只需要专注于手边的应用程序即可。

  最受欢迎的库

  我已经对一些比较流行的库和它们擅长的方向做了一个简短的描述,在下一节,我会给出一个更完整的项目列表。

  Tensorflow

  这是清单中最新的神经网络库。在前几天刚刚发行,Tensorflow是高级神经网络库,可以帮助你设计你的网络架构,避免出现低水平的细节错误。重点是允许你将计算表示成数据流图,它更适合于解决复杂问题。

  此库主要使用C++编写,包括Python绑定,所以你不必担心其性能问题。我最喜欢的一个特点是它灵活的体系结构,允许你使用相同的API将其部署到一个或多个CPU或GPU的台式机、服务器或者移动设备。有此功能的库并不多,如果要说有,Tensorflow就是其一。

  它是为谷歌大脑项目开发的,目前已被数百名工程师使用,所以无须怀疑它是否能够创造有趣的解决方案。

  尽管和其它的库一样,你可能必须花一些时间来学习它的API,但花掉的时间应该是很值得的。我只花了几分钟了解了一下它的核心功能,就已经知道Tensorflow值得我花更多的时间让我来实现我的网络设计,而不仅仅是通过API来使用。

  擅长:神经网络

  scikit-learn

  scikit-learn绝对是其中一个,如果不是最流行的,那么也算得上是所有语言中流行的机器学习库之一。它拥有大量的数据挖掘和数据分析功能,使其成为研究人员和开发者的首选库。

  其内置了流行的NumPy、SciPy,matplotlib库,因此对许多已经使用这些库的人来说就有一种熟悉的感觉。尽管与下面列出的其他库相比,这个库显得水平层次略低,并倾向于作为许多其他机器学习实现的基础。

  scikit-learn是我们在CB Insights选用的机器学习工具。我们用它进行分类、特征选择、特征提取和聚集。我们最爱的一点是它拥有易用的一致性API,并提供了很多开箱可用的求值、诊断和交叉验证方法(是不是听起来很熟悉?Python也提供了“电池已备(译注:指开箱可用)”的方法)。锦上添花的是它底层使用Scipy数据结构,与Python中其余使用Scipy、Numpy、Pandas和Matplotlib进行科学计算的部分适应地很好。因此,如果你想可视化分类器的性能(比如,使用精确率与反馈率(precision-recall)图表,或者接收者操作特征(Receiver OperaTIng CharacterisTIcs,ROC)曲线),Matplotlib可以帮助进行快速可视化。考虑到花在清理和构造数据的时间,使用这个库会非常方便,因为它可以紧密集成到其他科学计算包上。

  另外,它还包含有限的自然语言处理特征提取能力,以及词袋(bag of words)、tfidf(Term Frequency Inverse Document Frequency算法)、预处理(停用词/stop-words,自定义预处理,分析器)。此外,如果你想快速对小数据集(toy dataset)进行不同基准测试的话,它自带的数据集模块提供了常见和有用的数据集。你还可以根据这些数据集创建自己的小数据集,这样在将模型应用到真实世界中之前,你可以按照自己的目的来检验模型是否符合期望。对参数最优化和参数调整,它也提供了网格搜索和随机搜索。如果没有强大的社区支持,或者维护得不好,这些特性都不可能实现。我们期盼它的第一个稳定发布版。

  擅长:非常多

  Theano

  Theano是一个机器学习库,允许你定义、优化和评估涉及多维数组的数学表达式,这可能是其它库开发商的一个挫折点。与scikit-learn一样,Theano也很好地整合了NumPy库。GPU的透明使用使得Theano可以快速并且无错地设置,这对于那些初学者来说非常重要。然而有些人更多的是把它描述成一个研究工具,而不是当作产品来使用,因此要按需使用。

  Theano最好的功能之一是拥有优秀的参考文档和大量的教程。事实上,多亏了此库的流行程度,使你在寻找资源的时候不会遇到太多的麻烦,比如如何得到你的模型以及运行等。

  擅长:神经网络和深度学习

  Pylearn2

  大多数Pylearn2的功能实际上都是建立在Theano之上,所以它有一个非常坚实的基础。

  据Pylearn2网址介绍:

  Pylearn2不同于scikit-learn,Pylearn2旨在提供极大的灵活性,使研究者几乎可以做任何想做的事情,而scikit-learn的目的是作为一个“黑盒”来工作,即使用户不了解实现也能产生很好的结果。

  记住,Pylearn2在合适的时候会封装其它的库,如scikit-learn,所以在这里你不会得到100%用户编写的代码。然而,这确实很好,因为大多数错误已经被解决了。像Pylearn2这样的封装库在此列表中有很重要的地位。

  擅长:神经网络

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭