2018-03-20 22:35:00 u010764910 阅读数 33749
  • 深度学习主流框架Caffe视频教程

    深度学习主流框架caffe上手实战是由韦玮老师推出的一期关于Caffe的上手的实战技术公开课,Caffe是目前一款主流的深度学习框架,课程主要通过实战让大家上手深度学习,并通过实战掌握深度学习框架Caffe的基本应用。

    8984 人正在学习 去看看 CSDN讲师

深度学习入坑指北

这是基于markdown-preview-enhanced插件编写的一个加强版的Markdown文件。
格式有所调整,原版是可以通过Reveal生成PPT效果的。
Github上的原版文件以及Reveal展示

深度学习简介

是什么?

  • AI大爆发的导火索

  • 机器学习的最前沿分支

  • 深度学习 = 深度神经网络


AI&机器学习&深度学习

机器学习怎么学?

  • 监督学习
    手把手教学

  • 无监督学习
    丢你本书看,然而并不想理你

  • 强化学习
    丢你本书看,请你做题,板子伺候

深度学习的强项

监督学习

  • 分类

  • 回归

分类,就是选择。

上哪个大学

找谁做女友

做什么工作

玩什么游戏

全是分类

应用

  • 图片识别,行为识别,自动驾驶
  • 聊天机器人,机器翻译
  • 生成文本,图片,语音,视频
  • AlphaGo,自动打星际2

为什么用深度学习?

简单粗暴效果好!

简单粗暴

Input 扔进 NN 出Output

效果好

为什么深度学习这么强?


- 高性能
GPU,TPU,NPU

  • 大数据
    互联网,物联网产生海量数据

  • 强算法
    先驱们的不断开拓优化
    CNN,RNN,GAN,DQN,CapsuleNet


NN打油诗
- East196

机器性能大提升,
海量数据在产生。
群策群力来优化,
神经网络强大深。

看起来公式好难懂~~

只需要理解三个概念
- 高数 导数 函数变化的趋势
- 线代 矩阵乘法 维度的对应
- 概率 事件发生的几率 可能性

从神经网络到深度学习

y=wx+b 谈起

最简单的函数

y=f(x)

线性关系

y=wx+b


给两组数据:

x y
10 2
3 4

构成方程:

\begin{cases}
2 = 10w+ b \\
4 = 3w+b
\end{cases}

怎么解?:)


import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import *
#指定默认字体  
matplotlib.rcParams['font.family']='simhei'  
#解决负号'-'显示为方块的问题  
matplotlib.rcParams['axes.unicode_minus']=False  

#解方程 y = wx + b
x = np.array([10,3])
y = np.array([2,4])

A = np.vstack([x, np.ones(len(x))]).T
w, b = np.linalg.lstsq(A, y)[0]
#print(w, b)

# 再来画个图
plt.axis([0, 15, 0 ,6])
plt.plot(x, y, 'o', label=u'原始数据', markersize=10)

t = np.linspace(-10,20,10)
plt.plot(t, w*t + b, 'r', label=u'线性方程')
plt.legend()
plt.show()


然而,现实世界是:


import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import *
#指定默认字体  
matplotlib.rcParams['font.family']='simhei'  
#解决负号'-'显示为方块的问题  
matplotlib.rcParams['axes.unicode_minus']=False  

# 模拟真实数据
x = np.linspace(-15,20,100)
y = 10*x +np.random.rand(100)*120
z = 3*x*x +np.random.rand(100)*160
m = 2*x*x +10*x +np.random.rand(100)*250

# 再来画个图
plt.plot(x, y, 'o', label=u'真实数据', markersize=10)
plt.plot(x, z, 'x', label=u'数据', markersize=10)
plt.plot(x, m, '*', label=u'数据', markersize=10)

plt.legend()
plt.show()

机器学习

use scikit-learn
- 监督学习:分类,回归
- 无监督学习:聚类


- 基本回归:线性、决策树、SVM、KNN
- 集成方法:随机森林、Adaboost、GradientBoosting、Bagging、ExtraTrees

最简单的神经网络

Neural Network

digraph Ped_Lion_Share           {
rankdir=LR;
label = "最简单的神经网络" ;
"x" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"f" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"y" [shape=circle  , regular=1,style=filled,fillcolor=white   ]
"x"->"f"
"f"->"y"
}

只有一个神经元

神经网络怎么计算?

权重Weight与偏置Biase

y=wx+b
面熟对不对?
求解线性问题
权重和偏置怎么设置?
我也不知道,那就按正态分布随机吧…

激活函数

面对现实
非线性世界


激活函数 Sigmoid&Tanh

import math  
import matplotlib.pyplot as plt  
import numpy as np  
import matplotlib as mpl  
mpl.rcParams['axes.unicode_minus']=False  


def  sigmoid(x):  
    return 1.0 / (1.0 + np.exp(-x))  

fig = plt.figure(figsize=(6,4))  
ax = fig.add_subplot(111)  

x = np.linspace(-10, 10)  
y = sigmoid(x)  
tanh = 2*sigmoid(2*x) - 1  

plt.xlim(-11,11)  
plt.ylim(-1.1,1.1)  

ax.spines['top'].set_color('none')  
ax.spines['right'].set_color('none')  

ax.xaxis.set_ticks_position('bottom')  
ax.spines['bottom'].set_position(('data',0))  
ax.set_xticks([-10,-5,0,5,10])  
ax.yaxis.set_ticks_position('left')  
ax.spines['left'].set_position(('data',0))  
ax.set_yticks([-1,-0.5,0.5,1])  

plt.plot(x,y,label="Sigmoid",color = "blue")  
plt.plot(2*x,tanh,label="Tanh", color = "red")  
plt.legend()  
plt.show()  


激活函数 ReLU

import math  
import matplotlib.pyplot as plt  
import numpy as np  
import matplotlib as mpl  
mpl.rcParams['axes.unicode_minus']=False  

fig = plt.figure(figsize=(6,4))  
ax = fig.add_subplot(111)  

x = np.arange(-10, 10)  
y = np.where(x<0,0,x)  

plt.xlim(-11,11)  
plt.ylim(-11,11)  

ax.spines['top'].set_color('none')  
ax.spines['right'].set_color('none')  

ax.xaxis.set_ticks_position('bottom')  
ax.spines['bottom'].set_position(('data',0))  
ax.set_xticks([-10,-5,0,5,10])  
ax.yaxis.set_ticks_position('left')  
ax.spines['left'].set_position(('data',0))  
ax.set_yticks([-10,-5,5,10])  

plt.plot(x,y,label="ReLU",color = "blue")  
plt.legend()  
plt.show()  

反向传播神经网络

Back-propagation Neural Network
- 前馈神经网络
- 优化器根据误差回头修正参数

然而,Tensorflow 默默安排好了一切

识别图片?

输入 => 特征

九宫格,9个特征
上中下,3个特征
整图,1个特征
9+3+1=13

输入 == 特征

NO!
现在计算机跑这么快了,
我要把 宽*高*RGBA 直接扔进去!!!

DNN出场

Deep Neural Network
更大更深的神经网络
use tensorflow pytorch

CNN

Convolutional Neural Network
卷积神经网络
CNN

卷积:手电筒一块一块过
手电筒
每次看到手电筒照到的那 一块地方


池化:近视眼心更宽
近视眼
n * n -> 1 * 1

CNN应用

手写识别
猫狗分类

发现小行星

RNN

Recurrent Neural Network
循环神经网络
RNN
原理:状态记忆

LSTM

Long-Short Term Memory
LSTM
原理:三重门

RNN应用

机器翻译

机器翻译

语音识别

语音识别

行为识别

行为识别

前沿技术

GAN

Generative Adversarial Network
生成对抗网络
GAN

GAN应用

DCGAN生成女朋友

Deep Convolutional Generative Adversarial Network
DCGAN生成女朋友

神奇女侠下海

观海背锅

DRL

Deep Reinforcement Learning


RL


DQN玩游戏
game


AlphaGo系列
alphago

Autoencoder

digraph d3 {
rankdir=LR;


label = "自动编码器" ;

"x0" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"x1" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"x2" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"x3" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"x4" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"x5" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"x6" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"x7" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"x8" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"x9" [shape=circle     , regular=1,style=filled,fillcolor=white   ]


"e1" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"e2" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"e3" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"e4" [shape=circle     , regular=1,style=filled,fillcolor=white   ]

"m1" [shape=circle  , regular=1,style=filled,fillcolor=white   ]
"m2" [shape=circle  , regular=1,style=filled,fillcolor=white   ]

"d1" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"d2" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"d3" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"d4" [shape=circle     , regular=1,style=filled,fillcolor=white   ]

"r0" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"r1" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"r2" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"r3" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"r4" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"r5" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"r6" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"r7" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"r8" [shape=circle     , regular=1,style=filled,fillcolor=white   ]
"r9" [shape=circle     , regular=1,style=filled,fillcolor=white   ]

"x0"->"e1"
"x1"->"e1"
"x2"->"e1"
"x3"->"e1"
"x4"->"e1"
"x5"->"e1"
"x6"->"e1"
"x7"->"e1"
"x8"->"e1"
"x9"->"e1"
"x0"->"e2"
"x1"->"e2"
"x2"->"e2"
"x3"->"e2"
"x4"->"e2"
"x5"->"e2"
"x6"->"e2"
"x7"->"e2"
"x8"->"e2"
"x9"->"e2"
"x0"->"e3"
"x1"->"e3"
"x2"->"e3"
"x3"->"e3"
"x4"->"e3"
"x5"->"e3"
"x6"->"e3"
"x7"->"e3"
"x8"->"e3"
"x9"->"e3"
"x0"->"e4"
"x1"->"e4"
"x2"->"e4"
"x3"->"e4"
"x4"->"e4"
"x5"->"e4"
"x6"->"e4"
"x7"->"e4"
"x8"->"e4"
"x9"->"e4"
"e1"->"m1"
"e2"->"m1"
"e3"->"m1"
"e4"->"m1"
"e1"->"m2"
"e2"->"m2"
"e3"->"m2"
"e4"->"m2"
"m1"->"d1"
"m1"->"d2"
"m1"->"d3"
"m1"->"d4"
"m2"->"d1"
"m2"->"d2"
"m2"->"d3"
"m2"->"d4"
"d1"->"r0"
"d1"->"r1"
"d1"->"r2"
"d1"->"r3"
"d1"->"r4"
"d1"->"r5"
"d1"->"r6"
"d1"->"r7"
"d1"->"r8"
"d1"->"r9"
"d2"->"r0"
"d2"->"r1"
"d2"->"r2"
"d2"->"r3"
"d2"->"r4"
"d2"->"r5"
"d2"->"r6"
"d2"->"r7"
"d2"->"r8"
"d2"->"r9"
"d3"->"r0"
"d3"->"r1"
"d3"->"r2"
"d3"->"r3"
"d3"->"r4"
"d3"->"r5"
"d3"->"r6"
"d3"->"r7"
"d3"->"r8"
"d3"->"r9"

"d4"->"r0"
"d4"->"r1"
"d4"->"r2"
"d4"->"r3"
"d4"->"r4"
"d4"->"r5"
"d4"->"r6"
"d4"->"r7"
"d4"->"r8"
"d4"->"r9"
}

作用

保持输入和输出一致!!!


脑子秀逗了???

文青的解释


声律启蒙
梅酸对李苦,青眼对白眉

digraph dui {
rankdir=LR;
label = "文青的神经网络" ;
"曹操说梅酸"->"梅酸"
"王戎说李苦"->"李苦"
"阮籍青眼"->"青眼"
"马良白眉"->"白眉"
"梅酸"->"梅酸对李苦"
"李苦"->"梅酸对李苦"
"青眼"->"青眼对白眉"
"白眉"->"青眼对白眉"
"青眼对白眉"->"青 眼"
"青眼对白眉"->"白 眉"
"梅酸对李苦"->"梅 酸"
"梅酸对李苦"->"李 苦"
"青 眼"->"阮籍 青眼"
"白 眉"->"马良 白眉"
"梅 酸"->"曹操 说梅酸"
"李 苦"->"王戎 说李苦"
}


梅酸对李苦,青眼对白眉是能够复原的高度精简过的信息
同样,m1、m2 代表了全部的输入信息!!!
也就是说自动缩减了特征的维度~
带来了玩法的改变!!!

Capsule Net

胶囊网络

capsule net

Tips

可能的学习顺序

  • 入门:简单易懂
  • 经典:全面严谨
  • Blog
  • Github
  • 论文 arxiv
  • 比赛 kaggle 天池
    dot
    digraph graph1 {
    学习->思考->行动->学习
    }

视频

书籍

实战类

没错,随便买,反正你会去Github上下代码的~~~

专业类

科普类


版权声明:转载必须注明本文转自 East196 的博客:http://blog.csdn.net/east196
【本文由”深度熊猫”发布,2018年4月24日】

2018-08-05 13:28:40 nk1212582 阅读数 629
  • 深度学习主流框架Caffe视频教程

    深度学习主流框架caffe上手实战是由韦玮老师推出的一期关于Caffe的上手的实战技术公开课,Caffe是目前一款主流的深度学习框架,课程主要通过实战让大家上手深度学习,并通过实战掌握深度学习框架Caffe的基本应用。

    8984 人正在学习 去看看 CSDN讲师

转载请注明出处 https://blog.csdn.net/nk1212582/article/details/81429482

一入侯门“深”似海,深度学习深几许

深度学习的巨大影响

将人类过去痴迷的算法问题,演变成数据和计算的问题

“算法为核心竞争力”正转变为“数据为核心竞争力”

深度学习的所有特征的提取,全程不虚人工提取,这个自主特性在机器学习领域是革命性的

机器学习的4个象限

可统计是指,对于同类事物,它具有一定个规律性,这是一切统计学习的基本假设

不可推理,是指“剪不断、理还乱”的非线性状态

传统机器学习(位于第II象限),通常是用人类的先验知识,把原始数据预处理成各种特征,然后根据特征进行分类。这种分类的效果,高度取决于特征选取的好坏。因此,传统机器学习又称特征工程。

深度学习在本质上属于可统计不可推理的范畴。

什么是深度学习

为了让神经网络的学习性能表现得更好,人们只能依据经验,不断尝试性地进行大量重复的网络参数的调整

深度学习是一种包含多个隐含层的多层感知机,通过组合底层特征,形成更为抽象的高层表示,用以描述被识别对象的高级属性类别或特征。能自生成数据的中间表示(虽然这个表示并不能被人类所理解)。

深度学习的方法论

深度学习是“end-to-end”(端到端),输入的是原始数据(始端),然后输出的直接就是最终目标(末端),中间过程不可知

深度学习是一个黑箱系统,缺乏解释性

在认知上,有了从一个状态或系统直接整体变迁到另外一个状态或系统的形态,这就是深度学习背后的方法论。

大数据时代为我们认识复杂世界提供了珍贵的资源——多样而全面的数据。

“全部数据”和复杂性科学中的“整体性”,在一定程度上是有逻辑对应关系的。

大数据是问题,而深度学习就是其中的一种解决方案。

 

人工“碳”索意犹尽,智能“硅”来未可知

人工智能的“江湖定位”

人工智能,简单来讲,大致就是用“硅基大脑”模拟或重现“碳基大脑”

深度学习的归属

深度学习是高度数据依赖型的算法,性能通常是随着数据量的增加而不断增强的。

机器学习都存在两个层面的分析:

(1)面向过去(对收集到的历史数据进行训练),发现潜藏在数据之下的模式,称之为描述性分析,主要使用了“归纳”方法

(2)面向未来,基于已构建的模型,对新输入的数据对象进行预测,称之为预测性分析,侧重于“演绎”

机器学习的形式化定义

学习的核心就是改善性能

机器学习要想做得好,需要走好三大步:

(1)建模问题:如何找一系列的函数实现预期的功能

(2)评估问题:如何找出一系列评价标准来评估函数的好坏

(3)优化问题:如何快速找到性能最佳的函数

为什么要用神经网络

连接主义:试图编写一个通用模型,然后通过数据训练,不断改善模型中的参数,知道输出的结果符合预期。

连接主义认为,人的思维就是某些神经单元的组合。因此,可以在网络层次上模拟人的认知功能,用人脑的并行处理模式,来表征认知过程。

人工神经网络的特点

人工神经网络是一种非线性、自适应的信息处理系统。该系统由大量彼此相连但功能简单的处理单元构成。

人工神经网络具有四“非”特性:

(1)非线性:激活函数是非线性的

(2)非局限性:任何一个神经元的“作用域”都不是局部的,而是可能通过网络连接波及全网

(3)非常定性:人工神经网络一直处于“更新”状态,具有强大的自适应、自组织、自学习能力

(4)非凸性:当前的神经网络,通常采用诸如Sigmoid、Tanh、ReLU等非线性激活函数,这就导致神经网络的目标函数具有非凸性

通用近似定理

一个包含足够多隐藏层神经元的多层前馈网络,能以任意精度逼近任意预定的连续函数

2016-07-27 14:13:00 tangyudi 阅读数 5577
  • 深度学习主流框架Caffe视频教程

    深度学习主流框架caffe上手实战是由韦玮老师推出的一期关于Caffe的上手的实战技术公开课,Caffe是目前一款主流的深度学习框架,课程主要通过实战让大家上手深度学习,并通过实战掌握深度学习框架Caffe的基本应用。

    8984 人正在学习 去看看 CSDN讲师

如何快速入门深度学习

本篇学习笔记对应深度学习入门视频课程

博客地址:http://blog.csdn.net/tangyudi 欢迎转载

  • 深度学习入门必备基础
  • 避开常见误区
  • 学习路线图
  • 干货分享

深度学习必备基础

深度学习发展至今已然有几个年头了,上个世纪九十年代的美国银行率先使用深度学习技术做为手写字体识别,但深度学习的惊艳登场并没有留住它一时的辉煌, 直到2012年深度学习这个领域才开始渐入人们的眼帘。可以说我们现在拥有着绝佳的学习机会,世界顶级的会的议论文,各大数据库公开的数据源以及开源的力量已经让我们站在了巨人的肩膀上去成长。下面就给大家分享一份深度学习入门指南,让大家能更快更好的加入深度学习这个璀璨的舞台。

必备技能1-python:

python我就不必多说啦吧,有多方便大家用过了都知道,这里强调这点是因为,现在无论是公开的论文还是代码基本在深度学习这个领域都是python为主流的,我在学习的过程中一个最重要的点就是学习别人的代码,通过把高手的代码debug一遍我们才能真正的懂一个技术的原理,那么在这个领域里高手们的代码很多都是python版本的。更重要的一点是,我们入门这个领域肯定不会自己动手一步一步的去实现所有需要的技术代码,一个最直接的学习方法就是结合开源的框架,那么可以说深度学习的开源框架基本都是python接口的,能用这些开源框架是我们学习的一个最基本的手段啦,所以重要的事情说三遍,python!python!python!

必备技能2–线性代数,微积分

很多同学该觉得很头疼了。。。,怎么有是数学啊,没错咱们深度学习需要很好的数据基础,我所说的这俩简直就是九牛一毛,但是作为我们入门来说已经够啦。其实咱们所有的深度学习是什么呢?它就是一个复杂的人工神经网络嘛,那么要去能懂这个神经网络的原理,有机器学习基础的同学们肯定都知道,其实就包括了两部分嘛,前向传播和反向传播。这两部分一个最最最核心的点就是矩阵计算和梯度求导运算啦,所以说咱们要能入门这个领域,这些数学可是还要复习起来的。

必备技能3–英文阅读能力:

这个还需要说啥子嘛?技术都是国外搬来的,咱们要学习的肯定都是国外各路大神的作品啦,比如课程呀,论文呀等等,那么要能跟上大神们的脚步,这点肯定是不能少的吧。

必备技能4–查找资料能力:

这点其实是蛮重要的,也就是我们在学习的过程中,要积累一些数据库还有好的学习资源,比如公开的代码呀,这也就要我们经常去逛逛技术博客,github呀看看有木有一些适合咱们学习的东东,找到有价值的学习资源比咱们自己埋头苦学更有价值的。

避开常见误区

深度学习这个领域的坑可以说还是蛮多的,咱们在进军的路上
一定要避开这些了。

自己挖的坑:

咱们在学习的过程中一定要循序渐进,切不可急于求成。这就像练武功一样,一味的求快求狠只能走火入门。这里我暂且认为想要入门的同学们的基础都是比较薄弱的,咱们不能跳过传统机器学习这条路直接一大步迈进深度学习这个领域中,我们起码要知道神经网络是怎么一回事。这对于咱们理解以及掌握深度学习有着重要的帮助,比如咱们第一步要做的就是去搞明白什么是前向和反向传播以及从头到尾的自己推导一遍,有了这样一个过程咱们再去学习深度学习就会轻松多啦。千万不可自欺欺人,一步还没走稳呢就着急跑去下一个知识点啦,在积累的过程中不要给自己挖坑,确保自己搞明白一个点啦再去深入到下一个点中。

掉进别人的坑:

我们在学习的路上肯定会挖掘到很多的资源,但是这些资源不可盲目学习,我们需要有一定的鉴别能力。就好比说我们跟着一个武功一般的学,怎么也不会学到哪里去,但是我们给一个武林至尊当小弟,我们学到的也不会少嘛。这就是说我们要学习的资源一定要是通过了大家的认可的,在我看来现在百度到的很多资源其实错误的地方还是蛮多的,我们尽量多关注一些国外大神的主页以及github上比较火的项目。

学习路线图

这个路线图是针对咱们要入门的同学制定的,已然成神的同学们可不使用哦。

(一)入门神经网络:

对于咱们要入门的同学来说,第一部也是最重要的一步就是能够去懂什么是神经网络以及把整体流程从头到尾的推一遍,神经网络这个东西还是蛮抽象的,这里有一个入门的课程大家可以参考下深度学习全民皆兵
把神经网络以及深度学习所需的每一个知识点都从头到尾的推了一遍还是很不错的。

(二)选择一个深度学习方向:

深度学习现在来说有两个方向比较成功,一个是自然语言处理,另一个是计算机视觉。在学习的路上,我们需要选择一个自己喜欢的方向去深入,有的同学可能会说我都想去研究个究竟,其实只要有时间这些都不是事。但是我觉得还是选择一个方向去深入比较好,无论对于研究还是工作我们不可能同一阶段去弄这两个事,所以确定好一个深度学习的方向还是很重要的。当我们选择好方向之后我们要学习的东东就确定了,对于自然语言处理我们要学习的就是RNN现在更火的是LSTM,对于计算机视觉我们要学习的就是CNN,大家如果听不懂这几个缩写,没关系的等咱们真正走到了这不的时候再去了解也来得及,这里我们只需要知道我们要两个方向可以选择。

(三)论文与代码:

对于选择好的方向我们首先要弄懂这个网络的原理,最好的办法就是边学边做,结合一个实际的项目。有的同学可能比较愁,我哪有实际项目去结合啊,其实咱们github上的每一位大神的代码咱们都可以当成是一个实际的项目呀,比如人脸检测,物体识别呀,这些公开的代码就是咱们练手的利器呀,我们首先需要从头到尾的完全理解一个找好的项目,这其中包括了很多内容了。比如学习一个深度学习框架,应用公开数据集,训练模型等等。从我自身学习的经验来说,最有价值的做法就是,在一些高端会议上找到一篇开源的而且做的事是咱们感兴趣的的论文,首先通读论文,然后对应于开源的代码开始大干一波 (就是把代码和论文对应上,确保自己完全理解),还有些需要注意的点比如说咱们一定要找最新的论文和代码,这些应该就不用我多说啦。在完成了一个项目之后,咱们就有一定功底啦,可以说咱们已经入门深度学习这个领域啦,但仅仅是入门,切不可就此止步。

更多机器学习/深度学习内容欢迎关注我的公众号:数据先锋
有任何问题欢迎随时与我私信讨论,微博:迪哥有点愁

这里写图片描述

2015-09-15 20:26:16 wzkg20121221 阅读数 1494
  • 深度学习主流框架Caffe视频教程

    深度学习主流框架caffe上手实战是由韦玮老师推出的一期关于Caffe的上手的实战技术公开课,Caffe是目前一款主流的深度学习框架,课程主要通过实战让大家上手深度学习,并通过实战掌握深度学习框架Caffe的基本应用。

    8984 人正在学习 去看看 CSDN讲师

     第一篇博客,想直入主题的,直接从第四段开始。想长期关注此博客。烦请过一下下面的两段  

    最近深度学习很火,个人也在学。但是学了之后总是将各种理解体会忘记了。幸好以前在学习深度学习的时候保存了不少笔记。写下博客为自己的学习做一个记录和总结。方便和大家交流和自己查阅。

    接触的第一个深度学习理论应该是DBN了吧,看了吴恩达和网上的各种大牛的独到讲解。我将自己的一些小简介说一下啊吧!第一篇博客,难免有不足,希望大家指出。一般来说。我每讲一个算法都会深究一下数学原理还有代码实现。有资源会和大家共享,一些公式的推到比较习惯用纸写。然后拍照上传。言归正传。

   话说DBN(深度置信网络),首先就得说一下物理当中的统计热力学的能量模型。这里关于能量模型的介绍转载一下whiteinblue《深度学习 读书笔记之RBM》当中的一段话:

   能量模型是个什么样的东西呢?直观上的理解就是,把一个表面粗糙又不太圆的小球,放到一个表面也比较粗糙的碗里,就随便往里面一扔,看看小球停在碗的哪个地方。一般来说停在碗底的可能性比较大,停在靠近碗底的其他地方也可能,甚至运气好还会停在碗口附近(这个碗是比较浅的一个碗);能量模型把小球停在哪个地方定义为一种状态,每种状态都对应着一个能量,这个能量由能量函数来定义,小球处在某种状态的概率(如停在碗底的概率跟停在碗口的概率当然不一样)可以通过这种状态下小球具有的能量来定义(换个说法,如小球停在了碗口附近,这是一种状态,这个状态对应着一个能量E,而发生“小球停在碗口附近”这种状态的概率p,可以用E来表示,表示成p=f(E),其中f是能量函数),这就是我认为的能量模型。

  好了,有了能量模型的一个简单明了的了解,接下来为大家介绍一下能量函数。能量函数是从玻尔兹曼分布中来的,所以首先简单介绍一下玻尔兹曼分布,具体介绍参见维基百科

     首先拉出玻尔兹曼分布当中的能量概率分布公式来,这个公式也是从维基百科当中弄过来的。如下:

   \frac{N_i}{N} = \frac{g_i \exp\left(-E_i/kT \right) } { \sum_{j}^{} g_j \,{\exp\left(-E_j/kT\right)} }\qquad\qquad (1)

    这个公式描绘了处于各个状态的系统能量分布,其中Ni 是平衡温度T 时,处于状态i 的粒子数目,具有能量Ei 和简并度giN 是系统中的总粒子数目,k玻尔兹曼常数。(注意有时在上面的方程中不写出简并度gi。在这个情况下,指标i 将指定了一个单态,而不是具有相同能量Eigi 的多重态。)

     接下来在引入分子热力学的一段话,这个是从博主转载过来的   ,这个博主也是大神,写得文章字字珠玑。关于DBN写得很不错。

    分子在高温中运动剧烈,能够克服局部约束(分子之间的一些物理约束,比如键值吸引力等),在逐步降到低温时,分子最终会排列出有规律的结构,此时也是低能量状态。受此启发,早期的模拟退火算法就是在高温中试图跳出局部最小。随机场作为物理模型之一,也引入了此方法。 

  大家在看到上面的这段话的时候,有一句话很重要。逐步降到低温时,分子最终会排列出有规律的结构,此时也是低能量状态。这个意思也就是说。低温状态是比较整个系统比较稳定的状态。是众多状态出现概率比较高的状态。如果放在机器学习的目标函数当中引用过来的话。能量最低的状态就是目标函数的极值

  但是如果要这样认为,还要印证一下此时真的是上面能量分布概率公式真的是否存在一个极值。如果存在这个极值,那么这个时候极值附近又有什么样的性质。我们怎么将这个想法迁移到神经网络当中。并进行求解,追究数学公式的原因就是,只要数学形式一样,后面的想法自然成立。只不过这个数学表达式或者说是思想只是从统计热力学当中迁移到了深度学习当中的DBN当中。为此,在维基百科能量均分定理当中找到了这样的一个图:


    上面的这个图是速率分布图,纵坐标代表的是概率密度,横坐标代表的是各种速率,也就是各种状态,但是如果熟悉大学物理统计热力学的都应该知道。和能量概率模型图差不多。这个图形状和上面公式的图的形状很想象。所以看出,函数的确存在极值,并且在极值上导数是0,导数意味着此时状态变化率不大

   好了,上面讲的是DBN的物理意义还有数学原理,这样的话我们就可以讲注意力转移到深度学习上的DBN的 RBM上来了。不过,在此之前,还要啰嗦一下。RBM的一些其他的意义:首先是看到某大牛csdn上的一段话,当时对这段话有点感觉,看了好久,由于水平有限,无法领悟作者所在的这个层次说的这段话。
   统计模式识别主要工作之一就是捕获变量之间的相关性,同样能量模型也要捕获变量之间的相关性,变量之间的相关程度决定了能量的高低。把变量的相关关系用图表示出来,并引入概率测度方式就够成了概率图模型的能量模型,其实实际中也可以不用概率表示,比如立体匹配中直接用两个像素点的像素差作为能量,所有像素对之间的能量和最小时的配置即为目标解。RBM作为一种概率图模型,引入概率就是为了方便采样,因为在CD(contrastive divergence)算法中采样部分扮演着模拟求解梯度的角色。

   其实这段话说的是下面将要引入的RBM一个迁移的理由,写得字字珠玑,各位自行领悟吧!

   不罗嗦,接下来为介绍一下RBM的网络结构还有能量函数

   首先是RBM的网络结构,直接上盗的图:

      其中v表示实际样本节点,以下叫可视节点,h表示隐藏节点数据,theta={W,b,a},W表示网络权重,b表示可视节点偏移,a表示隐藏节点偏移。这些参数是需要我们求解的,一般开始时我们随机初始化这些参数

      接下来引入能量函数,RBM能量函数如下,也是盗图:

{\rm{E}}\left( {{\rm{v}},{\rm{h}}} \right) =  -  \sum \limits_{i = 1}^n  \sum \limits_{j = 1}^m {w_{ij}}{h_i}{v_j} -  \sum \limits_{j = 1}^m {b_j}{v_j} -  \sum \limits_{i = 1}^n {c_i}{h_i}

    个人的简介,分析一下这个函数,首先等式右边第一项有点类似于能量的“互能量”的概念,放在神经网络当中,这个就是神经网络的Hebbian  theory。从网络的观点看,这一点是十分重要的,因为正是这一项代表了可视层和隐藏层之间的连接关系。另外两项之间就是各个节点各自的能量,有点类似于重力势能。这个是很有趣的一个现象。如果我们放在物理当中的分子能量当中去看的话,第一项代表了可以看做分子之间的引力势能,后面的两项的可以看做分子的重力势能 。从这点可以看出这个函数定义很有意义,也很有道理。发现了学科之间的迁移了有木有,有种大道值简的赶脚啊。

     其实关于能量函数的看法,还可以从专家乘积系统这个角度的解读来看这个问题。

    专家乘积系统主要是为了用简单的混合模型来逼近复杂的高维度模型。但是同时用简单的混合模型有着来逼近复杂的高维度模型有两种方法,一种是概率模型,这种模型本质是"加法和概率"的思想相结合的一种模型.比较典型的模型就是混合高斯模型,当时这种模型有缺陷,表现在高维度的时候,每个单个模型都要fine tune高维度的数据,但是每个个模型的表达能力是有限的(low-resolution).但是也有其他的方法,借鉴乘法的的独立的想法,这样每个专家只需要逼近高维度的一部分维度就行了。当然这些维度之间最好是相互独立的(事实上也是这样的,在RBM当中每一层都是不相互连接的)。这样的话用乘法才能起到比较好的效果。也许在进行数据预处理和特征选择的时候可以用FA和特殊的特征选择方法进行选择。关于专家乘积系统,写了一篇相关的论文。

    然后专家乘积系统怎样和能量函数扯上关系的呢,这位大牛当中的一句话:不错  !

    能量函数的意义是有一个解释的,叫做专家乘积系统(POE,product of expert),这个理论也是hinton发明的,他把每个隐藏节点看做一个“专家”,每个“专家”都能对可视节点的状态分布产生影响,可能单个“专家”对可视节点的状态分布不够强,但是所有的“专家”的观察结果连乘起来就够强了。具体我也看不太懂,各位有兴趣看hinton的论文吧,中文的也有,叫《专家乘积系统的原理及应用,孙征,李宁》。

   这样介绍完了能量函数在物理和专家乘积系统中的概念之后,接下来就是推到数学公式了。

   将上面讲的能量函数类比下面这个公式

  \frac{N_i}{N} = \frac{g_i \exp\left(-E_i/kT \right) } { \sum_{j}^{} g_j \,{\exp\left(-E_j/kT\right)} }\qquad\qquad (1)

   就可以得到关于RBM状态的概率模型:

{\rm{p}}\left( {{\rm{v}},{\rm{h}}} \right) = \frac{{{e^{ - E\left( {v,h} \right)}}}}{{ \sum \nolimits_{v,h} {e^{ - E\left( {v,h} \right)}}}}

   这个状态的概率是由能量函数定义的

   现在我们相当于的到了一个概率分布,分母是进行归一化的。其实这个概率分布是可以叫做Gibbs分布,当然不是一个标准的Gibbs分布,而是一个特殊的Gibbs分布,这个分布是有一组参数的,就是能量函数的那几个参数w,b,c。关于Gibbs分布,这里有一篇博客。

  

    

    

2018-05-16 23:30:01 valada 阅读数 1161
  • 深度学习主流框架Caffe视频教程

    深度学习主流框架caffe上手实战是由韦玮老师推出的一期关于Caffe的上手的实战技术公开课,Caffe是目前一款主流的深度学习框架,课程主要通过实战让大家上手深度学习,并通过实战掌握深度学习框架Caffe的基本应用。

    8984 人正在学习 去看看 CSDN讲师

课程介绍

伴随人工智能时代的到来,越来越多的人开始关注深度学习,且希望能够入行深度学习,其中不乏一些行业小白、非计算机专业的人士。

本达人课,共计11篇文章,涵盖了入行深度学习所涉及到的大多数疑问,以及行业介绍、前景展望和实战 Demo,作者希望通过最朴实、通俗的语言,从一个入门者的角度,分享自己曾经遇到的那些坑和学习经验,帮助那些希望转行、找不到方向的朋友走进深度学习的世界。

本课程共包含三大部分:

第一部分(第1篇)带您初步认识深度学习,了解行业背景、优势、前景以及入行深度学习需要的一些准备工作,为那些准备入行的人答疑、解惑。

第二部分(第2-7篇)带您具体了解深度学习技术在不同行业的应用,并分享学习深度学习的经验,帮助大家找到研究方向。

第三部分(第8-11篇)熟悉深度学习的两种框架 Caffe 和 TensorFlow,通过简单的 Demo 引导大家开始深度学习实战。

作者介绍

王学宽,曾就职于海康威视研究院担任计算机视觉方向算法工程师,发表多篇学术论文、申请多项国家专利,参与多项图像、自然语言项目相关课题研发工作,在计算机视觉领域具有深厚的专业知识和工程开发经验。运营有公众号:白话机器学习(微信号:simpleml90hou),开设有知乎专栏:《深度学习干货铺》

课程内容

第01课:深度学习行业概述

目前,“深度学习”这一词已经变得越来越普及,生活中也是到处都充斥着这一词汇,同时也有越来越多的人开始想要从事这一行的相关工作,尝试着接触、了解这一行业。

当然,关于这一行业的相关介绍很多,也很杂乱,初学者往往很容易被各种各样的概念搞得很迷惑,即便是计算机从业者有时候也分不清很多涉及到深度学习的很多问题和概念。

因此,本文希望通过一些通俗的语言来系统的介绍下关于深度学习行业的一些相关知识,引导一些初学者,建立一个相对比较完整的全局观,明白自己到底在学什么,以及学习这些知识,能够对社会的发展和人们的生活带来哪些便利。更实际一点来讲,对于一个深度学习算法工程师,在以后就业会主要从事哪些工作?

这里我们先了解下深度学习的发展历程。

对于深度学习的框架,可以最早追溯到1980年福岛邦彦提出的新认知机,然而,受限于当时的计算能力,而且缺少有效的训练手段来解决其中涉及到的梯度消失的问题,因此,这一技术也就在20世纪90年代到21世纪初的时候遇到了寒冬期。而在此期间,SVM (支持向量机)处于统治地位,此外,还有随机森林、稀疏表示、判别分析等方法。

这个阶段的机器学习方法,主要是多种方法的集成,虽然在小规模样本上具有较好的性能,但是对于大规模样本却并没有表现出太好的优势。然而,大数据时代的到来,这些传统的机器学习方法难以满足数据处理、表达的新时代需求,不管是工业届还是学术届,都需要一种处理大规模数据的机器学习方法。

恰恰在这个时候,杰弗里·辛顿(Geoffrey Hinton)和鲁斯兰·萨拉赫丁诺夫(Ruslan Salakhutdinov)提出了一种在前馈神经网络中进行有效训练的算法,为深度学习方法带来了新的研究曙光,并在各个领域得到迅速的发展,尤其是在自然语言处理、计算机视觉和语音识别中,成为各种领先系统的一部分。

接下来,我们看下深度学习发展中的大事件。

  • 2007年,杰弗里·辛顿(Geoffrey Hinton)和鲁斯兰·萨拉赫丁诺夫(Ruslan Salakhutdinov)提出了一种在前馈神经网络中进行有效训练的算法;
  • 2009年,在 ICDAR 2009举办的连笔手写识别竞赛中,在没有任何先验知识的情况下,深度多维长短期记忆神经网络取得了其中三场比赛的胜利;
  • 2010年,在于尔根·施密德胡伯位于瑞士人工智能实验室 IDSIA 的研究组中,丹·奇雷尚(Dan Ciresan)和他的同事展示了利用 GPU 直接执行反向传播算法而忽视梯度消失问题的存在。这一方法在燕乐存等人给出的手写识别 MNIST 数据集上战胜了已有的其他方法;
  • 2011年,前馈神经网络深度学习中最新的方法是交替使用卷积层(Convolutional Layers)和最大值池化层(Max-pooling Layers)并加入单纯的分类层作为顶端。训练过程也无需引入无监督的预训练。从2011年起,这一方法的 GPU 实现多次赢得了各类模式识别竞赛的胜利,包括 IJCNN 2011交通标志识别竞赛和其他比赛;
  • 2011年,语音识别领域凭借深度学习取得重大突破;
  • 2012年,AlexNet,一个8层的神经网络,以超越第二名10个百分点的成绩在 ImageNet 竞赛中夺冠(图像分类的 Top5 错误率为16.4%),深度学习终迎来包括学术探索与工业应用中的热潮。不断提升的层数逐步提升计算机分类视觉的准确率;
  • 2013年,Zfnet,获得 ILSVRC 冠军;
  • 2014年,VGGNet、GoogleNet、DeepFace、RCNN,在分类、人脸识别、目标检测等领域取得优异的性能;
  • 2015年,夺冠的 ResNet 深达152层,以3.57%的错误率超越人类视觉的5.1%;
  • 2016年-至今,Fast-Rcnn、Faster-Rcnn、Yolo、SSD 等目标检测算法突破。
  • 2016年,AlphaGo 击败人类。

目前,深度学习技术已经在图像、语音、自然语言、推荐算法等这些常见的领域中,得到重大突破,并且已经服务于我们的日常生产、生活中。比如:安防领域的人脸识别、ADAS 系统中目标检测与跟踪、OCR 识别、语音识别与合成、文本情感分析、主题挖掘等等。

谈了这么多深度学习的历程,那到底什么是深度学习呢?其实,关于深度学习的解释非常多,总结来说,它是一种具有多层结构的神经网络算法,属于机器学习算法一种,而机器学习则是实现 AI 的一种技术手段。换言之,深度学习对于人工智能技术的发展具有重大意义。我们看一下,如下图所示的深度学习结构:

一个完整的度网络,主要包括了输入层、输出层和中间的隐层,每一层网络由一个个节点组成,而不同层之间则通过节点和节点之间的线连接起来,而这些点和连接就表达为线性组合关系。当然,目前深度学习网路结构的多样性,也存在很多类似的非线性组合的网络层。深度学习就是通过这些节点和节点之间的关系来表达客观世界中的事物、逻辑关系等等。

关于深度学习的概念,已经足够火热,当然我们在认识它的时候,依然需要保持冷静的头脑,必须认识到:

  1. 深度学习并不是万能的,尤其对于工程上的实际分析,有时候,单纯的使用深度学习的方案并不能有效的解决问题,对于一个实际的项目而言,往往需要考虑到各个方面的问题,一个好的项目,一定是一个无比细致工作的体现。
  2. 深度学习不会取代所有其他机器学习算法和数据科学技术,至少还没有被证明是这样。
  3. 深度学习能够解决的任务目前主要集中在分类、识别、检测、回归等这些可定义的、比较明确的任务上,并没有扩大到非常复杂的问题,例如“解决世界和平”。

深度学习与大数据的关系

“大数据”在几年前刚出现的时候,也存在各种各样的文章来定义大数据,我也不打算在这个概念上花太多的精力。简单来讲,大数据通常被定义为“超出常用软件工具捕获,管理和处理能力”的数据集。它不是具体的方法,甚至不算具体的研究学科,而只是对某一类问题,或需处理的数据的描述。

通常,大数据的“大”主要体现在 Volume(数据量), Velocity(数据速度)还有 variety(数据类别)。大数据问题(Big-data Problem)可以指那种在这三个“V”上因为大而带来的挑战。在之前我们也提到了,传统的机器学习方法的表达能力有限,在小规模数据上能够表现较好的性能,但是在大数据背景下则显得很无力。而深度学习则不同,通过增加节点数目、网络深度等,它能够表达更多的数据,针对大数据的背景,它的数据拟合能力远远优于传统的机器学习方法。从这个角度上来看,二者的关系则是相辅相成的,没有大数据的存在,深度学习的方法也很难得到有效的训练和优化,而没有深度学习方法,大数据本身也就没有了价值。

深度学习与人工智能的关系

1956年,在达特茅斯会议(Dartmouth Conferences)上,计算机科学家首次提出了“AI”术语,AI 由此诞生,在随后的日子里,AI 成为实验室的“幻想对象”。几十年过去了,人们对 AI 的看法不断改变,有时会认为 AI 是预兆,是未来人类文明的关键,有时认为它只是技术垃圾,只是一个轻率的概念,野心过大,注定要失败。直到今天,深度学习技术的发展,才使得 AI 变得越来越可能。

其实,对于大多数人工智能从业者而言,很难去对其进行一个精确的定义。如果非要对其进行定义的话,我觉得这个概念更加合适“它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能体,它必然会经历从模仿人类智能到超越人类智能的过程。”而深度学习则是机器学习的一种,它属于实现人工智能的一种技术手段。

今天,越来越多的人经常会提到“我想学习人工智能”,其实这是一个非常大的概念。从数据存在的形态来看,主要包括了文本、语音、数字图像,而人工智能需要智能体对这些客观世界存在信息进行理解、表达,并学会利用这些信息进行决策、分析。这些行为的实现,单纯的依靠数据是无法实现的,需要一个框架来完成存储、表达、理解、分析、决策的过程,而深度学习则是这些任务实现的一种关键技术,它能够有效的完整对大数据的刻画和理解,特征抽取与表达,对人工智能的发展起到了核心关键作用。

深度学习行业现状

深度学习作为一种技术,在行业中的体现,依然要依托于智能化的产品和相应的人工智能企业。根据2016年乌镇智库推出《全球人工智能发展报告产业篇》,该报告详实的描绘出全球人工智能发展的最新趋势,展示出各国在人工智能领域的竞争态势。报告指出,在2000-2016年,美国累积新增人工智能企业3033家,占全球累积总数的37.41%。中国在同年段间,人工智能企业数累积增长1477家,占全球人工智能总数的12.91%。虽然在数量上不及美国,但三组数据值得关注:

美国每年新增人工智能企业数占当年全球新增人工智能企业总数的比例一直在下降,2000年时这一比例为45%,2016年时下降至26%。而中国每年新增人工智能企业数占全球当年新增企业总数的比例保持上升趋势,2015年达到近17年来的最高值,超过25%。近五年来看,美国新增人工智能企业数占全国人工智能总数的59.38%,中国新增人工智能企业数占全国人工智能总数则为72.71%。在人工智能专利数上,最近五年,中国专利数平均每年增速为43%,美国增数为21.7%。透过这三组数据,可以看到中国近年来在人工智能上发展迅猛。

下图,给出了2017年,人工智能公司的排名,当然,此排名可能存在一些不准确的情况,仅供参考。

从这些人工智能公司来看,目前深度学习的应用领域十分广泛,涉及到了安防领域、搜索引擎、智能推荐、语音识别、自然语言处理、人机交互、智慧医疗、生物信息识别、机器人、3D 视觉、智慧教育、智能图像理解与分析等等。

另外,从政策的角度来看,2016年7月,在国务院印发的《“十三五”国家科技创新规划》中,人工智能被作为新一代信息技术中的一项列入规划。2017年3月,“人工智能”首度被列入政府工作报告。2017年,国务院又下发了《新一代人工智能发展规划的通知》,通知中写道,“到2020年人工智能总体技术和应用与世界先进水平同步,到2025年人工智能基础理论实现重大突破,到2030年人工智能理论、技术与应用总体达到世界领先水平”。可以预计,中国的人工智能产业将迎来“大跃进”的时代。

综上,智能社会的到来,必须依赖于人工智能技术的发展,而深度学习则是目前能够实现人工智能的最有效的手段之一,甚至在很多领域具备了统治地位。深度学习行业如何?必然大有所为。

参考资料

第02课:深度学习在计算机视觉行业中的应用

伴随着深度学习技术的发展和普及,“计算机视觉”这一词汇也受到越来越多的人关注。尤其是深度学习计算芯片技术的发展,使得图像信息处理的能力大大加强,市场上关于计算机视觉技术的产品也越来越多。那到底什么是计算机视觉?它和深度学习有什么关系?目前有哪些计算机视觉相关的产品需要用到深度学习呢?

首先,我们解释下什么是计算机视觉?

计算机视觉是指用计算机实现人的视觉功能——对客观世界的三维场景的感知、识别和理解。这里主要有两类方法:一类是仿生学的方法,参照人类视觉系统的结构原理,建立相应的处理模块完成类似的功能和工作;另一类是工程的方法,从分析人类视觉过程的功能着手,并不去刻意模拟人类视觉系统内部结构,而仅考虑系统的输入和输出,并采用任何现有的可行的手段实现系统功能。[摘自《图像理解与计算机视觉》]

举个例子,最经典也是工业化水平最高的计算机视觉技术就是人脸识别技术。一个简单的人脸识别系统,包括了人脸数据库和人脸比对算法,判定两个人脸是否是同一个人脸,最直接的方法就是计算两张人脸图像之间的差异,然而,这样做往往是很难有效的区分相同人脸和不同人脸的。而计算机视觉技术的存在,就是通过对人脸图像进行特征表示,也就是抽取人脸图像中那些共性和差异性的特征,并用来对人脸图像进行重新表示,在结合度量方法来进行相似性的衡量。其中,表示和度量的过程,我们通常也就是采用机器学习的方法来完成。因此,机器学习技术就是解决计算机视觉任务的一种关键性技术。

1

那计算机视觉和人工智能是什么关系呢? 它属于人工智能的一个子领域,主要关注于图像信号数据的处理、理解和分析。因此,我们在研究计算机视觉技术的时候,会发现计算机视觉的理念在某些方面其实与很多概念有部分重叠,包括:人工智能、数字图像处理、机器学习、深度学习、模式识别、概率图模型、科学计算以及一系列的数学计算等。

还有一个概念经常会和计算机视觉搞混淆,那就是机器视觉。 很多人在开始接触到这两个概念的时候会简单的认为计算机也属于机器的一种,因此,计算机视觉就是机器视觉的一个方面。当然,这样认为也不是完全有错误,只是会显得有些局限。计算机视觉研究的是人眼的仿真,而机器视觉则侧重于为工业中的制造业提供更多有利于提高产品质量和提高生产效率的支持。我们强调机器视觉、计算机视觉和图像处理不是同义的。它们其中之一都不是任何其他两个的子集。计算机视觉是计算机科学的一个分支,而机器视觉是系统工程一个特殊领域。

深度学习属于机器学习的一种,对于大数据背景下的计算机视觉任务,尤其在检测、分类、识别等任务上,都表现出难以匹配的优势。尤其,目前越来越多的深度学习芯片的生产和制造,也确保了深度学习技术,在计算机视觉任务中的核心地位。接下来,我们看一下深度学习在计算机视觉任务中有哪些重要的应用领域。

1.深度学习在安防领域的重要应用。

利用计算机视觉技术来完成安防领域的解决方案,这是大多数视觉公司都会选择切入的一个领域,涉及到的企业包括海康威视、商汤科技、依图科技、Face++,甚至互联网公司百度、腾讯、阿里巴巴等。其中,一个重要的应用就是人脸识别技术,自2014年的 DeepFace 开始至今,深度学习的方法在该领域几乎达到垄断地位。而人脸识别技术,在安检、反恐等安防领域有着重要的意义。当然,除去人脸识别,近几年也开始研究从行人的角度出发的 ReID 技术,利用深度学习来进行人的检测、并刻画目标的特征,为后续的跟踪、异常行为分析提供有效的支撑。

2

2.深度学习在无人驾驶领域的重要应用。

在无人驾驶领域,考虑到激光、雷达等传感器价格昂贵等特点,这使得基于计算机视觉的解决方案大受追捧。而对于无人驾驶的摄像机采集到的视频数据,需要机器对其中的内容进行理解、分析并用于后续的决策控制,比如:前车碰撞预警等。因此,需要一系列的计算视觉算法来完成其中涉及的任务,具体包括了目标检测和识别、多目标跟踪、车道线检测分离等。而基于深度学习的目标检测和识别、基于深度学习的目标分割等方法,同样相对于传统的方法有着明显的优势。并且目前越来越多的深度学习芯片,尤其关注无人驾驶领域的问题,对相关算法的支持也越来越好,这也使得深度学习技术对无人驾驶技术的发展起到了重要的推动作用。目前国内对问题研究的机构同样非常多,包括了 Google、百度、海康威视、Mobileye 等,可以说,深度学习是无人驾驶领域的一种重要的基础算法。

3

3.深度学习在智能家居领域的重要应用。

传统的智能家居产品更多的是采用手机端结合蓝牙或者 WiFi 等通信手段来完成对家居的控制和使用。虽然此类解决方案能够实现一定程度上的家居智能,但是我们会依然觉得,智能化的程度依然不够。而深度学习的方法,则对于智能家居的发展起到了重要的作用。除了语音识别、语音合成以外,另一个重要的点就是利用视觉技术进行人机交互,比如:手势识别等。

4

4.深度学习在智慧教育领域的应用。

在教育领域,目前比较火热的产品就是拍照试题等 App,通过手机端输入一张图片后,App 利用智能算法,来对获取到的区域的内容进行理解和分析,同样涉及到了深度学习的方法,比如:题目的检测、目标区域文字检测与识别等等。同样,深度学习的方法对于类问题的解决,依然有着重大的性能优势。

5

5.深度学习在 OCR 领域的重要应用。

除了教育会涉及到文字检测与识别,在一些诸如:简历的识别、文档的识别、身份证识别等等领域,同样会存在一些关于图片中文字的内容理解和分析的部分,而对于这也任务而言,同样深度学习是一种更优的选择。此类问题,其实可以直接概括为自然场景下的文本检测和识别任务。

6

6.深度学习在图片检索领域的重要应用。

以图搜索图的目的是为了找到和原图相似的图片,它不仅会涉及到图像检索引擎的建立,同样也依赖于一个较好的图像特征抽取的方法。而深度学习依然成为了一种较为有效的技术手段和方法,并在众多的图像检测问题中,起到了重要的作用。

7

7.深度学习在医疗影像数据中的应用。

深度学习在医疗健康领域的机遇主要有七大方向:一是提供临床诊断辅助系统等医疗服务,应用于早期筛查、诊断、康复、手术风险评估场景;二是医疗机构的信息化,通过数据分析,帮助医疗机构提升运营效率;三是进行医学影像识别,帮助医生更快更准地读取病人的影像所见;四是利用医疗大数据,助力医疗机构大数据可视化及数据价值提升;五是在药企研发领域,解决药品研发周期长、成本高的问题;六是健康管理服务,通过包括可穿戴设备在内的手段,监测用户个人健康数据,预测和管控疾病风险;七是在基因测序领域,将深度学习用于分析基因数据,推进精准医疗。而医学影像是医生判断疾病的一个重要手段,放射科、病理科等擅长读图的医生增长率和诊断效率急需提升,成为很多医疗机构的心病。目前,在人类医学专家的帮助下,国内外研究团队已经在心血管、肿瘤、神内、五官等领域建立了多个精准深度学习医学辅助诊断模型,取得了良好的进展。其中,依图科技则在深度学习医疗领域取得了不错的成绩。

8

8.深度学习与美颜相机。

对于美颜相机,大家一定都不陌生。在美颜相机中会有哪些地方涉及到深度学习的算法呢?其中最重要的就是人脸的关键点定位。只有找到关键点,才能有效的进行一些眼睛的修饰等操作,同样,相比于其他方法,基于深度学习的方法能够实现更优的性能。

9

9.深度学习在 Fashion 领域的探索。

目前,阿里巴巴携手香港理工举办了 FashionAI 的比赛,旨在探索如果通过机器学习的方法来完成关于流行趋势的分析和预测。而深度学习无疑会成为众多方法中的宠儿。其中涉及到了服装关键点检测和定位,服装分类等等问题。

10

10.深度学习芯片。

对于大多是计算机视觉从业者而言,往往会更多的侧重于深度学习算法而忽略了深度学习芯片。大家也都知道,深度学习算法的火爆,必然依托于深度学习芯片的发展。尤其最近的中兴事件暴露出的国产芯片的一系列问题,也使得越来越多的人开始关注芯片行业。而一项深度学习工程,其实可以分为训练和推断两个环节,对于训练环节大多采用 GPU 来完成,而实际在使用的时候,考虑到功耗等问题,推断芯片的研发也变得尤为重要,除了 CPU 和 GPU 以外,FPGA、ASIC 等同样发挥着重要的作用。对于智能社会而言,深度学习芯片将会起到重要的基石作用。

11

当然,除上述领域外,深度学习在其他的很多领域都有着重要的应用,比如:车牌识别、图像质量恢复、自动图像描述等等。总之,深度学习技术对于众多的计算机视觉任务而言,已经逐步占据了统治地位,作为一个计算机视觉从业者,它也成为了大家的基本技能。至于原因,大家可以看一下《为什么深度学习几乎成了计算机视觉研究的标配?》这篇文章,这里不再赘述。

第03课:深度学习在语音技术领域的应用
第04课:深度学习在自然语言处理行业中的应用
第05课:如何入行深度学习
第06课:怎样选择一个合适自己的深度学习研究方向?
第07课:针对自己的研究方向,如何展开调研、学习和实验?
第08课:动手实战之基于 Caffe 的深度学习环境了解和搭建
第09课:动手实战之基于 Caffe 的分类识别任务
第10课:动手实战之基于 TensorFlow 的深度学习环境了解和搭建
第11课:动手实战之基于 TensorFlow 的分类识别任务

阅读全文: http://gitbook.cn/gitchat/column/5afb8f050fe11d2f8ffc79a8

深度学习环境搭建

阅读数 4039

没有更多推荐了,返回首页