nn-iterated-projections, 基于迭代投影的神经网络训练

分享于 

14分钟阅读

GitHub

  繁體 雙語
Neural network training using iterated projections.
  • 源代码名称:nn-iterated-projections
  • 源代码网址:http://www.github.com/jn2clark/nn-iterated-projections
  • nn-iterated-projections源代码文档
  • nn-iterated-projections源代码下载
  • Git URL:
    git://www.github.com/jn2clark/nn-iterated-projections.git
    Git Clone代码到本地:
    git clone http://www.github.com/jn2clark/nn-iterated-projections
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/jn2clark/nn-iterated-projections
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    基于迭代投影算法的训练神经网络

    Jesse Clark 7 2017年01月

    以前,我曾经是相位检索( PR ) 领域的物理学家。 关于( 通常在傅立叶空间中)的幅值和实际空间( 像积极和有限的东西) [Fienup1982]的约束,关于复值函数的相位有关。

    PR是一个非凸优化问题,已经成为许多工作的课题,并形成了晶体结构的,一个结构生物学鲁棒性强的。

    以三维衍射数据为例,给出了三维x 射线衍射数据的三维重建过程。

    一些最成功的关于公关问题的算法是投影基于凸优化投影的凸集( 有关出色的概述,请参见 [Marchesini2007] )。 由于基于投影的方法成功,我想知道是否可以使用类似的方法训练神经网络。

    交替投影

    凸集( 宋体) 投影是求凸集间交集的一种有效方法。 上面给出了一个简单的例子,其中我们有两个( 近似) 凸约束集 ( 红色) 和 通过迭代映射在每个集合上连续投影,可以找到相交点。

    其中 是它们各自集合上的投影。 投影是幂等的 距离最小,距离最小;

    最小化。

    解决方法是在

    约束集的convexivity允许绘制大量的常规结论,即使没有对单个集的知识也是如这里。 然而,当约束集为非凸时,一般的结果很少。 因此,使用简单的交替投影,而不是寻找全局解,可能会导致局部极小值的停滞。 下面的示例显示了以上示例的集合,并且查找交叉( 全局最小值)的能力高度依赖初始猜测。

    尽管集合不再凸,投影方法可以证明非凸优化问题的求解有效且有效。 例如数独,n 皇后问题,图着色和相位检索 [Elser2008, Gravel2008]。

    我将在下一节讨论,要使投影方法处理非凸问题,需要修改简单的交替投影算法。

    差分映射

    一种最成功的非凸投影算法是差分映射( DM ) [Elser2003, Elser2007]。 它被写成

    火警的警铃在哪里?

    火警的警铃在哪里?

    称为估计。一旦达到了一个固定点,

    这意味着两个估计与一个解决方案

    差分映射是通过作为特定参数的推广或者等价的,连接到公关文献( 混合输入输出 [Fienup1982], Slack 平均交替反射 [Luke2005] 和混合投影反射 [Bauschke2003] ) 中的一些不同算法。

    而不是上述形式,一个更简单的差异地图的版本经常被使用并被给予;

    这个简单的版本通常表现良好,并且减少了每次迭代( 投影的顺序也可以改变) 所需的投影数。 这个词

    也被称为反射运算,并出现在许多投影算法中。

    下面显示了相同的非凸问题,但现在使用差分映射算法。 算法能够转移,搜索更多的解空间,最终聚合到一个解决方案中。

    分割和征服

    差异映射以前定义为两个投影,因这里当有两个以上的时间会发生。 在本例中,我们定义了一个新的迭代 ,它是的串联 通过进行重复的重复:

    然后定义一个平均和直接的产品投影

    其中 是投影和 ;是加权总和;

    然后给出了许多投影的差分图;

    ,

    更新跟以前一样;

    这种方法称为'分而治之'。 以下是使用分割和治理的差异图收敛的数独拼图的一个例子。

    数独有 4个约束,每行都有数字 1到 9,每列都有数字 1到0,表示每个列都有数字 1,而数字与部分填充的模板一致。 请参见这里的实现这里代码的代码。

    基于的训练神经网络

    在非凸优化中,对差分图。投影及它的使用进行了理解,下一步是对神经网络进行投影。 在本例中,我们将只考虑分类任务。 基本思想是,我们寻找一个能正确分类我们的数据的权重向量。
    如果我们把数据分成K 个子集

    然后我们可以定义一个'项目'的投影,这样子集中的所有训练数据都正确分类( 或者损失到 0 )。 实际上,投影是在数据( 基本上是 overfitting )的子集上使用梯度下降实现的。 如果这样做,我们会得到impotence和距离最小化操作。 然后,目标就是对每个数据子集进行正确分类,我们想要找到所有这些集合的交集。 ,图可以说,如果在解决方案的附近,使用差分贴图可以很好地工作,但是伪投影和非最优投影仍可以很好地工作。 我们不希望它在解决方案中分离。

    结果

    通过使用标准方法来测试训练方案( 这里是代码 。),并将它的与基于投影的方法进行比较,并对它的进行了比较。 使用了非常简单的层( 例如。 no normalization,由大约 22000个参数组成,1个卷积层,8个convolutional滤波器,每个 subsampling subsampling ( 使用校正线性单元进行激活) softmax,最后是 10个 subsampling,最后输出( 1对于每个MNIST类)。 权重是使用Glorot统一 [Glorot2010] 初始化的。 下面显示的是MNIST数据集从 5-fold 交叉验证( 仅使用MNIST培训数据) 到差异图训练和常规训练方案( 使用 Adam,学习速率. 001,批量大小 256,无丢失或者正则化)的平均训练和验证损失。

    我们可以看到它实际上 ! 为这里,培训数据将( 随意) 分为 3个等大小的集合。 这三组训练数据在投影约束中被使用。 对于投影,技术上我们需要找到新的权重集,以最小化与旧重量集的距离。 在这里,我们使用梯度下降(。使用 Adam,lr=。001,batch_size=256,无丢失或者正则化),一旦训练数据达到 99% ( 这是我发现的一个启发式,可以能有更好的选择,但这将是现在的),就会终止投影。 然后,通过对损失函数进行优化并将它的投影到每一个 3集上,从而产生 3个新的权值,这些权值将连接在一起形成一个新的权值。

    然后通过平均权重,然后复制和连接来形成一个新的向量来计算平均投影。

    然后,根据差异映射组合这两个投影步骤,为权重提供一个更新方案。

    除了常规的度量,我们还可以监控差分图误差来寻找收敛。 差分图误差由定义;

    价值越低,就越接近一个解决方案。 有了真实的世界数据,就完全可以能没有约束集之间的交叉。 在这种情况下差异映射错误将会发生,指示找到了近似的解决方案,如果数据很重要,则不会发生。 定性地说,差异地图误差一般表现出 [Elser2003] 在plateauing之前突出的解。

    在上面的例子中,投影是通过在训练数据子集上重复的梯度步骤来定义的。 如果我们不在子集上约束到of的点,将会发生什么情况? 在下面的示例中,我们在单个纪元之后终止投影,而不是让它运行,直到我们在训练数据上达到了启发式验证限制。

    下面是平均简历测试和列车误差( 与上面相同的传统训练)

    我们可以看到,它仍然很正常。 为什么这样做如果前面的投影操作被截断,一种方法就是把投影视为轻松投影。 凸优化和公关 [Elser2003, Marchesini2003,Thibault2013,Clark2014]的结果表明,松散投影和非最优投影仍然收敛( 经常很好)。
    这里外,在这个极限单元投影极限中,传统的梯度下降约束可以通过交替投影恢复(。使用 3集作为示例) ;

    最后,针对常规方法和 batch_size。学习速度。迭代和时代,进行了一些超大参数的(。使用 5-fold 交叉验证)。 对于传统的培训和( 学习速率. 001,批量大小 1024和 7纪元),投影方法的优化参数为( 学习速率. 001,批量大小 256和 17纪元)。 用这些参数训练网络,并在早期停止( 在迭代中发现的cv测试错误最低) 时分别对常规训练方法和accuracy和4 % 进行了最终损失和精度,并使用差分图进行了 4和 97.5的。

    扩展投影方法

    投影方法的一个好处就是你可以容易地合并它的他约束。
    对于L1正则化,我们可以定义一个收缩或者软阈值操作( 这是近距离梯度下降算法的一部分) ;

    卷积核的权值和对称性的直方图约束。

    其他注意事项

    有很多未回答的问题我在这里没有探索。 最佳集数是多少? 如何将数据分发到这些集合? 投影操作的工作原理? 如何处理优化器的状态丰满? 其他未完全探讨的是正则化的效果。 这应该进入投影本身还是作为投影( 按上步骤) 包含? 如果权重在平均投影中加权加权会发生什么情况? 应该如何计算这些? 可以通过接近接近的解决方案来帮助推广? 尽管有许多问题仍然需要解答,但是从相位检索和非凸投影方法提供了一些有趣的结果。

    引用

    [Fienup1982] J.R. Fienup,"相位检索算法: 比较"。应用光学 2758 -2769 ( 1982 ) )。

    [Bauschke2002] H.H. Bauschke,P.L. Combettes,和 D.R. Luke"相位检索,错误减少算法和Fienup变体: 从凸优化的观点看。 美国光学学会杂志。 19: 1334-1345 ( 2002 )。

    [Bauschke2003] Bauschke H,Combettes P L 和 Luke D R"相位检索的混合投影反射法"j。 Opt。Soc。20 1025 -34 ( 2003 )。

    [Elser2003] V。Elser。'基于迭代投影的相位'。J。 ( 2003 )。/vol。20.

    [Marchesini2003],Marchesini,H,H。 N。Chapman。hau。riege。 ,R。Howells。 Weierstall和J。C。H。 ,"x 射线图像在衍射 Pattern 中的重建"物理。 Rev。B 68,140101 ( 2003 )。

    [Luke2005] Luke Russel D,"衍射成像的 Slack 平均交替反射"反问题,21,37 -50 ( 2005 )。

    [Thibault2006],Veit Elser,Chris,David,和 David Sayre,'用x 射线衍射数据重建酵母细胞',。 水晶。( 2006 )。

    [Elser2007] V。Elser等。 "使用迭代映射" 104 ( 2 ),418 -423 ( 2007 ) 搜索。

    [Marchesini2007],Marchesini,"一种相位检索迭代投影算法的统一评价",科学仪器 78 ( 2007 ) 回顾。

    [Gravel2008] Gravel,Elser,"and 约束满足的一般方法。 物理检查。( 2008 )。

    [Glorot2010] X Glorot,Y Bengio,"深入了解深前馈神经网络的难点。",Aistats 9,249 -256 ( 2010 )。

    [Thibault2013] thibault& Menzel,"。从衍射测量中重构状态混合物"",494,68 -71 ( 2013 )。

    [Kingma2014] Diederik Kingma,Jimmy Ba,"adam - 随机优化的一种方法"( http://arxiv.org/abs/1412.6980v8 ) ( 2014 )。

    [Clark2014] J。Clark,X,RJ,"利用ptychography动态成像"","物理评论字母 112,113901 ( 2014 )。

    [Clark2015],Clark,Johannes,Anna。 ,Schenk yeoun金,亚历山。 ,,,Nisbet,C。 Meldrum & Ian K。Robinson,自然材质,14,780 -784 ( 2015 )