神经网络可视化,真的很像神经元!

不知道大家有没有这种感觉?在接触AI时,老感觉神经网络就像个黑盒子,摸不着,看不透,贼神秘了。
其实,神经网络就是对人脑运作模式的智能模拟。和人脑一样,神经网络模型的强大能力,是基于成千上万个神经元的相互作用。以卷积神经网络(CNN)为例,其结构就分为很多层,层与层之间通过线来连接。训练的过程,就是将所有的线设置成合适的值的过程。
为了直观展示,今天就通过可视化带大家看看AI训练时都长啥样。(前方多图预警!
首先,AI模型训练前长这样:
图片
训练中,依次经过卷积-激活、卷积-激活-池化、卷积-激活、卷积-激活-池化……这个过程大概长这样:
图片
图片
图片
最后,训练完成后长这样,一种张扬肆意的凌乱美有没有:
图片
可以看到,经过训练后的模型之所以长得不再“均匀规整”,是因为被赋予了权值不一的特征。虽然训练花了不少时间,但360度观摩神经网络的训练后,让人觉得再漫长的等待都是值得的。
看完上面炫酷的3D展示,接下来我们再通过AI模型全局结构图,一步步拆解训练过程,试着把CNN每一层的操作和变化都展示出来。
首先是卷积层,这一步主要是为了提取特征。因为AI在识别图片时,并非一下子整张图整体识别,而是先对图中的每一个特征进行局部感知。
图片
图:卷积层
然后,到了激活层,这个步骤是对上面提取的特征做一次非线性映射。
图片
图:激活层
接着,来到池化层,用白话来讲就是去除冗余信息,保留关键信息。毕竟一张图像通常包含了大量杂余信息,如果把整张图的所有特征都学习下来,那可不把AI累死。
图片
图:池化层
就这样,以上操作重复N次,就形成了一个深层神经网络,完成自动化的有效特征提取:
图片
最后,来到全连接层,通过对所有得到的特征加权,计算输出预测结果,大功告成。
图片
10
以上,就是一整套AI训练时的正常画风。那么,如果我们给AI悄摸摸喂点对抗样本,训练过程又是什么画风呢?
所谓对抗样本,是指对原始图片添加细微干扰形成输入样本,让人眼看来无明显变化,却能导致AI模型的预测结果走偏、出错。
这里,举个小熊猫图片被加入噪声的例子:
图片
11
首先看看原始的小熊猫图片在神经网络中的一个特征分布情况:
图片
12
再看看小熊猫图片被加入对抗样本后的特征分布情况:
图片
13
可以清楚看到,两者的预测结果截然不同(小熊猫vs车子),但两者在训练过程中的不同之处大家有发现吗?
乍看之下,两者的特征权值分布非常相似,但仔细观察就会发现一些略微不同。这里我们给池化层的第三个filter来个特写镜头,大家来找找茬
图片
14
如上,从这些细微差异中,可以窥见AI的预测逐渐“走偏”的蛛丝马迹。
这就如同蝴蝶效应,最开始的一点点细微干扰,在经过训练过程中重复多次的卷积、激活、池化后,越走越歪,最终输出的结果和原始结果千差万别。
也许,这就是神经网络的奥秘所在吧。欢迎感兴趣的同学与我们交流探讨!