登陆注册
19712100000103

第103章 卷积神经网络与视觉识别-斯坦福CS231n课程笔记

计算机视觉的深度学习和神经网络算法,模拟大脑的架构,从而能够最后解释真实大脑的工作机制,即神经认知。将复杂的难以理解的数据整理抽象为我们可以理解的信息,如视觉的图像视频信息需要整理。而神经网络的框架,能够解决识别问题

信息的存储格式,像素。以矩阵的格式来存储。我们接下来需要处理指数级爆炸的视觉信息。因此我们需要理解,就需要不断抽象,如标记/分类/索引等等,这实际上也是我们理解这些信息的机制。我们就是通过不断的升维来实现各种复杂的功能。

以进化的观点来理解感觉的形成和进化。视觉的出现可能就是寒武纪生物大爆炸出现的一个原因,因为生物能够提取关于世界更多的信息,从而能够解释多样性的形成。以最简单的眼睛的出现为起点,由于生存的压力,基因的漂移,使得大多数生物都拥有这种新奇的结构。并且在这个基础上展开军备竞赛般的进化,在这个基础上打补丁式地修修补补,一直进化到现在生物的各种眼睛。比如说视觉皮层与眼睛有相当的距离。

基础视觉皮层(后脑勺primary visual cortex)能够处理大量的视觉信息,是视觉处理流程的第一步。图片的内容没有激活神经元,而更换图片的动作能够引起注意(hubel,wiesel等等),因为皮层对这种边缘效应敏感,不同的神经元组合对不同的组合敏感,即我们的神经元只是对特征敏感。因此第一步是对特征的提取如形状,边缘,排列等等。其能够引起特定组织结构的神经元激活,通过这些特征的组合,我们能够理解更加高维的结果,如从图片识别出人脸(边缘决定结构,如同牛顿-莱布尼茨公式,从底层升维到高维。然后就是线性代数的思路:世界可以分解为线性无关的基底,然后其他的事物都是其选择性组合;这是从顶到底的思路)。因此深度学习就是利用多层神经网络构建的复杂映射来识别复杂的输入。

然后视觉应该是分层的,第一层是边缘层次……最后能够升维到足够高维的空间,从而适用于各种情况。这启发我们的学习过程就是构建新的层次,如同神经网络的隐藏层(特征features学习),这是建模的思路。

视图分割和分组(如人脸识别)是理解图片的第一步,识别是更加高维的层次,如可以通过识别特征来推断整体,如看到老虎的花纹就可以推断老虎的出现。这种模式的学习能够指导更多低维情境下的识别。

物体识别需要同一套评价体系来比较不同算法的性能优劣。如PASCAL。接下来就是李飞飞的imagenet数据集。运行训练卷积神经网络算法CNN,本质上就是提出一个函数,能够以一定的准确率来进行良好的分类,然后通过参数的调整来构造出来(如同级数展开,对特征的线性组合,层数越多越精确)。这需要大规模数据的训练和GPU等等硬件的发展。

图像分类,物体检测,即在分类的基础上进一步地理解图片,如以人类能够理解的语言来描述。而更深层次的理解,需要结合我们已有的理解进行选择性组合。当然,需要与人类这个超有机体的思想进行比较,因为个体总是有一定的局限性。我们认为所谓的分类就是找到一定的高维模式,从而能够理解不同低维情况下的同一物体,如各种情况的猫(睡觉,玩耍,撒娇等等),我们相信存在这样的特征,本质上是一种函数的存在性证明。

卷积神经网络:高效能的硬件运行计算更大的模型(GPU),大量的数据。使得能够在LeCun网络的基础上有更进一步的发展如Alexnet,VGG等等。

神经网络算法构建过程:1建立工程,导入工具包(sklearn等等);2导入数据集的数据,转换为一定的数据结构(如图片的n*n数组转换为一维数组);3进行神经网络算法的参数设置如隐藏层数,学习率,单层神经元个数等等4进行评价,准确率和召回率等等指标来评判算法性能;

神经网络算法本质上是在构造一个能够完成我们理想中目标的函数,我们假设其存在,然后通过我们需要的各种性质来定义这个函数,隐藏层可以理解为级数展开,具体的神经元的权重可以理解为具体的级数/特征的参数。F=∑wixi(wi是具体的参数即权重,xi是特征)。理论上,我们可以通过足够多的对象的组合来逼近理论上存在的函数,但这就需要耗费太多的计算资源,而提升的精确度有限。以线性代数的思想就是构造各种复杂的映射。

神经网络的反向传播算法,链式法则的应用,首先构造出复杂的多变量的函数,然后通过细化的求导来确定简单的关系,即梯度。而我们构造的函数,最后就是这些梯度收敛的结果。

Sigmoid函数:1/(1+e^-x)

2017/8/9

神经网络算法可以适用于不同领域的问题,说明其可能是某种底层的运算机制。是一种通用体系,如同图灵机,能够通过大规模数据的输入产生一定的输出,这些输出就对应于我们的要求如图像分类等等。神经网络算法的大量参数,其实对应于函数的拟合,我们相信存在特定的参数能够具有生物学意义(能量最低化)。更大的参数的学习可以识别更加高级的特征,这和微积分基本定理是一致的。如从边缘/颜色等等底层的特征不断升维到复杂对象的识别如人脸识别。参数的确定就是最优化的思路,如同能量最低化,收敛到最稳定的结果。或者可以理解为泰勒级数的展开,参数的确定就是对级数前面的系数的确定,只要通过调参使得与这个函数的足够逼近,可以视为达到最优(梯度下降法)。而这个级数的各个项,其实就是特征工程的特征。

我们训练模型其实就是构造出特定的函数,能够满足特定的输入和输出的对应关系

参数的训练是大规模的矩阵运算。一个重要问题就是由于幂律分布,有意义的数据是少数,即呈现稀疏矩阵的形式,因此需要压缩,降维等等操作才能充分利用计算资源。如同搜索需要我们采取一定的优化的措施,如深度/广度优先搜索,还有各种条件的剪枝处理等等,能够大大减少搜索空间的范围。而更少的参数,需要如同PCA主成分分析,需要找到相关性更大的参数/特征来进行线性组合

迁移学习可能运行我们使用经过训练的模型的参数,运用到不同领域,使得我们在新场景的使用不需要训练这么大规模的参数,从而减少计算量。底层的机制可能就是大量的特征是通用的,其已经构造出一定的有意义的函数。

团队合作可能也对应于一定的运算机制,能够实现更宏伟的目标。

Distbelief到tensorflow,开放的机器学习系统,更多人的协作系统,共享和大量基础架构的搭建,使得人们更加注重想法的提出而不是实现(跨平台,跨设备)。

输出也可以作为下一步的输入,如同反馈体系,能够呈现螺旋式的上升的过程,能够识别更高维度的特征。本质上这是学习。

数据驱动的图像分类方式:线性分类器(非显性编程)

需要考虑特定的指标的定义,如距离有欧式距离,曼哈顿距离等等,于是有KNN算法,进行聚类分析:1随机生成n个中心2计算距离并分类3更新中心4继续计算距离直至收敛,生成n个分类

基于模型/统计编程,构造出函数f(x,W,b)=Wx+b..W是权重,x是具体的对象,我们能够通过其加和来构造出级数∑wixi,从而逼近特定的函数,从而能够在图像的像素矩阵(视为高维的对象)和特定的名词/分类构建一定的联系。可以理解为在图像构建的高维空间构造一定的分类曲线。只要维度足够高,就可以如同微积分基本定理一样实现高维的划分。

损失函数和最优化

构造出一定的损失函数和目标函数,能够定量测定当前分类器的好坏,从而能够进一步地改进。在规划中,约束条件是必要的,损失函数高说明这是很差的分类,需要进一步调整参数。

Softmax函数作为分类器,其分数一方面可以作为各种分类准确性的度量,同时也可以理解为特定分类的概率,可能可以使用贝叶斯推断来进一步运算。

梯度下降法,求导df(x)/dx=lim [f(x+h)-f(x)]/h.近似法,斜率可以往更小的方向移动,直至极值,找到使损失函数最小的点。

具体的对象可以分解为一系列特征的权重加和,这是线性代数的思想,线性无关的基底的选择性组合对应于具体的向量/对象,即我们收集的数据。具体的特征可以通过统计来构造。

神经网络训练:定义添加神经层的函数:1训练的数据2定义节点接收数据3定义神经层即隐藏层和预测层4定义损失函数4选择优化方法使得损失最少

链式法则,反向传播,中间变量对损失函数的影响。每一次更新参数,都需要经过前馈和后馈。

超参数的选择:隐藏层的数目,单个隐藏层的神经元数目,学习率,步长,随机失活dropout的概率等等,

多隐藏层就对应于这些中间函数,对应于最后的特征。

Dropout技术,将一些权重较低的神经元按照一定概率进行消除,即瘦身,这种随机失活能够减少神经网络的规模和计算量,而且也更难过拟合。

思考一个发育式的机器学习算法,新的数据输入能够如同生物发育使得内在的一套编码机制能够根据具体的环境/数据表达,如同创生生命一样创生智能,如群体智能。

卷积神经网络

视觉皮层的感知机制,层级式的架构,矩阵叠加,深度学习就是多层网络的叠加。;卷积操作可以理解为一定的数据压缩,可以把更大信息量的数据进行运算。迁移学习可能就是利用封装好的参数层,能够对应于大脑的一些固定的架构(生物的进化是打补丁式的更新),从而能够大大减少新物体的训练所需要的计算量。

滤波器filter(具体的大小也是一种参数如5*5*3),进行卷积运算即点乘dot。池化层,找到更加重要的信息(一种采样)。需要经过激励函数如ReLU函数的运算(神经元的运算∑wixi),这些层次彼此交叉,最后形成一定的特征。最后的全连接层可以构建最后分类的映射。

在分类的基础上继续追求,即物品分割,以方框的形式来包围特定分类的物体。这是更加细化的计算,因为具体的分割可以是更加无限可能的,预测可以理解为搜索,可能的搜索空间将十分大,所以还是需要神经网络算法来构建出这种联系即定位。找到具有更大可能的区域进行划分,即通过特制的匹配。(region proposal)

R-CNN算法,首先构造出一定数目的方框如2000个,然后在其中找到具有更大可能性的一些方框,然后进行神经网络CNN的分类,更新结果并返回,直至收敛。在一定程度上可以视为神经网络再叠加一个神经网络,所谓的深度学习就是利用更深的神经网络来实现更加复杂的功能。.

卷积神经网络的可视化与进一步理解

中间的隐藏层对应于一定的特征的识别,能够通过训练找到对应于特定图像激活的神经元(偏向性),这些神经元的权重就对应于一定基底的选择性组合。但这些隐藏层只有特定的层次才有可视化的意义,如同我们的病理切片能够接受人体的一些病变,但只有特定的区域才更具特征性。这些层次就是数学的不动点。

通过统计来提取特征,能够发现我们不知道的知识,这些特征的组合,可能就升维到我们能够理解的层次如人脸识别。我们可以继续升维,可以通过机器学习到我们不能理解的更高维度的特征。特征对应于一定的神经元激活模式,如同人类的刻板印象的形成,智子疑邻等等。这种特征,如同图片的风格,是可以迁移的

循环神经网络RNN:

以马尔科夫模型来理解,这是一个状态之间的转移,可以通过统计构造出转移概率矩阵,从而能够形成一定的序列。生物信息学使用马尔科夫模型来理解编码区和非编码区,也是通过计算这个概率。

文本处理:如numpy读入文本数据,构建字典,建立索引和字母之间的映射,然后组织形成一定的数据集。经过RNN训练,可以生产各种有意义的文本,如诗歌,论文,代码。通过学习各种特征,学习到底层的机制,能够生成一定的复杂映射,能够和人类的一些状态具有一定的相似性,我们需要将这些特征值的模块抽象出来,形成各种有意义的单元。

实现技巧:

充分利用数据(数据增强如横向翻转等等,应用于数据不足的情况;和迁移学习可以减少新模型的训练的计算量,可以提取训练好的网络的某些层来作为特征筛选器,这些特征可以应用于不同领域,一般情况都不是从头开始训练,而是在这些训练好的模型进行微调。dropout层避免过拟合)、

如何进行卷积并且快速计算,即忽略大规模矩阵运算的中间步骤,如strassen算法

实现的细节,如GPU/CPU计算,计算的瓶颈,分布式训练

训练CNN的大概流程:1加载图像和标签2通过CNN训练3通过CNN的输出和标签来计算损失函数的值4回传梯度更新CNN的各个参数

深度学习开源库

Caffe:Blob类存储数据,Layer转换blob的数据,Net多隐藏层,计算梯度,Solver使用梯度更新权重。不需要编程,prototxt存储各种参数

1转换数据2定义网络3定义solver4训练。推荐使用:特征提取,对已有模型的微调

Torch:tensor。推荐使用:与预训练模型的运用,编写自己的Layer

Theano、;计算梯度。推荐使用:训练CNN

Tensorflow:google开源框架。推荐使用:大模型的训练

图像分割与注意力模型

特征提取,并进行采样,组合结果制定一定的边界

视频检测与无监督学习

主成分分析PCA,通过聚类分析来找到隐藏的模式。神经网络提取的特征,就是统计得出的基底。

自动编码器:用数据区学习特征,数据经过编码形成特征,再解码形成输出。

贝叶斯推断。最大似然法。

同类推荐
  • 带着科技混异界

    带着科技混异界

    靠无耻吃饭,靠预言泡妞,靠聪明生存,这就是本少爷我身为穿越人士的第一原则——王爽语录
  • 吾之言

    吾之言

    小小少年,白发。大大王都,繁华。问今生何求,吾言天下
  • 三界神权

    三界神权

    一个丹田被废的武道天才,在人生巅峰迭落尘埃,从此被人冠上“废物”之名,尝遍世间百态,人间疾苦。心爱之人弃他而去,亲族疏离勾心斗角。身处绝境艰难奋起,意外得遇圣魔之骨,绝望之中承受剔骨之痛,换骨重生。从此风云再起,傲视九重天!
  • 无敌天邪

    无敌天邪

    看一代魔界邪神,如何被人封印记忆魔功,然后又从零开始,一统仙魔两界.......
  • 帝尊强归

    帝尊强归

    一个未知的世界一场踏骨的杀戮一段淹没的记忆异世的奇遇,体内的热血,嗜血的双手,所有事情发生在重复的梦境后,这其中有什么关联?是梦中人在指引?可是为什么我看不清他的脸,听不见他的声,待君觉醒归来,揭开迷惑
热门推荐
  • 至道之行

    至道之行

    当今世界被道力所笼照,获得强道则成人上人!弱肉强食,适者生存!远古时期,至上大能重生为富家子弟,记忆遗落,体质依在!遭人黑手,禁地求生,获得造化,开启道旅,重夺大道!
  • 中学生要做好的100件事

    中学生要做好的100件事

    在这个竞争日益激励的时代,社会需要的,不是温室中长大的脆弱花朵,也不是只知道死啃书本的书呆子,更不是只会消费不会创造的废物,而是掌握了各种技能的社会精英。没有技能,走出校门的你就无法找到称心的工作;无法适应将来的岗位;最终将会被社会抛弃!
  • 午夜棺材

    午夜棺材

    究竟是谁杀死了这个女子渲染极其恐怖的氛围等待真相渐渐浮出水面杀人者却又离奇死亡棺材在午夜时分发出了声音噩梦连连不断不料想天明时棺材却又离奇的出现在学校门口连同棺材里的女子不翼而飞在女子不翼而飞的同时接二连三的发生诡异的杀人事件并且女子消失时棺材里发现了一件龙凤皇衣这究竟发生了什么还是中了某种咒语追击真相,结果让人大吃一惊却牵引出了百年前神秘家族消失的内幕!
  • 灾变之大诸侯

    灾变之大诸侯

    数千年历史中,曾有无数兵种让敌人胆寒,三国时几乎无人可婴其锋芒的西凉铁骑、并州狼骑,还有曹魏的虎豹骑,流传至今;在欧洲的中世纪战场上,究竟是拜占庭重骑兵称雄,还是马其顿重步兵方阵天下无敌,又或是蒙古铁骑横扫欧洲。一场突如其来的灾变让地球化作游戏场,来自古代以及传说中的兵种纷纷出现,掌握兵符者割据一方,开启争霸之路。当热武器消失,冷兵器重新登上舞台,在这个诸侯并起的时代,谁将为王!
  • 半青烟

    半青烟

    听过风中的你,看过你的背影,失去过你,我只想拉起你的手,再一次走过18岁的岁月!我一生中最是亏欠的人是你!但是,该死!我真的,真的很爱你!
  • 混世千斤很逍遥

    混世千斤很逍遥

    猥琐?美女谁不爱?贪财?没钱你能活着吗?小鬼?算你倒霉,遇上了本小姐,你连到阎王那里报道的机会都没了。看一个千斤小姐如何堕落成一个男人婆,并最终赢得真爱,浪迹天涯。
  • 东方奇人传

    东方奇人传

    《东方奇人传》是一部报告文学集,文中对新型的农民企业家,对于有卓越眼光的创造发明的支持者,对于有首创精神和坚韧毅力的黄河大桥的设计者,对于气功大师神秘的功法及魅力……进行了一个一个深入地探寻和挖掘。这本报告文学,还有一个明显特征,即他不像一些“社会问题报告文学”那样,较多停留于一般理性的思辨和浮泛的个体热情之上,而是努力去把握形象,刻写人物,为一个一个东方奇人塑像,将他们神奇而曲折的成长经历和动人故事活现于纸面,因而有相当的形象魅力和感人之处的。编辑推荐:茅盾文学奖获奖作家刘玉民倾情力作!塑造了东方奇人群像!打破长篇小说的局限!看作者如何用另一种文学形式深入生活!
  • 狙击手:世界著名狙击手全纪录

    狙击手:世界著名狙击手全纪录

    《狙击手——世界著名狙击手全记录》是哈尔滨出版社出版的“军事系列图书”之一,《狙击手——世界著名狙击手全记录》图文并茂,结合狙击手的经典事件、装备以及狙击手训练要领等,介绍了近代以来世界上最顶尖的狙击手,还有狙击手手中的致命武器,《狙击手——世界著名狙击手全记录》将为您展现一个精彩纷呈的军事世界。
  • 天才小宗师

    天才小宗师

    吴迪很冤枉的,他做人一向崇尚低调,可就是因为天才了点,妖孽了点,为什么就遇到这么多事?难道木秀于林,风必摧之!
  • 平等交易系统

    平等交易系统

    你要一个5星S级天使?没问题,你先给我来十个亿的灵石。你要一个30岁时的赵云?那可是3星A级的人物啊!来来来,你先去狮驼岭,把那大狮子宰了拿来。什么?你要一个小说主角汪林?没问题,没问题,你要第一集的那个1星D级的还是要结局那个5星SSS级的?想要什么,都能得到,只要你付出小小喜欢的代价。看白长如何逆天而行,成就霸业。