登陆注册
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,通过聚类分析来找到隐藏的模式。神经网络提取的特征,就是统计得出的基底。

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

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

同类推荐
  • 万世轮回塔

    万世轮回塔

    万世轮回塔大四学生石磊带着万世轮回塔穿越到了天云大陆,万世轮回塔中有着八十一万个位面,主角拥有着进入各个位面得到物品并带出来的能力。在器灵的帮助下开始了彪悍人生......科技文明,修真文明,生物文明,能量文明等等尽在万世轮回塔中。带你走进不一样的世界,这里还有不一样的位面战争以及种族战争,开启一个全新的战争模式,努力创造一个小说模式,期待您的阅读,您将和我一起伴随主角开出一片新天空........
  • 百战风云

    百战风云

    欢迎喜爱玄幻的朋友们看,第一次写小说请多多包涵,本次小说主角浩然,历经二次重生才醒悟,最终风流一世,问鼎九天,再创家族辉煌!
  • 砂神

    砂神

    “我要挑战你!”看着面前的要挑战自己的少年,邱云说道:“我拥有控制沙子和树木的能力,拥有能看清任何事物,操控天道。人间道。地狱道。修罗道。畜牲道。恶鬼道,拥有幻术的眼睛——六道之眼!我还是唯一一个传说级的佣兵团——晓组织的头!我还能炼制传说中的神品丹药,分分钟就能造出无数的战圣!你确定要挑战我?”“额,那个,我家里有急事,先走了!”说完,少年就跑了,此时,屋里走出来了几位绝色美女“呦,云!你刚刚说的你好像很厉害吗?”“额,那个,顾芳,胡仙儿,你们怎么出来了,还有,你们都是有身孕的,不要多动!”。..请多多支持《沙神》欢迎加入读者群,门牌号464612608
  • 废材的妖孽人生

    废材的妖孽人生

    身为修炼世家的公子,想尽了家族无数的修炼资源,却因一次意外家族测试,被断定为终身无法修炼的废物,从此身份一落千丈,当天便被逐出家族。且看这位废材,忍俊不禁的修炼生活。直到站在那人生的巅峰。
  • 吾命无量

    吾命无量

    吾本只求苟生,奈小人难缠,友人欺我,同门不容,幸得本命仙煞,怎甘做凡,自当灭小人,战四方,得我道,成吾命,得永生,吾命无量!
热门推荐
  • 我们都是孤独的

    我们都是孤独的

    同人小说,根据华晨宇经历所改编,不喜勿喷噢
  • 光阴未逝

    光阴未逝

    假如时间再次回到过去,那么,曾今遗恨的时光能否改变呢?
  • 泯灭文学

    泯灭文学

    你有没有想过如果人性是有形态的话,那会是怎样的形态?如果灵魂是有颜色的...那么,你的灵魂将会是什么颜色?
  • 宇宙立方之雄霸万界

    宇宙立方之雄霸万界

    一个现代特工从金庸武侠世界开启传奇之旅的故事
  • 神级外卖

    神级外卖

    听说上面有一个神奇的按键,可以收藏,你不好奇点一下吗?我们的口号是,这世上没有什么烦恼,是用一顿外卖解决不了的。如果有,就来两顿!
  • 旧时钟

    旧时钟

    恐怖的事情往往可怕的并不是事情本身,就像一个密封房间里的氧气分子,假设永远无序活动下去,总有一种可能是让房间里窒息的。故事也是这般,每一个看似不相连的事件里,背后往往有你意想不到的原由,或许,下一秒的可怕,只是因为你,此时的,一次点击。
  • 最强都市人生

    最强都市人生

    一场意外的雷雨,却给余枫带来了一个意外的惊喜。天上掉馅饼?差不多吧!天降横祸?似乎也有那么一点意思吧!没错,事情就是这样纠结。因为这一切的一切,都是从一只会说话的狐狸开始……
  • 悲壮的挽歌:11·24特大海难纪实

    悲壮的挽歌:11·24特大海难纪实

    本书如实反映了“11·24”特大海难的整个救助过程。灾难是不幸的,但在灾难面前,党中央、国务院和我们的各级党委、政府所表现出的高度负责精神,我们的干部群众所表现出的一方有难、八方支援精神,我们的人民子弟兵所表现出的人民的利益高于一切的精神,是值得称道和弘扬的。本书客观分析发生“11·24”特大海难的深层次原因。这一事件有天灾,恶劣的天气和海况,也有人祸,管理上的漏洞和事故背后对人民生命财产的漠视。如果我们能够像本书期盼的那样认真汲取教训,灾难也是一种财富,它警示我们不再忽视安全,不再淡漠生命,不再重蹈覆辙。
  • 战破星河

    战破星河

    麒麟守门、白虎看家、朱雀打鸣、玄武下蛋,村里鱼塘内还养着两条自称本王乃真龙的鱼鳅。这是隐匿于无尽莽荒中,一个与世隔绝,来历成谜的低调古村。此地民风淳朴,人人安居乐业,但因为太古久远的誓言,一个“可爱”的熊孩子来到了村中,就此惹得鸡鸣狗跳,掀起了一场“腥风血雨”……夏流:“无赖是我的雅号,无耻是我的别称,下流是我的本名亦是我毕生的追求。我就是我,非同一般的夏(下)流!”
  • 执掌永恒

    执掌永恒

    锲子浩瀚的宇宙中,有神州,神抚,神畏,神莽四个大世界组成。神州大世界,仙魔乱舞,佛妖林立,大能辈出;神抚大世界中,斗气魔法也是一片繁荣,好不热闹;神畏大世界则是巫道与武技的天堂,以力证道是这里的主题。而神莽大世界,与其他三个大世界相比却稍显不如。四个大世界在不知名的世界规则下环绕着中间的一片永恒之地,称为永恒大陆。这里汇聚着来自四个大世界中最强的大能!故事发生在神莽大陆……茫茫秋月,仙宫缥缈。有着精灵之主之称的美貌女子,独望世间沧桑,落下一滴一滴清澈的眼泪,洒下人间。泪滴穿越仙云,落入凡间化作一颗颗宝石,人称精灵叹。郁郁葱葱的森林深处,有一个静谧的村庄,袅袅炊烟升起。故事从这里开始……