DeepMind新型神经网络:可异步训练的深度网络!— “解耦神经网络” 与 “合成梯度”

如果深度学习不是神经网络的终点, 那么神经网络会跟随人类进化多久? — David 9

自3年前Google收购DeepMind,这家来自英国伦敦的人工智能公司就一直站在神经网络与深度学习创新的风口浪尖(AlphaGoDeepMind Health)。

今天要介绍的“解耦神经网络接口”(Decoupled Neural Interfaces)的异步网络就是出自DeepMind之手。这篇2016发表的论文试图打破传统的前向传播和后向传播按部就班的训练过程。在传统神经网络, 整个过程是非异步的更新,更新也是逐层紧耦合的(图b):

截自:https://arxiv.org/pdf/1608.05343.pdf
截自论文“Decoupled Neural Interfaces using Synthetic Gradients“:https://arxiv.org/pdf/1608.05343.pdf

图(b)是传统普通前馈反馈神经网络(黑色是前馈箭头绿色是反馈箭头),f层到fi+1 层的权重矩阵由fi+1层的偏导反馈δ更新, 众所周知,反馈δi 必须等到后向反馈从输出层传递到fi+1 层后才能计算出。

为了试图解除这种“锁”(强耦合)(图(c)(d)),在(c)图中我们注意到在f层和fi+1 层之间,引入了模型Mi+1(图中菱形),又称人工“合成梯度”模型,用来模拟当前需要的梯度反馈更新。 继续阅读DeepMind新型神经网络:可异步训练的深度网络!— “解耦神经网络” 与 “合成梯度”

keras 手把手入门#1-MNIST手写数字识别 深度学习实战闪电入门

人们已经教会计算机自动找出那些重要的特征和属性, 那么下一步我们该教会计算机什么? — David 9

用深度学习框架跑过实际问题的朋友一定有这样的感觉: 太神奇了, 它竟然能自己学习重要的特征 ! 下一步我们改教会计算机什么?莫非是教会他们寻找新的未知特征

对于卷积神经网络cnn, 其中每个卷积核就是一个cnn习得的特征, 详见David 9之前的关于cnn博客

今天我们的主角是keras,其简洁性和易用性简直出乎David 9我的预期。大家都知道keras是在TensorFlow上又包装了一层,向简洁易用的深度学习又迈出了坚实的一步。

所以,今天就来带大家写keras中的Hello World , 做一个手写数字识别的cnn。回顾cnn架构:

我们要处理的是这样的灰度像素图: 继续阅读keras 手把手入门#1-MNIST手写数字识别 深度学习实战闪电入门

10个超实用的python可视化库,总有一款适合你~

再好的数据,也离不开可视化 — David 9

最近David 9翻看以前收藏,发现一篇关于python可视化库的文章,现在忍不住想分享给大家。以下是改编和翻译:

从专注研究眼睛移动的GazeParser项目到可视化神经网络实时训练的pastalog项目,优秀的python可视化的项目非常多,是时候我们总结一下10个超实用的python可视化库,相信总有一款适合你~ 而且,这些库可以在jupyter python notebook中直接运行显示。

matplotlib

上图是两个柱状图 (matplotlib)

matplotlib 是经典老牌的Python数据可视化库了。在Python社区里几乎无人不知。而且它模仿了1980年代的MATLAB可视化库。

又因为matplotlib是第一个Python数据可视化库,许多优秀的可视化库是基于matplotlib的,比如 pandas 和 Seaborn继续阅读10个超实用的python可视化库,总有一款适合你~