python神经网络介绍_神经网络介绍

本文介绍了神经网络的训练过程,包括有指导的训练和无指导的训练,重点讲解了理想化的学习算法和感知器学习规则。文章还探讨了学习率在权系数调整中的作用,并对比了感知器和delta规则之间的差异。最后,通过源代码语言识别的实例展示了反向传播算法的应用,证实了神经网络在实际问题解决中的有效性。
摘要由CSDN通过智能技术生成

1, X2, …, Xn, theta, t>,这里 t 是一个目标或者正确分类。神经网络用这些来调整权系数,其目的使培训中的目标与其分类相匹配。更确切地说,这是有指导的培训,与之相反的是无指导的培训。前者是基于带目标的示例,而后者却只是建立在统计分析的基础上(请参阅本文随后的 参考资料 )。权系数的调整有一个学习规则,一个理想化的学习算法如下所示:

清单 1. 理想化的学习算法

fully_trained = FALSE

DO UNTIL (fully_trained):

fully_trained = TRUE

FOR EACH training_vector = ::

# Weights compared to theta

a = (X1 * W1)+(X2 * W2)+...+(Xn * Wn) - theta

y = sigma(a)

IF y != target:

fully_trained = FALSE

FOR EACH Wi:

MODIFY_WEIGHT(Wi) # According to the training rule

IF (fully_trained):

BREAKShow moreShow more icon

您或许想知道,”哪些培训规则?”有很多,不过有一条似乎合理的规则是基于这样一种思想,即权系数和阈值的调整应该由分式 (t – y) 确定。这个规则通过引入 alpha (0 < alpha < 1) 完成。我们把 alpha 称为 学习率 。Wi中的更改值等于 (alpha (t – y) Xi)。当 alpha 趋向于 0 时,神经网络的权系数的调整变得保守一点;当 alpha 趋向于 1 时,权系数的调整变得激进。一个使用这个规则的神经网络称为 感知器 ,并且这个规则被称为 感知器学习规则 。Rosenblatt 于 1962 年(请参阅 参考资料 )下的结论是,如果 N 维空间的点集被超平面切割,那么感知器的培训算法的应用将会最终导致权系数的分配,从而定义了一个 TLU,它的超平面会进行需要的分割。当然,为了记起 Keynes,最终我们都切断了与外界的联系,专心思考。但是在计算时间之外,我们仍濒临危险,因为我们需要自己的神经网络对可能输入的空间进行不止一次的切割。

文章开始的难题举例说明了这个,假设给您 N 个字符的代码段,您知道是 C、C++、Java 或者 Python。难的是构造一个程序来标识编写这段代码的语言。用 TLU 来实现需要对可能的输入空间进行不止一次的分割。它需要把空间分成四个区域。每种语言一个区域。把神经网络培训成能实现两个切割就可完成这种工作。第一个切割将 C/C++ 和 Java/Python 分开来,另一个将 C/Java 和 C++/Python 分开。一个能够完成这些切割的网络同样可以识别源代码样本中的语言。但是这需要网络有不同结构,在描述这个不同之处之前,先来简单地看一下实践方面的考虑。

图 2. 初步的(不完整的)感知器学习模型

考虑到排除取得 N 个字符代码所需的计算时间,统计从 ASCII 码的 32 到 127 的范围内可视 ASCII 码字符出现的频率,并在这个统计以及关于代码语言的目标信息的基础上培训神经网络。我们的方法是将字符统计限制到 C、C++、Java 和 Python 代码字符库中最常用的 20 个非字母数字字符。由于关注浮点运算的执行,我们打算用一种规格化因素将这 20 字符统计分开来,并以此培训我们的网络。显然,一个结构上的不同是我们的网络有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值