前言:
而今各位老铁们对“鸢尾花分类bp算法”大概比较关注,大家都需要知道一些“鸢尾花分类bp算法”的相关知识。那么小编也在网络上收集了一些关于“鸢尾花分类bp算法””的相关知识,希望同学们能喜欢,各位老铁们一起来学习一下吧!说明:本文依据《Sklearn 与 TensorFlow 机器学习实用指南》完成,所有版权和解释权均归作者和翻译成员所有,我只是搬运和做注解。
进入第二部分深度学习
第十章人工神经网络介绍
人工神经网络是深度学习的核心。具有通用性、强大性和可扩展性,使得它们能够很好地解决大型和高度复杂的机器学习任务。
在本章中,介绍人工神经网络,从快速游览的第一个ANN架构开始。然后提出多层感知器(MLP),并基于TensorFlow实现MNIST数字分类问题。
1.神经元的逻辑计算
人工神经元有一个或更多的二进制(ON/OFF)输入和一个二进制输出。当超过一定数量的输入是激活时,人工神经元会激活其输出。
McCulloch 和 Pitts 表明,即使用这样一个简化的模型,也有可能建立一个人工神经元网络来计算任何你想要的逻辑命题。
左边的第一个网络仅仅是确认函数:如果神经元 A 被激活,那么神经元 C 也被激活(因为它接收来自神经元 A 的两个输入信号),但是如果神经元 A 关闭,那么神经元 C 也关闭。第二网络执行逻辑 AND:有在激活神经元 A 和 B(单个输入信号不足以激活神经元 C)时才激活神经元 C。第三网络执行逻辑 OR:如果神经元 A 或神经元 B 被激活(或两者),神经元 C 被激活。如果我们假设输入连接可以抑制神经元的活动(生物神经元是这样的情况),那么第四个网络计算一个稍微复杂的逻辑命题:如果神经元 B 关闭,只有当神经元A是激活的,神经元 C 才被激活。如果神经元 A 始终是激活的,那么你得到一个逻辑 NOT:神经元 C 在神经元 B 关闭时是激活的,反之亦然。2.感知器
感知器是最简单的人工神经网络结构之一,是基于一种稍微不同的人工神经元,称为线性阈值单元(LTU):输入和输出现在是数字(而不是二进制开/关值),并且每个输入连接都与权重相连。
单一的 LTU 可被用作简单线性二元分类。它计算输入的线性组合,如果结果超过阈值,它输出正类或者输出负类(就像一个逻辑回归分类或线性 SVM)。
例如,你可以使用单一的 LTU 基于花瓣长度和宽度去分类鸢尾花(也可添加额外的偏置特征x0=1)。训练一个 LTU 意味着去寻找合适的W0和W1值。
感知器简单地由一层 LTU 组成,每个神经元连接到所有输入。这些连接通常用特殊的被称为输入神经元的传递神经元来表示:它们只输出它们所输入的任何输入。此外,通常添加额外偏置特征(X0=1)。这种偏置特性通常用一种称为偏置神经元的特殊类型的神经元来表示,它总是输出 1。
3.多层感知器与反向传播
注意,这里的神经网络图是一个从下到上的顺序,和平时从左到右有区别
在LTU的基础上,多层感知器由一个输入层、一个或多个隐藏层的LTU和一个最终LTU输出层构成。MLP除了输出层之外的每一层包括偏置神经元,并且全连接到下一层。当人工神经网络有两个或多个隐含层时,称为深度神经网络(DNN)。
如何训练MLP?目前使用的是反向传播训练算法(BP算法)。
对于每个训练实例,反向传播算法首先进行预测(前向),测量误差,然后反向遍历每个层来测量每个连接(反向传递)的误差贡献,最后稍微调整连接器权值以减少误差(梯度下降步长)。
MLP 通常用于分类,每个输出对应于不同的二进制类(例如,垃圾邮件/正常邮件,紧急/非紧急,等等)。当类是多类的(例如,0 到 9 的数字图像分类)时,输出层通常通过用共享的 softmax 函数替换单独的激活函数来修改。每个神经元的输出对应于相应类的估计概率。注意,信号只在一个方向上流动(从输入到输出),因此这种结构是前馈神经网络(FNN)的一个例子。
生物神经元是用 sigmoid(S 型)激活函数活动的,因此研究人员在很长一段时间内坚持 sigmoid 函数。但事实证明,Relu 激活函数通常在 ANN 工作得更好。这是生物研究误导的例子之一。
标签: #鸢尾花分类bp算法