深度学习小结

 

1.深度学习 为何有效:模型复杂度、大量数据、硬件崛起。有效的算法。

2.线性模型:比如是3分类问题。如果图像是2*2的,线性模型能做的是把变成四维矩阵的向量。如果输入的图像跟所对应的类的点成的对象越大,说明越接近。Linear Weights相当于Template.每一类的w就是每一类模板的图像。点乘之后要做一个非线性变换。ReLU是比较简单的非线性,对模型是有帮助的。再加入激活函数中后,之后再进行每一层。

3.卷积神经网络的本质是局部连接,feather只跟图像的局部来做全连接,借鉴图像传统的操作。之后,进行权值共享,大量减少参数的空间。如果每个channel用的w是一样的,如果w都不一样,让参数过多,让做BP的时候不好收敛。所以权值共享能够有效训练,权值连接能够找到有局部信息的事情。

4.框架对输入可以比较细致的分开了,比整个东西看成一个整体要好。mutil instance角度来看卷积的话,从卷积层往下看,每个对应的图像的一个小区域,构成图像。反过来,图像由24*24个instance构成。cvpr的论文中,如果用Mutil instance做计算机视觉,可以看出类型不一样,做视觉和做机器学习出身的不一样。这是它背后的一些历程。

5.神经网络发展历程:40年代:Hebb学习规则;58-69年perceptron;69年,Minsky写了perceptron没有办法把某种数集分开,创立了人工智能实验室,如list语言,他们是符号主义,应该基于逻辑推断,计算机才能求解,还有一些事连接主义,不需要基于逻辑,通过神经网络的连接方式来学出来,不需要人工定义知识的关系,是目前各大研究组在做的一个事情。85年到95年BP算法。95年到10年SVM,基于统计学习的理论推断出来的,NIPS在这十年都发不出文章。到了10年图灵的东西和12年的AlexNet开始了热潮。冷10年热15年,每一次神经网络的兴起,与大规模的工业实现有关。神经网络以最低的代价用到最大的并行设备。其他算法需要很多的理论准备,比神经网络晚一到两拍。

6.以后往哪儿走:DL/etc。会有鲁棒性的要求,如自动驾驶、自动停车,具有高风险性的开放性的环境,在这个环境下的机器学习的算法可以看成一个黑盒,分布与训练集的分布不一样,会有分布迁移,产生变化,样本点的流行不一样,还得要求安全,需要可重用(可以用别人的VGGNet,换上自己的,面向对象之前的简单粗暴的方式。迁移学习比这个范围广。),可演进,可了解(识别的方式可以有鲁棒性的)

7.计算机视觉和机器学习的关系:机器学习方法解决CV问题具有通用性。CNN/LSTM不仅仅可以用来做CV。不需要很多视觉的知识,但是也能做。深度学习又是最少机器学习理论的东西。深度学习的门槛很低。

8.人工智能怎么更牛:1.GPU要上去;2.要有大量的数据,高质量的数据,如ImageNet;3.算法,如CNN,LSTM;4.要有好用的平台,比如tensorflow,theano,在07年做深度学习的人就不是特别多。可以利用keras包来做深度学习的东西,平台起来了,大幅提高的使用率。

9.Hinton:当我们有一个普通的神经网络时,还有一个厉害的神经网络时,比如VGG,把很好的信息怎么传给普通的神经网络。需要这样,对于同样一个训练集Xtrain,用label distribution。一个厉害的网络学出来的distribution比预测的包含很多的信息。比如在MNIST在所有是7的信息拿走,把位置留下(分布),可以预测出那个位置是7。如果要做厉害的迁移学习。label distribution最后进行一个回归的网络,真正做预测的时候对回归做一个max。转成单隐层,比单独用单隐层来训练要好。第二个,dropout,理论依据是集成学习,在做BP的时候随机把神经元关掉,训练剩下的,是一种廉价的方式做成集成,在训练的时候自动集成。dropout可以不仅仅在ann上用。在做xgbone,GBDT的时候也可以采用这个方法,随机的关掉。第三个,是生成时神经网络GAN,是卷积神经网络的发明人说的,给一个训练好的神经网络,算出奇怪的图像,由神经网络说明是个什么图像。具体的,用遗传算法,先生成随机的图像,如给了VGG,把VGG当成判断高概率的判断图像属于哪种图像。如果做了一个小的扰动,会有一个很大的。

10.遗传算法:有很多的种群,有分类函数,选出活不下去的,一某个概率的这段做一个交换,生成新的种群,再选出活不下去的,经过很多代后,就生成了很棒的种群。

11.提出问题比解决问题更重要。

提出的问题:Image caption; Attention; Generating images。 解决方案:总会有的。。。

流行学习:eg:28*28维的图片,764维太高了,其实是一个低维的流行的高维的。

12.我们有什么VS我们想做什么?

CV和NLP是设计一个pipeline,让达成我们的目标。CV提出一个问题,可以强行粗暴的解决它,为了达到某种目的,不择手段。现在神经网络可以优雅的做出来。

对图像和文字学习空间分享。一个图像走进VGG,之后再有一层,回归,中间那一层就是shared space.

Word2vec。图像的嵌入与文本的嵌入的多模态的学习可以,在shared space中可以学出一些东西。输入一个词,输出有look up table。每一次更新的时候拿出来进行训练。能对图像做梯度。迭代的用单隐层的神经网络来做。找到boundingbox,找到四个点就行,做RCNN或者faster-RCNN。做一个回归就行了。之后要调整方向,脑袋的指向是比较随机的,需要进行旋转变换。简单粗暴的当做回归问题回归一下,不需要CV的关键点检测的理论基础。或者在车型识别中,根据想要什么,现在有什么,设计新的算法,可以面对新的场景。神经网络其实就是一个分类和回归,可以接上,可以得到什么。

在Gitub上keras,codnn也需要装的,影响数量级上的东西。parelle studio带了所有的interl的库。要计算程序的瓶颈,精准率容忍多少。把库更新,把模型压一压,模型的参数的压缩,或者用迁移学习的技巧把模型压小,提高速度。

13.补充一些基础知识

(1)卷积和互关联

卷积是函数f 和 经过翻转平移之后的g函数的重合区域,互关联中,g不需要翻转,就是f和g的重合区域。其中g呢也就是过滤函数。卷积操作的优势是具有权值共享和平移不变性,同时还考虑到像素的空间关系。卷积核指的是权重组合的2D数组,过滤器指的是多个卷积核堆叠在一起的3D构架的概念。

(2)1*1卷积

减少维度实现更有效率的计算,对特征进行池化。卷积以后反复应用非线性特征(将线性函数中的非线性激活函数添加进模型)。

(3)卷积的长度和宽度的处理

于卷积核、卷积步长和填充相关,其中填充说的是对边界的填充,在图像处理中的滤波中我们知道一般的像中值滤波、均值滤波都会把边界滤掉。卷积过程中对于边界我们可以设置填充为0,保持空间输出维度和输入维度一致,也可以不填充,这样的话输出就会小于输入。

(4)反卷积

当我们要执行上采样时,比如生成高分辨率图像或将低维度的特征信息映射到高维度空间中。传统上,可以利用插值的方法(如生成亚像素图像)或者手动创建规则来进行上采样。神经网络中则让网络自己学习合适的转换规则。这里面的转换成为转置卷积。为了方便起见,会成为反卷积,但是跟矩阵中的反卷积是不一样的,并不是卷积的逆向操作。在转置卷积中可能会有棋盘格状的伪影的棋盘格效应(由于会有不均匀的重叠,改变步长会改善这一点)。

(5)空洞卷积

用来低成本地增加输出单元的感受野,不需要增加卷积核的大小。系统地聚合多规模上下问信息,不需要损失分辨率。

(6)可分离卷积

比如Sobel中的x方向和y方向,可以把矩阵写成x方向矩阵和y方向矩阵的乘积。空间可分离矩阵要执行的矩阵乘法运算更少,不知道怎么算的,

(7)扁平化卷积,将标准分离器利用过滤器分离拆分。

(8)分组卷积,在AlexNet中为了让网络用有限的记忆在两个GPU上训练

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值