The recent progress on capsule networks by Hinton et al. has generated considerable excitement in the machine learning community. The idea behind a capsule is inspired by a cortical minicolumn in the brain, whereby a vertically organised group of around 100 neurons receive common inputs, have common outputs, are interconnected, and may well constitute a fundamental computation unit of the cerebral cortex. However, Hinton's paper on "Matrix Capsule with EM Routing'" was unfortunately not accompanied by a release of source code, which left interested researchers attempting to implement the architecture and reproduce the benchmarks on their own. This has certainly slowed the progress of research building on this work. While writing our own implementation, we noticed several common mistakes in other open source implementations that we came across. In this paper we share some of these learnings, specifically focusing on three implementation pitfalls and how to avoid them: (1) parent capsules with only one child; (2) normalising the amount of data assigned to parent capsules; (3) parent capsules at different positions compete for child capsules. While our implementation is a considerable improvement over currently available implementations, it still falls slightly short of the performance reported by Hinton et al. (2018). The source code for this implementation is available on GitHub at the following URL: https://github.com/IBM/matrix-capsules-with-em-routing.
翻译:Hinton等人最近在胶囊网络上的进展在机器学习界引起了相当的兴奋。 胶囊背后的想法是由大脑内一个皮质微柱激发的, 由大约100个神经元组成的垂直组织组获得共同投入, 具有共同产出, 相互连接, 很可能构成大脑皮层的基本计算单位。 但是, Hinton关于“ 带EM Routing 的Matrix Capsule” 的论文不幸没有发布源码, 让有兴趣的研究人员自行尝试执行架构并复制基准。 这肯定减缓了这项工作的研究建设的进展。 在撰写我们自己的实施过程中,我们注意到了其他开放源执行中的一些常见错误。 在本文中,我们分享了一些这些学习, 具体侧重于三个执行陷阱, 以及如何避免它们:(1) 仅有一个孩子的家长胶囊;(2) 将分配给父母胶囊的数据数量正常化;(3) 不同位置的家长胶囊竞争儿童胶囊。 尽管我们的实施大大改进了目前在执行过程中的进展。 (20/Hmat) 在本文中, IMB/ URLA 略的运行中略短的版本。