aihot  2017-09-23 13:59:36  深度学习 |   查看评论   
 和 。层的序列实际上由层间的连接进行决定,所以策略部分都是返回一个连接的有序列表。
  • 计算激活值。每一层都有一个关联的 ,包含有连接的列表(从上一步得来)和输入值(从其它层得到)并计算得到结果的激活值。例如,在一个简单的S形前馈网络中,隐含层的  ConnectionCalculator 接受输入层和偏置层的值(分别为输入值和一个值全为1的数组)和神经元之间的权重值(如果是全连接层,权重值实际上以一个矩阵的形式存储在一个  结构中,计算加权和,然后将结果传给S函数。ConnectionCalculator 中实现了一些转移函数(如加权求和、卷积)和激活函数(如对应多层感知机的对数函数和双曲正切函数,对应RBM的二态函数)。其中的大部分都可以通过  在GPU上进行计算,可以利用迷你批次训练。
  • 通过 Aparapi 进行 GPU 计算

      像我之前提到的,神经网络在近些年复兴的一个重要原因是其训练的方法可以高度并行化,允许我们通过GPGPU高效的加速训练。本文中,我选择  库来进行GPU的支持。

      Aparapi 在连接计算上强加了一些重要的限制:

    • 只允许使用原始数据类型的一维数组(变量)。
    • 在GPU上运行的程序只能调用 Aparapi Kernel 类本身的成员函数。

      这样,大部分的数据(权重、输入和输出数据)都要保存在  实例里面,其内部是一个一维浮点数组。所有Aparapi 连接计算都是使用  (应用在全连接层和加权求和函数上)、  (应用在下采样层)或  (应用在卷积层)。这些限制可以通过  里介绍的内容解决一些。而且Aparapi 允许相同的代码运行在CPU和GPU上。

    训练

       的模块实现了多种训练算法。这个模块依赖于上文提到的两个模块。比如, (所有的训练算法都以  为基类)在前馈阶段使用前馈层计算,在误差传播和权重更新时使用特殊的广度优先层计算。

      我最新的工作是在Java8环境下开发,其它一些更新的功能可以在这个 下获得,这部分的工作很快会merge到主干上。

    结论

      本文的目标是提供一个深度学习算法领域的一个简明介绍,由最基本的组成元素开始(感知机)并逐渐深入到多种当前流行且有效的架构上,比如受限波尔兹曼机。

      神经网络的思想已经出现了很长时间,但是今天,你如果身处机器学习领域而不知道深度学习或其它相关知识是不应该的。不应该过度宣传,但不可否认随着GPGPU提供的计算能力、包括Geoffrey Hinton, Yoshua Bengio, Yann LeCun and Andrew Ng在内的研究学者们提出的高效算法,这个领域已经表现出了很大的希望。现在正是最佳的时间深入这些方面的学习。

     

    除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自深度学习概述:从感知机到深度网络

    留言与评论(共有 0 条评论)
       
    验证码:
    [lianlun]1[/lianlun]