〇、写在前面
参考资料:
- 网易云课堂吴恩达深度学习
- 《深度学习》花书
- 深度学习应用开发,浙江大学城市学院,网易云课堂
一、深度学习概述
前驱知识:高等数学/数学分析、线性代数、概率论、机器学习理论,编程基础。
二、标准神经网络框架(Standard NN)
用途:预测,广告ctr
2.1 单层感知机模型
M-P神经元模型
把这样的神经元按层次结构连接起来就成了神经网络。
下图为两个输入神经元的感知机网络结构
弊端是只能处理线性问题
2.1.1 PLA算法(Percetron Learning Algorithm)
一般地,给定训练数据
(x1,y1),…,(xm,ym),其中
xi∈Rn和
yi∈{0,1},权重
ω和阈值
θ可以通过学习得到,阈值可以看作一个固定输入为-1的”哑结点“。
对所有的权重
ω1,...,ωn+1,我们可以利用训练数据学习:
ωj←ωj+Δωj,
Δωj=η(yi−y^i)xij
其中,
η是学习率,从式中可以看出感知机只根据错误的程度调整权重。这里上标j指的是第j个输入神经元。
2.2 前馈神经网络
二层感知机模型只能够处理线性可分的问题,而若想处理非线性可分的问题,则需要多层感知机,也可以称为多层神经网络。其利用BP算法来调整参数。
全连接层(Full Connected Layer)
2.2.1 误差逆传播算法(BackPropagation,BP)
d个属性描述输入特征,l个属性描述输出特征,中间有q个隐层,输出层的阈值用
θj表示,隐层的阈值用
γh,输入层和隐层的连接权值为
vih,隐层和输出层的连接权值为
whj,如下图所示(图片来源《机器学习》周志华)。
输入: 训练集
D={(x1,y1),...,(xm,ym)},xi∈Rd,yi∈Rl,学习率
η(有时每个层的
η都不同)。
过程:
- 在(0,1)范围里随机初始化所有权值和阈值
- 对每个训练样本
(xi,yi),i=1,...,m
(a)计算当前输出
y^ji=sigmoid(βj−θj)
(b)计算梯度项
gj=y^ji(1−y^ji)(yji−y^ji)和
eh=bh(1−bh)∑j=1lwhjgj
(c)更新权值和阈值
Δwhj=ηgjbh,Δθj=−ηgj,Δvih=ηehxi,Δγh=−ηeh
- 重复2,直到达到停止条件。
输出: 连接权和阈值确定的多层神经网络。
2.2.2 停止条件
将数据分成训练集和验证集,若训练误差降低,而验证集误差增加则停止训练。
2.3 其它网络
RBF网络
ART网络
SOM网络
级联相关网络
elman网络
Boltzmann机
2.4 激活函数
见激活函数文章:点击这里
2.5 dropout
随机删除全连接层中的若干神经元来避免过拟合。
三、卷积神经网络(Convolutional NN)
可以看这篇文章
四、循环神经网络(RNN)
语音识别,翻译
五、混合神经网络
自动驾驶