深度学习应用
1 计算机视觉
卷积神经网络技术,GAN技术,DCGAN技术
应用于无人驾驶,图像检索,人脸识别。
人脸识别代表企业:中科视拓
2 语音识别
传统语音高斯混合模型(gaussian mixture model)GMM
隐马尔科夫HMM
应用于同声翻译,机器翻译,语音合成。
代表企业:科大讯飞
3 自然语言处理
很多语意相近的意思:建立大量的语义库WordNET,ConceptNet 以及FrameNet都是比较有影响力的语义库。
单词向量:
主要应用领域:语言模型,机器翻译,词性标注,实体识别,情感分析,广告推荐。以及搜索排名。
4 人机博弈
5 深度学习的几种流行框架
TensorFlow(谷歌) ,Theano(蒙特利尔大学),Torch(FaceBook)caffe, caffe2
6 TensorFlow 入门
计算图:TensorFlow 所有的计算都会转换为计算图上的节点.
TensorFlow 第一个词表示它的数据结构,第二个词表示它的计算模式
Flow:表示张量之间通过计算相互转换的过程。
TensorFlow 是通过计算图的形式来表述计算的编程系统。它的每一个计算都是计算图上的一个节点。而节点之间的边描述了计算之间的依赖关系
import tensorflow as tf
a = 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程序中也将之一层看成是全连接层。主要作用就是分类
第六层 全连接层
第七层 全连接层