机器学习基础:神经网络——感知机

目录

1. 表示学习

2. 生物神经元 V.S. 人造神经元

3. 感知机

3.1 训练感知机

3.2 激活函数

3.3 一层感知机

3.4 多层感知机

3.4.1 隐藏层神经元数量选择

3.4.2 隐藏层如何学习参数

3.4.3 多层感知机的性质

3.4.4 多层感知机总结


1. 表示学习

表示学习(representation Learning)是神经网络的一个常见应用:

表示学习的基本思路,是找到对于原始数据更好的表达,以方便后续任务(比如分类)。机器学习中,同样的数据的不同表达,会直接决定后续任务的难易程度(换言之,表示方法的选择通常依赖于后续任务的需求),因此找到好的数据表示往往是机器学习的核心任务。

例如图像相关的任务,数据的特征维度太高(通常在几十万上百万的维度,因为图像的每个像素点都是一个特征)。

深度学习中常用embedding来对高维度数据进行处理,将其重新编码成维度较低的特征。

深度网络可以通过学习embedding后的特征来完成各种任务。

2. 生物神经元 V.S. 人造神经元

首先梦回高中生物——神经元:

输入信号,输出信号,各方输入信号加权取平均,如果超过某一个阈值就将信号传向下一个神经元

\vec{x}_i=<x_{i1},x_{i2},..., x_{in}>代表各方的输入组成的输入向量,b是常数偏置项bias,对这些量进行加权求和(参数的权重同样是一个向量\vec{w}=<w_1,...,w_n>\in \mathbb{R^n})然后通过一个激活函数activation\: \: function\: \: f这也是个可选的超参数,可以为神经元选用不同的激活函数,激活后的值是一个标量y_i\in \mathbb{R^n}继续传入下一个神经元;

这个过程中的超参数是f激活函数,需要学习的参数是\vec{w}b(b\equiv w_0)

形式化的数学表示为:

3. 感知机

感知机(Perceptron):

  • 感知机本质上就是只有单个神经元的神经网络
  • 一个感知机就是一个二元的线性分类器,形式化表示如下:

这里的阈值是0,也就是说只要input的加权和\geq 0那么感知机就输出1

3.1 训练感知机

训练感知机(Training Perceptron)是试图求算最佳的参数向量\vec{w}最小化训练误差

常用的方法是通过迭代(Iterative)的方式对训练集上进行反复训练。具体的算法可以如下表示:

基本思想是:

  • 对于每一个训练样本(x_i,y_i),得到它的预测值和实际值之间的误差。并通过这个误差和优化算法来更新所有的需要求算的参数w_j
  • 因为每个样本x_i的特征维度是j因此,整个模型一共会有j个参数。
  • 参数迭代的方式是梯度下降,图中使用的损失函数是:\sqrt{y^2_i-\hat{y}^2_i},因此它的梯度是图中下标红线的部分。
  • \lambda是学习率,是所有参数共有的控制梯度下降速度的参数,对于每个w_j\lambda都是一样的。
  • 在红线下标的式子的最后一项x_{ij}是这个特征自身的值,如果y_i-\hat{y}_i是个负数,那么w_j就会向更小的方向更新,同时如果x_{ij}较大,那么这个特征梯度下降的速度就会很快。

这里的每个x_1,x_2...应该写成x_{i1},x_{i2},也就是表示的特征的值,而不是样本的值。

根据计算,w_1,w_3下降的幅度比w_2大很多,因为他们的特征值x_{ij}比较大


下面给出一个梯度更新的动态例子:

一共有四个训练样本i=1...4,每个训练样本的特征数量是j=1,2两个。

计算\hat{y}_i的公式在左下角,通过参数,样本向量的加权求和和激活函数得到。

根据y_i, \hat{y}_i我们可以计算出误差,并通过梯度下降公式来计算每个特征的参数应该如何更新。

对于偏置b,我们始终把它看成是参数向量\vec{w}中的第一个参数w_0,统一进行梯度更新求算;我们规定x_{i0}始终为1

在进行迭代之前需要给出一个初始化的参数向量,即\vec{w}=\{b,w_1,w_2\}=\{0,0,0\}

第一个epoch中:

前两个样本的预测值和实际值相同,因此不需要梯度更新。第三个样本产生了误差,因此根据梯度更新公式,参数的值被更新成\vec{w}=\{b,w_1,w_2\}=\{-1,0,0\}。根据更新后的参数我们计算最后一个样本,发现没有误差,第一个epoch中所有的样本都执行了一遍,因此第一个epoch结束:

第二个epoch中:

第一个样本需要梯度更新,w_j=w_j+x_{ij}\vec{w}被更新成\{-1+1, 0+1, 0+1\} = \{0,1,1\}。第二个样本是正确的,不需要更新,第三个样本又产生了误差,需要梯度更新w_j=w_j-x_{ij}
\vec{w}被更新成\{0-1, 1-0, 1-0\} = \{-1,1,1\}。第四个样本不需要梯度更新,epoch\: \: 2结束。

第三个epoch中:

所有样本都没有发生梯度更新,这个模型已经收敛,因此不需要进行新的epoch,迭代结束。

3.2 激活函数

Activation Function:一般有以下三种选择。 

激活函数的作用一方面将加权求和后的信号进行归一化到[0,1]之间,另外一方面可以帮助多层的感知机模型获得非线性分类的能力。

对于感知机自身的激活函数:

这只能对线性可分的数据有一个较好的拟合结果,因为他本身基于的是线性假设,求解的总是一个 \vec{w}\cdot \vec{x_i}+b的线性方程。

感知机也不能保证分类数据有最大的决策边界(那是SVM模型的任务)。感知机更不能够保证对非线性可分(non-linearly separable)数据拟合的很好。感知机本质上是基于线性假设,如果把激活函数改成sigmoid函数,那么感知机就可以成为一个逻辑回归模型。

3.3 一层感知机

我们上面说的概念对应的是一个感知机,对应的是一个神经元结点,那么如果有多个神经元结点,就能用他们来组成一层感知机。

那么为什么要把layer的概念引入感知机呢?因为同一层内的所有感知机接受的是同样的输入,通过训练可以形成不同的参数,例如第一个节点y_1相关的参数是\vec{w}_{i1}=\{w_{11},w_{21}...\}但第二个感知机y_2的相关参数是\vec{w}_{i2}。这样的一层感知机对于同一个输入最后就可以给出多个输出的结果,如果再结合softmax激活函数,就可以进行多分类任务。当然这个是后面神经网络的内容,我们在这里只是通过这种方式来认识什么是一层感知机。有了一层感知机的概念,就可以扩展到多层感知机。

3.4 多层感知机

多层感知机有三个部分组成:

  • 输入层
  • 隐藏层
  • 输出层

输入层的神经元的数量取决于输入样本的特征数。输出层的神经元数量取决于分类任务或者是回归任务。隐藏层可以有很多层,图中只画了一层。每个隐藏层存在的意义都是对输入进行重新编码,编码成抽象的向量,然后输出给后面的层。在多分类任务中输出层的神经元数量与分类的类别数量一致+ softmax激活函数。

常见选项:

  • 二分类任务中,输出层一个神经元+阶跃函数作为激活函数。
  • N路分类——N个输出神经元和softmax激活函数。
  • 回归任务中输出层只有一个神经元+ sigmoid激活函数。

3.4.1 隐藏层神经元数量选择

鉴于我们不知道这一层应该学习什么特征,如何挑选合适的神经元数量?

在理论上,取决于决策边界的复杂性等因素;

在实践中,通常只是在输入和输出大小之间选择一个任意的值。

3.4.2 隐藏层如何学习参数

通过后向传播算法backpropagation

输出层的预测值和真实标签产生的误差的梯度可以通过链式法则传播到任意一个隐藏层,从而根据感知机更新参数的方式来更新每一个神经元的参数。这个过程是借助随机梯度下降的方式来完成的。因此和单个感知机一样,也需要设置一个学习率\lambda

3.4.3 多层感知机的性质

通用逼近定理(Universal approximation theorem)具有隐藏层的神经网络可以逼近任意的连续函数。这意味着多层感知机(神经网络)可以拟合任何线性或者非线性的函数(不同于逻辑回归或者 SVM 只能基于线性可分数据集)。上述的复杂的拟合任务必须要借助非线性!

多层感知机如何具备非线性能力:

例如我们具有一个三层的感知机:一个输入层,一个输出层和一个隐藏层,三个层的参数矩阵我们分别用\textbf{w}_{L_0}, \textbf{w}_{L_1}, \textbf{w}_{L_2} 表示。那么一个输入x_i经过整个网络的过程可以表示成:

其中f都是非线性的激活函数。非常清楚,这个式子可以拟合一个复杂的非线性函数。

作为对比,如果不采用任何非线性函数,只是使用上述的三层感知机,那么这个过程可以表示成:

通过最后的化简,这还是一个线性的函数,换句话说,还是只能处理线性可分的数据集。

因此我们说多层感知机必须搭配非线性的激活函数才能具有强大的非线性拟合能力。

3.4.4 多层感知机总结

因为多层感知机有拟合复杂数据的能力,那么他就一定比线性模型的表现更好么?

否定的,因为对于很多简单的数据集,仅用线性假设就可以很好解决, 如果采用太复杂的模型,很容易过拟合。

因为神经网络可以在隐藏层学习到他们自己的表示(representation)因此,他们不需要任何特征工程。

错的,如果不进行任何特征工程,那么很多噪声数据或者特征就容易给模型的拟合带来不利影响,garbage\: \: in \: \: garbage\: \: out。所以特征工程在很多时候都是需要的。

由于NN是通用的逼近器,它们保证比任何其他机器学习方法具有更好的概括性。

由于NN在隐藏层中学习自己的表征,它们不需要任何特征工程。

多层感知机的优缺点

  • 可以适用多种任务:分类和回归任务
  • 通用性很好,可以拟合多种分布
  • 隐藏层可以学习到自己的特征表示
  • 参数量太大,需要消耗很多的内存资源;
  • 训练速度太慢,而且以为模型复杂容易过拟合
  • 随机梯度下降不能保证每次都能收敛到同一结果
  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
深度学习 快速推进中的机器学习与人工智能前沿 人工智能与机器学习(1)全文共61页,当前为第1页。 提纲 深度学习(DL)及其应用前沿 DL在CV领域应用的启示 关键算法介绍 Perceptron及学习算法 MLP及其BP算法 Auto-Encoder CNN及其主要变种 关于DL的思考与讨论 2 人工智能与机器学习(1)全文共61页,当前为第2页。 机器学习的基本任务 3 Class label (Classification) Vector (Estimation) {dog, cat, horse,, …} Object recognition Super resolution Low-resolution image High-resolution image 人工智能与机器学习(1)全文共61页,当前为第3页。 源起——生物神经系统的启示 神经元之间通过突触(synapse)连接 层级感受野,学习使突触连接增强或变弱甚至消失 4 Hubel, D. H. & Wiesel, T. N. (1962) 人工智能与机器学习(1)全文共61页,当前为第4页。 第一代神经网络 感知机(Perceptrons)模型[Rosenblatt, 1957] 二类分类,单个神经元的功能(输入输出关系) = f为激活函数,其中: = =1 = =0 5 Frank Rosenblatt(1957), The Perceptron--a perceiving and recognizing automaton. Report 85-460-1, Cornell Aeronautical Laboratory. 人工智能与机器学习(1)全文共61页,当前为第5页。 第一代神经网络 单层感知机(Perceptrons)模型的局限性 Minsky & Papert的专著Perceptron(1969) 只能对线性可分的模式进行分类 解决不了异或问题 几乎宣判了这类模型的死刑,导致了随后多年NN研究的低潮 6 人工智能与机器学习(1)全文共61页,当前为第6页。 2nd Generation Neural Networks 多层感知机(Multi-layer Perceptron, MLP) 超过1层的hidden layers(正确输出未知的层) BP算法 [Rumelhart et al., 1986] Compute error signal; Then, back-propagate error signal to get derivatives for learning 7 David E. Rumelhart,, Geoffrey E. Hinton, and Ronald J. Williams. (Oct.1986). "Learning representations by back-propagating errors". Nature 323 (6088): 533–536 Ʃ Ʃ Ʃ Ʃ Ʃ Ʃ 1 2 3 1 2 人工智能与机器学习(1)全文共61页,当前为第7页。 Error Backpropagation W is the parameter of the network; J is the objective function Feedforward operation Back error propagation David E. Rumelhart,, Geoffrey E. Hinton, and Ronald J. Williams. (Oct.1986). "Learning representations by back-propagating errors". Nature 323 (6088): 533–536 Output layer Hidden layers Input layer Target values 人工智能与机器学习(1)全文共61页,当前为第8页。 2nd Generation Neural Networks 理论上多层好 两层权重即可逼近任何连续函数映射 遗憾的是,训练困难 It requires labeled training data Almost all data is unlabeled. The learning time does not scale well It is very slow in networks with multiple hidden layers. It can get stuck in poor local optima These are often quite good, but for deep nets they are far
1 简介1 1.1 自动语音识别:更好的沟通之桥 1 1.1.1 人类之间的交流 2 1.1.2 人机交流 2 1.2 语音识别系统的基本结构 4 1.3 全书结构 6 1.3.1 第一部分:传统声学模型6 1.3.2 第二部分:深度神经网络6 1.3.3 第三部分:语音识别中的DNN-HMM 混合系统7 1.3.4 第四部分:深度神经网络中的特征表示学习 7 1.3.5 第五部分:高级的深度模型 7 第一部分传统声学模型9 2 混合高斯模型10 2.1 随机变量10 2.2 高斯分布和混合高斯随机变量11 2.3 参数估计13 2.4 采用混合高斯分布对语音特征建模 15 3 隐马尔可夫模型及其变体17 3.1 介绍17 3.2 马尔可夫链19 3.3 序列与模型 20 3.3.1 隐马尔可夫模型的性质21 3.3.2 隐马尔可夫模型的仿真22 3.3.3 隐马尔可夫模型似然度的计算22 3.3.4 计算似然度的高效算法24 3.3.5 前向与后向递归式的证明25 3.4 期望zui大化算法及其在学习HMM 参数中的应用 26 3.4.1 期望zui大化算法介绍 26 3.4.2 使用EM 算法来学习HMM 参数——Baum-Welch 算法 28 3.5 用于解码HMM 状态序列的维特比算法32 3.5.1 动态规划和维特比算法32 3.5.2 用于解码HMM 状态的动态规划算法33 3.6 隐马尔可夫模型和生成语音识别模型的变体35 3.6.1 用于语音识别的GMM-HMM 模型 36 3.6.2 基于轨迹和隐藏动态模型的语音建模和识别37 3.6.3 使用生成模型HMM 及其变体解决语音识别问题 38 第二部分深度神经网络41 4 深度神经网络42 4.1 深度神经网络框架42 4.2 使用误差反向传播来进行参数训练 45 4.2.1 训练准则 45 4.2.2 训练算法46 4.3 实际应用50 4.3.1 数据预处理51 4.3.2 模型初始化52 4.3.3 权重衰减52 4.3.4 丢弃法 53 4.3.5 批量块大小的选择55 4.3.6 取样随机化56 4.3.7 惯性系数 57 4.3.8 学习率和停止准则58 4.3.9 网络结构59 4.3.10 可复现性与可重启性 59 5 高级模型初始化技术61 5.1 受限玻尔兹曼机61 5.1.1 受限玻尔兹曼机的属性63 5.1.2 受限玻尔兹曼机参数学习66 5.2 深度置信网络预训练 69 5.3 降噪自动编码器预训练71 5.4 鉴别性预训练74 5.5 混合预训练75 5.6 采用丢弃法的预训练 75 第三部分语音识别中的深度神经网络–隐马尔可夫混合模型77 6 深度神经网络–隐马尔可夫模型混合系统78 6.1 DNN-HMM 混合系统 78 6.1.1 结构78 6.1.2 用CD-DNN-HMM 解码80 6.1.3 CD-DNN-HMM 训练过程81 6.1.4 上下文窗口的影响83 6.2 CD-DNN-HMM 的关键模块及分析 85 6.2.1 进行比较和分析的数据集和实验85 6.2.2 对单音素或者三音素的状态进行建模 87 6.2.3 越深越好88 6.2.4 利用相邻的语音帧89 6.2.5 预训练 90 6.2.6 训练数据的标注质量的影响 90 6.2.7 调整转移概率 91 6.3 基于KL 距离的隐马尔可夫模型91 7 训练和解码的加速93 7.1 训练加速93 7.1.1 使用多GPU 流水线反向传播94 7.1.2 异步随机梯度下降97 7.1.3 增广拉格朗日算法及乘子方向交替算法100 7.1.4 减小模型规模 101 7.1.5 其他方法102 7.2 加速解码103 7.2.1 并行计算103 7.2.2 稀疏网络105 7.2.3 低秩近似107 7.2.4 用大尺寸DNN 训练小尺寸DNN108 7.2.5 多帧DNN 109 8 深度神经网络序列鉴别性训练111 8.1 序列鉴别性训练准则 111 8.1.1 zui大相互信息 112 8.1.2 增强型MMI 113 8.1.3 zui小音素错误/状态级zui小贝叶斯风险114 8.1.4 统一的公式115 8.2 具体实现中的考量116 8.2.1 词图产生116 8.2.2 词图补偿117 8.2.3 帧平滑 119 8.2.4 学习率调整119 8.2.5 训练准则选择 120 8.2.6 其他考量120 8.3 噪声对比估计 121 8.3.1 将概率密度估计问题转换为二分类设计问题121 8.3.2 拓展到未归一化的模型123 8.3.3 在深度学习网络训练中应用噪声对比估计算法 124 第四部分深度神经网络中的特征表示学习127 9 深度神经网络中的特征表示学习128 9.1 特征和分类器的联合学习128 9.2 特征层级129 9.3 使用随意输入特征的灵活性 133 9.4 特征的鲁棒性 134 9.4.1 对说话人变化的鲁棒性134 9.4.2 对环境变化的鲁棒性 135 9.5 对环境的鲁棒性137 9.5.1 对噪声的鲁棒性138 9.5.2 对语速变化的鲁棒性 140 9.6 缺乏严重信号失真情况下的推广能力141 10 深度神经网络和混合高斯模型的融合144 10.1 在GMM-HMM 系统中使用由DNN 衍生的特征144 10.1.1 使用Tandem 和瓶颈特征的GMM-HMM 模型144 10.1.2 DNN-HMM 混合系统与采用深度特征的GMM-HMM 系统的比较147 10.2 识别结果融合技术149 10.2.1 识别错误票选降低技术(ROVER) 149 10.2.2 分段条件随机场(SCARF) 151 10.2.3 zui小贝叶斯风险词图融合153 10.3 帧级别的声学分数融合153 10.4 多流语音识别 154 11 深度神经网络的自适应技术157 11.1 深度神经网络中的自适应问题157 11.2 线性变换159 11.2.1 线性输入网络.159 11.2.2 线性输出网络 159 11.3 线性隐层网络 161 11.4 保守训练162 11.4.1 L2 正则项163 11.4.2 KL 距离正则项163 11.4.3 减少每个说话人的模型开销 165 11.5 子空间方法167 11.5.1 通过主成分分析构建子空间 167 11.5.2 噪声感知、说话人感知及设备感知训练168 11.5.3 张量172 11.6 DNN 说话人自适应的效果172 11.6.1 基于KL 距离的正则化方法 173 11.6.2 说话人感知训练174 第五部分先进的深度学习模型177 12 深度神经网络中的表征共享和迁移178 12.1 多任务和迁移学习178 12.1.1 多任务学习 178 12.1.2 迁移学习180 12.2 多语言和跨语言语音识别180 12.2.1 基于Tandem 或瓶颈特征的跨语言语音识别181 12.2.2 共享隐层的多语言深度神经网络182 12.2.3 跨语言模型迁移185 12.3 语音识别中深度神经网络的多目标学习188 12.3.1 使用多任务学习的鲁棒语音识别188 12.3.2 使用多任务学习改善音素识别189 12.3.3 同时识别音素和字素(graphemes) 190 12.4 使用视听信息的鲁棒语音识别 190 13 循环神经网络及相关模型192 13.1 介绍192 13.2 基本循环神经网络中的状态-空间公式194 13.3 沿时反向传播学习算法195 13.3.1 zui小化目标函数 196 13.3.2 误差项的递归计算196 13.3.3 循环神经网络权重的更新197 13.4 一种用于学习循环神经网络的原始对偶技术199 13.4.1 循环神经网络学习的难点199 13.4.2 回声状态(Echo-State)性质及其充分条件 199 13.4.3 将循环神经网络的学习转化为带约束的优化问题 200 13.4.4 一种用于学习RNN 的原始对偶方法201 13.5 结合长短时记忆单元(LSTM)的循环神经网络203 13.5.1 动机与应用203 13.5.2 长短时记忆单元的神经元架构204 13.5.3 LSTM-RNN 的训练205 13.6 循环神经网络的对比分析205 13.6.1 信息流方向的对比:自上而下还是自下而上 206 13.6.2 信息表征的对比:集中式还是分布式208 13.6.3 解释能力的对比:隐含层推断还是端到端学习209 13.6.4 参数化方式的对比:吝啬参数集合还是大规模参数矩阵 209 13.6.5 模型学习方法的对比:变分推理还是梯度下降210 13.6.6 识别正确率的比较211 13.7 讨论212 14 计算型网络214 14.1 计算型网络214 14.2 前向计算215 14.3 模型训练 218 14.4 典型的计算节点222 14.4.1 无操作数的计算节点 223 14.4.2 含一个操作数的计算节点223 14.4.3 含两个操作数的计算节点228 14.4.4 用来计算统计量的计算节点类型235 14.5 卷积神经网络 236 14.6 循环连接 239 14.6.1 只在循环中一个接一个地处理样本240 14.6.2 同时处理多个句子242 14.6.3 创建任意的循环神经网络243 15 总结及未来研究方向245 15.1 路线图 245 15.1.1 语音识别中的深度神经网络启蒙245 15.1.2 深度神经网络训练和解码加速248 15.1.3 序列鉴别性训练248 15.1.4 特征处理249 15.1.5 自适应 250 15.1.6 多任务和迁移学习251 15.1.7 卷积神经网络 251 15.1.8 循环神经网络和长短时记忆神经网络251 15.1.9 其他深度模型 252 15.2 技术前沿和未来方向 252 15.2.1 技术前沿简析252 15.2.2 未来方向253

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值