《神经网络与机器学习》笔记(一)

《神经网络与深度学习》笔记

本书组织架构

入门篇


第一章 绪论

特征表示方法

局部特征

含义:也称为离散表示符号表示,通常是用one-hot向量的形式

优点:

  1. 这种离散的表示方式具有很好的解释性
  2. 因为向量稀疏,所以用于线性模型时计算效率非常高

缺点:

  1. one-hot向量维数太高,不能扩展(因为维数是由词表大小决定的)
  2. 不同向量之间的相似度为0,无法进行相似度计算

分布式表示

含义:也称为*分散式表示,如NLP中的词嵌入,是用语义空间的基向量进行表示的

优点:

  1. 可以表示成低维的稠密向量
  2. 表示能力强,维数可以指定
  3. 相似度容易计算

缺点:

  1. 解释性不强
深度学习需要解释的问题是:贡献度分配问题

第二章 机器学习概述

损失函数

\begin{aligned} \mathcal{L}(y, f(x ; \theta)) &=\left\{\begin{array}{ll}{0} & {\text { if } y=f(x ; \theta)} \\ {1} & {\text { if } y \neq f(x ; \theta)}\end{array}\right.\\ &=I(y \neq f(x ; \theta)) \end{aligned}\\ 0-1损失函数,能够客观的评价模型好坏,但数学性质不好,不连续且导数部位0,难以优化。

平方损失函数:\mathcal{L}(y, f(x ; \theta))=\frac{1}{2}(y-f(x ; \theta))^{2}\\ 经常用在预测标签y 为实数值的任务中,平方损失函数一般不适用于分类问题。因为输入和输出不为连续值。

交叉熵损失函数:一般用于分类问题(衡量两个概率分布的差异:即标签真实分布y和模型预测分布f(x;\theta)之间的交叉熵)\\ \mathcal{L}(\boldsymbol{y}, f(\boldsymbol{x} ; \theta))=-\sum_{c=1}^{C} y_{c} \log f_{c}(\boldsymbol{x} ; \theta)\\ 由上公式可知,交叉熵损失函数也就是 负对数似然损失函数

Hinge损失函数:在二分类问题中,假设y的取值为{-1,+1},f(x;\theta)\in\mathbb{R}:\\ \begin{aligned} \mathcal{L}(y, f(x ; \theta)) &=\max (0,1-y f(x ; \theta)) \\ & \triangleq[1-y f(x ; \theta)]_{+} \end{aligned} \\ 其中[x]_+=max(0,x)

优化方法

批量梯度下降算法:计算量太大

随机梯度下降算法:无法利用计算机的并行性

小批量梯度下降法:前两者的折中,是目前最主要的优化算法

参数学习

机器学习任务可以分为两类: 一类是样本的特征向量x 和标签y 之间存在未知的函数关系y = h(x),另一类是条件概率p(y|x) 服从某个未知分布。最小二乘法是属于第一类,直接建模x 和标签y 之间的函数关系。此外,线性回归还可以通过建模条件概率p(y|x) 的角度来进行参数估计。

经验风险最小化

可以用平方损失函数来计算:
\begin{aligned} \mathcal{R}(\boldsymbol{w}) &=\sum_{n=1}^{N} \mathcal{L}\left(y^{(n)}, f\left(\boldsymbol{x}^{(n)} ; \boldsymbol{w}\right)\right) \\ &=\frac{1}{2} \sum_{n=1}^{N}\left(y^{(n)}-\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}^{(n)}\right)^{2} \\ &=\frac{1}{2}\left\|\boldsymbol{y}-X^{\mathrm{T}} \boldsymbol{w}\right\|^{2} \end{aligned}\\ 用最小二乘法求得最优参数:\begin{aligned} w^{*} &=\left(X X^{\mathrm{T}}\right)^{-1} X y &=\left(\sum_{n=1}^{N}x^{(n)}\left(x^{(n)}\right)^{\mathrm{T}}\right)^{-1}\left(\sum_{n=1}^{N} x^{(n)} y^{(n)}\right) \end{aligned}\\ 用最小二乘法进行计算有个限制:XX^T必须存在逆矩阵,也就是说X中得行向量必须是线性无关的。\\ 当XX^T不可逆时,有两种方法:1)使用主成分分析等方法先预处理数据,消除特征间的相关性,再用最小二乘法。\\ 2)通过梯度下降法来估计参数,然后用最小均方(LMS)法:w \leftarrow w+\alpha X\left(y-X^{\mathrm{T}} w\right)

结构风险最小化

为了解决最小二乘法中,因为特征间的多重共线性而导致计算不准确的问题,出现了岭回归,即给XXT的对角线元素都加上一个常数λ使得(XXT+λI)满秩。从而最优参数.

岭回归可以看作是结构风险最小化准则下的最小二乘法估计。且其目标函数可以写为:

第三章 线性模型

四种不同的线性分类模型:Logistic回归、Softmax回归、感知机和支持向量机

线性判别函数和决策边界

最简单的是二分类:只需要一个线性判别函数:。决策边界就是特征空间中所有满足的点组成的一个分割超平面。

多分类:是指分类的类别数C大于2。设计多分类的判别函数有三种常用方法:

  1. “一对其余”方式,也就是转化成C个“一对其余”的二分类问题,这需要C个判别函数。

  2. “一对一”方式,就是转化成C(C-1)/2个“一对一的”二分类问题。。这种方式共需要C(C − 1)/2 个判别函数,其中第(i, j) 个判别函数是把类别 i 和类别 j 的样本分开。

  3. “argmax”方式:是一种改进的“一对其余”方式,需要C个判别函数:

    ,对于样本x,如果存在一个类别c,相对于所有的其他类别˜c(˜c≠ c) 有fc(x;wc) > f˜c(x,w˜c),那么x 属于类别c。“argmax”方式的预测函数定义为:

“一对其余”方式和“一对一”方式都存在一个缺陷:特征空间中会存在一些 难以确定类别的区域,而“argmax”方式很好地解决了这个问题:

Logistic 回归

是一种常用的处理二分类问题的线性模型。

为了解决连续的线性函数不适合进行分类的问题,我们引入非线性函数来预测类别标签的后验概率p(y = 1|x)。。

其中通常被称为激活函数,其作用是把线性函数的值域从实数“挤压”到(0,1)之间,可以用来表示概率。。在统计文献中,g(·) 的逆函数g−1(·) 也称为联系函数(Link Function)。

在Logistic 回归中,激活函数就是Logistic 函数,标签y=1的后验概率为:。

Logistic 回归采用交叉熵作为损失函数:

\mathcal{R}(w)=-\frac{1}{N} \sum_{n=1}^{N}\left(p_{r}\left(y^{(n)}=1 | x^{(n)}\right) \log \hat{y}^{(n)}+p_{r}\left(y^{(n)}=0 | x^{(n)}\right) \log \left(1-\hat{y}^{(n)}\right)\right)\\=-\frac{1}{N} \sum_{n=1}^{N}\left(y^{(n)} \log \hat{y}^{(n)}+\left(1-y^{(n)}\right) \log \left(1-\hat{y}^{(n)}\right)\right)

采用梯度下降法来对参数进行优化:

Softmax 回归

也称为多项或多类的Logistic 回归,是Logistic 回归在多分类问题上的推广。

对于多类问题,类别标签y ∈ {1, 2, · · · ,C}可以有C个取值。y是用one-hot向量表示的,给定一个样本x,Softmax 回归预测的属于类别c 的条件概率为:
\begin{aligned} p(y=c | \boldsymbol{x}) &=\operatorname{softmax}\left(\boldsymbol{w}_{c}^{\mathrm{T}} \boldsymbol{x}\right) \\ &=\frac{\exp \left(\boldsymbol{w}_{c}^{\mathrm{T}} \boldsymbol{x}\right)}{\sum_{c^{\prime}=1}^{C} \exp \left(\boldsymbol{w}_{c^{\prime}}^{\mathrm{T}} \boldsymbol{x}\right)} \end{aligned}
其中wc是第c类的权重向量。上述公式向量表示为:
\begin{aligned} \hat{\boldsymbol{y}} &=\operatorname{softmax}\left(W^{\mathrm{T}} \boldsymbol{x}\right) =\frac{\exp \left(W^{\mathrm{T}} \boldsymbol{x}\right)}{1^{\mathrm{T}} \exp \left(W^{\mathrm{T}} \boldsymbol{x}\right)} \end{aligned} ,1为全1向量
Softmax 回归的决策函数可以表示为:

与Logistic 回归的关系:当类别数C = 2 时,Softmax 回归的决策函数为:
\begin{aligned} \hat{y} &=\underset{y \in\{0,1\}}{\arg \max } \boldsymbol{w}_{y}^{\mathrm{T}} \boldsymbol{x} \\ &=I\left(\boldsymbol{w}_{1}^{\mathrm{T}} \boldsymbol{x}-\boldsymbol{w}_{0}^{\mathrm{T}} \boldsymbol{x}>0\right) =I\left(\left(\boldsymbol{w}_{1}-\boldsymbol{w}_{0}\right)^{\mathrm{T}} \boldsymbol{x}>0\right) \end{aligned}
二分类中的权重向量

Softmax 回归也采用交叉熵损失函数,其风险函数为:
\begin{aligned} \mathcal{R}(W) &=-\frac{1}{N} \sum_{n=1}^{N} \sum_{c=1}^{C} \boldsymbol{y}_{c}^{(n)} \log \hat{\boldsymbol{y}}_{c}^{(n)} =-\frac{1}{N} \sum_{n=1}^{N}\left(\boldsymbol{y}^{(n)}\right)^{\mathrm{T}} \log \hat{\boldsymbol{y}}^{(n)} \end{aligned}\\其中\hat{y}^{(n)} = softmax(W^Tx^{(n)}) 为样本x^{(n)} 在每个类别的后验概率
风险函数
采用梯度下降法,Softmax 回归的训练过程为:初始化W~0~ ← 0,然后通过下式进行迭代更新:\\ W_{t+1} \leftarrow W_{t}+\alpha\left(\frac{1}{N} \sum_{n=1}^{N} x^{(n)}\left(y^{(n)}-\hat{y}_{W_{t}}^{(n)}\right)^{\mathrm{T}}\right)

感知器

是一种线性分类器,也是最简单的人工神经网络

感知器的学习算法是一种错误驱动的在线学习算法。先初始化一个权重向量(通常是全零向量),然后每次分错一个样本(x, y)时,即,就用这个样本来更新权重,采用随机梯度下降。

但是感知器的权重更新与样本的顺序有关,只要每次迭代的顺序不一致时,找到的分割超平面也往往不一致。同时,如果训练集不是线性可分的,就永远不会收敛。

为解决对样本顺序的依赖问题,提出了参数平均感知器。

同时,将感知器在多分类上进行扩展,可以得到广义感知器。

支持向量机

参照《西瓜书》

小结

你可能感兴趣的:(《神经网络与机器学习》笔记(一))