不变性:输入x发生变换,但是F之后的输出不变 \(F(x)=F [\)transform\((x)]\) 池化:近似不变性,当图像发生微小变化,最大池化的输出不变,还是一个池化范围内的max 等变性:算符和函数间能够互相交换,存在对易性 transform \([F(x)]=F[\) transform \((x)]\) 卷积:平移等变性: 当图像的发生平移变换,卷积后的特征图也发生对应的平移变换 即对x卷积后平移,和对x平移后再卷积,的结果是一样的 参考: 卷积网络的不变性与等变性 卷积神经网…
卷积神经网络的不变性  不变性的实现主要靠两点:大量数据(各种数据):网络结构(pooling)不变性的类型  1)平移不变性  卷积神经网络最初引入局部连接和空间共享,就是为了满足平移不变性.   关于CNN中的平移不变性的来源有多种假设.  一个想法是平移不变性是由于连续卷积层中神经元的感受野尺寸增加.另一个可能性是不变性是由于pooling操作.我们开发了一个简单的工具,即平移灵敏度图,我们用它来可视化和量化各种体系结构的平移不变性.我们得到了令人惊讶的结果,诸如池层数和卷积滤波器大小之类…
原文地址:https://zhuanlan.zhihu.com/p/27642620 如果要提出一个新的神经网络结构,首先就需要引入像循环神经网络中“时间共享”这样的先验知识,降低学习所需要的训练数据需求量. 而卷积神经网络同样也引入了这样的先验知识:“空间共享”.下面就让我们以画面识别作为切入点,看看该先验知识是如何被引入到神经网络中的. 目录 视觉感知 画面识别是什么 识别结果取决于什么 图像表达 画面识别的输入 画面不变形 前馈神经网络做画面识别的不足 卷积神经网络做画面识别 局部连接 空…
前馈神经网络的弊端 前一篇文章介绍过MNIST,是采用的前馈神经网络的结构,这种结构有一个很大的弊端,就是提供的样本必须面面俱到,否则就容易出现预测失败.如下图: 同样是在一个图片中找圆形,如果左边为训练样本,右边为测试样本,如果只训练了左边的情况,右边的一定会预测错误,然而在我们人眼看来,这两个圆形的特征其实是一样的,不过是移动了一个位置而已,但是因为前馈网络结构的原因,导致在做权重分配的时候,把更多的权重分配给了左上角,右下角分配的较少,所以在做最终预测,便会出现较大的误差.所以,我们需要在…
一.卷积 卷积神经网络(Convolutional Neural Networks)是一种在空间上共享参数的神经网络.使用数层卷积,而不是数层的矩阵相乘.在图像的处理过程中,每一张图片都可以看成一张“薄饼”,其中包括了图片的高度.宽度和深度(即颜色,用RGB表示). 在不改变权重的情况下,把这个上方具有k个输出的小神经网络对应的小块滑遍整个图像,可以得到一个宽度.高度不同,而且深度也不同的新图像. 卷积时有很多种填充图像的方法,以下主要介绍两种,一种是相同填充,一种是有效填充. 如图中紫色方框所…
看下面一段代码 Number num = new Integer(1); ArrayList<Number> list = new ArrayList<Integer>(); //type mismatch List<? extends Number> list = new ArrayList<Number>(); list.add(new Integer(1)); //error list.add(new Float(1.2f)); //error 有人会…
看下面一段代码 Number num = new Integer(1); ArrayList<Number> list = new ArrayList<Integer>(); //type mismatch List<? extends Number> list = new ArrayList<Number>(); list.add(new Integer(1)); //error list.add(new Float(1.2f)); //error 有人会…
一. 引子 一般的类和方法.仅仅能使用详细类型:要么是基本类型.要么是自己定义类型.假设要编写能够应用于多种类型的代码,这样的刻板的限制对代码的束缚就会非常大. 多态算是一种泛化机制,但对代码的约束还是太强(要么继承父类.要么实现接口). 有很多原因促成了泛型的出现.而最引人注目的一个原因,就是为了创造容器类. (泛型的主要目的之中的一个就是用来指定容器要持有什么类型的对象,而且由编译器来保证类型的正确性) 比如,在 Java 实现加入泛型前.ArrayList 仅仅维护一个 Object 类型…
package javase; import java.util.ArrayList; import java.util.List; class Animal{ } class Cat extends Animal{ } public class CatIsAnimal { public static void main(String[] args){ Animal am = new Cat(); ArrayList<Cat> aam = new ArrayList<Cat>();…
结论先行: PECS总结: 要从泛型类取数据时,用extends: 协变 要往泛型类写数据时,用super: 逆变 既要取又要写,就不用通配符(即extends与super都不用) 不变 List<?>是一个泛型,在没有赋值之前,表示它可以接受任何类型的集合赋值,赋值之后就不能往里面添加元素了. List<?>称为通配符集合.它可以接受任何类型的集合引用赋值,不能添加任何元素,但可以remove或clear,并非immutable集合.List<?>一般作为参数来接收外…