机器学习实践(一)

来源:互联网 发布:centos 6.8安装 分区 编辑:程序博客网 时间:2024/06/05 16:43

人工智能、机器学习和深度学习的区别

    机器学习,实现人工智能的方法之一;深度学习,实现机器学习的技术之一。尤其是2015年以来,人工智能开始大爆发。人工智能的学习能力分为两大部分,知识的学习和思维逻辑的学习重组。前者起点甚低,适应性训练都可以看作是学习;后者起点甚高,至今只可遥望和意味。

机器学习

    机器学习是一种概念:不需要写任何与问题有关的特定代码,泛型算法(Generic Algorithms)就能告诉你一些关于你数据的有趣结论。不用编码,你将数据输入泛型算法当中,它就会在数据的基础上建立出它自己的逻辑。机器学习方法是计算机利用已有的数据(经验),得出了某种模型(迟到的规律),并利用此模型预测未来(是否迟到)的一种方法。

深度学习

    “深度学习”已成为用于描述使用多层神经网络的过程的标准术语, 多层神经网络是一类极为灵活的可利用种类繁多的数学方法以及不同数学方法组合的模型。深度学习的强大之处在于当决定如何最有效地利用数据时, 它能够赋予模型更大的灵活性。 人们无需盲目猜测应当选择何种输入。 一个调校好的深度学习模型可以接收所有的参数, 并自动确定输入值的有用高阶组合。

TensorFlow

    官网的定义中并未将TensorFlow称为一个“机器学习库”,而是使用了更宽泛的短语“数值计算”。虽然TensorFlow中的确包含一个模仿了具有单行建模功能的机器学习库Scikit-Learn的名为“learn”(也称“Scikit Flow”)的包,但TensorFlow的主要目标并非是提供现成的机器学习解决方案。相反,TensorFlow提供了一个可使用户用数学方法从零开始定义模型的函数和类的广泛套件。这使得具有一定技术背景的用户可迅速而直观地创建自定义的、具有较高灵活性的模型。此外,虽然TensorFlow为面向机器学习的功能提供了广泛支持, 但它也非常适合做复杂的数学计算。
    TensorFlow的计算模型是有向图(directed graph),其中每个节点(通常以圆圈或方框表示)代表了一些函数或计算,而边(通常以箭头或线段表示)代表了数值、矩阵或张量。数据流图极为有用的原因如下。首先,许多常见的机器学习模型, 如神经网络,本身就是以有向图的形式表示的,采用数据流图无疑将使机器学习实践者的实现更为自然。其次,通过将计算分解为一些小的、容易微分的环节, TensorFlow能够自动计算任意节点关于其他对第一个节点的输出产生影响的任意节点的导数(在TensorFlow中称为“Operation”)。计算任何节点(尤其是输出节点)的导数或梯度的能力对于搭建机器学习模型至关重要。最后,通过计算的分解,将计算分布在多个CPU、GPU以及其他计算设备上更加容易。
    张量:简而言之,张量是一个n维矩阵。因此,2阶张量等价于标准矩阵。从可视化的角度,若将m×m的矩阵视为方形数组(m个数字高, m个数字宽),则可将m×m×m的张量视为立方数组(m个数字高, m个数字宽, m个数字深)。
    TensorFlow的重要组成:
    分布式功能。
    软件套件:1、TensorFlow是用于定义机器学习模型、用数据训练模型,并将模型导出供后续使用的API。虽然实际的计算是用C++编写的,但主要的API均可通过Python访问。2、TensorBoard是一个包含在任意标准TensorFlow安装中的图可视化软件。当用户在TensorFlow中引入某些TensorBoard的特定运算时,TensorBoard可读取由TensorFlow计算图导出的文件,并对分析模型的行为提供有价值的参考。它对概括统计量、分析训练过程以及调试TensorFlow代码都极有帮助。3、TensorFlow Serving是一个可为部署预训练的TensorFlow模型带来便利的软件。 利用内置的TensorFlow函数, 用户可将自己的模型导出到可由TensorFlow Serving在本地读取的文件中。 之后, 它会启动一个简单的高性能服务器。 该服务器可接收输入数据,并将之送入预训练的模型, 然后将模型的输出结果返回。 此外, TensorFlow Serving还可以在旧模型和新模型之间无缝切换, 而不会给最终用户带来任何停机时间。 虽然Serving可能是TensorFlow生态系统中认可度最低的组成, 它却可能是使TensorFlow有别于其他竞争者的重要因素。 将Serving纳入生产环境可避免用户重新实现自己的模型——他们只需使用TensorFlow导出的文件。

基于Anaconda的tensorflow安装

1、下载linux版本的Anaconda安装包
        下载地址:https://www.continuum.io/downloads,这里选择64位Linux的Python3.6版本。
2、安装Anaconda
  • 终端命令:bash Anaconda3-5.0.1-Linux-x86_64.sh;
  • 输入yes,表示接受license;
  • 设置安装路径,这里使用默认安装路径,直接输入回车即可;
  • 开始自动安装过程;
  • 确认是否将Anaconda的安装路径添加到环境变量中,一定要输入yes,否则添加环境变量会比较麻烦;

    关于这里一定要注意:

    如果在安装过程中,该步没有选择yes,那么Anaconda的安装路径不会被添加到环境变量中,安装结束后会出现如下信息:

    Do you wish the installer to prepend the Anaconda2 install location 
    to PATH in your /home/tingting/.bashrc ? [yes|no] 
    [no] >>> 
    You may wish to edit your .bashrc or prepend the Anaconda2 install location: 
    $ export PATH=/home/tingting/anaconda2/bin:$PATH 
    Thank you for installing Anaconda2!

    当时也没有注意这个信息,没有管,结果安装完anaconda后,发现根本不能使用,才注意到这条信息,原来,Anaconda的bin路径并没有被添加到PAHT环境变量中,所以需要在命令行中输入如下命令: 
    export PATH=/home/tingting/anaconda2/bin:$PATH 
    即将anaconda的bin路径添加到环境变量PATH中

  • 安装完成;
3、利用anaconda安装tensorflow
        建立一个 conda 计算环境:终端命令:conda create -n tensorflow python=3.6;
        激活环境:终端命令:source activate tensorflow;
        安装tensorflow:终端命令:pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.0-cp36-cp36m-linux_x86_64.whl;(首次可能不成功,可多试几次!)

常用命令

激活环境:source activate tensorflow;
激活环境:source activate tensorflow-gpu;
关闭环境:source deactivate;
查看版本:
python -c 'import tensorflow as tf; print(tf.__version__)'  # for Python 2python3 -c 'import tensorflow as tf; print(tf.__version__)'  # for Python 3
版本升级:pip install --upgrade tensorflow-gpu(GPU版本)/pip install --upgrade tensorflow(CPU版本);

准备

  • 机器学习涉及概率论、统计学、微积分、代数学、算法复杂度理论等多门学科。
  • 机器学习应用前景:数据分析和数据挖掘,模式识别等。
  • 机器学习算法具有坚实的数学理论支持,机器学的应用建立在科学计算的基础上,而数学计算又是科学计算的主要组成部分。
  • 目前用计算机处理得较多的数学计算主要分为以下两类:
    第一类是数值计算,它以数值数组作为运算对象,给出数值解;计算过程中可能会产生误差累积问题,影响了计算结果的精确性;计算速度快,占用资源少。
    第二类是符号计算,它以符号对象和符号表达式作为运算对象,给出解析解;运算不受计算误差累积问题的影响;计算指令简单;占用资源多,计算耗时长。
  • 数值计算方法成为了科学计算的重要手段, 它研究怎样利用计算丁.具来求出数学问题的数值解。 数值计算方法的计算对象是微积分 、 线性代数 、 插值与逼近及最小二乘拟合 、 数值积分与数值微分、 矩阵的特征值与特征向量求解 、 线性方程组与非线性方程求根, 以及微分方程数值解法等数学问题, 这些是模式识别 、 数据分析及自动制造等机器学习领域需要应用的数学。
  • 符号计算是专家系统等机器学习领域需要应用的数学, 在符号计算中, 计算机处理的数据和得到的结果都是符号。 符号既可以是字母和公式, 也可以是数值, 其运算以推理解析的方式进行, 不受计算误差积累问题闲扰, 汁算结果为完全正确的封闭解或任意精度的数值解, 这意味着符号计算给出的结果能避免因舍人误差而引起的问题。
  • 现代科学研究的方法主要有三种:理论论证、科学实验、科学计算。计算机进行科学计算,都必须建立相应的数学模型,并研究其适合于计算机编程的计算方法。科学计算平台已经成为科学研究必要的基础条件平台,有力地推动了科学研究的发展和工程技术的进步。

基础

  • 从目前的发展情形来看,机器学习主要依靠各种算法来实现,比如:神经网络、SVM、决策树、K近邻、K-Means、回归算法等。
  • 程序在调试完毕后,需要投入到实际运行阶段,这个阶段需要一个运行平台,这就是生产环境。在软件工程领域界,“生产环境”一词是指软件调试完毕并正式启用后实际运行的环境。

相关文章

Linux系统下安装TensorFlow(CPU或者GPU版)(结合下一篇文章安装3.6)
Ubuntu14.04 Anaconda(python3.6)安装tensorflow (离线安装不成功)
语音识别的技术原理是什么?