1, Deep Learning简介

1,什么是深度学习

  • 深度学习的model是一个深度神经网络结构(neural structure)
  • 深度学习的“深度”是指神经网络的隐层(hidden layer)数量足够多
  • 深度学习是自动提取特征(Feature extractor),不需要像逻辑回归那样特征转换(Feature engineering)
  • 每一个neuron里面的sigmoid function,在Deep Learning中被称为activation function(激励函数)
  • 有很多层layers的neural network,被称为DNN(Deep Neural Network)

2,深度学习的三个步骤

  • Step1:构建神经网络(Neural network)---神经网络的创建包括3部分:一是神经网络有多少隐层(layer)、二是每一层有多少神经元(neuron)、三是每个神经元之间如何连接
  • Step2:模型评估(Goodness of function)
  • Step3:选择最优函数(Pick best function)

深度学习smote 深度学习基础教程_深度学习

神经网络的概念:把多个Logistic Regression前后connect在一起,然后把一个Logistic Regression称之为neuron,整个称之为neural network. 我们可以用不同的方法连接这些neuron,就可以得到不同的structure,neural network里的每一个Logistic Regression都有自己的weight和bias,这些weight和bias集合起来,就是这个network的parameter. 比较常用的一个连接方式是Fully Connect Feedforward Network(全连接前馈网络),其概念:前馈(feedforward)也可以称为前向,从信号流向来理解就是输入信号进入网络后,信号流动是单向的,即信号从前一层流向后一层,一直到输出层,其中任意两层之间的连接并没有反馈(feedback),亦即信号没有从后一层又返回到前一层。因为layer和layer之间,所有的neuron都是两两连接,所以它叫Fully connected的network.

深度学习smote 深度学习基础教程_神经网络_02

深度学习smote 深度学习基础教程_损失函数_03

3,神经网络是如何工作的?

深度学习smote 深度学习基础教程_神经网络_04

每一层的计算都是一样的,每一层都用矩阵运算, 矩阵运算的好处是,可以用GPU加速,GPU对matrix的运算是比CPU要来的快的,所以我们写neural network的时候,习惯把它写成matrix operation,然后call GPU来加速它.

深度学习smote 深度学习基础教程_深度学习smote_05

深度学习smote 深度学习基础教程_深度学习smote_06

注:input、output的dimension,加上network structure,就可以确定一个model的形状,前两个是容易知道的,而决定这个network的structure则是整个Deep Learning中最为关键的步骤. 手写数字识别例子我们已知的constraint只有input是256维,output是10维,而中间要有几个hidden layer,每个layer要有几个neuron,也即network的structure, 都是需要我们自己去设计的,它们近乎是决定了function set长什么样子.

深度学习smote 深度学习基础教程_深度学习_07

4,如何评价神经网络的好坏(Goodness of function),即确定损失函数

深度学习smote 深度学习基础教程_损失函数_08

5,找到一个最好的函数(最佳参数)

深度学习smote 深度学习基础教程_深度学习smote_09

深度学习smote 深度学习基础教程_神经网络_10

6, Back Propagation方法update DNN参数

BP(后向传播)是用来快速计算DNN梯度的, 从而更快的更新参数.

如何有效地把这个近百万维的vector给计算出来,这就是Backpropagation要做的事情,所以Backpropagation并不是一个和gradient descent不同的training的方法,它就是gradient descent,它只是一个比较有效率的算法,让你在计算大量数据的gradient的vector的时候更有效率.

  1. 损失函数(Loss function)是定义在单个训练样本上的,也就是就算一个样本的误差,比如我们想要分类,就是预测的类别和实际类别的区别,是一个样本的,用L表示。
  2. 代价函数(Cost function)是定义在整个训练集上面的,也就是所有样本的误差的总和的平均,也就是损失函数的总和的平均,有没有这个平均其实不会影响最后的参数的求解结果。
  3. 总体损失函数(Total loss function)是定义在整个训练集上面的,也就是所有样本的误差的总和。也就是平时我们反向传播需要最小化的值。

深度学习smote 深度学习基础教程_神经网络_11

深度学习smote 深度学习基础教程_损失函数_12

深度学习smote 深度学习基础教程_损失函数_13

1,Forward pass: 就是权值所对应的输入量

深度学习smote 深度学习基础教程_损失函数_14

深度学习smote 深度学习基础教程_神经网络_15

2,Backward pass: 

深度学习smote 深度学习基础教程_深度学习_16

深度学习smote 深度学习基础教程_损失函数_17

深度学习smote 深度学习基础教程_深度学习smote_18

一文弄懂神经网络中的反向传播法 

3,为什么可以反向传播?

深度学习smote 深度学习基础教程_损失函数_19

深度学习smote 深度学习基础教程_损失函数_20

深度学习smote 深度学习基础教程_深度学习_21

深度学习smote 深度学习基础教程_神经网络_22

深度学习smote 深度学习基础教程_损失函数_23

深度学习smote 深度学习基础教程_深度学习smote_24

深度学习smote 深度学习基础教程_神经网络_25

参考:

•My Course: Machine learning and having it deep and structured

•http://speech.ee.ntu.edu.tw/~tlkagk/courses_MLSD15_2.html

•6 hour version: http:///tw_dsconf/ss-62245351

•“Neural Networks and Deep Learning”•written by Michael Nielsen•http://neuralnetworksanddeeplearning.com/

•“Deep Learning” •written by Yoshua Bengio, Ian J. Goodfellow and Aaron Courville •http://www.deeplearningbook.org