890 likes | 1.32k Views
Feedforward Neural Networks And Its Ensemble. Yuehui Chen Computational Intelligence Lab. School of Information Science and Engineering Jinan University, Jinan 250022, P.R.China Email: yhchen@ujn.edu.cn Http://cilab.ujn.edu.cn. 例子.
E N D
Feedforward Neural Networks And Its Ensemble Yuehui Chen Computational Intelligence Lab. School of Information Science and Engineering Jinan University, Jinan 250022, P.R.China Email: yhchen@ujn.edu.cn Http://cilab.ujn.edu.cn
例子 • 1981年生物学家格若根(W. Grogan)和维什(W.Wirth)发现了两类蚊子(或飞蠓midges).他们测量了这两类蚊子每个个体的翼长和触角长,数据如下: • 翼长 触角长 类别 • 1.64 1.38 Af • 1.82 1.38 Af • 1.90 1.38 Af • 1.70 1.40 Af • 1.82 1.48 Af • 1.82 1.54 Af • 2.08 1.56 Af • 翼长 触角长 类别 • 1.78 1.14 Apf • 1.96 1.18 Apf • 1.86 1.20 Apf • 1.72 1.24 Af • 2.00 1.26 Apf • 2.00 1.28 Apf • 1.96 1.30 Apf • 1.74 1.36 Af
问:如果抓到三只新的蚊子,它们的触角长和翼长分别为(l.24,1.80);(l.28,1.84);(1.40,2.04).问它们应分别属于哪一个种类?问:如果抓到三只新的蚊子,它们的触角长和翼长分别为(l.24,1.80);(l.28,1.84);(1.40,2.04).问它们应分别属于哪一个种类? 解法一: • 把翼长作纵坐标,触角长作横坐标;那么每个蚊子的翼长和触角决定了坐标平面的一个点.其中 6个蚊子属于 APf类;用黑点“·”表示;9个蚊子属 Af类;用小圆圈“。”表示. • 得到的结果见图1
思路:作一直线将两类飞蠓分开 • 例如;取A=(1.44,2.10)和 B=(1.10,1.16),过A B两点作一条直线: • y= 1.47x - 0.017 • 其中X表示触角长;y表示翼长. • 分类规则:设一个蚊子的数据为(x, y) • 如果y≥1.47x - 0.017,则判断蚊子属Apf类; • 如果y<1.47x - 0.017;则判断蚊子属Af类.
分类结果:(1.24,1.80),(1.28,1.84)属于Af类;(1.40,2.04)属于 Apf类. 分类直线图
如下的情形已经不能用分类直线的办法: • 新思路:将问题看作一个系统,飞蠓的数据作为输入,飞蠓的类型作为输出,研究输入与输出的关系。
图3 神经元的解剖图 神经元与神经网络 • 大脑可视作为1000多亿神经元组成的神经网络
神经元与神经网络 • 神经元的信息传递和处理是一种电化学活动.树突由于电化学作用接受外界的刺激;通过胞体内的活动体现为轴突电位,当轴突电位达到一定的值则形成神经脉冲或动作电位;再通过轴突末梢传递给其它的神经元.从控制论的观点来看;这一过程可以看作一个多输入单输出非线性系统的动态过程 • 神经网络研究的两个方面 • 从生理上、解剖学上进行研究 • 从工程技术上、算法上进行研究
神经元的数学模型 神经元的数学模型
其中x=(x1,…xm)T输入向量,y为输出,wi是权系数;输入与输出具有如下关系:其中x=(x1,…xm)T输入向量,y为输出,wi是权系数;输入与输出具有如下关系: • θ为阈值,f(X)是激发函数;它可以是线性函数,也可以是非线性函数.
例如,若记 取激发函数为符号函数 则 S型激发函数:
(1) 或 • 注:若将阈值看作是一个权系数,-1是一个固定的输入,另有m-1个正常的输入,则(1)式也可表示为: • 参数识别:假设函数形式已知,则可以从已有的输入输出数据确定出权系数及阈值。
Artificial Neural Networks (ANN) Output Y is 1 if at least two of the three inputs are equal to 1.
Artificial Neural Networks (ANN) • Model is an assembly of inter-connected nodes and weighted links • Output node sums up each of its input value according to the weights of its links • Compare output node against some threshold t Perceptron Model or
感知器学习算法 1: 令 是训练样本集 2: 用随机值初始化权值向量 3: Repeat 4: for 每个样本 do 5: 计算预测输出 6: for 每个权值 do 7: 更新权值 8: end for 9: end for 10: until 满足终止条件
对于线性可分的分类问题,感知器学习算法保证收敛到一个最优解(只要学习率足够小)对于线性可分的分类问题,感知器学习算法保证收敛到一个最优解(只要学习率足够小) 如果问题不是线性可分的,那么算法就不会收敛。 XOR分类问题 + o + o
General Structure of ANN Training ANN means learning the weights of the neurons
Algorithm for learning ANN • Initialize the weights (w0, w1, …, wk) • Adjust the weights in such a way that the output of ANN is consistent with class labels of training examples • Objective function: • Find the weights wi’s that minimize the above objective function • e.g., backpropagation algorithm (see lecture notes)
设在第n次迭代中,输出端的第j个神经元的输出为 ,则该神经元的误差信号为 定义单元 j 的平方误差为 ,则输出端总的平方误差的瞬时值为 Back Propagation Algorithm (BP) 其中 c 包含所有输出单元,设训练集中样本总数为 N , 则平方误差的均值为 为学习的目标函数,学习的目的使 达到最小, 是网络所有权值和阈值以及输入信号的的函数。下面就住个样本学习的情况推导BP算法。图2.11示出第 j 个单元接收到前一层信号并产生误差信号的过程。
Back Propagation Algorithm (BP) 记 , 为加到单元前输入的个数,则 ,求 对 的梯度 由于 ,得 权值 的修正量为 其中负号表示修正量按梯度下降方向, 称为局部梯度。 下面分两种情况讨论。
Back Propagation Algorithm (BP) (1)单元 是一个输出单元 (2)单元 是隐单元(图2.12)
Back Propagation Algorithm (BP) 由图2.7,当 为输出单元时,有 将此式对 求导,得 由于 ,所以 而 ,其中 为单元 的输入端个数。 上式对求导,得 于是有 。
Back Propagation Algorithm (BP) 总结以上推导可写为 的计算有两种情况。 (1) 当 是一个输出单元时, 为 与误差信号 之积。 (2) 为一个隐单元时, 为 与后面一层的 的加权和之积。 在实际应用中,学习时要输入训练样本,每输入一次全部训练样本称为一个训练周期,学习要一个周期一个周期的进行, 直到目标函数达到最小值或小于某一给定值。 用BP算法训练网络时有两种方式,一种是每输入一个样本修改一次权值;另一种是批处理方式,即待组成一个训练周期的 全部样本都依次输入后计算总的平均误差 再求 其中 的求法与以前一样。
Back Propagation Algorithm (BP) 反向传播算法的步骤可归纳如下。 (1)初始化,选定一结构合理的网络,置所有可调参数(权和阈值)为均匀分布的较小数值。 (2)对每个输入样本作如下计算。 ① 前向计算 对第 层的 单元,有 其中 为前一层 的单元 送来的工作信号( ,置 , ), 若单元 的激活函数为sigmoid函数,则 且 。 若神经元 属于第一隐层(即 ),则有 若神经元 属于第一隐层(即 ),则有
Back Propagation Algorithm (BP) ② 反向计算 对输出单元, 。 对隐层单元, 。 ③ 按下式修正权值 (3) 输入新的样本(或新一周期样本),直至 达到预定要求,训练时各周期中样本 的输入顺序要重新随机排序。 缺陷: (1)收敛速度慢 (2)目标函数存在局部极小点
BP的改进 加入动量项 步长的选择很重要,步长大则收敛快,但过大可能引起不稳定。 步长最大不能超过 为输入向量x的自相关矩阵的最大特征值
ANN 学习中的设计问题 (1)确定输入层的节点个数 (2)无额定输出层的节点个数 (3)选择网络的拓扑结构: 隐含层数、隐层节点数,前馈还是递归网络
Flexible Neural Tree (FNT) • Some of function operators and a FNT tree. • A flexible neuron operator • A general representation (encoding) of the FNT model, where the used function set is and the terminal set
Aim Optimization Find an appropriate Hierarchical Architecture for a given problem - Genetic Programming (GP) - Probabilistic Incremental Program Evolution (PIPE) - Ant Programming (AP) - Estimation of Distribution Programming Optimize the parameters embedded in the tree • Simulated Annealing • Genetic Algorithms • Particle Swarm Optimization • Differential Evolution • Tabu Search
General Learning Algorithm • Create an initial population randomly (HHSC tree structures and their corresponding parameters); • Structure optimization is achieved by the tree variation operators ; • If a better structure is found, then go to step 4), otherwise go to step 2); • Parameter optimization is achieved by the parameter learning algorithm. In this stage, the architecture of HHSC model is fixed, and it is the best tree developed during the end of run of the structure search; • If the maximum number of local search is reached, or no better parameter vector is found for a significantly long time then go to step 6); otherwise go to step 4); • If satisfactory solution is found, then the algorithm is stopped; otherwise go to step 2).
Simulation Studies NN,C4.5 and FNT for Intrusion Detecton System The FNT has been applied to function approximation, time-series prediction, nonlinear system identification problems, cancel detection, i.e., successfully. Here is a classification Problem: The data for our experiments was prepared by the 1998 DARPA intrusion detection evaluation program by MIT Lincoln Lab. The data for our experiments contains randomly generated 11982 records having 41 features.
Label Feature Label Feature x1 duration x2 protocol-type x3 service x4 flag x5 src_bytes x6 dst bytes x7 land x8 wrong fragment x9 urgent x10 hot x11 num failed logins x12 logged in x13 num compromised x14 root shell x15 su_atempted x16 num root x17 num_file_creations x18 num shells x19 num_acess _files x20 num outbound cmds x21 is_host_login x22 is guest login x23 count x24 srv count x25 serror_rate x26 srv serror rate x27 rerror_rate x28 srv rerror rate x29 same_srv_rate x30 diff srv rate x31 srv_diff_host_rate x32 dst host count x33 dst_host_srv_count x34 dst host same srv rate x35 dst_host_diff_srv_rate x36 dst host same srv port rate x37 dst_host_srv_diff_host_rate x38 dst host serror rate x39 dst_host_srv_serror_rate x40 dst host rerror rate x41 dst_host_srv_rerror_rate
This data set has five different classes namely Normal, DOS, R2L,U2R and Probe. The training and test comprises of 5092 and 6890 records respectively. All the IDS models were trained and tested with the same set of data. As the data set has five different classes we performed a 5-class binary classification. The normal data belongs to class 1 Probe belongs to class 2 DOS belongs to class 3 U2R belongs to class 4 R2L belongs to class 5 The instruction set used: GP and PSO are employed to the structure and parameter optimization of FNT classifier.
Detection performance using FNT, NN and C4.5 models with 41 input variables Attack Class FNT NN C4.5 Normal 99.19% 95.69% 82.32% Probe 98.39% 95.53% 94.83% DOS 98.75% 90.41% 77.10% U2R 99.70% 100% 99.83% R2L 99.09% 98.10% 94.33% The important features selected by the FNT algorithm Class Important variables Class 1 x3, x11, x21, x40 Class 2 x1, x3, x12, x18, x20, x21, x23, x26, x27, x31, x37, x41 Class 3 x1, x8, x10, x11, x16, x17, x20, x12, x23, x28, x29, x31 Class 4 x11, x14, x17, x28, x29, x32, x36, x38 Class 5 x1, x3, x11, x12, x13, x18, x20, x22, x25, x38
Class 1 Class 2 Class 3 Class 4
Class 5 The FNT model was able to reduce the number of variables to 4, 12, 12, 8 and 10 (using 41 input variables) and give accurate classification rate.
Ensemble of neural networks (神经网络的集成学习) 泛化能力 泛化:generalization 泛化能力越强,处理新数据的能力越好 泛化能力是机器学习关注的基本问题之一 提高泛化能力是永远的追求
问题 问题 … ... … ... 集成学习 集成学习(Ensemble Learning)是一种机器学习范式,它使用多个(通常是同质的)学习器来解决同一个问题 • 集成学习中使用的多个学习器称为个体学习器 • 当个体学习器均为决策树时,称为“决策树集成” • 当个体学习器均为神经网络时,称为“神经网络集成” • …… ……
集成学习的重要性 • 问题:对20维超立方体空间中的区域分类 • 左图中纵轴为错误率 • 从上到下的四条线分别表示: • 平均神经网络错误率 • 最好神经网络错误率 • 两种神经网络集成的错误率 • 令人惊奇的是,集成的错误率比最好的个体还低 [L.K. Hansen & P. Salamon, TPAMI90] 由于集成学习技术可以有效地提高学习系统的泛化能力,因此它成为国际机器学习界的研究热点,并被国际权威 T.G. Dietterich 称为当前机器学习四大研究方向之首[T.G. Dietterich, AIMag97]
集成学习的用处 集成学习技术已经在行星探测、地震波分析、Web信息过滤、生物特征识别、计算机辅助医疗诊断等众多领域得到了广泛的应用 只要能用到机器学习的地方,就能用到集成学习
期望结果 期望结果 个体1 (精度33.3%) 个体1 (精度33.3%) 集成(精度33.3%) 集成 (精度0%) 个体2 (精度33.3%) 个体2 (精度33.3%) 个体3 (精度33.3%) 个体3 (精度33.3%) 投票 投票 个体必须有差异 个体精度不能太低 [A. Krogh & J. Vedelsby, NIPS94] 个体学习器越精确、差异越大,集成越好 如何构建好的集成
… ... … ... The Basic Ensemble Method (BEM) The approach by itself can lead to improved performance, but does not take into account the fact that some networks may be more accurate than others.
The Generalized Ensemble Method (GEM) Define error: Define correlation matrix: The objective is to find weights, that minimizes the following: This method yields better performance than BEM. The optimal choice is:
个体越多越好吗? 既然多个个体的集成比单个个体更好,那么是不是个体越多越好? • 更多的个体意味着: • 在预测时需要更大的计算开销,因为要计算更多的个体预测 • 更大的存储开销,因为有更多的个体需要保存 个体的增加将使得个体间的差异越来越难以获得 Many Could be Better Than All:在有一组个体学习器可用时,从中选择一部分进行集成,可能比用所有个体学习器进行集成更好
随机生成一个权向量群体 w11w12 … ... w1n w21w22 … ... w2n … ... … ... … ... … ... 利用遗传算法进化 wm1wm2 … ... wmn 假设w2 < 1/n w1w2 … ... wn • 分类:有排除的投票 • 回归:有排除的平均 选择性集成 • 遗传算法选择 • 随机生成若干权向量,权向量的每个分量对应了一个个体学习器,这些权向量被遗传算法进化,得到一个最优权向量,它表示了各个体学习器在构成集成时的“重要性”,据此进行个体的选择 … ... … ...
Ensemble Methods • Construct a set of classifiers from the training data • Predict class label of previously unseen records by aggregating predictions made by multiple classifiers
概念定义 • 分类(Classification): • 对数据所属的类别作出预测 • 根据一组训练数据(数据及其类标识)构造一个模型对新的数据赋予一个类标识。 • 预测(Prediction): • 构造一个连续函数,从而对某些未知或丢失数据点的函数值作出预测 • 分类问题的典型应用: 文本过滤,图像识别,语音识别,生物医学和生物信息学等等。
分类 • 第一步:构造模型(描述一组预先确定的类) • 选定一组训练数据; • 每一个数据都属于一个事先确定的类,该类由一个称为类标识属性(class label attribute)的属性来表示; • 模型表示方法: • classification rules, • decision trees, • mathematical formulae • 第二步:使用模型(对新的数据进行分类) • Estimate accuracy of the model • The known label of test sample is compared with the classified result from the model • Accuracy rate is the percentage of test set samples that are correctly classified by the model • Test set is independent of training set, otherwise over-fitting will occur