“深度学习”能非常智能的本质原理是什么

发布时间 2024-01-03 17:09:18作者: rain4414

 在开始学习”AI深度学习之前,我们要先搞明白AI深度学习能非常智能的本质原因是什么,只有搞懂了本质,才能作为你学习与掌握 AI深度学习”的基石,为后续的学习打下坚实的基础。所以搞懂今天这边文章非常的重要,我接下来将用一个例子,来说明”AI深度学习”,能使我们的计算机程序非常智能的本质原因是什么。

 

从人认识事物引发的思考

 

   给你一张图片(如图),图片里面有一只可爱的猫咪, 有鼻子,眼睛,嘴巴,胡须, 两个耳朵。问你的大脑:“大脑大佬, 为什么你会觉得这个图片它是一只猫,而不是一只狗?”(大脑在此停顿思考30秒钟)

 

你可能替你大脑给出的回答就是: 你看,它有两只耳朵,两只眼睛, 一个鼻子,一个嘴巴,还有它有一个长长的猫须,所以它是一只猫。”(完美吧,哈哈!)

那请你再看下面这个图,问你的大脑: 大脑大佬,为什么你连它的眼睛都看不全,鼻子都看不全,胡须看不到, 你会认为它是一只猫呢?” (大脑再次在此停顿思考30秒钟)

 

大脑回答:好吧,我不装了,我承认我也不知道为什么认为它是猫,从前我看到一个动物,它反射光线到我的眼睛里,传递到视网膜,再到大脑,父母就告诉我这个叫做猫,后面我只要接收到类似的光线刺激,大脑就会产生是猫的答案。我知道猫有猫的特征,但这种特征你要我具体描述出来,我也描述不出来。

 

由上面的例子,我们可以做如下推论:

 

 1:在我们看到的视觉颜色空间,我们没有办法直接”从颜色,形状等空间与维度” 提炼出来具体的特征来识别”各种情况下的猫”。而是经过了N种我们自己都不知道的神经刺激反射,提炼出猫的神经特征,这个特征是什么我们描述不出来它的具体意义, 但它真的客观存在。

 

 

 

  2:凡是在空间中,我们人无法通过语言规则提炼出来的特征,计算机处理起来就非常的有难度,而我们人类大脑处理起来觉得自然而然,理所应当。

 

 

 

  3:面对”大脑觉得理所当然”的智能问题,我们不能用传统的搜索匹配特征的方式去解决,要重新开辟一条新的路径,这个就是神经网络与深度学习

 

 

 

神经网络与深度学习处理问题的本质原理

 

 

 

  从上面人脑看图片中的动物,得到是猫”的事情,我们得到了一个启发: 在某个空间的数据(图片数据),我们无法明确的表达出来它的特征,经过大脑神经系统的若干处理,得到一个我们无法描述的但是客观存在的”特征”,用这个特征来作为对猫的认知与匹配。这里的经过若干大脑神经的处理,我们可以理解为经过若干空间变换。一个事务,在空间A中可能特征没有规律,但是经过若干空间变换来到某个空间B, 使得它具备了某些特征,使用这个特征,我们就可以根据这个特征来预测出结果。而这个特征,我们无法描述它的具体意义(人脑认为的理所当然,说不出理由)。我们假定要处理的智能事务P,客观存在这样一个变化: 使得“A经过若干变换到空间B,事务P能在空间B中提炼出明显的特征(函数方程式,不用去管这个特征的物理意义,当作理所当然),根据这个特征(函数方程式), 我们可以预测出事务P处理后的结果。

 

   从上面的启发,我们可以将计算机处理”智能问题”,分成以下几个步骤:

 

   Step1: 搭建若干空间变换的处理层, 即”神经网络”。 我们拿最简单的全连接神经网络来距离,就是每一层变化都通过一个矩阵, 比如事务P在空间A上的数据*矩阵1*矩阵2…*矩阵N,最后变换到空间B上, 而在空间B上存在一个函数f(x),可以预测出结果。

 

   

 

   Step2: 当空间变换搭建完成以后, 空间变化的具体参数我们还不得而知,所以需要训练出我们空间变换的参数。一旦空间变换的参数确定下来了,那么我们的变换方式就正式确定了,预测的时候,只要把输入数据丢到神经网络中处理变换,就能得到最后的结果。如何训练和解出我们的空间变换的参数呢?其实就像我们接方程求系数,输入大量的训练数据,原数据A1, 准确的结果R1, 原数据A2, 准确的结果R2, 根据这些训练的数据,反向计算出来变换的参数这个叫做神经网络的训练, 训练结束后,参数也就确定下来。

 

 

 

   Step3: 参数确定下来以后,我们就可以用确定下来的”空间变换”来预测出新问题的结果。 

 

  

 

总结以下神经网络解决问题的思路:

 

假定存在一个空间变换(复杂的神经网络),使得输入数据在最终的空间中有某个无法描述但客观存在的数学特征, 通过大量的训练数据,输入数据与结果,反解出空间变换的参数(比如变换矩阵中的参数),确定这个空间变换(确定神经网络的参数),解决新问题的时候,把输入数据丢到这个神经网络中进行计算,得到一个输出结果。处理哪种类型的智能问题,用哪种类型的网络结构,是开发者需要去研究的,图像识别用卷积神经网络结构,自然语言处理用循环神经网络结构,分类问题可以用全连接神经经网络结构。

 

最后的数学特征,我们不要去纠结它的明确象征意义,就像大脑认为是猫的神经特征,把它当作理所当然就可以了。

 

 

 

 

 

神经网络如何处理图片中的动物识别

 

 

 

  根据上面的分析,结合上面我们猫的识别问题,我们一起来分析一下基于神经网络的算法思路是如何处理图片中的动物识别的。

 

  

 

   假设我们要识别出来各种动物,猫,狗,牛,羊等,这里我们把结果做一个集合,假设有n种, 那么每个动物,就可以描述为维度为n的向量。当动物属于某个维度的时候,表达值为1, 其余的维度自然是0, 假设我们把第0个维度,表示为猫,第二个维度表示为狗, 那么猫的向量为: (1, 0, 0, …0), 狗的向量为(0, 1, 0, …0),依次类推。

 

 

 

   我们要从图片种识别动物,首先我们把动画的图片,统一到一个分辨率下,比如32x32,这样我们就得到了一个1024(32*32=1024)维度的颜色数据的向量, (颜色1, 颜色2, ….颜色n)。

 

 

 

   接下来我们就是要构建一个空间变换网络,假设我们要识别的动物有6个, 构建神经网络将一个1x1024的向量,输出成1x6的向量。这里我们选择一个全连接的神经网络(即用基于矩阵的线性变化,图像识别最好结合卷积神经网络,效果更好)。假设我们用3个矩阵变换(3层神经网络): A1024x512 B512x256 C256x6

 

输入向量(1x1024) * 矩阵A*矩阵B*矩阵C = 输出向量(1x6)

 

 

 

   接下来开始数据训练,通过数据训练来反解出矩阵A, B,C 里面的每个参数,达到最佳效果。我们准备6万张32x32的猫的图片数据,结果为6万个猫的向量(1, 0, 0, …0),6万个张32x32的狗的图片数据,结果为6万个狗的向量,其它动物依此类推。通过大量的数据训练,提取出来数学特征,解出网络的模型参数。

 

 

 

  接下来我们就可以用我们训练好的神经网络+参数来识别新的图片了。假设吃入一张32x32像素的图片,带入到矩阵种得到的结果为: [0.99, 0.0001, 0, 0, …0], 我们根据计算结果,找一个与结果最近的答案,预测图片为猫[1, 0, 0, 0, …0]。

 

 

 

今天的分享就到这里了,总结以下使用神经网络来解决问题就是一个纯数学问题,不要去过分的思考它的特征,这里的特征全部通过数学手段来提炼一些”不可描述”的特征,从而使用这个不可描述的特征来预测与解决问题。