学习深度学习很长一段时间了,平时项目中也使用过caffe,tensorflow等深度学习框架,但一直没有真正动手实现过。虽然平时项目不建议自己重复造轮子,但作为时下这么火的深度学习,与它强大无比的功能相比,它的基本原理却是这么简洁,优雅,实现起来也不算多么复杂。通过简单实现神经网络,对深刻理解前向传递和反向传递都大有裨益,同时还能锻炼自己的代码实践能力,何乐而不为呢?我之前看过一篇博文,按照原作者的思路,我用python简单实现了一个toy级别的全连接神经网络,并成功测试了经典的mnist(手写数据集),下面上代码。
激活层函数的定义
首先是激活层函数的定义, 先了解下激活函数的概念。
Sigmoid函数
Sigmoid函数曾被广泛地应用,但由于其自身的一些缺陷,现在很少被使用了。Sigmoid函数被定义为:
f(x)=11+e−