2018-03-20 22:35:00 u010764910 阅读数 33779
  • 大数据:深度学习项目实战-人脸检测视频教程

    购买课程后,请扫码入学习群,获取唐宇迪老师答疑 进军深度学习佳项目实战:人脸检测项目视频培训课程,从数据的收集以及预处理开始,一步步带着大家完成整个人脸检测的项目,其中涉及了如何使用深度学习框架Caffe完成整个项目的架构,对于每一个核心步骤详细演示流程和原理解读,在完成检测代码之后进行了详细评估分析,并给出一篇顶级会议论文作为学习参考,详细分析了针对人脸检测项目的优缺点和改进策略。

    16446 人正在学习 去看看 唐宇迪

深度学习入坑指北

这是基于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日】

2015-09-15 20:26:16 wzkg20121221 阅读数 1513
  • 大数据:深度学习项目实战-人脸检测视频教程

    购买课程后,请扫码入学习群,获取唐宇迪老师答疑 进军深度学习佳项目实战:人脸检测项目视频培训课程,从数据的收集以及预处理开始,一步步带着大家完成整个人脸检测的项目,其中涉及了如何使用深度学习框架Caffe完成整个项目的架构,对于每一个核心步骤详细演示流程和原理解读,在完成检测代码之后进行了详细评估分析,并给出一篇顶级会议论文作为学习参考,详细分析了针对人脸检测项目的优缺点和改进策略。

    16446 人正在学习 去看看 唐宇迪

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

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

    接触的第一个深度学习理论应该是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-08-05 13:28:40 nk1212582 阅读数 684
  • 大数据:深度学习项目实战-人脸检测视频教程

    购买课程后,请扫码入学习群,获取唐宇迪老师答疑 进军深度学习佳项目实战:人脸检测项目视频培训课程,从数据的收集以及预处理开始,一步步带着大家完成整个人脸检测的项目,其中涉及了如何使用深度学习框架Caffe完成整个项目的架构,对于每一个核心步骤详细演示流程和原理解读,在完成检测代码之后进行了详细评估分析,并给出一篇顶级会议论文作为学习参考,详细分析了针对人脸检测项目的优缺点和改进策略。

    16446 人正在学习 去看看 唐宇迪

转载请注明出处 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 阅读数 5685
  • 大数据:深度学习项目实战-人脸检测视频教程

    购买课程后,请扫码入学习群,获取唐宇迪老师答疑 进军深度学习佳项目实战:人脸检测项目视频培训课程,从数据的收集以及预处理开始,一步步带着大家完成整个人脸检测的项目,其中涉及了如何使用深度学习框架Caffe完成整个项目的架构,对于每一个核心步骤详细演示流程和原理解读,在完成检测代码之后进行了详细评估分析,并给出一篇顶级会议论文作为学习参考,详细分析了针对人脸检测项目的优缺点和改进策略。

    16446 人正在学习 去看看 唐宇迪

如何快速入门深度学习

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

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

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

这里写图片描述

2017-12-23 01:18:12 JIEJINQUANIL 阅读数 1076
  • 大数据:深度学习项目实战-人脸检测视频教程

    购买课程后,请扫码入学习群,获取唐宇迪老师答疑 进军深度学习佳项目实战:人脸检测项目视频培训课程,从数据的收集以及预处理开始,一步步带着大家完成整个人脸检测的项目,其中涉及了如何使用深度学习框架Caffe完成整个项目的架构,对于每一个核心步骤详细演示流程和原理解读,在完成检测代码之后进行了详细评估分析,并给出一篇顶级会议论文作为学习参考,详细分析了针对人脸检测项目的优缺点和改进策略。

    16446 人正在学习 去看看 唐宇迪

花了一点时间整理了一些资料,方便学习。

一、书籍推荐

1、吴恩达的《Deep Learning》很经典,《深度学习》这本书从浅入深介绍了基础数学知识、机器学习经验以及现阶段深度学习的理论和发展,不管是人工智能技术爱好者,还是相关从业人员使用这本书都是非常有好处的。
2、周志华的《机器学习》
3、Peter Harrington的《机器学习实战》,主要是用Python编写

二、一些在线学院、论坛等

1、万门大学

2、网易公开课(可以搜索到吴恩达关于人工智能的视频,入口地址

3、可汗学院

4、慕课学院

5、极客学院

6、优达学院

7、人工智能A7论坛

在以上链接中搜索深度学习、人工智能关键词可以看到很多视频资料可供学习。

三、知名课程

1、coursera课程

2、李宏毅深度学习课程,他讲述得《1天搞懂深度学习》PPT可从百度网盘下载,从这里下载,密码:3mty

3、CS231n   CS231n:Convolutional Neural Networks for Visual Recognition。

4、CS231n官方笔记授权翻译总集篇发布

5、CS 20SI: Tensorflow for Deep Learning Research

四、在线实现神经网络

tensorflow playground

理解模型的原理,理解各个参数的实际作用。可以当作游戏玩好久。可视化的界面里,鼠标拖拖拽拽就能定义一个神经网络,看到实时运行状态。而且,是 js 在浏览器里本地训练的。

五、一些和AI相关的公众号
  深度学习世界
  中国人工智能学会
  新智元
  图灵人工智能
  全球人工智能
  人工智能学家
  量子位
  深度学习实验室
  深度学习大讲堂
  机器学习研究会
  机器之心

六、各类学习资源汇总

1、机器学习与深度学习视频讲解

2、深度学习入门与实战

3、机器学习/深度学习入门资料汇总

4、深度学习名校课程大全

5、强烈推荐的机器学习,深度学习课程以及python库

6、如何入门深度学习?

7、45个问题测出你的深度学习基本功

8、深度学习最新资料盘点


个人找资料难免不够全面,欢迎大家补充指正!

深度学习环境搭建

阅读数 4112

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