读书笔记-机器学习(二)

目录

三、决策树

1. 划分属性的选择问题

1.1 信息增益(information gain)

1.2 基尼指数

2. 剪枝

2.1 预剪枝

2.2 后剪枝

3. 缺失值

3.1 属性选择

3.2 样本划分

4. 多变量决策树

四、 神经网络

1. 感知机

2. 误差逆传播算法

3. 解决过拟合

4. 全局最小与局部最小

5. 常见神经网络


三、决策树

基于树的结构,通过对每个属性进行测试,来对样本进行分类。一颗决策树包含,根节点、中间节点、叶子节点。叶子节点对应了最终的分类,其他节点则对应一个属性的测试。根节点包含样本全集,根节点到叶子节点的路径对应一个判断序列。

决策树的一般生成流程(蓝色圈表示递归的退出):

1. 划分属性的选择问题

决策树最关键的就是,如何选择具有最优区分度的属性来对节点包含的样本进行划分。一般原则是:分支节点所包含的样本尽可能属于统一类别,即节点“纯度”(purity)高(一般通过信息增益或基尼指数衡量)。

假设有样本集合D,包含k类样本,第k类样本所占比例为p_k(k=1,2\dots,|y|)|y|表示集合D的样本类别数。

样本集合D采用属性a进行划分:

a为离散型属性时,假设有V个可能的取值,则会产生V个分支。其中第v个节点包含D在属性a上所有取值为a^v的样本组成的集合,记为D^v。根据样本数量不同,考虑其权值\frac{|D^v|}{|D|},即样本多的节点影响大。

a为连续属性时,假设aD上有n个不同的取值,将其从小到大排序为\{a^1,a^2,...,a^n\}。对于一个划分点t,记D^-D在属性a上取值小于等于t的样本子集,D^+D在属性a上取值大于t的样本子集。对于相邻的属性取值a^i,a^{i+1},t在区间[a^i,a^{i+1})中任意取值产生的划分结果相同。所以对于连续属性a,考虑n-1个候选划分T_a=\{\frac{a^i+a^{i+1}}{2} | 1\leqslant i \leqslant n-1 \}(“二分法”)。然后像离散属性值一样考察这些划分点。(对于连续性属性,在其后代节点可重复作为划分属性)

1.1 信息增益(information gain)

样本集合D的信息熵定义为,

Ent(D)=-\sum_{k=1}^{|y|}p_k\log _2p_k

其信息增益为:

Gain(D, a)=Ent(D)-\sum_{v=1}^V\frac{|D^v|}{|D|}Ent(D^v)

对于连续型属性:

Gain(D, a)=\max_{t \in T_a}Gain(D, a,t) \\ \\ =\max_{t \in T_a}Ent(D)-\sum_{\lambda \in \{-,+\}}\frac{|D_t^{\lambda}|}{|D|}Ent(D_t^{\lambda})

一般信息增益越大,说明获得的纯度提升越大。即选择属性a_*=\arg \max_{a \in A} Gain(D,a)进行划分。

增益率:

Gain\_ratio(D,a)=\frac{Gain(D,a)}{IV(a)},其中IV=-\sum_{v=1}^V \frac{|D^v|}{|D|} \log _2\frac{|D^v|}{|D|}称为a的“固有值”。属性a的可能取值越多(即V越大),则IV也会越大。

事实上信息增益对取值数目多的属性有偏好。增益率对取值数目少的属性有偏好。它通常不直接选择增益率最大候选划分属性。而是使用一个启发式:先从候选划分属性属性中选择信息增益高于平均水平的属性,再选择增益率最高的。

1.2 基尼指数

样本集合D的基尼值定义为,

Gini(D)=\sum_{k=1}^{|y|}\sum_{k' \neq k}p_kp'_k=1-\sum_{k=1}^{|y|}p_k^2

表示从数据集D中随机抽取两个样本,他们类别不一样的概率。故基尼值越小,纯度越高。

其基尼指数为:

Gini\_index(D,a)=\sum_{v=1}^V \frac{|D^v|}{|D|}Gini(D^v)

一般选择基尼指数最小的属性作为最优划分属性,a_*=\arg \min_{a \in A} Gini\_index(D,a)

2. 剪枝

剪枝是为了解决过拟合。决策数学习中,为了尽可能将样本正确划分,节点划分过程不断重复,会造成分支过多,以至于把训练集自身的特点作为所有数据的一般性质。

2.1 预剪枝

在决策树生成过程中,在对每个节点进行划分前进行预估计,若划分不能提升决策树泛化性能,则将当前节点置位叶子节点,标记类别为样本最多的类别。

由于预剪枝使得决策树的分支没有展开,这显著减少了训练和测试开销。但有些分支,虽然当前不能提示泛化性能,但在此基础上的后续划分却可能显著提高性能。这使预剪枝的决策树有欠拟合风险。

2.2 后剪枝

先完整生成一颗决策树,再自底向上,若该节点对应的子树被替换为叶子节点(标记类别为样本最多的类别)后,能提升决策树泛化性,则替换该节点。

后剪枝通常会保留更多分支,欠拟合风险很小,泛化性能更好。但由于其是在决策树生成后,并自底向上逐一考察,所以训练开销比未剪枝和预剪枝决策树都大得多。

(泛化性能的评估,可以使用“留出法”、“交叉验证”等)

3. 缺失值

有的样本中,有的属性值缺失。需要解决:(1)带有缺失值的属性如何选择?(2)已选择该属性进行划分,在该属性有缺失值的样本如何划分?

3.1 属性选择

\tilde{D}表示在属性a上没有缺失值的样本子集;\tilde{D^v}表示在\tilde{D}中在属性a上取值为a^v的样本子集;\tilde{D_k}表示在\tilde{D}中属于第k类的样本子集,则\tilde{D}=\bigcup_k^{|y|}\tilde{D_k}=\bigcup_{v=1}^{V}\tilde{D^v},再设样本x权重为w_x,则有定义如下:

\rho =\frac{\sum_{x \in \tilde{D}}w_x}{\sum_{x \in D}w_x}

\tilde{p_k}=\frac{\sum_{x \in \tilde{D_k}}w_x}{\sum_{x \in \tilde{D}}w_x} \ (1\leqslant k \leqslant |y|)

\tilde{r_v}=\frac{\sum_{x \in \tilde{D^v}}w_x}{\sum_{x \in \tilde{D}}w_x} \ (1\leqslant v \leqslant V|)

对于属性a\rho表示无缺失值样本所占比例,\tilde{p_k}无缺失值样本中第k类样本所占比例,\tilde{r_v}表示无缺失值样本取值为a^v的样本所占比例。\sum_{k=1}^{|y|} \tilde{p_k}=\sum_{v=1}^V \tilde{r_v} = 1

其集合D的信息增益推广为:

Gain(D, a)=\rho* Gain(\tilde{D}, a) =\rho* (Ent(\tilde{D})-\sum_{v=1}^V\tilde{r_v}Ent(\tilde{D^v}))

Ent(\tilde{D})=-\sum_{k=1}^{|y|}\tilde{p_k}\log _2\tilde{p_k}

3.2 样本划分

对于在属性a上有取值的样本x,按其取值划入对应的子节点,样本权值在子节点中保持为w_x

对于在属性a上为缺失值的样本x,将其划入所有子节点,在属性值a^v对应的子节点中的样本权值为w_x\cdot \tilde{r_v},这就是让同一的样本按照不同的概率划入不同的节点中去。

4. 多变量决策树

如果把样本的属性看作空间坐标的坐标轴,那么d个属性描述的样本就对应了d维空间中的一个点。对样本的分类,就是在空间中寻找不同样本间的边界。决策树的分类边界的特定是:轴平行,即分类边界是有若干个与轴平行的分段组成。真实分类边界比较复杂时,需要使用很多段划分,需要大量的属性测试,预测的时间开销也大。

通过“多变量决策树”实现“斜的”划分边界:

在非叶子节点,不是对单个属性的测试,而是对属性的线性组合测试,即非叶子节点是一个形如\sum_{i=1}^dw_ix_i = t的分类器,w_it可以在该节点所包含的样本集和属性集上学得。

四、 神经网络

“神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应”[Kohonen,1988.]

1943年,McCulloch and Pitts提出了“M-P神经元模型”。神经元接收到来自前n个其他神经元的输入,这些输入通过带权重的连接进行传递。神经元接收到的总输入值经过与阈值进行比较,然后通过“激活函数”处理后产生输出。其中权重和阈值,通过训练集习得。许多个这样的神经元按一定的层次结构连接,就得到了神经网络。

1. 感知机

由两层神经元组成,一层为输入层(仅接收输入,不进行函数处理),一层为输出层。模型为

y=f(\sum_{i=1}^n w_ix_i-\theta )=f(w^Tx-\theta)

通常f为符号函数,即

y= sign (w^Tx-\theta)=\left\{ \begin{aligned} 1, \ w^Tx-\theta \geq 0 \\ 0, \ w^Tx-\theta < 0 \end{aligned} \right.

\theta看做固定输入为“-1”的“哑节点”,对应权重为w_{n+1},则学习策略为:

\min_{w}L(w)=\min_{w} \sum_{x_i \in M} (\hat y_i -y_i)w^Tx_i

(对应分类错误的样本集合M,其中任意误分类样本(x,y),有,当w^Tx \geq 0时,模型输出\hat y为1;当w^Tx < 0时,模型输出\hat y为0。故(\hat y - y)w^Tx \geq 0恒成立。)

损失函数L(w)梯度为:

\nabla L(w)=\sum_{x_i \in M} (\hat y_i -y_i)x_i

采用随机梯度下降策略,更新公式为(\eta为学习率):

w_i = w_i + \Delta w_i = w_i - \eta(\hat y - y)x_i = w_i + \eta(y - \hat y)x_i

(已证明[[Minsky and Papert,1969],若两类模式是线性可分的,则感知机模型一定会收敛,学得适当的权值向量w。对于非线性问题,需要考虑多层功能神经元。每层神经元与下一层神经元全互连,神经元同层或跨层不连接——“多层前馈神经网络”(multi-layer feedforward neural networks))

2. 误差逆传播算法

Error BackPropagation,求解多层神经网络中的权值向量的算法。

给定训练集D=\left \{ (x_1,y_1),(x_2,y_2),\dots,(x_m,y_m) \right \},x \in R^d, y \in R^l,即输入样本由d个属性描述,输出l维实向量。假设隐层和输出层都使用Sigmoid函数作为激活函数。对应训练样本(x_k,y_k),神经网络输出为\hat y_k=(\hat y_1^k,\hat y_2^k,\dots,\hat y_l^k)。则

\hat y_j^k = f(\beta_j- \theta_j)b_h^k = f(\alpha_h- \gamma_h)

均方误差为:

E_k = \frac{1}{2} \sum_{j=1}^l (\hat y_j^k - y_j^k)^2

BP算法才有梯度下降策略,w_{hj} =w_{hj} + \Delta w_{hj}= w_{hj} - \eta \frac{\partial E_k}{w_{hj}}

对于w_{hj},先影响到输出第j个神经元的输入\beta_j,再影响到其输出\hat y_j^k,最后影响到E_k。(链式求导法则。)所以有:

\begin{aligned} \frac{\partial E_k}{\partial w_{hj}} &= \frac{\partial E_k}{\partial \hat y_j^k} \cdot \frac{\partial \hat y_j^k}{\partial \beta_j} \cdot \frac{\partial \beta_j}{\partial w_{hj}} \\ &= (\hat y_j^k - y_j^k) \cdot f'(\beta_j-\theta_j) \cdot b_h \\ &= (\hat y_j^k - y_j^k) \cdot \hat y_j^k(1-\hat y_j^k) \cdot b_h \end{aligned}

g_j=-\frac{\partial E_k}{\partial \hat y_j^k} \cdot \frac{\partial \hat y_j^k}{\partial \beta_j}=(y_j^k-\hat y_j^k ) \cdot \hat y_j^k(1-\hat y_j^k),则\Delta w_{hj}=\eta g_j b_h

同理,对于v_{ih},有

\begin{aligned} \frac{\partial E_k}{\partial v_{ih}} &= \sum_{j=1}^l \frac{\partial E_k}{\partial \hat y_j^k} \cdot \frac{\partial \hat y_j^k}{\partial \beta_j} \cdot \frac{\partial \beta_j}{\partial b_{h}} \cdot \frac{\partial b_h}{\partial \alpha_h} \cdot \frac{\partial \alpha_h}{\partial v_{ih}} \\ &= \sum_{j=1}^l (\hat y_j^k - y_j^k) \cdot \hat y_j^k(1-\hat y_j^k) \cdot w_{hj} \cdot f'(\alpha_h-\gamma_h) \cdot x_i \\ &= \sum_{j=1}^l (\hat y_j^k - y_j^k) \cdot \hat y_j^k(1-\hat y_j^k) \cdot w_{hj} \cdot b_h(1-b_h) \cdot x_i \\ &= -b_h(1-b_h) \cdot \sum_{j=1}^l g_j \cdot w_{hj} \cdot x_i \end{aligned}

“标准BP算法”,每次仅针对一个训练样例更新权值和阈值,参数更新频繁,对不同样例的更新结果可能出现“抵消”的现象。

“累计BP算法”,目标是最小化训练集D上的累计误差E=\frac{1}{m}\sum_{k=1}^mE_k。在读取整个训练接后,再更新一次参数。其更新频率就低得多。但在很多任务中,当累计误差下降到一定程度后,进一步下降会非常缓慢。这是再使用标准BP往往会获得较好的解,尤其是在D非常大时。

([Hornik et al.,1989]证明,只需一个包含足够多神经元的隐层,多层前馈网络就能以任意精度逼近任意复杂度的连续函数。然而,如何设置隐层神经元的个数仍是个未决问题,实际应用中通常靠“试错法”(trial-by-error)调整。)

3. 解决过拟合

由于强大的表示能力,BP神经网络常常遭遇过拟合。常有两种策略来缓解。

第一,“早停”。若训练集误差降低,但验证集误差升高时,停止训练。并返回具有最小验证误差的权值和阈值。

第二,“正则化”。在误差函数中,增加一个用于描述网络复杂度的部分。例如E=\lambda \frac{1}{m} \sum_{k=1}^mE_k + (1-\lambda)\sum_i w_i^2 \ \ \ \lambda \in (0,1)

4. 全局最小与局部最小

在参数空间中,对应梯度为0的点,其误差函数值小于领域点的函数值,就是局部极小点。可能存在多个局部极小点,但只有一个全局最小点。

当使用梯度下降求解时,在局部极小点,梯度为0,参数停止更新。若存在多个局部极小时,就无法求得全局最小。可以通过一下策略“跳出”局部极小。

  • 以多组不同的参数初始化多个神经网络。按照标准方法训练后,取误差最小的解作为最终参数。这相当于从多个不同的初始点开始搜索,从而可能陷入不同的局部极小。从中选择,就更有可能得到更接近全局最小的结果。
  • “模拟退火”,在每一步中都以一定的概率接受比当前解更差的结果,从而有助于跳出局部极小。在每步迭代中,接受次优解的概率要逐步降低,以保证算法的平稳。
  • 使用随机梯度下降,随机梯度下降在陷入局部极小时,其梯度仍可能不为0,就有机会跳出局部极小继续搜索。

5. 常见神经网络

RBF(Radial Basis Function,径向基函数)网络[Broomhead and Lowe,1988]是一种单隐层前馈神经网络,它使用径向基函数作为隐层神经元激活函数,而输出层则是对隐层神经元输出的线性组合。

ART(Adaptive Resonance Theory,自适应谐振理论)网络[Carpenter andGrossberg,1987]是一种竞争型学习(网络的输出神经元相互竞争,每一时刻只有一个竞争获胜的神经元被激活,其他的都抑制)。该网络由比较层、识别层、识别阈值和重置模块构成。比较层负责接收输入样本,并将其传递给识别层神经元。识别层每个神经元对应一个模式类,神经元数目可在训练过程中动态增长以增加新的模式类。

SOM(Self-Organizing Map,自组织映射)网络(Kohonen,1982]是一种竞争学习型的无监督神经网络,它能将高维输入数据映射到低维空间(通常为二维),同时保持输入数据在高维空间的拓扑结构,即将高维空间中相似的样本点映射到网络输出层中的邻近神经元。

级联相关网络,网络结构不是事先固定的,网络结构作为学习的目标之一。级联,逐渐加入新的神经元,建立层次连接的级联机构。相关,最大化新神经元的输出与网络误差之间的相关性。

“递归神经网络”(recurrent neural networks)允许网络中出现环形结构,让一些神经元的输出反馈回来作为输入信号。网络在t时刻的输出状态不仅与t时刻的输入有关,还与t-1时刻的网络状态有关。从而能处理与序列有关的动态变化(如音频、自然语言)。

(神经网络是一种难解释的“黑箱模型”,但已有一些工作尝试改善神经网络的可解释性,主要途径是从神经网络中抽取易于理解的符号规则。)


continue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值