Stanford's CS231n Lecture 5 Convolutional Neural Networks 笔记
CS231n Lecture 5 Convolutional Neural Networks 的笔记 卷积神经网络 CNN 1. 卷积层 Convolutional Neural Layer : 我们以输入是一张32*32*3 的图像作输入为例,全连接的话,输入是一个(1,3072)的向量,然后乘以一个(10,3072)的权重矩阵,最后得到一个(1,10)的向量。然后把最后向量里的元素施加以激活函数。 然而在CNN卷积层里面,我们运算是这样的:拿一个5*5*3的filter w,在输入的图像上移动,每走一步,得到一个数字,这个数字是由图像上的那块5*5*3 和 w 的做dot product然后在加上bias得到的。注意:这里输入图像的厚度是3,那这里filter的厚度保持不变,也是3。最后我们得到的activation map的厚度是1 我们可以对原图进行多次这样的操作然后得到了多层这样的activation map 然后把这6个单层的activation map concat为一组,也就是下图的中间蓝色部分,可以看到它的厚度是6,左边粉色的厚度是3,从第一大块到第二大块,这里用了6个filters(5,5,3)。同理我们通过10个5*5*6的filter,把第二大块,(28,28,6),的这层再做CNN,得到了第三大块也就是(24,24,10) 在最后,不同大块上的东西也就提取到了不同的特征 这个过程之所以叫做*卷积*神经网络,是因为这个和信号处理里的卷积很相似。“如果大家学过信号处理应该能看得出来”小姐姐如是说道 - - 2. 在filter对前一层进行运算时候的细节: 方便起见,我们假设输入是(7,7,1) 然后有一个(3,3,1)的filter。每次移动的stride为2,在最后我们会得到一个3*3的输出(具体的厚度取决于filter的个数) 当输入的边长与filter的边长作差然后除以stride不能整除的时候,我们需要对输入进行padding(补全),不然的话就会漏掉最边角的像素。之于为什么padding的值是零,只是在尝试以后发现这样做没毛病- - 这一段最后的总结 3. CNN中的其他层(非卷积层) 3.