我们现在的深度学习,都是基于一个最重要的学习算法:反向传播,也就是求误差函数关于参数偏导,以此来更新权重。但是反向传播有个最大的弱点:它没有生物基础,我们在人脑里找不到任何反向传播的痕迹。神经网络是根据人脑的结构启发而发明的算法,但是并不是完全地模拟人脑。当然,反向传播虽然没有生物基础,但不见得就是错误的方向,因为现在可以看到,基于反向传播的算法,在很多方面已经超过了人脑。只不过,这可能不是通向更通用的人工智能的方向。那我们就没有模拟人脑神经元的算法吗?其实是有的,叫做脉冲神经网络(spiking neural network,简称 SNN),被称为反向传播和深度学习之后的第三代神经网络。
这是我个人设计的一套基于python+pytorch的SNN架构,展示的是测试结果。代码量在500行以上。