读《神经网络与深度学习》后感

        花了一周断断续续把这个神经网络和深度学习的教程看完,有一些晦涩的地方暂时略过。作者的python代码也暂时没去跑。但整体上大致看了一遍。

        从感知机开始讲起,用感知机计算各种逻辑函数。核心部分还是bp(误差逆传播)算法,特别是bp算法的偏微分计算方面,主要是为了用梯度下降需要算微分(这部分的推导主要利用了微分的链式规则),然后通过迭代的方式让权重和阈值收敛,中间有一章通过可视化交互的方式解释bp算法可以计算连续函数,比较直观,但背后的原因是因为bp算法可以表示连续函数空间的一组基函数(可以计算sin和cos函数,然后任意一个连续函数可以通过傅里叶变换表示成sin和cos的组合,从而能被神经网络计算,这个证明只用到了两层神经网络即可,那么实际计算神经网络为什么需要多层呢?因为用多层可以提取不同抽象层的特征,分解问题也需要分而治之)。选择合适的刺激函数(连续、非负)以及合适的误差函数都是很重要。隐藏层有分convolution层、full-connected层、softmax层等。convolution层对local feature field 做map。bp的隐藏层次数多的时候会导致权重微分的不稳定,层数多之后,越早的层要么太小导致收敛慢,要么太大导致其他问题。bp的参数多了之后就计算量大,卷积层就是缩减参数个数的办法(通过在卷积层共享卷积模板的权重和阈值)。再往后就是递归神经网络,只是简要介绍。2010-2015年之间神经网络取得很多突破进展,google最厉害。最后作者还对AI能否由少数简单的算法实现写了一堆自己的看法,特别是从分子生物学的角度根据人类和大猩猩基因差异的部分所能表示的最大信息量和人脑的神经元之间的连接数量的差距推算基因应该只是包含了那些“少数核心AI算法”的部分,同时也分析了大脑的不同功能区虽然功能各异,但是作者认为他们背后可能都共用一套核心的AI算法。

        bp算法本质上是在做函数的逼近,AI的本质是计算任意连续函数?似乎可以看看可计算理论。

你可能感兴趣的:(读《神经网络与深度学习》后感)