传统机器学习,是数学模型;
深度学习是仿生学,从人自身开始思考,人学习和计算机学习都是通过对比来学习的,数据要有差异学习才有意义,人的大脑会有一个完整的样子(特征,比如猫狗),这种完整的样子,先教给计算机认识(以往经验,先验概率模拟给计算机),也就是训练,然后就拿到特征。
训练过程中,会有正样本(包含目标的)和负样本(不包含目标的),正样本就是为了让神经网络认识目标,负样本就是返利,就是为了加强网络的泛化能力形成对比。
图片的特征信息的多少跟图片大小无关联。 比如一个小图片的猫的图,特征要比一个大图片的猫的耳朵多。
pytorch训练网络时,由于输入的是张量,每一批次图片形状必须要一致,不然无法计算,所以应该把图片设置成大小一致的,
CNN 下采样pooling, 因为特征图大,卷积计算量比较大,用下采样缩放(max pooling丢像素)降低特征图,最后用全连接把cnn的通道进行 数据融合。
网络输出的结果是受网络格式定义的
CNN卷积输入 NCHW 输出 NCHW(批次、channel、高、宽)
全连接输入 NV 输出NV
卷积有分组的概念, 池化和他最大区别是,卷积是相同位置相乘相加,池化是去取最大(最大池化)、或平均数
卷积的计算量(加法计算忽略): 输出特征图的空间大小(H*W) * 卷积核(K*K) * 图片通道数(N) * 输出的特征图数量(M)
标准卷积计算成本和以下因素成正比:
1.特征图空间大小,要注意并不是特征图越小越好,因为特征图小的话,那么卷积的步长要大,容易造成丢失信息特征数据提取不全
2. 卷积核的大小, 卷积核越大感受视野越大,特征图越小,对应的信息越多,特征(像素)融合越强,这样就是早期的网络
卷积核越大越好,但是这样会计算量变大网络变慢。 后期,使用小卷积,卷多次,代替大卷积,卷一次,速度快了,网络深了
对数据提取越抽象
3.输入通道 4.输出通道数量
深度学习,深层网络,即网络层多。。
浅层网络提取信息简单,提取到轮廓信息,深层网络数据越抽象