1、Tensorflow与深度学习12021/3/30课程第六天-神经网络1、神经网络基础2、人工神经网络(ANN)3、Mnist数据集浅层神经网络分析4、卷积神经网络(CNN)5、Mnist数字图片识别22021/3/30神经网络基础1、感知机2、人工神经网络32021/3/3042021/3/3052021/3/30感知机有n个输入数据,通过权重与各数据之间的计算和,比较激活函数结果,得出输出应用:很容易解决与、或、非问题Rosenblatt在1957年,于Cornell航空实验室时所发明的一种人工神经网络62021/3/3072021/3/30感知机与逻辑回归的联系与区别激活函数、结果分析8
2、2021/3/30演示:92021/3/30神经网络的发展定义:在机器学习和认知科学领域,人工神经网络(artificial neural network,缩写ANN),简称神经网络(:neural network,缩写NN)或类神经网络,是一种模仿生物神经网络的结构和功能的计算模型,用于对函数进行估计或近似。神经网络的种类:基础神经网络:单层感知器,线性神经网络,BP神经网络,Hopfield神经网络等进阶神经网络:玻尔兹曼机,受限玻尔兹曼机,递归神经网络等深度神经网络:深度置信网络,卷积神经网络,循环神经网络,LSTM网络等102021/3/30杰弗里杰弗里埃弗里斯特埃弗里斯特辛顿辛顿(英
3、语:GeoffreyEverestHinton)(1947年12月6日)是一位英国出生的计算机学家和心理学家,以其在神经网络方面的贡献闻名。辛顿是反向传播算法的发明人之一,也是深度学习的积极推动者。112021/3/30Geoffrey HintonYann LecunYoshua BengioAndrew Ng122021/3/30神经网络的特点输入向量的维度和输入神经元的个数相同每个连接都有个权值同一层神经元之间没有连接由输入层,隐层,输出层组成第N层与第N-1层的所有神经元连接,也叫全连接132021/3/30结构结构(Architecture)例如,神经网络中的变量可以是神经元连接的权
4、重激励函数(激励函数(Activity Rule)大部分神经网络模型具有一个短时间尺度的动力学规则,来定义神经元如何根据其他神经元的活动来改变自己的激励值。学习规则(学习规则(Learning Rule)学习规则指定了网络中的权重如何随着时间推进而调整。(反向传播算法)神经网络的组成142021/3/30152021/3/30162021/3/30浅层人工神经网络模型1、SoftMax回归2、损失计算API3、其他方法API介绍172021/3/30Mnist数据集神经网络分析182021/3/30192021/3/30one-hot编码分析202021/3/30212021/3/30one-
5、hotAPI介绍222021/3/30from tensorflow.examples.tutorials.mnist import input_data mnist=input_data.read_data_sets(FLAGS.data_dir,one_hot=True)获取数据232021/3/30SoftMax回归公式:242021/3/30252021/3/30262021/3/301、全连接-从输入直接到输出特征加权:tf.matmul(a,b,name=None)+bias return:全连接结果,供交叉损失运算 不需要激活函数(因为是最后的输出)272021/3/30想一想线
6、性回归的损失函数,那么如何去衡量神经网络的损失?282021/3/30损失计算损失计算-交叉熵损失公式(了解)交叉熵损失公式(了解)公式:注:292021/3/302、SoftMax计算、交叉熵 tf.nn.softmax_cross_entropy_with_logits(labels=None,logits=None,name=None)计算logits和labels之间的交叉损失熵 labels:标签值(真实值)logits:样本加权之后的值 return:返回损失值列表302021/3/30损失值列表平均值计算 tf.reduce_mean(input_tensor)计算张量的尺寸的元
7、素平均值312021/3/30其他方法-损失下降API tf.train.GradientDescentOptimizer(learning_rate)梯度下降优化learning_rate:学习率,一般为minimize(loss):最小化损失return:梯度下降op322021/3/30准确性计算1、equal_list=tf.equal(tf.argmax(y,1),tf.argmax(y_label,1)2、accuracy=tf.reduce_mean(tf.cast(equal_list,tf.float32)准确率332021/3/30Mnist数据集神经网络实现流程1、准备数
8、据2、全连接结果计算3、损失优化4、模型评估(计算准确性)342021/3/30深层的神经网络深度学习网络与更常见的单一隐藏层神经网络的区别在于深度,深度学习网络中,每一个节点层在前一层输出的基础上学习识别一组特定的特征。随着神经网络深度增加,节点所能识别的特征也就越来越复杂。352021/3/30卷积神经网络1、卷积神经网络与简单的全连接神经网络的比较2、卷积神经网络的发展历史3、卷积神经网络的结构分析4、卷积网络API介绍362021/3/30全连接神经网络的缺点 参数太多,在cifar-10的数据集中,只有32*32*3,就会有这么多权重,如果说更大的图片,比如200*200*3就需要1
9、20000多个,这完全是浪费 没有利用像素之间位置信息,对于图像识别任务来说,每个像素与周围的像素都是联系比较紧密的。层数限制372021/3/30卷积神经网络的发展历史382021/3/30卷积神经网络错误率392021/3/30卷积神经网络的结构分析402021/3/30神经网络(neural networks)的基本组成包括输入层、隐藏层、输出层。而卷积神经网络的特点在于隐藏层分为卷积层和池化层(pooling layer,又叫下采样层)。卷积层:通过在原始图像上平移来提取特征,每一个特征就是一个特征映射 池化层:通过特征后稀疏参数来减少学习的参数,降低网络的复杂度,(最大池化和平均池化
10、)412021/3/30数据变化422021/3/30432021/3/30卷积神经网络的结构1、卷积层过滤器个数大小步长零填充卷积层输出深度、输出宽度深度由过滤器个数决定输出宽度:1、激活函数1、池化层2、全连接层442021/3/30卷积层计算过程(一个通道一个Filter一步长)452021/3/30卷积层计算过程(当步长为2的时候)462021/3/30卷积层的零填充卷积核在提取特征映射时的动作称之为padding(零填充),由于移动步长不一定能整出整张图的像素宽度。其中有两种方式,SAME和VALID1.SAME:越过边缘取样,取样的面积和输入图像的像素宽度一致。2.VALID:不越
11、过边缘取样,取样的面积小于输入人的图像的像素宽度472021/3/30如果需要卷积之后输出大小一样:零填的大小为2482021/3/30卷积网络API介绍卷积层:tf.nn.conv2d(input,filter,strides=,padding=,name=None)计算给定4-D input和filter张量的2维卷积 input:给定的输入张量,具有batch,heigth,width,channel,类型为float32,64 filter:指定过滤器的大小,filter_height,filter_width,in_channels,out_channels strides:stri
12、des=1,stride,stride,1,步长 padding:“SAME”,“VALID”,使用的填充算法的类型,使用“SAME”。其中”VALID”表示滑动超出部分舍弃,“SAME”表示填充,使得变化后height,width一样大492021/3/30多通道图片多通道图片-外围补充与多外围补充与多Filter502021/3/30新的激活函数新的激活函数-Relu512021/3/30522021/3/30第一,采用sigmoid等函数,反向传播求误差梯度时,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多第二,对于深层网络,sigmoid函数反向传播时,很容易就会出现梯
13、度消失的情况(求不出权重和偏置)532021/3/30激活函数:tf.nn.relu(features,name=None)features:卷积后加上偏置的结果 return:结果542021/3/30池化层池化层(Pooling)(Pooling)计算计算Pooling层主要的作用是特征提取,通过去掉Feature Map中不重要的样本,进一步减少参数数量。Pooling的方法很多,最常用的是Max Pooling。552021/3/30池化:tf.nn.max_pool(value,ksize=,strides=,padding=,name=None)输入上执行最大池数 value:4-
14、D Tensor形状batch,height,width,channels ksize:池化窗口大小,1,ksize,ksize,1 strides:步长大小,1,strides,strides,1 padding:“SAME”,“VALID”,使用的填充算法的类型,使用“SAME”562021/3/30FullFull ConnectedConnected层层分析:前面的卷积和池化相当于做特征工程,后面的全连接相当于做特征加权。最后的全连接层在整个卷积神经网络中起到“分类器”的作用。572021/3/30Mnist手写数字图片识别卷积网络案例582021/3/30Mnist数据集人工神经网络分析592021/3/30602021/3/30Mnist数字识别卷积实现流程:1、准备数据2、卷积、激活、池化(两层)3、全连接层4、计算准确率612021/3/30常见卷积网络模型的结构LeNet:1986年622021/3/30AlexNet:2012年60M以上的参数总量632021/3/30GoogleNet:642021/3/30Thank you!652021/3/30