联结主义:第二节 机器学习常用框架

2021-06-27  本文已影响0人  岑子哥

其实细心的人可能会发现,我们让计算机不断地去学,然后再根据学习的结果来判断某件事情的相似率或成功率,而这种概率一般都是建立在统计意义上的,而统计意义上想更有说服力就需要海量的数据和极大的计算量。

我这里说一个小故事,比如你想比较快速的从100个面试者中挑出一个最好的你怎么办?你可以尝试这样做:

假设你有100个候选人,你先选出30个,然后逐一见面,从中挑出一个最好的来,然后再用这个最好的做标准,看看剩下的70个人里面有没有比他还好的,只要有就立马签合同。

这很明显是一个大概率事件,但是仍然不能保证剩下的就没有最好的。

 最好的办法就是全部都看一下,但是显然工作量太大了。于是有人就想到并行来做,什么意思呢?就是我们聘请10个顾问,然后每个顾问面试十个,然后在将入选的10个人进行最后一轮面试。

 所以为了达到更好的机器学习效果,我们需要在软件和硬件上同时下功夫。允许这种高并发的计算。

首先我们来说下软件,比如那些主要与Java相关的机器学习框架。

(1) Weka集成了数据挖掘工作的机器学习算法。这些算法可以直接应用于一个数据集上或者你可以自己编写代码来调用。Weka包括一系列的工具,如数据预处理、分类、回归、聚类、关联规则以及可视化。

(2) Massive Online Analysis(MOA)是一个面向数据流挖掘的流行开源框架,有着非常活跃的成长社区。它包括一系列的机器学习算法(分类、回归、聚类、异常检测、概念漂移检测和推荐系统)和评估工具。关联了Weka项目,MOA也是用Java编写的,其扩展性更强。

(3) ELKI是一款基于Java的开源数据挖掘软件。ELKI主要集中于算法研究,重点研究聚类分析中的无监督方法和异常检测。

(4) Encog是一个先进的机器学习框架,集成了支持向量机、人工神经网络、遗传算法、贝叶斯网络、隐马尔可夫模型、遗传编程和遗传算法。

(5) Datumbox机器学习框架是一个用Java编写的开源框架,允许快速地开发机器学习和统计应用。该框架的核心重点包括大量的机器学习算法以及统计测试,能够处理中等规模的数据集。

(6) Oryx 2是一个建立在Apache Spark和Apache Kafka的Lambda架构实现,但随着实时大规模机器学习而逐渐开始专业化。这是一个用于构建应用程序的框架,但也包括打包,以及面向协同过滤、分类、回归和聚类的端到端的应用程序。

(7) PHP-ML 是 PHP 的机器学习库。同时包含算法,交叉验证,神经网络,预处理,特征提取等。PHP-ML主要使用数理统计、数值优化方法、概率论和离散分析等方法进行机器学习。

深度学习框架

 目前,人工智能的主流语言是Python,而不是Java或者C++。之所以使用Python可不仅仅是因为它学习起来简单,而是风头正劲的深度学习框架几乎无一例外的都是用了Python作为主要编程语言,如果你想用JavaScript或PHP什么的,那么对不起,它们很少提供这样的文档。

 下面我们就来介绍一些比较常用的深度学习框架。

Deeplearning4j

Deeplearning4j ,顾名思义,Deeplearning4j 是“for Java”的深度学习框架,也是首个商用级别的深度学习开源库。Deeplearning4j 由创业公司Skymind于2014年6月发布,使用 Deeplearning4j 的不乏埃森哲、雪弗兰、博斯咨询和IBM等明星企业。Deeplearning4j 是一个面向生产环境和商业应用的高成熟度深度学习开源库,可与Hadoop和Spark集成,即插即用,方便开发者在APP中快速集成深度学习功能,可应用于以下深度学习领域:人脸/图像识别、语音搜索、语音转文字、垃圾信息过滤、电商欺诈侦测。

CNTK

CNTK(Computational Network Toolkit)是微软于正式开源的人工智能工具包,同时支持CPU和GPU,中文有“人工智能”的意思,但是实际的英文单词翻译起来其实是一个计算网络工具箱。换个角度说,其实可以理解成是一种通过计算来实现人工智能的一种方式。

微软的这个深度学习工具箱,它通过一系列的步骤来描述神经网络。在这个有向图中,叶节点代表输入值或网络参数,而其他节点代表矩阵操作依赖这些输入。在CNTK上,可以很容易地实现和结合当今流行的模型类型,例如前馈神经网络DNNs, 卷积神经网络(CNNs), 循环神经网络 (RNNs/LSTMs)。在实现随机梯度下降学习时能够自动计算梯度。

Caffe

Caffe是一由加州大学伯克利的贾扬清博士开发的一款结构清晰、可读性高、学习快速的深度学习框架。Caffe具有以下一些特点。

第一,表达方便。模型和优化办法使用纯文本来表示,而不是代码,同时支持中间文件。

其次,速度快。对于科研来说,快速的机器学习和优良的算法同样是非常重要的。

第三,结构清晰,模块化。Caffe具有很强的灵活性和扩展性,正是由于有着这样的特点,很多变种的Caffe才得以出现。

第四,使用简单。尤其对于图像处理来说,Caffe可以通过浏览器进行简单的选择就可以完成任务。

下面给出几张Caffe的截图:Caffe框架首页如图2-2-9,Caffe框架设置页如图2-2-10所示。

图2-2-9 Caffe框架首页 图2-2-10 Caffe框架设置页

TensorFlow

TensorFlow,中文意思为“张量流”,所以我们也很容易联想到多维数据流的处理。TensorFlow是现在大红大紫的深度学习框架,这主要得益于谷歌的大力推广与维护,当然也和谷歌本身就有很大的数据量有一定的关系,特别是在AlphaGo大放异彩之后,TensorFlow在Github上Fork数和Star数都是最多的,在国内更加明显。

毫不夸张地说,TensorFlow的流行让深度学习门槛变得越来越低,只要你有Python和机器学习基础,入门和使用神经网络模型就变得非常简单了。TensorFlow支持Python和C++两种编程语言,再复杂的多层神经网络模型都可以用Python来实现,如果业务使用其他编程也不用担心,使用跨语言的gRPC或HTTP服务也可以访问使用TensorFlow训练好的智能模型。

TensorFlow的CPU版本的安装也是非常简单的;如果你想安装GPU版本,那么可能需要一些设置;如果你只是想简单的体验TensorFlow深度学习功能,那么在Windows操作系统上也是可以轻松实现的,只不过只有Python3.5.x版本支持Windows的pip3安装。

Python3.5.x下载地址为:https://www.python.org/downloads/release/python-352/,下载安装后,在Windows command命令里面输入:

C:\> pip3 install--upgrade tensorflow

即可安装TensorFlow的CPU版本。

或者输入:

C:\> pip3 install--upgrade tensorflow-gpu

安装TensorFlow的CPU版本。

如果你的电脑上没有GPU显卡的话,安装CPU版本的就可以了。

备注:

1.安装Python3.5.x的时候注意添加PATH,否则可能找不到程序的路径。

2.默认是windows10版本了,如果windows7 的话可能需要系统更新sp1包(因为它需要很多依赖)。

一般喜欢Python的用户可能喜欢Anaconda这个集成安装环境,如果是Anaconda的话,Python版本也要是3.5.x。太高了太低了都不行。Anaconda参考网址为:

https://repo.continuum.io/archive/index.html(比如Anaconda3-4.1.1-Windows-x86_64.exe)

Anaconda安装好后,打开Anaconda-prompt或者 command终端并且创建一个名为tensorflow的conda环境:

C:> conda create -n tensorflow

创建好后,通过activate命令激活conda环境

C:> activate tensorflow

 (tensorflow)C:>  # Your prompt should change

然后就可以安装TensorFlow了。安装CPU的命令如下:

(tensorflow)C:> pip install--ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.1.0-cp35-cp35m-win_amd64.whl

安装GPU的命令如下:

(tensorflow)C:> pip install--ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.1.0-cp35-cp35m-win_amd64.whl

经过一些时间的安装后,我们再重新启动一个终端测试下即可:

$ python

在python交互式shell中输入以下短程序:

>>> importtensorflow as tf

>>> hello =tf.constant('Hello, TensorFlow!')

>>> sess =tf.Session()

>>> print(sess.run(hello))

如果系统输出以下内容,就表示你的TensorFlow安装成功了:

hello,TensorFlow

TensorFlow和caffe框架一样也提供了一个基于浏览器的可视化操作界面——TensorBoard ,TensorBoard简介大方,而且流程节点图还是动态的哦,如图2-2-11所示。

图2-2-11 TensorBoard示意图

备注:TensorFlow,非常强大是深度学习的利器,同时它也支持分布式架构

上一篇 下一篇

猜你喜欢

热点阅读