Python教程

Python解释Keras神经网络

本文主要是介绍Python解释Keras神经网络,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

我们将以Keras的示例讨论简单的神经网络及其定义。在传统机器学习上使用神经网络来提高准确性和更大的复杂数据。

神经网络
神经网络在全球各行各业中都在蓬勃发展。 它涉及用于回归,分类,聚类等的传统机器学习算法。当我们获取大量复杂数据时,就会出现准确性,过拟合以及有时需要花费更多时间进行测试和培训的问题。

神经网络的基本类型

人工神经网络

卷积神经网络

递归神经网络

神经网络是处理非线性数据的很好算法。

感知器一词由弗兰克·罗森布拉特(Frank Rosenblatt)于1957年提出。在机器学习中,感知器是二进制状态的线性分类器,而在深度学习中,感知器是人工神经元。

神经元的概念源自人脑中的神经元,并试图模仿自然神经元通过人工神经元适应和学习周围环境的行为。

对于深度学习中的任何模型,必须有输入和输出神经元。

权重和偏置
权重和偏置是神经网络中的两个学习参数,信息通过该学习参数传递到下一层。

在自然神经元中,信息是通过电脉冲从一端传递到另一端的,而在人工神经元中,信息是借助重量传递的。

偏置值用于使数据更灵活并且更接近实际操作。

具有权重和偏差的简单神经网络模型

带输入的权重和偏差的公式。

不同类型层
在神经网络中,这些层定义了神经元,信息通过神经元传递到神经元的下一层。三层描述如下:

输入层:根据我们数据集中独立要素的数量,该层包含神经元的数量。

隐藏层:此层在输入层和输出层之间。它也被称为计算层,它采用具有权重和偏置的非线性输入,并使用激活函数将其计算到下一层。

输出层:此层包含分类问题的输出。它可能具有一个节点或一个神经元或多个神经元。

激活函数
神经网络中的激活函数对来自输入层的输出进行比较计算,并确定要分类的某个阈值。

神经网络中使用了许多激活函数,如下所示:

阈值函数:它只是一个步进函数或称二进制函数。在多类问题中,它并不是很有用。

线性激活函数:此函数非常适合于回归问题。此函数的问题不能在反向传播中使用,因为导数将相同。

非线性函数:它们适用于非线性数据,其中一些如下所示:

Sigmoid函数:对梯度非常有帮助,但不适用于高值和低值。计算过程也很高。范围是0到1。

双曲正切(tanh):某种程度上仅像Sigmoid,但区别在于它在负值时也表现良好。范围是-1至1。

整流线性(ReLu):收敛性好,并且适合非线性。但这对于学习反向传播不是那么有用,并且对于负值或达到零值,渐变变为零。

LeLu泄漏:克服了反向传播中ReLu的问题,但预测的准确性较低。

参数ReLu:非常适合进行反向传播和学习负值的事物。

Softmax函数:在对输入的许多类别进行分类时非常有用,因此可在输出层中使用。

横摆函数:这是一种新方法,比ReLu更好,准确性提高了0.5%。

梯度下降和随机梯度下降
梯度下降的主要目的是最大程度地降低成本(损失)。 当我们将模型结果评估为实际结果时,就会蒙受损失。 在这里,权重过程的更新是从模型的所有层和节点的反向开始的。 权重的变化取决于偏导数w.r.t. 权重找到全局最小值。

在梯度下降之前,我们可以使用具有许多权重值的蛮力来找出损失最小的地方。但是,此过程非常昂贵且耗时。

在本主题中,我们将讨论两种优化方法,如下所示:

梯度下降:在此方法中,梯度(斜率)用于了解正方向和负方向。 在整体最小值处,斜率变为零,因此,这意味着精确的重量值点。 梯度下降的问题在于,当存在多个局部最小值时,它无法找到全局最小值,因此我们无法获得适当优化的权重。 梯度下降将所有输入作为一批进行分析。

随机梯度下降:为了克服无法获得全局最小值的问题,SGD成为了现实。 在此方法中,输入中的行逐行占用并逐行更新权重。 也称为小批量梯度下降法。

反向传播
这是借助梯度下降方法来更新模型中权重的过程。

Python释义Keras
这是银行数据集流失分析的示例。

详情参阅http://viadean.com/py_keras.html

这篇关于Python解释Keras神经网络的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!