Tensorflow 入门学习3 重要算法基础

Posted 编程圈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tensorflow 入门学习3 重要算法基础相关的知识,希望对你有一定的参考价值。

本文学习内容来自《TensorFlow深度学习应用实践》

ANN简史

Tensorflow

MP模型

MP神经元模型是1943年,由Warren McCulloch和Walter Pitts提出的。
Tensorflow
即:
Tensorflow
即逻辑回归模型。
生物神经元和MP神经元模型的对应关系如下表:

生物神经元

MP神经元模型

神经元

j

输入信号

权值

输出信号

总和

膜电位

阈值

BP神经网络简介

在人工神经网络的发展历史上,感知机(Multilayer Perceptron,MLP)网络曾对人工神经网络的发展发挥了极大的作用,也被认为是一种真正能够使用的人工神经网络模型,它的出现曾掀起了人们研究人工神经元网络的热潮。单层感知网络(M-P模型)做为最初的神经网络,具有模型清晰、结构简单、计算量小等优点。但是,随着研究工作的深入,人们发现它还存在不足,例如无法处理非线性问题,即使计算单元的作用函数不用阀函数而用其他较复杂的非线性函数,仍然只能解决解决线性可分问题.不能实现某些基本功能,从而限制了它的应用。增强网络的分类和识别能力、解决非线性问题的唯一途径是采用多层前馈网络,即在输入层和输出层之间加上隐含层。构成多层前馈感知器网络。
20世纪80年代中期,David Runelhart。Geoffrey Hinton和Ronald W-llians、DavidParker等人分别独立发现了误差反向传播算法(Error Back Propagation Training),简称BP,系统解决了多层神经网络隐含层连接权学习问题,并在数学上给出了完整推导。人们把采用这种算法进行误差校正的多层前馈网络称为BP网。
BP神经网络具有任意复杂的模式分类能力和优良的多维函数映射能力,解决了简单感知器不能解决的异或(Exclusive OR,XOR)和一些其他问题。从结构上讲,BP网络具有输入层、隐藏层和输出层;从本质上讲,BP算法就是以网络误差平方为目标函数、采用梯度下降法来计算目标函数的最小值。

BP算法的缺点

传统的BP算法,理论上可以支持任意深度的神经网络,但实际使用中,很少能支持3层以上的神经网络。
Tensorflow
随着层数的增多,反向传递的残差梯度会越来越小,这样的现象,被称作梯度消失(Vanishing Gradient)。它导致的结果是,虽然靠近输出端的神经网络已经训练好了,但输入端的神经网络仍处于随机状态。也就是说,靠近输入端的神经网络,有和没有都是一样的效果,完全体现不了深度神经网络的优越性。

和梯度消失相反的概念是梯度爆炸(Vanishing Explode),也就是神经网络无法收敛。

参考:​​javascript:void(0)​

BP神经网络的两个重要算法

最小二乘法(LS算法)

最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。

梯度下降算法

梯度下降是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降(Gradient Descent)是最常采用的方法之一,另一种常用的方法是最小二乘法。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。反过来,如果我们需要求解损失函数的最大值,这时就需要用梯度上升法来迭代了。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降法和批量梯度下降法。

以上引自《百度百科》,后面章节再详细讲解最小二乘法与梯度下降算法。

BP算法讲解

数学上通过建立复杂的高次多元的函数解决复杂模型拟合的问题,但大多数都失败,因为过于复杂的函数式是无法进行求解,也就是其公式的获取不可能。

基于前人的研究,科研工作人员发现可以通过神经网络来表示这样的一个一一对应的关系,而神经网络本质就是一个多元复合函数,通过增加神经网络的层次和神经单元,可以更好地表达函数的复合关系。

Tensorflow
这是多层神经网络的一个图像表达方式。可以通过设置输入层、隐藏层与输出层可以形成一个多元函数求解相关问题。

定义一、 前向传播算法

隐藏层输出值定义:
Tensorflow

神经网络入门1

神经网络入门1

神经网络入门1

神经网络入门1

Tensorflow入门-实现神经网络

Tensorflow入门-实现神经网络