4.6 卷积神经网络
卷积神经网络特别适用于图像识别。特点如下:</br>A. 对于卷积神经网络来说,并不是所有上下层神经元都能直接相连,而是通过“卷积核”作为中介。同一个卷积核在所有图像是共享的,图像通过卷积操作后仍然保留原先的位置关系。</br>B. 若没有卷积操作,图像学习的参数量是灾难级的。</br>C. 利用语音语谱结构中的局部信息,卷积神经网络照样能应用在语音识别中。
1. 在普通的全连接网络或卷积神经网络中,每层神经元的信号只能向下一层传播,样本的处理在各个时刻独立,因此又被成为前向神经网络(Feed-forward Neural Networks)。
2. 可以以傅里叶变换和滤波器的概念去理解卷积的作用。
4.6.1 卷积神经网络基本模型及基本概念以MNIST数字图像分类输入28×28像素为例,基本模型如下:输入层有28×28个输入神经元,这些神经元用于对 MNIST 图像的像素强度进行编码;卷积层采用一个5×5局部感受野和 20 个特征映射,其结果是一个20×24×24隐藏特征神经元层;池化层采用2×2最大值池化,遍及20个特征 ...
4.5 神经网络梯度消失问题
4.5.1 梯度消失现象在理论上的深度网络比浅层网络更加强大,但在实际中会发现深度神经网络并不能比浅层网络性能好太多,不同层的学习速度差异很大,根本的原因是的学习的速度下降了。</br>在某些深度神经网络中,在隐藏层BP的时候梯度倾向于变小。这意味着在前面的隐藏层中的神经元学习速度要慢于后面的隐藏层。这个现象也被称作是消失的梯度问题。
4.5.2 梯度消失原因分析假设一神经网络,有三层隐藏层且每一层都只有一个单一的神经元:\(w1,w_2,…\)是权重,\(b_1,b_2,…\)是偏置,\(C \)则是某个代价函数,从第 \(j\)个神经元的输出\(a_j=σ(z_j)\),其中\(σ\)是通常的 S 型激活函数,\(z_j=w_j∙a{j-1}+b_j\)是神经元的带权输入,代价函数\(C \) 是网络输出\(a_4\)的函数。
计算第一个隐藏神经元梯度 \(∂C/∂b_1\): 假设对偏置 \(b_1\) 进行了微小的调整\(\Delta b_1\),会导致网络中剩下的元素一系列的变化。首先会对第一个隐藏元输出产生意个\(\Delta a_1\)的变化,这 ...
4.4 深入反向传播算法
反向传播算法是计算梯度的快速算法。反向传播算法是一个对代价函数\( C \) 关于任何权重\( w\) 或偏置\( b\)的偏导数的表达式,通过这个表达式,在改变权重和偏置时,表明代价函数变化的快慢。
4.4.1 反向传播模型与假设 主要思想:
将训练集数据输入到DNN的输入层,经过隐藏层,最后达到输出层并输出结果,这是DNN的前向传播过程。
由于DNN的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层。
仅仅用一次前向传播,加上一次后向传播,就可以同时计算所有的偏导数\(\frac {∂C}{∂w_{jk}^l}\)、\(\frac {∂C}{∂b_j^l}\)。
根据代价函数的误差,调整各种参数的值,不断迭代上述过程,直至收敛。
反向传播的计算代价大概是前向传播的两倍,比起直接计算导数,显然有着更大的优势。
模型描述:
参数 \(w_{jk}^l\) 表示从 \((l-1)^{th}\) 层的 \(k^{th}\) 个神经元到 \(l^{th}\) 层的 \(j^{th}\) 个神经元的连接上的权重。
\(b_j ...
4.3 深入梯度下降算法
4.3.1 神经网络代价函数 代价函数 \(C(w; b)\): 设计算法找到权重\(w\)和偏置\(b\),使得网络的输出 \(y(x) \) 最好的拟合所有的训练输入 \(x\)的输出\(a\),为了量化这个目标,需要定义一个代价函数\(C(w; b)\)),常见的二次代价函数为:
C(w; b)=\frac {1}{2m} ∑_x ∥y(x)- a∥ ^2训练神经网络的目的就是要找到能最小话得代价函数\(C(w,b) ≈ 0\)的权重和偏置。
求解\(C(w; b)\) 最小值的方法:
微积分求解极值:若\(C\)是一个只有少数几个变量的函数,可以通过微积分寻找\(C\)的极值点。但神经网络有很多很多权重和偏置的变量,通过微积分来计算最小值是不可行的。
梯度下降的算法近似求全局最小值\(min\ C(w; b)\):在机器学习中通常采用的求极值的方法。
4.3.2 神经网络梯度下降算法 算法推演: 假设\(C(v) \)函数只有两个变量\(v_1 \) 和\(v_2\):
当在 \(v_1 \) 和\(v_2\)方向分别移动一个很小的量,即\(\Delta v_1\ ...
4.2 深入神经元激活函数
单层感知器一般采用的是符号激活函数(阶跃函数)作为神经元激励。随着深度学习发展,后续出现了S型神经元、Tanh型神经元、ReLU型神经元等。
4.2.1 阶跃激活函数型神经元 模型描述:
输入:多个输入\(x_1,x_2…,x_m\),输入值为任意实数。
权重:\(w_1,w_2,…,w_m\)每个输入有与之对应的权重,表示相应输入对于输出重要性的实数。
阈值:也称为偏置,是神经元的一个参数。可以把偏置看作一种表示让神经元输出1有多容易的估算,若偏置很大输出 1 则容易的。若偏置是一个非常小的负数,输出 1 则很困难。\(w_0×1=b\)
输出:0者1。由分配权重后的总和\(∑_j {w_j x_j}\),分配权重后的总和小于或大于一些阈值决定。output =
\begin {cases}
0\ \ \ \ \ \ \ if \ \ ∑_j {w_j x_j} ≤ threshold \\
1\ \ \ \ \ \ \ if \ \ ∑_j {w_j x_j} > threshold
\end {cases}若\(wx=∑_j {w_j x_j},b=-thresh ...
4.1 深度学习概述
深度学习是早期人工神经网络算法的衍生,是深度神经网络的统称。</br>Deep Neural Network(DNN)—深度神经网络 </br>Convolutional Neural Network(CNN)—卷积神经网络 </br>Recurrent Neural Network(RNN)—循环神经网络 </br>Long Short Term Memory (LSTM)—长短记忆时间循环神经网络 </br>
神经网络的发展阶段:按照隐藏层的层数可分为:感知器(无隐藏层)、多层感知器(包含一隐藏层)、深度神经网络(包含两个及两个以上的隐藏层)。深度神经网络又分化为卷积神经网络、循环神经网络。
深度神经网络一般模型及特点:描述:包含两个及两个以上的隐藏层的神经网络称为深度神经网络,其中“深度”没有固定定义。</br>局限性:DNN在理论上可以拟合任一函数,但对于非连续的且有突然极陡跳跃的函数,一般来说无法使用DNN进行近似。</br>优势:DNN表达力更强,更节约资源。虽然仅有一个隐藏层的神 ...
3.4 推荐系统
推荐系统是机器学习中的一个重要的应用。对机器学习来说特征选择是很重要的,所选择的特征将对学习算法的性能有很大的影响,推荐系统可以自动学习一套好的特征。具体应用:
降低信息过载,提高站点的点击率/转化率。
加深对用户的了解,为用户提供定制化服务。
帮助用户找到想要的商品,可以让小众的用户找到自己感兴趣的内容(长尾理论)。
推荐系统采用的算法有:基于内容的算法、协同过滤算法、基于模型的算法(用机器学习来预测)、混合算法(现实应用中一般通过给不同算法的结果加权重来综合结果)。
3.4.1 基于内容的推荐系统 基于内容的推荐系统的概念:基于内容的推荐系统:根据用户对物品的评价历史,以及物品之间的相似度进行推荐。
算法主要步骤:
物品表征建模:从物品中抽取出一些特征来表示该物品。
用户喜好特征建模:从用户对某些物品的历史评价中,学习用户的偏好模型。
推荐物品:通过匹配某一用户的偏好及候选物的特征,为此用户推荐一组相关性最大的物品。
基于内容的电影推荐系统:
模型:用户数量\(n_u\)、电影数量\(n_m\)、若用户\(j \)给电影i打过分则\(r(i,j)=1\)、用户\(j \ ...
3.3 异常检测
异常检测主要用于非监督学习问题,但它又类似于一些监督学习问题,但又无法根据结果变量y 的值来确定数据是否真的是异常的。
3.3.1 异常检测与高斯分布 异常检测基本概念:描述:给定假设数据都为正常的数据集\(\{x^{(1)}, x^{(2)} ,…, x^{(m)}\} x∈R^n\),判断测试数据\(x{test}\)属于正常数据的可能性\(p(x)\),即判断\(x{test}\)是不是异常的:
\begin {cases}
p(x)