这一篇主要打算直观地说一下神经网络是什么,然后简单地介绍一个算法中的核心结构——层(Layer)。虽然扯上一些生物科学神经科学什么的可能会高大上一点,不过想了想还是算了……咳。那么说到神经网络想到的是什么?大概是神经元和连接神经元的那些东西但是在我们要实现的神经网络中,结构是相当不自由的。需要注意的是:
神经网络是由层状结构堆叠而成的!!!
所谓的层状结构,就是一层东西(废话)。它会把上一层东西的输出当成输入,经过一番内部处理后,把输出传给下一层。我来画图说明一下:
咳。师从灵魂门,不服不打。打不过。然后当我们实现好了这个层之后,就需要一个框架把这些层给“包装”起来。最终的目的是:
让这些层只关心输入和输出
让框架把剩下的事情都处理好
这样的话可扩展性就会比较强。我来大概画一下整个框架是怎么工作的:
讲到这里,相信细心的观众老爷们也发现了:每一层似乎除了上图红字 Duang 的那一部分,其它部分都差不多的样子!这里就可以运用面向对象的技巧了。具体的 Python 原理层面请参见 Python 系列的文章,这里大概说一说思路:
定义一个爸爸(……)。爸爸把层的所有东西都弄好,唯独留一个 Duang 的部分让他儿子(或女儿,以后统称孩儿 ( σ'ω')σ)自己 Duang 去
孩儿继承爸爸所有东西,同时自己弄一个 Duang 的方法
实际干活时,让爸爸专心生孩儿(……),让孩儿干活
差不多就这样 ( σ'ω')σ
当然这里面的细节相当、相当多,让我们从下一篇开始慢慢讲吧!