第6章神经网络.pptx

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 神经网络;6.1 神经网络简介;6.1.1 神经元模型 由Warren McCulloch和Walter Pitts提出了MP神经元模型,该一直沿用至今,如图所示。 在数学上,我们可以对该过程进行描述如下: ;6.1.1 神经元模型(续) 常见的激活函数多是分段线性和具有指数形状的非线性函数,主要包括了sigmoid函数、tanh函数、ReLU函数。 sigmoid函数 曾经使用范围最广的激活函数,具有指数函数形状,表达式为: tanh函数 双曲正切函数,其表达式如下: ReLU函数。 修正线性函数(Rectified Linear Units),是目前最受欢迎的激活函数,其表达式如下:;6.1.2 神经网络层 将神经元节点进行有机的结合并相互连接就构成了神经网络模型。 在神经网络进行训练的过程中,对训练样本数据集(x,y),通过输入值x进行计算产生输出层的预测值pre_Y。然后根据pre_Y与实际值y之间的误差,进行权重调整。 对于权重的调整,在神经网络中采用误差逆传播(error BackPropagation)算法进行更新调整。 ;6.1.2 神经网络层(续) BP算法核心思路可以分为如下步骤: (1)将每个训练样例提供给输入层,然后通过逐层的计算,直到产生输出层的预测值pre_Y; (2)计算输出层预测值pre_Y与真实值Y之间的误差,将误差逆向传播至神经网络的神经元中; (3)根据误差调整神经元之间的权重值和偏差进行调整; (4)将训练样本在调整后的神经网络中进行计算和误差调整,不断进行循环迭代,直到满足停止条件。 ;6.2 拟合线性回归问题;6.2.1 生成训练数据 对于训练数据,我们通过模拟生成。生成二维平面中的直线, 6.2.2 构建神经网络模型 神经网络模型的构建主要可以分为四步: (1)构建输入层 输入层为样本数据的的输入,根据输入数据以及其维度进行确定为输入值x和维度1 (2)构建隐藏层 隐藏层为神经网络中的第一次处理,根据实际情况进行选择10个神经元 (3)构建输出层 输出层为神经网络的预测值pre_Y的输出,根据输出数据维度进行确定为1 (4)定义损失函数 在激活函数的选择上,采用最常用的relu函数 ;6.2.3 数据训练 使用参数的数据进行训练,并输入其结果 6.2.4 运行总结 随着训??的进行,拟合的值与目标值不断靠近。 在完成49次训练后,其损失值已经非常小了,学习速率非常快。 ;6.3.1 数据集简介 MNIST是一个入门级的计算机视觉数据集,它包含各种手写数字图片,是一个经典的数据集。 MNIST数据集包含以下四个文件: Training set images: train-images-idx3-ubyte.gz Training set labels: train-labels-idx1-ubyte.gz Test set images: t10k-images-idx3-ubyte.gz Test set labels: t10k-labels-idx1-ubyte.gz 训练集有60000个样本,测试集有10000个样本,而且数字已经进行了预处理和格式化,做了大小调整并居中,图片尺寸也进行了固定,在实际训练过程中训练速度快,收敛效果明显。 ;6.3.2 数据集图片文件 数据集图片文件是IDX3格式的文件,格式如下: 有60000个样本,每一个图片文件都是28*28个像素。将图片文件所代表的图片进行绘制,这些看到对应的不同样式的手写体“0”到“9”这十个数字。;6.3.3 数据集标记文件 数据集标记文件是IDX1格式的文件,格式如下: 有60000个样本,对每一个对应的图片进行了标识,标识的值从0到9。;6.4.1 加载MNIST训练数据 由于MNIST数据集经常使用,我们需要导入input_data.py文件,使用tensorflow.contrib.learn.python.learn.datasets.mnist中的read_data_sets来加载数据。 mnist = input_data.read_data_sets(‘data/’, one_hot=True) #加载mnist数据集 print(number of train data is %d % (mnist.train.num_examples)) print(number of test data is %d % (mnist.test.num_examples)) trainimg = mnist.train.images trainlabel = mnist.train.labels testimg = mnist.test.ima

文档评论(0)

sunny131 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档