


以前学英语,知道cnn是美国有线
后来卖牛奶,知道cnn是纯牛奶
再后来,回归了计算机,知道了ncc,相关系数,这个也非常有名,后来也被cnn盖住了风头!
计算机图形学,图像处理,用了很多先人制造的卷积核,比如高斯卷积核啊!lapulas卷积核!但从来没有人说是周文王八卦卷积核,也没人说是练字的九宫格!
后来bpnet出现了新名词-权重,就是这个weight,w1,w2等等之类!
然后就出现了cnn,眼睛往上一翻,看天,想了想,这个卷积核就是高斯,拉普拉斯卷积核吧!
但他们说不是,他们说这个卷积核是通过权重更新,自己生成的,不是先人预设的高斯,拉普拉斯等等卷积核!怎么回事呢?
原来,从第三幅图可以看出来,他这个卷积核真的是,通过梯度,自己更新的卷积核!
当你明白权重就是卷积核的那一瞬间!
世界突然眼前一亮,变成了新世界!
我们以前搞bpnet,权重更新和计算梯度不分开!只是强调,先用权重,后更新权重,不要搞反了!
自从出现了批处理和cnn,他们把权重更新和计算梯度分开了,也不说什么原因,好吧,我就跟着你,先用着!
在这里,我犯了错误!也不算!算是探索!
因为我不清楚cnn原理,我只是想用bpnet探索想象中的cnn,就用上面第三张图!
现在想来,很简单:最后一步彩色的更新,应该如下:
无论你用cnn还是bpnet:
//1,计算w【0】的梯度,第一层,偏差向前传播卷积核->delta卷积动作
//e偏导z1 *zI偏导w[0]
wcnn的偏差[0][0] = delta11*a0[0] + delta12*a0[1] + delta21*a0[3] + delta22*a0[4];//0,1,3,4
wcnn的偏差[0][1] = delta11*a0[1] + delta12*a0[2] + delta21*a0[4] + delta22*a0[5];//1,2,4,5
wcnn的偏差[0][2] = delta11*a0[3] + delta12*a0[4] + delta21*a0[6] + delta22*a0[7];//3,4,6,7
wcnn的偏差[0][3] = delta11*a0[4] + delta12*a0[5] + delta21*a0[7] + delta22*a0[8];//4,5,7,8
//w0,第一层的一个卷积核
for (int i = 0; i < 4; i++)
{
wcnn[0][i] = wcnn[0][i] - 常数a * wcnn的偏差[0][i];
}
但我一直在这上面尝试和犯错:
因为我在bpnet中把权重更新和梯度计算分开了,所以就进入了一种死循环:
当delta11作用a0[0],计算完,就在这种分开思路中很自然的抛弃了,最后,只剩下 delta22*a0[4],so:
wcnn的偏差[0][0] = delta11*a0[0] + delta12*a0[1] + delta21*a0[3] + delta22*a0[4];//0,1,3,4
变成了:
wcnn的偏差[0][0] = delta22*a0[4];
当然,网络仍然能正常运行,当我意识到上面的问题,我权重更新和梯度计算放在一起:也就是for循环中第一次:
wcnn的偏差[0][0] = delta11*a0[0];
wcnn[0][0] = wcnn[0][0] - 常数a * wcnn的偏差[0][0];
for循环中第二次:
wcnn的偏差[0][0] = delta12*a0[1] ;
wcnn[0][0] = wcnn[0][0] - 常数a * wcnn的偏差[0][0];
for循环中第三次:
wcnn的偏差[0][0] =delta21*a0[3] ;
wcnn[0][0] = wcnn[0][0] - 常数a * wcnn的偏差[0][0];
for循环中第四次:
wcnn的偏差[0][0]= delta22*a0[4];
wcnn[0][0] = wcnn[0][0] - 常数a * wcnn的偏差[0][0];
其实,上面四段,仍然是 wcnn[0][0] = wcnn[0][0] - 常数a( delta11*a0[0] + delta12*a0[1] + delta21*a0[3] + delta22*a0[4])
但我并不知道这是对的,甚至我认为,减了这么多次(在32*32的图像中), wcnn[0][0]减没了,出现问题!
so,我取平均值,更新一次!然而,程序仍然跑的哗哗的,都是ok的!
我的评判标准,最后谁得分高?但也没看出什么子丑寅卯!一会这个好,一会那个好!
但我仍然怀疑这里有问题,直到看到cnn的数学原理推导!
实际也是我们复盘后这个最简单的bpnet和cnn所体现出来的问题!
其实有些问题很难懂!
但你必须反复熟练他,有一天,你自然会解开疑问和疙瘩!
有人说过kiss原则,
谈到用简单和笨方法,实际我们悄悄的用过了!但我们并不知道!
当我们化简到极简模式,bpnet与cnn除了第一层不同,剩下两层都一样,那么,很多问题就迎刃而解!而且你还收获了对称之美!
前天分析网络发现的直觉对称之美,
昨天发现有问题,推导之后,还是直觉的对称之美获胜!
很有意思!
就像我们开头看到的,卷积核,不是高斯,lapulas卷积核,最后发现,就是机器自生成的,仍然看到了高斯核和拉普拉斯卷积核!
苏轼有首诗,说看山不是山,最后又回归到,看山还是山!
前人在图像处理中发现卷积核,并使用卷积核,实际在人工智能上,仍然没变!只不过是让机器学会了而已!
有些问题看上去很复杂,你不停的简单化,他就变简单来了!
顺便:我们提出一个疑问:
为什么在光学成像,缩小放大的唯一卷积核是高斯卷积核?
而为什么图像和意识(机器)识别结果之间,缩小放大可以有很多卷积核并存?而且人的智能和机器智能都已经验证了!
当初,他们说人眼成像并识别的物理结构中一定存在高斯卷积核,这是显然的了!
so,扩展一下,人眼识别,除了高斯卷积核,还有其他卷积核,所以,物理和意识,意识更显得量子化!物理更趋于唯一性!