深度学习的应用以及初识Tensorflow

来源:互联网 发布:手机壳品牌知乎 编辑:程序博客网 时间:2024/05/17 23:33

深度学习应用

1 计算机视觉

卷积神经网络技术,GAN技术,DCGAN技术

应用于无人驾驶,图像检索,人脸识别。

人脸识别代表企业:中科视拓

http://www.seetatech.com/

2 语音识别

传统语音高斯混合模型(gaussian mixture model)GMM

隐马尔科夫HMM

应用于同声翻译,机器翻译,语音合成。

代表企业:科大讯飞

http://ai.xfyun.cn/

3 自然语言处理

很多语意相近的意思:建立大量的语义库WordNET,ConceptNet 以及FrameNet都是比较有影响力的语义库。

单词向量:

主要应用领域:语言模型,机器翻译,词性标注,实体识别,情感分析,广告推荐。以及搜索排名。

4 人机博弈

5 深度学习的几种流行框架

TensorFlow(谷歌) ,Theano(蒙特利尔大学),Torch(FaceBook)caffe, caffe2

这里写图片描述

6 TensorFlow 入门

计算图:TensorFlow 所有的计算都会转换为计算图上的节点.

TensorFlow 第一个词表示它的数据结构,第二个词表示它的计算模式

Flow:表示张量之间通过计算相互转换的过程。

TensorFlow 是通过计算图的形式来表述计算的编程系统。它的每一个计算都是计算图上的一个节点。而节点之间的边描述了计算之间的依赖关系

import tensorflow as tfa = tf.constant([1.0,2.0],name="a")b = tf.constant([2.0,3.0],name="b")result =a+b

除了使用默认的计算图。还可以使用tf.Graph函数来生成新的计算图。不同的计算图上的张量和运算都不会共享。另外tf.Graph.device函数来指定运行计算的设备。

g = tf.Graph()#指定运行的设备with g.device('/gpu:0'):    result =a+b              集合名称                       集合内容            使用场景           tf.Graphkeys.VARIABLES              所有变量       持久化Tensorflow模型tf.GraphKeys.TRAINABLE_VARIABLES         可学习参数        训练,生成可视化内容      tf.GraphKeys.QUEUE_RUNNERS          日制生成相关张量          计算可视化          tf.GraphKeys.SUMMARIES         处理输入QueueRunner      处理输入      

tf.GraphKeys.MOVING_AVERAGE_VARIABLES 所有推动了滑动平均值得变量 计算变量的滑动平均值

张量:可以被简单理解为多维数组,其中零阶张量表示标量=(就是一个数)

张量主要有三个属性:名字,维度,和类型

TensorFlow运行模式 会话

会话:来执行定义好的运算。会话拥有并管理TensorFlow程序运行时的所有资源

#创建一个会化sess = tf.Session()sess.run("要运行的会话")sess.close()

还有一种方式:

#创造一个会话,并通过Python的上下文管理器来管理这个会化 with tf.Session() as sess:     sess.run("要运行的会话")

TensorFlow实现神经网络

http://playground.tensorflow.org

                                                   表    TensorFlow随机数生成函数     函数名称                    随机数分布                   主要参数          

tf.random_normal 正态分布 平均值,标准差,取值范围
tf.truncated_narmal 正太分布(若偏离值超过两个标准差。被重新随机) 平均值,标准差,取值范围
tf.random_uniform 平均分布 最小,最大取值。取值类型
tf.random_gamma Gamma分布 形状参数alpha,尺度参数beta,取值范围

                                                 表   TensorFlow 常数生成函数 函数名称           功能                         样列                   

tf.zeros 产生全零数组 tf.zeros([2,3],int32) [[0,0,0],[0,0,0]]
tf.ones 产生全一数组 tf.ones([2,3],int32) [[1,1,1],[1,1,1]]
tf.fill 产生一个给定数字的数组 tf.fill([2,3],9) [[9,9,9],[9,9,9]]
tf.constant 产生一个给定值的常量 tf.constant([1,2,3]) [1,2,3]

LeNet-5模型

这里写图片描述

它是第一个成功应用于数字识别问题的神经网络,在MNist数据集上。它的正确率可以达到99.2%.LeNet-5总共有七层。

第一层 卷积层

这一层的输入就是原始像素,LeNet-5模型接受的输入层大小为32乘32乘1,第一个卷积层过滤器的尺寸为5乘5,深度为6,不使用全0填充。步长为1.

因为没有使用全0填充,所以这一层的输出尺寸为32-5+1=28,深度为6.那么这层卷积层总共有5乘5乘1乘6+6=156个参数,其中6个位偏置项参数。因为下一层的节点矩阵有28乘28乘6=4704个节点,每个节点和5乘5=25个节点相连。所以本层总共有4704乘(25+1)=122304个连接。

第二层 池化层

这一层的输入就是第一层的输出:即28乘28乘6个节点矩阵。本层采用过滤器的大小为2乘2,长和宽的步长均为2.所以本层输出的矩阵大小为14乘14乘6.

第三层 卷积层

本层输入的矩阵大小为14乘14乘6.,使用的过滤器大小为5乘5,深度为16.本层不使用全0填充,步长为1,本层的输出矩阵大小为10乘10乘16。按照标准的卷积层。本层应该有55616+16各参数。101016(25+1)=41600

第四层 池化层

本层输出的矩阵为10乘10乘16,采用的过滤器大小为2乘2,步长为2.本层输出矩阵大小为5乘5乘16.

第五层 全连接层

本层的输入矩阵大小5乘5乘16,在之后的TensorFlow程序中也将之一层看成是全连接层。主要作用就是分类

第六层 全连接层

第七层 全连接层