deep learning CNN 几个疑问

          cnn 几个值得考虑的问题:


1  对某一个学习模型的某层,使用多少个卷积核?

                2  使用多大的卷积核(size 5*5,  8*8)?

                3   卷积窗口步长多大?(size of stride) 


        Andrew Ng, " An analysis of single-layer networks in unsupervised feature learning"  讨论了模型参数的选择(白化预处理,卷积数目,卷积步长,卷积核大小)有可能比学习算法本身还重要。


      这些参数有更本质数学的解释吗?


   想法1: 提取图片特征向量 

      从有限元思想过来,首先想到的是建立空间基向量。图片可以由一组基特征的线性组合描述。自然图片很可能是非满秩的,也为了保证模型分类的质量,先建立超空间基向量。比如,对100000 张 512 * 512的图片做特征向量提取。

       512 * 512 的图片最多能提取 512 个 特征向量,这里假设只有100个特征向量; 而使用10,000张这样的图片,首先通过某算法升维到 100000 * 100000 的空间,将得到 100 * 100000 个向量,再对这个向量组做特征分析,可以得到描述该超空间的10000个特征(基)向量。--> 稀疏性

       这样每个图片都可以由这个超空间的基向量描述了。然而,这样并没有挖掘/学习到每张图片中的内容。而且因为这个超空间向量具有全连接性质,也就没办法挖掘每张图片中的局部特征。


               %% 特征向量,做归一化操作之后,好像已经完全失去了局部互信息。对于图像识别来说,已经没有意义了。而学习其实是要保留/强化局部互信息,所以数学上讲,不能做特征向量分解。 

               %% 举个例子,就像研究蛋白质分子的空间结构与之功能,你不能把蛋白质分子打碎成24种特征氨基酸。 这样就失去了氨基酸之间联系的信息,而这是结构/功能产生的原因。类似的例子,研究人体的器官功能,不能把器官拆成一个个细胞研究,这样也失去了互信息。          

                %% 所以图像识别的本质是发掘像素/底层数据之间的互信息。那么,什么数学操作能保留/强化局部互信息呢?--> 卷积。 


     反过来想,假如一张 100000 * 100000 的图片,用 512 * 512 的patch 打碎, 每个patch 可能包含了一些有用的互信息。那么,使用100张这样的 100000 * 100000的图片样本,统统使用 512 * 512 的patch 打碎,大约产生了400, 0000个patch。

              这400, 0000 个patch 很大可能上已经足够包含 “解空间的所有局部空间特征(互信息)”, 即解空间的“基向量”。 ---> 注意,这里的“基向量”不再是线性代数意义上的基,而是描述 图像空间互信息的基。

             

              当然,这400,0000个patch 只是解空间”基向量“的线性组合,而且很大可能有很高的冗余度。


               卷积操作的过程,就是使用一个 512 * 512 的卷积核 去 分别 点乘求和 这些patch。并使用pooling,增强/放大显著的互信息。


              回到最初的三个问题:

LeNet5 模型使用了 6, 16,120个特征卷积(滤波器), 每个卷积 5*5, 识别手写数字。


                         为什么呢?


               


              


              

你可能感兴趣的:(deep learning CNN 几个疑问)