神经到底学习到了什么?

神经网络一直以来都被人看做是一个黑盒,我们很想知道它究竟学到了什么,为什么能达到那么好的效果,接下来我们从一个例子入手:
对于一个函数y=2x,我们对其进行学习,很容易达到很好的效果,甚至我们只需要一个输入和一个输出,一个权重。这个时候计算机学到的就是可优化参数w,这个数会非常接近2,这也是我们希望看到的;但是我们一般的结构中还有一个偏置项,当然加入这个数,不会有很大影响,因为其会被学习的很接近0。
那么对于一个更加复杂的函数神经网络会学到什么?
我们不会用神经网络学习一个已知的函数,这样做只能浪费资源,对于一个未知函数我们像之前的方法做,首先我们不知道什么样的模型最适合它(不幸的是,我们至今也没有能做到这样的方法),所以我们只能用一个很通用的神经网络模型来进行计算,当然这样得到的结果效果也很好,那么我们的神经网络学到了什么呢?
还是之前的例子y=2x,我用很大的网络进行学习,这个时候我们就完全看不懂他学到什么了。但是我们可以通过一些办法来测试,如果我们采用n组数据进行训练,那么当我们使用的网络够大,在这个例子中大于2的n次方个隐藏单元的2层全连接网络将会将所有情况记下来。举个例子,给你十张图片告诉你这些都是蝴蝶,下次你看到很像的都会说是蝴蝶,但是这个情况的神经网络只会记得这十张图片上的东西是蝴蝶,而对于新来的东西,他就会不是很确定,即使在你的眼中他们很像。相关的实验是,科学家做了一个简单的实验,一个卷积分类网络,他们对于其中一个图片加入了随机噪声,肉眼看上去并没有很大变化,但是神经网络就变现了不同分类情况。
那我们选择更多的数据或者更小的模型呢?答案是我们可以得到好一点情况,但是还是不能克服之前实验中的问题,神经网络也是很会“偷懒”的孩子,那我们怎么处理这种情况呢,数据集增强是最好最实用的方法,当然也有对抗训练的模式进行优化,这不是本文的重心,我们不做探讨。
从神经网络的意义上又是什么样的呢?
神经网络的目的是最小化误差,他也会这样去做,但是它也是一个映射器,那么他想的就是把训练数据映射正确就行了,他认识的世界和我们的不同,资源允许,他就很简单的给数据给一个标签,这样也是最简单也是效果最好的模型。他理解我们想法的方式只有我们如何定义,给什么参数,怎样优化,所以在处理问题前必要的分析必要且有用,最后如有错误,还望斧正。

猜你喜欢

转载自blog.csdn.net/poxiaodailaizhe/article/details/82744758
今日推荐