您的位置:首页 > 其它

deep learning CNN 几个疑问

2016-04-20 08:59 204 查看
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, 识别手写数字。

为什么呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: