广州网站建设哪好,平度做网站公司,上海装修公司哪家最好,网站开发中的开版什么意思目前神经网络技术受到追捧#xff0c;一方面是由于数据传感设备、数据通信技术和数据存储技术 的成熟与完善#xff0c;使得低成本采集和存储海量数据得以成为现实;另一方面则是由于计算能力的大幅提升#xff0c;如图形处理器(Graphics Processing Unit#xff0c;GPU)在神…目前神经网络技术受到追捧一方面是由于数据传感设备、数据通信技术和数据存储技术 的成熟与完善使得低成本采集和存储海量数据得以成为现实;另一方面则是由于计算能力的大幅提升如图形处理器(Graphics Processing UnitGPU)在神经网络算法中的应用和算法的不断改进带来的计算效率提升。
常见的神经网络模型有深度神经网络、卷积神经网络、循环神经网络以及由这些基本网 络优化而形成的各种深度学习模型。
13.1 从一个具体任务开始:识别数字
神经网络通过对大量手写数字的训练样本的学习从而自动找到识别手写 数字的规则实现对手写数字的识别。神经网络手写数字识别的训练数据一般采用 MNIST 数据 集它不但提供了大量形式各异的手写数字样本同时也提供了各个样本的标注信息从而便 于研究者使用。
13.2 理解神经元是什么
神经元是神经网络算法的基本单元它本质上是一种函数接受外部刺激并根据输入产生 对应的输出。它的内部结构可以看作线性函数和激活函数的组合线性函数运算结果传递给激 活函数最终产生该神经元的输出结果。神经元也经历了逐步发展并完善的过程其中典型的神经元有感知器和 S 型神经元等。
13.2.1 感知器是什么
感知器有时也被称为感知机是由康奈尔航空实验室的科学家弗兰克·罗森布拉特在 1957 年所提出的一种人工神经网络。它可以被视为一种形式最简单的前馈式人工神经网络是一种 二元线性分类器。感知器接收多个二进制输入并产生一个二进制输出。
感知器工作原理如下。
(1)感知器接收多个二进制输入每个输入对应一个权重。
(2)感知器二进制输入的加权值对输出有重大影响。
(3)通过感知器加权值与阈值比较决定最后的二进制输出值。
上述过程可用如下代数形式表达。有时候为了简便我们会把感知器规则 写成另外的通用形式如下所示。 其中wxΣwi xib 为阈值的相反数也称为感知器的偏置。
13.2.2 S型神经元是什么
S 型神经元与感知器相比其优点在于:权重和偏置的微小变化只会导致输出的微小变化。
S 型神经元与感知器最大的区别在于它的输入和输出不再是二进制的离散值而是 0 ~ 1的连续值。总的来说S 型神经元的特点如下。
(1)S 型神经元有多个输入值这些输入值为 0 ~ 1 的任意值。 (2)S 型神经元输入的加权值经过 sigmoid 函数处理后输出一个 0 ~ 1 的数值。 S 型神经元与感知器的不同之处在于:S 型神经元是一个平滑的函数而感知器是一个阶跃函数。也就是说感知器只能输出 0 或者 1而 S 型神经元能够输出 0 ~ 1 的任何数值。
S 型神经元的表达式可以写为任何一个权重和偏置的微小变化Δw 和 Δb 都会导致 S 型神经元的输出产生一个微小变化。
13.3 理解典型神经网络多层感知器
最基本、也是最典型的神经网络— 多层感知器(Multi- Layer PerceptionMLP)
13.3.1 神经网络结构是什么 一个典型的神 经元网络结构包括 3 个层:输入层、隐藏层、输出层。
(1)输入层。输入层是神经网络的第一层图像通过数值化转换输入该层该层接收输入 信号(值)并传递到下一层对输入的信号(值)并不执行任何运算没有自己的权重值和偏置值。图像将像素点信息转换为输入层神经元激活值像素点数量等于输入层神经元数量。
(2)隐藏层。隐藏层是神经网络中介于输入层和输出层之间的合成层。一个神经网络包含 一个或多个隐藏层隐藏层的神经元通过层层转换不断提高和已标注图像的整体相似度最 后一个隐藏层将值传递给输出层。
(3)输出层。输出层是神经网络的最后一层接收最后一个隐藏层的输入而产生最终的预 测结果得到理想范围内的期望数目的值。该层神经元可以只有一个也可以和结果一样多。
13.3.2 搞懂MLP的工作原理是什么
手写数字的神经网络算法分类中包括如下几个主要环节即图像数值化、神经 元相互激活传递和代价函数最小化等内容需要我们重点把握。
1.图像数值化:将图像转化为数值
图像(手写数字)识别的第一项工作就是将 图像通过各像素点进行数值化处理这项工作往往发生在神经网络的输入层。
其次MLP 神经网络的最后一层包含 10 个神经元分别代表 0 ~ 9 这 10 个数字。这 10 个神经元的激活值也是 0 ~ 1 的数值激活值越大表示输入值对应该神经元的可能性越大。
最后神经网络的中间层为隐藏层它可以包含多层结构和多个神经元。神经网络处理信息的 核心就在于每一层神经元的激活值的计算和上一层神经元激活值影响下一层神经元激活值的方式。
2.激活规则:神经元间如何相互影响
神经网络的大致工作过程是图像经过数值化处理后进入输入层神经元输入层神经元沿 着某条路径激活下一层神经元下一层神经元又将这种激活状态传播到后续各层的神经元最 终在输出层产生预测结果。
神经元的激活规则就是某个神经元激活值由上一层神经元激活值的某种加权方式来决 定。例如神经元 c1 激活值由上一层神经元激活值的某种加权形式来表达如 σ (w1a1w2a2... wnanb)其中 ai 是上一层某个神经元的激活值;wi 是上一层该神经元激活值对神经元 ci 激活 值影响的权重;b 则是神经元 c1 被激活的难易程度即偏置;σ 是 sigmoid 函数主要作用是将 函数值压缩为 0 ~ 1。
3.激活规则的关键:神经网络非线性矫正
早期神经网络的非线性函数经常使用 sigmoid 函数来将数值压缩为 0 ~ 1但现在更多使用 relu 函数或者 tanh 函数来进行处理。 总的来说上述 3 个函数有着各自的优缺点和使用场景。
第一sigmoid 函数和 tanh 函数亲缘关系较近一般认为 tanh 函数是 sigmoid 函数的改造版 本。在神经网络的隐藏层中tanh 函数的表现要优于 sigmoid 函数因为 tanh 函数范围为 -1 ~ 1 数据的平均值为 0有类似数据中心化的效果。
第二在神经网络的输出层中sigmoid 函数的表现要优于 tanh 函数这是因为 sigmoid 函 数输出结果为 0 ~ 1而 tanh 函数输出结果为 -1 ~ 1。输出结果为 0 ~ 1 更符合人们的习惯认知。
第三relu 函数不同于上述两个函数在深层网络中使用较多。工程实践中sigmoid 函数和 tanh 函数会在深层网络训练中出现端值饱和的现象从而导致网络训练速度变慢。因此一般在神经网络层次较浅时使用 sigmoid 函数和 tanh 函数而在深层网络中使用 relu 函数。
4.代价函数与参数优化
代价函数的一个合理形式是
当分类准确时这个代 价函数值就较小当分类错误时这个代价函数值就较大。我们可以通过不断调整参数值来优化代价函数最终确定合适的模型参数。
13.4 MLP的代价函数与梯度下降
MLP 神经网络学习过程由信号的正向传播与误差的反向传播两个过程组成。
(1)正向传播时输入样本从输入层传入经各隐藏层逐层处理后传向输出层。若输出层 的输出值与实际值不符则转入误差的反向传播阶段。
(2)误差的反向传播是将输出误差以某种形式通过隐藏层向输入层逐层反向传播并将误差分 摊给各层的所有单元从而获得各层单元的误差信号此误差信号即作为修正各单元权值的依据。
(3)这个信号的正向传播与误差的反向传播的各层权值调整过程是周而复始地进行的。 权值不断调整的过程也就是神经网络的学习训练过程此过程一直进行到神经网络输出的误 差减小到可接受的程度或进行到预先设定的学习次数为止。
13.4.1 代价函数:参数优化的依据 13.4.2 梯度下降法:求解代价函数最小值
识别手写数字的任务 中梯度下降法的工作过程主要如下。
(1)首先随机给定一系列的权重值与偏置值。当然这样最后的识别效果一般来说都会 很糟糕。
(2)接下来算法需要不断改进。改进的方向就是使代价函数的数值不断减小;代价函数是输出层神经元激活值的表达式如 。
(3)代价函数越小就表示输出层神经元激活值的真实值与预测值的差距越小手写数字 识别效果较好。
(4)梯度下降就是随机设定参数的初始值然后沿着负梯度方向进行迭代(可调节步长或 迭代次数改进梯度下降效率)直到达到代价函数的最小值。 一般的做法是首先将训练样本打乱顺序并划分为许多小组每个小组都包含若干 数量的训练样本。然后使用某个小组数据来计算一次梯度。这种梯度下降法就是随机梯度下降法。
13.5 反向传播算法的本质与推导过程
13.5.1 反向传播算法:神经网络的训练算法
反向传播(Back PropagationBP)算法是一种重要的神经网络训练算法“反向”的含义主要是指误差的反向传播。
1.反向传播算法有什么用
反向传播算法可以看成梯度下降法在神经网络中的变形版本它的原理主要是利用链式法 则通过递归的方式求解微分从而简化对神经网络梯度下降优化参数时的计算。在输入数据固 定的情况下反向传播算法利用神经网络的输出敏感度来快速计算神经网络中的各种超参数 从而大大减少训练所需时间。
2.反向传播算法是什么
提升激活值可以采用的方法为改变权重 wi 和偏置 b、改变上层神经元激活值 ai。不 过我们并不能改变上一层神经元激活值我们能够改变的只是权重和偏置。
上一层神经元权重和偏置的变化情况会综合考虑输出层各神 经元的“要求”。这就是反向传播算法的核心思想通过调整上一层各神经元的权重和偏置来实 现下一层各神经元激活值的“期待”重复这个过程到神经网络的所有层。
13.5.2 寻根究底:搞懂反向传播算法的数学原理
1. 代价函数如何表达 2.代价函数偏导链式传递规律 上述代价函数对权重的偏导数只是一个训练样本的结果。由于总代价函数是 n 个训练样本 代价函数的均值因此总代价函数对权重的偏导数为。
虽然神经网络算法强大应用广泛但是它有个比较明显的不足就是可解释性较差。
13.6 编程实践:手把手教你写代码