首页 >> 中医美容

[p]从这开始了解深度学习——视觉的深度学习与络[-p]

中医美容  2020年07月07日  浏览:2 次

从这开始了解深度学习——视觉的深度学习与络

已经很久没有更新内容了,今天抽空来给大家分享一些关于计算机视觉领域的一个重点,那就是 “深度学习”,接下来就来详细聊聊深度学习(为什么要深度学习特征???),然后来说说深度络的搭建,最后让我们自己用手 DIY 属于自己的络,现在就开始 ing......

介绍

一说起 “深度学习”,大家有想过为什么要去搭建复杂络,去学习更高级的特征呢?其实很简单,因为趋势是朝着类脑那个大方向,现在类脑工作已经得到很多研究员的关注。

类脑计算实际上存在两个技术层面:第 1 层面是 “走出诺依曼框架”,主要属于人工神经络的大范畴;第 2 层面是 “基于神经科学的计算机算法”,试图超越人工神经络框架和摆脱权值计算模型,实现对生物脑的高逼真性模拟。所以欧盟都已经联合开始研究人脑,都成立一个叫 “人类脑计划”,美国也开始关注类脑。所以类脑计算这个方向是前途无量的。

第 1 类

主要有欧盟的 “人类脑计划” 和美国的 “BRAINs” 计划,虽然技术路径不同,但都是从生物脑的微观层面的实验数据和知识入手,通过逐渐整合,向上寻找中观和宏观层面上的数量关系规律,最终建立起整体的脑理论模型。

该类方法的特点是 “自下而上”,一场大规模的微观海量的数据和碎片化的实验知识的 “拼图工程”。首先发展高尖端技术工具,以实现对脑的微观的结构和功能的全面测量和记录;然后建立起全脑微观数据库;在此基础上,逐渐向大规模的脑计算模型上发展,并试图形成对脑活动、脑病变和脑智能的机制性解读的整体理论;最后形成比较成熟的类脑计算技术和类脑人工智能。这种研究属于长周期的大科学或大工程,需要动员大量人力物力和财力。

第 2 类

研究方法的特点是 “自上而下”

。直接将研究重心放在一个 “好的” 脑理论的建造上,然后向下导出神经元模型和神经元群体络模型;之后测试和检验模型与微观神经知识和数据之间的契合度。这种研究的关键在于怎样找到正确的理论入手点,这一步不是单纯的建模方法问题,也不是一般的学科性理论问题,而是若干个重要学科的理论进程中的汇合点上的再综合,属于科学大周期性的结晶过程。这种研究属于长周期和 “形而上” 的小科学。目前,采用第 2 类方法的主要有美国 Numenta 公司和中国的神经深构造运算与脑计 算 机 实 验 室(Neural Deep Structure Computing MindComputer Lab,Mindputer Lab),两个实验室技术路径虽异,但总体方法都是先从全脑角度来建立理论框架,然后将理论逐渐地向下细化,导出中观和微观的计算模型,之后再检验与微观层面的实验数据和知识的互恰性。

各有利弊

两类研究方法各有利弊,第 1 类方法就像在万米悬崖峭壁贴身攀岩,向上的每一步很费时且充满未知。因为,从海量的数据中去试图进行全脑络的微观拼图,是一个大随机性的事件,即使有超级计算机或其他先进微观技术的帮助,欧美两个脑项目的 10 年计划时间是远远不够的。而第 2 类方法更像是空中伞降,难点在降落伞上,只要降落伞做得好,则向下定点降落的时间和复杂度比攀岩小的多。科学史已经证明,一个好的理论是大大削减科学探险随机性风险的锐利刀具。

有点说偏了,今天我们主要来说说深度学习这些事!

为什么要深度学习?

先来一个简单的例子:

这都是底层特征的可视化,说明底层特征也只能学习一些基础的纹理等特征,但是如果达到人脑的视觉感知,就必须要学习更高级的高层语义特征。所以才会出现更深更复杂的络,可以理解为挖掘更高层的语义特征来进行目标的表示。如下:

什么才是深度学习?

一般会有:1)组合模型;2)端到端的学习(End-to-End)。

学习

从具体 ------------------------ 抽象

1)组合模型

犹如上面的流程图,充分说明了模型的组合学习。

2)End-to-End

下面两个链接是前期推送的内容,充分表明了络的端到端学习过程。

深度学习 --- 反向传播的具体案例

神经络介绍—利用反向传播算法的模式学习

接下来参考了 “slide credit Marc’aurelio Ranzato,CVPR ‘14 tutorial”

下面这个链接也详细介绍了 CNN 的演变与改进:

深度络的 “从古至今” 的蜕变

框架

深度学习发展迅速,随之不同的框架也大量涌现出来。

Torch7

NYU

scientific computing framework in Lua

supported by Facebook

Theano/Pylearn2

U. Montreal

scientific computing framework in Python

symbolic computation and automatic differentiation

Cuda-Convnet2

Alex Krizhevsky

Very fast on state-of-the-art GPUs with Multi-GPU parallelism

C++ / CUDA library

TF(大家很熟悉了,不详细介绍)

等等。

因为我入门到现在一直用 Caffe,所以今天节详细说说这个框架。

原因(参考):

Expression: models + optimizations are plaintext schemas, not code.

Speed: for state-of-the-art models and massive data.

Modularity: to extend to new t在开战之前asks and settings.

Openness: common code and reference models for reproducibility.

Community: joint discussion and development through BSD-2 licensing.

Pure C++ / CUDA architecture for deep learning

Command line, Python, MATLAB interfaces

Fast, well-tested code

Tools, reference models, demos, and recipes

Seamless switch between CPU and GPU

络(Net)

一个络是由一组不同层连接而成:

name: dummy-net

layers{name: data …}

layers{name: conv …}

layers{name: pool …}

… more layers …

layers{name: loss …}

LeNet:

层(Layer)

name: conv1

type: CONVOLUTION

bottom: data

top: conv1

convolution_param {

num_output: 20

kernel_size: 5

stride: 1

weight_filler{

type: xavier

}

}

Protobuf

络(Net)和层(Layer)就是通过Protobuf来定义的。

Blob

Caffe 源码 ---Blob 基本使用

Solving:训练一个络

train_net: lenet_ototxt

base_lr: 0.01

momentum: 0.9

weight_decay: 0.0005

max_iter: 10000

snapshot_prefix: lenet_snapshot

如果你需要 GPU 训练:

caffe train-solver lenet_ototxt-gpu0

最后举一些流行的例子,有兴趣的朋友可以自己动手去 DIY。

目标检测

R-CNN: Regions with Convolutional Neural Networks

Full R-CNN scripts available at

视觉风格识别

Karayev et al. Recognizing Image Style. BMVC14. Caffe fine-tuning example.

Demo online at

场景识别

微调(Fine-tuning)

输入:不同的源文件;

最后一层:不同的分类器。

如何成为一名成功的 “炼丹师”——DL 训练技巧

今天就到这里,希望可以给需要的朋友一带来一些帮助,谢谢!

(公众号:)按:本文原作者Edison_G,本文原载于其公众号计算机视觉战队(ID: ComputerVisionGzq)。计算机视觉战队成立于2017年,主要由来自于大学的研究生组成的团队,目前已得到较大关注与支持,该平台从事机器学习与深度学习领域,主要在人脸检测与识别,多目标检测研究方向。每日通过计算机视觉平台分享最近的成果,分析现在流行的模型、算法与思路。

深度学习之神经络特训班

20年清华大学神经络授课导师邓志东教授,带你系统学习人工智能之神经络理论及应用!

如画廊、美术馆、拍卖行等推出大型展览进行宣传造势。当然

课程链接:

加入AI慕课学院人工智能学习交流群:,与AI同行一起交流成长

版权文章,未经授权禁止转载。详情见转载须知。

企业资讯
脚灰指甲会传染到宝宝吗
铜陵治疗白癜风方法
友情链接