欢迎光临散文网 会员登陆 & 注册

cs231n第8课

2023-11-13 17:06 作者:请原谅我o  | 我要投稿

提前了一节课,先讲讲cnn除了图片识别还能干什么,因为很多学生看起来对此很感兴趣


分类

分类+locolization(as regression 回归 4个值:x,y,w,h 的 box 方框)


框一个猫、框不同类用不同的4个FC值、框每一类一个框

加框就是随便加到FC前面,还是FC后面什么的,都会工作。拉一条FC用来分类,拉一条FC用来localization。每一条大概是3层FC。



点每一类一个点:姿态估计网络(google,主要用CNN,加了一些花哨)也许这可以做jz侧wan

姿态估计

overfeat用了一种升级的locolization:

通过不同看一张图片的很多很多个‘角落/或部分’,得到很多个分类结果和boxing方框,然后把他们合并在一起,得到的精度变高一些,赢得了那一年(2013)的imageNet的localization比赛

overfeat用了扩大一点点内存,参数共享,节约资源的方式实现这一点(看很多个图片部分)
ResNet网络更深,也用了overfeat以外的localization技术。不知哪一点导致localization性能增加

训练网络的时候,把vggNet,AlexNet之类的预训练的网络拿过来;然后修改两个head;然后反向传播整个网络,而不是只反向传播两个head。全部反向传播准确率会高一点(说的是1~2%,不过我感觉应该更多)

为什么最后一层特征层可以表征位置信息?是网络的哪一步运算导致了这个能力?我只推理过抽象能力,没推理过定位能力。所以怎么办?我的网络不能只有抽象,不能定位,那样会很糟糕。

也有人训练两个网络,一个分类一个定位。这样也能用

我想到了。衡量位置,就是卷积核比较当前和周围的长短/大小范围。有一个神经元编码这样的信息,感兴趣物体,和周围的空白/对比物,空白占比大或小,搜索方向x或y(或者一圈),占比大或小。有了,这就是1x8的卷积核。不过编码的信息,机制有可能不是点乘,点乘可能也能实现但是要多花几层才能实现?25*25*2,25是大概位置,2是一层目标物,一层背景,卷积核1*25*2,可以看到“目标”距离下一个“障碍”中间隔着的“背景”和“目标”本身相比的比例是多少,这就是物体周围的“空间感/开阔感”,即“距离信息”的神经元波动。

FC层前的最后一层Conv,比如25*25*4096,其中4096应该是有部分表达抽象(分类,物体或物体的部分),有部分表达物体和背景之间的距离(而且精度比较高,用小数来精确的编码距离信息,所以能做到十来个像素级别的定位)

为了编码位置信息。可以。这个。把网络架构conv,改成更合适的,比如水平连结,来做到更高效精确编码位置信息的结构。研究一下怎么连结最能高效编码这些信息即可。

object detection 目标检测

因为一张图上出现(可变的数量个)同类目标,所以网络输出不能是固定的几个regress box,而是可变的。解决方法:用不同大小和位置和宽高比,扫描整张图做多次classification 分类。

是猫?是狗?是都不是?最后把所有是猫的框出来,是狗的框出来,都不是的就什么也不框。

问题就是这样花费很多运行时间,解决办法就是运行够快就可以

在深度学习出现之前,是HOG+Linear Classifier(2005)

以及之后几年在它之上扩展的 Deformable Parts Model ,加了 对象模板、evaluate提升速度的算法(2010)


然后用在cnn上,有种算法是 selective region? 什么region proposal,找到区域

r-cnn,是这个region算法和cnn的结合,先找出2000个左右(已经算少了)可能的区域,然后缩放到网络尺寸。

第二个问题看不懂什么意思

fast r-cnn   共享参数,像上面一样,用一个网络,但是还有r导致cpu瓶颈,推理速度变慢

faster r-cnn   把r变成卷积层,速度变快

                    他是建立在最后一层conv feature map层上的,然后3x3卷积核(还有anchor什么的,改变长宽比,具体咋改没听懂)就提取出了位置信息,这说明昨天的假设和理解是对的,神经元以小数级别编码了位置信息,位置信息流和特征信息流是并行在网络架构中的,而且它们并没有分开来,我们也看不出哪个是哪个。如果认真剖析也许能看出一点点

灵感

用一个卷积特征图来做所有事情。这是训练的(用网络框架,拿反向传播,强行拟合中间所有值为尾部输出层最佳),那怎么能让他学到更好的东西,比如,建立更多概念抽象,以及能够表达概念,和别人沟通这个概念的符号(图像 文字或声音)?能想到一个东西就是时间的连续性的认知,就是视觉动态时间性的认知,识别物体运动的那些神经元,这些神经元怎么编码的?--转念一想,也许只有时间连续性的概念才需要这个功能,这个还未知一定是认识世界不可或缺的因素(时间连续运动),但好像又是。应该是的,不然这个世界的很多重要基本概念认知,都是建立不了的。比如物体的恒一性,位置移动连续性,3维坐标近大远小3D转身3D建模,…物体之间的关系…都是孤立的(时间上不连续)的信息(如照片数据集,是不同时间不同地点的照片,而不是一段视频)。这样它建立不了 物体的同一性,3d建模认知没有,只会有‘相似度/激活程度’的认知能力,所以只能做(近似/激活)识别,或者(近似/激活)生成。比如图像识别,chatgpt。图像识别人脸是比较好,近似好像也不会出问题。但是语义分割却比较近似,而且没有同一性,没有做分类,没有记忆功能(工业零件缺陷识别)。chatgpt只能输出激活值较高的答案,网络结构可以容纳一定相关联的特征,但是逻辑这种非关联而是因果链的固定规律却没有办法很好的让网络学习到(在反向传播这种近似/激活学习方法上,没法让网络学到)。

神经网络的结构怎么编码逻辑?怎么训练逻辑?怎么推理逻辑漏洞?

----

灵感:

概念是多次被不同形式的内容共同激活的时候,潜意识所积累的,总是会被激活的高层抽象激活部分,就是抽象概念部分,比如别人写的7,老师写的7,木棍摆的7,条纹组成的7,一横一竖组成的7,一横一斜组成的7,共同激活了某个高层抽象部分,横和竖,还有横竖组合的角落,还有横短竖长(横周围的竖的xy占比大小比例);

然后说‘7’的字的规则的时候:“这一横(激活高层抽象:横)和这一竖(激活高层抽象)构成了‘7’”,然后大脑内:“激活横”“激活竖”“激活横和竖联结的地方”→就“是”→“7”

这个“是”,就是一种,还不太清楚是什么,但应该是一种逻辑/推理/产生式/链式推理/链式思维的神经元联结作用。这个“是”,是7的2个笔画激活后被激活的,主动产生的一种大脑内的规则表达方式方法。

xx“是”xx。也许,这就是从感官(高层抽象)到概念(词语?定义?符号?)的过程桥梁?

YOLO

把object detection当成regression。每个图片分成7*7网格,每个网格有box和置信度,以及分类类别。剩下的就是丢到cnn,出来一个 我也不清楚是什么后面发生的事情

YOLO很快(2016),但是没有faster r-cnn准(2016).不过据评论说,现在yolo是天下了。


cs231n第8课的评论 (共 条)

分享到微博请遵守国家法律