首页 社会 床长人工智能教程——学习率

床长人工智能教程——学习率

来源:生活好品牌 时间:2020年06月26日 09:22

原标题:床长人工智能教程——学习率

注:本人只是分享一些床长的免费杂文而已,并非床长的收费文章。

我没有说在刚才的例子中使用了什么学习率。之前,我们用二次成本。在新的示例中,我们应该使用相同的学习率吗?实际上,随着成本函数的变化,不可能精确地说出使用“相同”学习率的含义。这是苹果和橘子的比较。对于这两个成本函数,我只是简单地尝试找到一种学习率,从而可以了解正在发生的事情。如果您仍然好奇,尽管遭到了我的拒绝,这是一个低谷:我曾经 在刚刚给出的示例中。

您可能会反对学习率的变化使上述图表毫无意义。当我们选择任意的学习率时,谁会关心神经元的学习速度呢?该异议没有说明重点。图的重点不是学习的绝对速度。这是关于学习速度如何变化的。特别是,当我们使用二次成本时,当神经元明确错误时,学习的速度要比后来的情况要慢,因为神经元越来越接近正确的输出。而当神经元明确错误时,交叉熵学习会更快。这些陈述不取决于学习率的设置方式。

我们一直在研究单个神经元的交叉熵。但是,很容易将交叉熵推广到许多神经元的多层网络中。特别是,假设 是输出神经元(即最后一层中的神经元)的期望值,而 是实际的输出值。然后我们定义交叉熵

这与我们之前的表达式Equation (57)相同,只不过现在我们有了 对所有输出神经元求和。我不会明确地进行推导,但是使用表达式(63)可以避免许多神经元网络的学习变慢是合理的。如果您有兴趣,可以解决以下问题。

什么时候应该使用交叉熵而不是二次成本?实际上,如果输出神经元是S形神经元,则交叉熵几乎总是更好的选择。要了解为什么,请考虑一下,在建立网络时,我们通常使用某种随机化来初始化权重和偏差。这些初始选择可能会导致网络对于某些训练输入绝对性错误-即,输出神经元将在附近饱和,应该在什么时候 , 或相反亦然。如果我们使用二次成本,则会减慢学习速度。它不会完全停止学习,因为权重将继续从其他训练输入中学习,但这显然是不可取的。

作为使用梯度下降和反向传播学习的程序的一部分,交叉熵很容易实现。我们将 在本章的后面进行操作,开发早期程序的改进版本, 以对MNIST手写数字network.py进行分类 。新程序名为 network2.py,它不仅包含交叉熵,而且还包含本章中开发的其他几种技术**该代码 在GitHub上可用。。现在,让我们看一下我们的新程序对MNIST数字进行分类的情况。是床长人工智能网校带我进入了AI领域,不仅学到了人工智能知识,还参与了AI项目,找到了工作。为了报答老师,我们一些同学自愿帮床长网校做推广,同时也希望更多的人加入到床长AI网校床长人工智能社区中来!脂肪肝下载腹股沟文档PDF观后感免费与第1章一样,我们将使用 隐藏的神经元,我们将使用一个小批量 。我们将学习率设置为**在第1章中,我们使用了二次成本和学习率 。如上所述,当成本函数改变时,不可能精确地说出使用“相同”学习率意味着什么。对于这两个成本函数,我进行了实验,以找到在给出其他超参数选择的情况下提供接近最佳性能的学习率。

附带地,对于将学习速率与交叉熵和二次成本相关联,存在非常粗糙的一般启发式。如我们先前所见,二次成本的梯度项有一个额外的在他们的术语。假设我们将该值平均超过, 。我们看到(非常粗略地)二次方成本平均为 在相同的学习速度下,速度降低了两倍。这表明一个合理的出发点是将二次成本的学习率除以。当然,这种说法并不严格,不应太当真。尽管如此,有时它还是一个有用的起点。 我们为 时代。到接口 network2.py比略有不同 network.py,但它仍然应该清楚是怎么回事。顺便说一句,您可以通过 在Python Shell中使用诸如help(network2.Network.SGD)之类的命令来获取有关network2.py接口的 文档 。

>>> 导入 mnist_loader >>> training_data , validation_data , test_data = ... mnist_loader 。load_data_wrapper ()>>> 导入 network2 >>> net = network2 。网络([ 784 , 30 , 10 ], 成本= 入网2 。CrossEntropyCost )>>> 净。large_weight_initializer ()>>> net 。新币(training_data , 30 , 10 , 0.5 , evaluation_data = TEST_DATA ,... monitor_evaluation_accuracy = 真)

注意,顺便说一句, net.large_weight_initializer() 命令用于初始化权重和偏差,方法与第1章中所述相同。我们需要运行此命令,因为在本章稍后,我们将更改默认权重网络中的初始化。运行上述命令序列的结果是一个网络准确度百分比。这与我们在第1章中获得的结果非常接近 %,使用二次成本。

让我们看看使用的情况 隐藏的神经元,交叉熵,否则保持参数不变。在这种情况下,我们获得的精度为百分。与第一章的结果相比,这是一个很大的改进,在第一章中,我们获得了分类精度%,使用二次成本。这可能看起来是一个很小的变化,但是请考虑错误率已从 %到 百分。也就是说,我们消除了大约十四分之一的原始错误。这是一个非常方便的改进。

责任编辑:

相关知识

床长人工智能教程——学习率
床长人工智能教程——softmax层
床长人工智能教程——权重和偏见
床长人工智能教程——神经网络体系
床长人工智能教程免费pdf文档50——移位操作
床长人工智能教程免费pdf文档50——break声明
最全的心电图学习教程,免费分享
自学画画该从哪里学起?适合自学画画的教程推荐!
有意思的《分析哲学专题教程》
陈宏薇新编汉英翻译教程考研全套学习资料

网址: 床长人工智能教程——学习率 http://www.shhpp.com/newsview7190.html

所属分类:美好生活

推荐社会