Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
start:深度学习教程---从感知到深度网络 [2017/09/09 21:38]
vanabel [自动编码器]
start:深度学习教程---从感知到深度网络 [2019/06/27 22:37] (current)
Line 1: Line 1:
-====== 深度学习教程──从感知到深度网络 ======+====== 深度学习教程──从感知到深度网络 ======
 [[https://​www.toptal.com/​machine-learning/​an-introduction-to-deep-learning-from-perceptrons-to-deep-networks|本文]]原作者是Java工程师**Ivan Vasilev**, 同时作者也开发了[[https://​github.com/​ivan-vasilev/​neuralnetworks|Java深度学习库]],​ 大家可以去点赞. 这里我将根据我的理解,​ 作一记录. [[https://​www.toptal.com/​machine-learning/​an-introduction-to-deep-learning-from-perceptrons-to-deep-networks|本文]]原作者是Java工程师**Ivan Vasilev**, 同时作者也开发了[[https://​github.com/​ivan-vasilev/​neuralnetworks|Java深度学习库]],​ 大家可以去点赞. 这里我将根据我的理解,​ 作一记录.
  
Line 63: Line 63:
 > 一系列线性函数的线性复合还是线性函数,故大多数的神经网络用的是非线性激活函数。 > 一系列线性函数的线性复合还是线性函数,故大多数的神经网络用的是非线性激活函数。
  
-正因为如此,大多数神经网络使用非线性的激活函数,例如[logistic](https://​en.wikipedia.org/​wiki/​Sigmoid_function)函数、[tanh](https://​en.wikipedia.org/​wiki/​Tanh)函数、[binary](https://​en.wikipedia.org/​wiki/​Artificial_neuron#​Step_function)函数或者[rectifier](https://​en.wikipedia.org/​wiki/​Rectified_linear_unit)函数。如果不用非线性函数,那么神经网络只能学习其输入的线性组合这类函数。 +正因为如此,大多数神经网络使用非线性的激活函数,例如[[wp>Sigmoid_function|Logistic函数]]、[[wp>Tanh|tanh函数]]、[[wp>Artificial_neuron#​Step_function| binary函数]]或者[[wp>Rectified_linear_unit|rectifier函数]]。如果不用非线性函数,那么神经网络只能学习其输入的线性组合这类函数。
 ==== 感知器的训练 ==== ==== 感知器的训练 ====
 有监督训练多层感知器的深度学习中最常见的算法是所谓的反向传播算法(backpropagation)。其基本过程是: 有监督训练多层感知器的深度学习中最常见的算法是所谓的反向传播算法(backpropagation)。其基本过程是:
Line 158: Line 157:
  
 在某种程度上,由于偏好这样更为简单的表示方法,我们也会尝试从一个更接近“真理”的意义上去学习数据。 在某种程度上,由于偏好这样更为简单的表示方法,我们也会尝试从一个更接近“真理”的意义上去学习数据。
 +===== 有限Boltzmann机 =====
 +
 +下一个逻辑步骤是看看有限玻尔兹曼机[[wp>​Restricted_Boltzmann_machine|Restricted Boltzmann machine]] (RBM),一个可以从它自身输入来学习概率分布的随机生成神经网络。
 +{{ :​start:​rbm.png?​400 |RBM}}
 +RBMS由隐藏层(hidden layer)、可见层(visible layer)、以及偏置层(bias layer)所组成。不同于前馈神经网络,在可见层和隐层之间的连接是无向的(值可以同时从隐层传到可见层,反之亦然)同时还是全连接的(给定层的每个神经元都会和下一层的每个神经元相连接——如果我们允许任意层次的任意神经元来连接到其他任何层次,那么就是`玻尔兹曼机`(Boltzmann)(并非有限玻尔兹曼机(restricted Boltzmann)))。
 +
 +标准的RBM有二进制隐藏元和可见元:即是说在伯努利分布下神经元的激活值为0或者1,但是这里也有其他非线性的变量。
 +
 +研究者们知晓RBMs已经有一定的年月,但最近关于对比分歧无监督训练算法的介绍又重新挑起了研究者们的兴趣。
 +
 +