神经网络
4.1 全连接网络
4.1.1 简介
给定训练集,权重$w_i$以及阈值$\theta$可通过学习得到。
$w_i = w_i + \eta(y-\hat{y})x_i$
常见的神经网络是每层神经元与下一层全互连,不存在同层或者跨层连接。这种结构被称为多层前馈神经网络(multi-layer feedforward neural networks)。前馈是指在网络拓扑结构上不存在环或回路。
4.1.2 误差逆传播算法
4.1.3 全局最小和局部极小
有如下解决方法:
- 以多组不同参数值初始化多个神经网络,取其中误差最小的解作为最终参数
- 使用模拟退火技术(simulated annealing),每一步以一定概率接受比当前解更差的解
- 使用随机梯度下降(在计算梯度的时候引入随机元素)
- 遗传算法
4. 2 RBF网络
径向基函数网络Radial Basis Function。单隐层前馈神经网络。假定输入为d维向量x,输出为实值。
$\phi(x) = \sum^q_{i=1}w_i\rho(x, c_i)$
其中q为隐层神经元个数,$c_i$是第i个隐层神经元所对应的中心。$\rho()$是径向基函数。常用的高斯径向基是$\rho(x, c_i)=e^{-\beta_i||x-c_i||^2}$.
通常采用两步来训练:确定神经元中心$c_i$,常用的方法包括随机采样、聚类;利用BP算法来确定权重和偏置。
4.3 ART网络
竞争型学习是NN常用的无监督学习策略。每一个时刻,只有一个竞争获胜的神经元被激活(赢者通吃原则)。
Adaptive Resonance Theory自适应谐振理论网络是竞争型学习的代表。由比较层、识别层、识别阈值和重置模块构成。比较层负责接收输入样本,并将其传递给识别层神经元。识别层每个神经元对应一个模式类,神经元数目可在训练过程中动态增长。接到输入信号后,识别层神经元之间相互竞争。
如果输入向量与获胜神经元所代表的向量之间的相似度大于识别阈值,则当前输入样本将被归为该代表向量所属类别。同时网络连接权重将会更新,是的以后再接受到相似输入样本时该模式类会计算出更大的相似度,从而使该获胜神经元有更大可能获胜。如果相似度不大于阈值,则重置模块将在识别层增设一个新的神经元,其代表向量就设置为当前输入向量。
ART较好地缓解了竞争型学习中的可塑性-稳定性窘境(stability-plasticity dilemma)。可塑性是指神经网络要有学习新知识的能力,而稳定性则是指在学习新知识时要保持对旧知识的记忆。ART的优点就是可进行增量学习或在线学习。
4.4 SOM网络
Self-Organizing Map自组织映射网络。也是一种竞争学习型的无监督神经网络,能将高维度输入数据映射到低维空间,同时保持数据在高维的拓扑结构。
训练过程:接收到一个训练样本后,每个输出层神经元会计算该样本与自身携带的权向量之间的距离,距离最近的神经元成为竞争获胜者,称为最佳匹配单元。最佳匹配单元及其临近神经元的权向量将被调整,以使得这些权向量与当前输入样本的距离缩小。这个过程不断迭代至收敛。
4.5 级联相关网络
结构自适应网络将网络结构也当做学习目标之一。
级联相关网络是重要代表。级联是指建立层次连接的层次机构。在开始训练时,网络只有输入层和输出层,处于最小拓扑结构;随着训练的进行,新的隐层神经元逐渐加入。刚加入时,其输入端连接权值是冻结的。相关是指通过最大化新神经元的输出与网络误差之间的相关性来训练相关的参数。
无需设置网络层数、神经元数目,且训练速度较快,但其在数据较小时容易过拟合。
4.6 Elman网络
属于RNN的一种。隐层通常采用sigmoid激活函数,而网络的训练常通过推广的BP算法。
4.7 Boltzmann机
NN有一类模型是为网络状态定义一个能量,能量最小化时网络达到理想状态。
Boltzmann机中神经元都是布尔型。令向量s表示n个神经元的状态。也是RNN的一种。
能量$E(s) = -\sum^{n-1}{i=1}\sum^{n}{j=i+1} w_{ij}s_is_j - \sum^n_{i=1}\theta_is_i$.
如果网络中神经元以任意不依赖于输入值的顺序进行更新,可以达到Boltzmann分布,此时状态向量s出现的概率将仅由其能量与所有可能状态向量的能量确定
$P(s) = \frac{e^{-E(s)}}{\sum_t e^{-E(t)}}$
训练过程:将每个训练样本视为一个状态向量,使其出现概率尽可能大。
标准的Boltzmann机是一个全连接图,复杂度高,难以用于解决现实任务。现实中采用受限Boltzmann机(RBM),仅保留显层和隐层的链接。
RBM常用对比散度(Contrastive Divergence)进行训练。假设网络中有d个显层神经元和q个隐层神经元,令v和h分别表示显层隐层的状态向量,则由于同一层内不存在连接,有
$P(v|h) = \prod_{i=1}^d P(v_i|h)$
$P(h|v) = \prod_{j=1}^q P(h_j|v)$
$\Delta w = \eta(vh^T - v’h’^T)$
Reference
- 《机器学习》by周志华,第五章