机器学习笔记05(Deep Learning->DNN)
Deep Learning-------->DNN(Deep Neural Networks )
又可以称为 DL(Multi-Layer perceptron)
1、什么是深度学习
2、深度学习的步骤
Step 1:Neural Network
Step 2:goodness of function
Step 3:pick the best function
3、Why deeper is better ?
4、Back Propagation
1、什么是深度学习
- 深度学习的model是一个深度神经网络结构(neural structure)
- 深度学习的“深度”是指神经网络的隐层(hidden layer)数量足够多
- 深度学习是自动提取特征(Feature extractor),不需要像逻辑回归那样特征转换(Feature engineering)
参考前文结尾引出部分
2、深度学习的步骤
和前面的学习一样,深度学习也是三个步骤
Step 1:定义一个神经网络结构(neural structure)
神经网络的创建包括三部分:1. 神经网络有多少个隐层(layer) 2. 每一层有多少个神经元(neuron) 3. 神经元之间如何连接
1)神经元:每个神经元都有包含以下因素:bias(b)、function,每个input还有一个weight。
2)举例:全连接
3)工作过程
假设已经定义好了神经网络之后(也就是function找到了),输入和输出都是一个 向量(vector)
如图所示,等式左边,黄色矩阵为 weight 矩阵,蓝色矩阵为 input vector,绿色矩阵为 bias 矩阵
等式右边,为这层神经元的 output,同时也是下一层神经元的输入。
如此第一层的神经元计算便完成了
以此类推,计算下面的神经元
举个栗子:手写识别
设 input 为16*16 = 1*256 维向量,output 仅有十种可能。因此我们需要设计神经元之间的连接方式。
Step 2:goodness of function 确定损失函数
和逻辑回归的方法一样,用交叉熵,最终的 L 为所有测试数据的交叉熵总和
Step 3:pick the best function 找到最有函数(参数)
方法:Gradient Descent
3、why deeper is better?
方法:Modularization(模组化)
举例说明:将人分为 长头发男、短头发男、长头发女、短头发女。
较少的长发男的样本,因此我发准确训练。但是如果只要求分类男女、长短发就都有了较多的例子。然后再进行进一步的分类,就解决了某一样本不足的问题。
结论:deep learning 实际上使用了 Modularization 的方法,可以用更少的 data 得到更可靠的结果。
4、Back Propagation
Back Propagation是用于计算微分的方法,在此用此方法来 update DNN参数
首先回忆Gradient Descent 的过程,需要对loss function 求偏导。如下图
数学微分基础
使用Back Propagation方法update DNN参数
1、 由上图可知,我们需要求得 C 对 w 的偏微分,由前面的数学微分基础可得下图,将其分为两部分,前向传递部分 与 后向传递部分。
2、 前向传递部分
此部分较为简单,直接就是对应的系数。
3、 后向传递部分 show time
假设后面的微分可以知道,也就可以推得前面的微分。如下所示
具体计算
4、总结:
说到底,其实也就是如果从前往后求偏导,式子如果比较麻烦,可以从后开始求偏导,利用前面介绍的数学基础,往前带入再求。