蠡测深度学习

来源:互联网 发布:钥匙扣定做厂家淘宝 编辑:程序博客网 时间:2024/05/16 07:28

这是一个小白学习深度学习途中的心得,应该会有很多的错误,不过没关系,路长着呢!


首先从神经元开始,下图是我在网上扒的,来源见水印。

突触接受信息在细胞体内整合,于是人们想出了下面的模型

这个图是我画的,所以不用担心版权问题。下面我来解释一下x1,x2,x3...是实际问题的参数,a1,a2,a3是参数的权重X=x1*a1+x2*a2+x3*a3...。g(x)会对x进行约束这样就基本实现了对神经元的模仿。当然,a1,a2,a3不是由我们添加的,是通过学习得来的。在学习时,给定学习数据,a设置适当初始值,获取计算值与实际值的误差E,再由a-a*E*q(学习系数)。这样就实现了不断地学习。我们可以设想一下,如果a1是影响很大的一个系数,若是它设置小了,必定会使计算值变小,那么a1会有更多的次数被增加。这样不断逼近准确值。而出现误差有可能是由不同的输入不准确引起的,a的绝对值大的,承担的责任要多一些。学习系数q是人工设置的一个变量,如果太小的话,训练数据可能无法支持你走到准确的结果,如果太大的话,训练结果会在准确结果附近徘徊。我维基了下 反向传播算法(BP算法),好像就是这个意思。



然而这个算法由于有很大的局限性,开始并不被人看好。举个例子,它无法学习 异或(两个输入相同时输出0,否则输出1)单独的神经元在学习过(00=0 ,01=1,10=0)之后不可能得到(11=0)这个结果的。

以二维的为例,我们可以看到以一个神经元学习的话,最终会在二维形成一条线,这条线会区分是否符合需求。而 异或
如下图,不可能找到一条线把它区分开。



然而两条线就可以了。如图


这样的话我们就需要多个神经元,多个神经元需要统一的输出,而不同的神经元权重不应该形同。就像图像识别,有厚轮胎的可能是汽车可能是摩托车,有把手的可能是自行车可能是摩托车,有表盘的可能是水表可能是摩托车,然而他们都输出为一时,多半就是摩托车了,而他们的权重又需要新的训练。




这不就是神经网络了?这个输入只是二维的,如果输入变成上万维呢?或许就可以识别图片了。取图像对比度在某个值以上的部分,识别出边角,取相邻边角,识别图形,取图形组合,识别出是人类,还是摩托车。当然,那就涉及到卷积神经网络了。

最后附上一个彩蛋:



原创粉丝点击