机器学习——Tensorflow神经网络-7

Posted lidashent

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习——Tensorflow神经网络-7相关的知识,希望对你有一定的参考价值。

Tensorflow与深度学习

神经网络

1、神经网络基础

2、人工神经网络(ANN)

3、Mnist数据集浅层神经网络分析

4、卷积神经网络(CNN)

5、Mnist数字图片识别

神经网络基础

1、感知机

2、人工神经网络

感知机

有n个输入数据,通过权重与各数据之间的计算和,

比较激活函数结果,得出输出

应用:很容易解决与、或、非问题

——Rosenblatt在1957年,于Cornell航空实验室时所发明的一种

——人工神经网络

感知机与逻辑回归的联系与区别

激活函数、结果分析

演示:

http://playground.tensorflow.org/#activation=sigmoid&regularization=L2&batchSize=10&dataset=circle&regDataset=reg-plane&learningRate=0.03&regularizationRate=0&noise=0&networkShape=3&seed=0.84062&showTestData=false&discretize=false&percTrainData=50&x=true&y=true&xTimesY=false&xSquared=false&ySquared=false&cosX=false&sinX=false&cosY=false&sinY=false&collectStats=false&problem=classification&initZero=false&showTestData_hide=true&learningRate_hide=true&regularizationRate_hide=true&percTrainData_hide=true&numHiddenLayers_hide=true&discretize_hide=true&activation_hide=true&problem_hide=true&noise_hide=true&regularization_hide=true&dataset_hide=true&batchSize_hide=true&playButton_hide=false

神经网络的发展

——定义:在机器学习和认知科学领域,人工神经网络(artificial neural network,

——缩写ANN),简称神经网络(:neural network,缩写NN)或类神经网络,是一

——种模仿生物神经网络的结构和功能的计算模型,用于对函数进行估计或近似。

——神经网络的种类:

——基础神经网络:单层感知器,线性神经网络,BP神经网络,Hopfield神经网络等?

——进阶神经网络:玻尔兹曼机,受限玻尔兹曼机,递归神经网络等?

——深度神经网络:深度置信网络,卷积神经网络,循环神经网络,LSTM网络等?

杰弗里·埃弗里斯特·辛顿

(英语:Geoffrey Everest Hinton)(1947年12月6日-)是一位英国出生的计算机学家和心理学家,以其在神经网络方面的贡献闻名。辛顿是反向传播算法的发明人之一,也是深度学习的积极推动者。

Yann Lecun

Yoshua Bengio

Geoffrey Hinton

Andrew Ng

神经网络的特点

——输入向量的维度和输入神经元的个数相同

——每个连接都有个权值

——同一层神经元之间没有连接

——由输入层,隐层,输出层组成

——第N层与第N-1层的所有神经元连接,也叫全连接

——

神经网络的组成

——结构(Architecture)例如,神经网络中的变量可以是神经元连接的权重

——激励函数(Activity Rule)大部分神经网络模型具有一个短时间尺度的动力学规则,来定义神经元如何根据其他神经元的活动来改变自己的激励值。

——学习规则(Learning Rule)学习规则指定了网络中的权重如何随着时间推进而调整。(反向传播算法)

浅层人工神经网络模型

1、SoftMax回归

2、损失计算API

3、其他方法API介绍

Mnist数据集神经网络分析


one-hot编码分析


one-hotAPI介绍

获取数据

——from tensorflow.examples.tutorials.mnist import input_data

——

——mnist = input_data.read_data_sets(FLAGS.data_dir, one_hot=True)

SoftMax回归

公式:


1、全连接-从输入直接到输出

——特征加权:

——tf.matmul(a, b,name=None)+bias

——return:全连接结果,供交叉损失运算

——不需要激活函数(因为是最后的输出)

想一想线性回归的损失函数,那么如何去衡量神经网络的损失?

损失计算-交叉熵损失公式(了解)

公式:

注:

2、SoftMax计算、交叉熵

——tf.nn.softmax_cross_entropy_with_logits(labels=None,

—— logits=None,name=None)

—— 计算logits和labels之间的交叉损失熵

——labels:标签值(真实值)

——logits:样本加权之后的值

——return:返回损失值列表

损失值列表平均值计算

——tf.reduce_mean(input_tensor)

——计算张量的尺寸的元素平均值

其他方法-损失下降API

——tf.train.GradientDescentOptimizer(learning_rate)

——梯度下降优化

——learning_rate:学习率,一般为

——minimize(loss):最小化损失

——return:梯度下降op

准确性计算

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))

Mnist数据集神经网络实现流程

1、准备数据

2、全连接结果计算

3、损失优化

4、模型评估(计算准确性)

深层的神经网络

——深度学习网络与更常见的单一隐藏层神经网络的区别在于深度,深度学

——习网络中,每一个节点层在前一层输出的基础上学习识别一组特定的特征。

——随着神经网络深度增加,节点所能识别的特征也就越来越复杂。

卷积神经网络

1、卷积神经网络与简单的全连接神经网络的比较

2、卷积神经网络的发展历史

3、卷积神经网络的结构分析

4、卷积网络API介绍

全连接神经网络的缺点

——参数太多,在cifar-10的数据集中,只有32323,就会

——有这么多权重,如果说更大的图片,比如2002003就需

——要120000多个,这完全是浪费

——没有利用像素之间位置信息,对于图像识别任务来说,

——每个像素与周围的像素都是联系比较紧密的。

——层数限制

——

——

卷积神经网络的发展历史

卷积神经网络错误率

卷积神经网络的结构分析

神经网络(neural networks)的基本组成

包括输入层、隐藏层、输出层。而卷积神经网络的特点在于隐藏层分为卷积层和池化层
——(pooling layer,又叫下采样层)。

——卷积层:通过在原始图像上平移来提取特征,每一个特征——就是一个特征映射

——池化层:通过特征后稀疏参数来减少学习的参数,降低

——网络的复杂度,(最大池化和平均池化)

数据变化

卷积神经网络的结构

——1、卷积层过滤器

——个数

——大小

——步长

——零填充

——

——卷积层输出深度、输出宽度

——深度由过滤器个数决定

——输出宽度:

——

——

——1、激活函数

——

——1、池化层

——

——2、全连接层

卷积层计算过程(一个通道一个Filter一步长)

卷积层计算过程(当步长为2的时候)

卷积层的零填充

——卷积核在提取特征映射时的动作称之为padding(零填充),由于移动步长不

——一定能整出整张图的像素宽度。其中有两种方式,SAME和VALID

——

——SAME:越过边缘取样,取样的面积和输入图像的像素宽度一致。

——VALID:不越过边缘取样,取样的面积小于输入人的图像的像素宽度

如果需要卷积之后输出大小一样:零填的大小为2

卷积网络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:strides = [1, stride, stride, 1],步长

——padding:“SAME”, “VALID”,使用的填充算法的类型,

——使用“SAME”。其中”VALID”表示滑动超出部分舍弃,

——“SAME”表示填充,使得变化后height,width一样大

多通道图片-外围补充与多Filter

新的激活函数-Relu

第一,采用sigmoid等函数,反向传播求误差梯度时,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多

第二,对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况(求不出权重和偏置)

激活函数:

——tf.nn.relu(features, name=None)

——

——features:卷积后加上偏置的结果

——return:结果

池化层(Pooling)计算

Pooling层主要的作用是特征提取,通过去掉Feature Map中不重要的样本,进一步减少参数数量。Pooling的方法很多,最常用的是Max Pooling。

池化:

tf.nn.max_pool(value, ksize=, strides=, padding=,name=None)

——输入上执行最大池数

——value:4-D Tensor形状[batch, height, width, channels]

——ksize:池化窗口大小,[1, ksize, ksize, 1]

——strides:步长大小,[1,strides,strides,1]

——padding:“SAME”, “VALID”,使用的填充算法的类型,

——使用“SAME”

——

Full Connected层

分析:前面的卷积和池化相当于做特征工程,后面的全连接相当于做特征加权。最后的全连接层在整个卷积神经网络中起到“分类器”的作用。

Mnist手写数字图片识别卷积网络案例

Mnist数据集人工神经网络分析


Mnist数字识别卷积实现

流程:

1、准备数据

2、卷积、激活、池化(两层)

3、全连接层

4、计算准确率

常见卷积网络模型的结构

LeNet:1986年

AlexNet:2012年

60M以上的参数总量

GoogleNet:

以上是关于机器学习——Tensorflow神经网络-7的主要内容,如果未能解决你的问题,请参考以下文章

机器学习的大局观:使用神经网络和TensorFlow来对文本分类

机器学习与Tensorflow——循环神经网络长短时记忆网络

图解机器学习:神经网络和 TensorFlow 的文本分类

机器学习-随手笔记二(卷积神经网络TensorFlow和IV值计算)

使用机器学习预测天气(第三部分神经网络)

Tensorflow机器学习入门——MINIST数据集识别(卷积神经网络)