0%

原文链接:CHAPTER 3 Improving the way neural networks learn

产生过度拟合和正则化的原因

拥有大量的自由参数的模型能够描述特别神奇的现象。即使这样的模型能够很好的拟合已有的数据,但并不表示是一个好模型。因为这可能只是因为模型中足够的自由度使得它可以描述几乎所有给定大小的数据集,而不需要真正洞察现象的本质。所以发生这种情形时,模型对已有的数据会表现的很好,但是对新的数据很难泛化。对一个模型真正的测验就是它对没有见过的场景的预测能力。

阅读全文 »

原文链接:CHAPTER 3 Improving the way neural networks learn

Softmax 前言

我们大多数情况会使用交叉熵来解决学习缓慢的问题。但是,我希望简要介绍一下另一种解决这个问题的方法,基于 softmax 神经元层。在人工神经网络(ANN)中,softmax 通常被用作输出层的激活函数。这不仅是因为它的效果好,而且因为它使得 ANN 的输出值更易于理解。同时,softmax 配合 log 似然代价函数,其训练效果也要比采用二次代价函数的方式好。

阅读全文 »

交叉熵

交叉熵 百度百科

交叉熵(Cross Entropy)是Shannon信息论中一个重要概念,主要用于度量两个概率分布间的差异性信息。

交叉熵的定义

交叉熵的应用

  • 交叉熵可在神经网络(机器学习)中作为损失函数,p表示真实标记的分布,q则为训练后的模型的预测标记分布,交叉熵损失函数可以衡量p与q的相似性。交叉熵作为损失函数还有一个好处是使用sigmoid函数在梯度下降时能避免均方误差损失函数学习速率降低的问题,因为学习速率可以被输出的误差所控制。
  • 在特征工程中,可以用来衡量两个随机变量之间的相似度。
  • 在语言模型中(NLP)中,由于真实的分布p是未知的,在语言模型中,模型是通过训练集得到的,交叉熵就是衡量这个模型在测试集上的正确率。
阅读全文 »

部分代码解读

在之前描述 MNIST 数据时,我说它分成了 60,000 个训练图像和 10,000 个测试图像。这是官方的 MNIST 的描述。实际上,我们将用稍微不同的方法对数据进行划分。我们将测试集保持原样,但是将 60,000 个图像的 MNIST 训练集分成两个部分:一部分 50,000 个图像,我们将用来训练我们的神经网络,和一个单独的 10,000 个图像的验证集。在本章中我们不使用验证数据,但是在本书的后面我们将会发现它对于解决如何去设置某些神经网络中的超参数是很有用的,例如学习率等,这些参数不被我们的学习算法直接选择。尽管验证数据不是原始 MNIST 规范的一部分,然而许多人以这种方式使用 MNIST,并且在神经网络中使用验证数据是很普遍的。从现在起当我提到“MNIST 训练数据”时,我指的是我们的 50,000 个图像数据集,而不是原始的 60,000图像数据集

阅读全文 »

原文链接:CHAPTER 1 Using neural nets to recognize handwritten digits

神经网络的架构

假设我们有这样的网络:

前面提过,这个网络中最左边的称为输入层,其中的神经元称为输入神经元。最右边的,即输出层包含有输出神经元,在本例中,输出层只有一个神经元。中间层,既然这层中的神经元既不是输入也不是输出,则被称为隐藏层。“隐藏”这一术语也许听上去有些神秘,我第一次听到这个词,以为它必然有一些深层的哲学或数学涵意,但它实际上仅仅意味着“既非输入也非输出”。上面的网络仅有一个隐藏层,但有些网络有多个隐藏层。例如,下面的四层网络
有两个隐藏层:

阅读全文 »

原文链接:CHAPTER 1 Using neural nets to recognize handwritten digits

本书序言

在传统的编程方法中,我们告诉计算机做什么,把大问题分成许多小的、精确定义的任务,计算机可以很容易地执行。相比之下,在神经网络中,我们不告诉计算机如何解决我们的问题。相反,它从观测数据中学习,找出它自己的解决问题的方法。

阅读全文 »

yuanxiaosc.github.io

个人博客;机器学习;深度学习;Python学习;