南大<软件分析>--Data Flow Analysis @(静态分析) 目录 数据流分析概述 数据流分析应用 Reaching Definitions Analysis(may analysis) Live Variables Analysis(may analysis) Available Expressions Analysis(must analysis) 数据流分析 相关概念 may analysis: 输出可能是正确的,要做over-approxiamation追求sound,可以…
linux内核分析课程笔记(一) 冯诺依曼体系结构 冯诺依曼体系结构实际上就是存储程序计算机. 从两个层面来讲: 从硬件的角度来看,冯诺依曼体系结构逻辑上可以抽象成CPU和内存,通过总线相连.CPU上有一些寄存器,IP(Instruction Pointer)是一个指针,总是指向内存的某一块区域CS(Code Segment),CPU即从IP指向的地址取一条指令进行执行,执行完之后IP自增1,加到下一条指令(逻辑意义上的1,因为有些指令系统是变长指令) 从程序员的角度来看,存储程序计算机.CPU…
将Adaboost和decision tree相结合,需要注意的地主是,训练时adaboost需要改变资料的权重,如何将有权重的资 料和decision tree相结合呢?方法很类似于前面讲过的bagging,通过采样资料来使资料获得不同的权重. 一棵完全的树的权值会无限大,可能出现过拟合.因此需要得到一棵弱分类的树,方法如下: 接下来比较深入的分析adaboost.经过代换,出现了如下惊人的结果: 某个资料的权重正比于投票分数 联系到之前学习的SVM,发现了一个秘密:投票的分数就是某个点到分隔…
运行一个精简的操作系统内核 存储程序计算机是几乎所有计算机的基础逻辑框架. 堆栈是计算机中非常基础的东西,在最早计算机没有高级语言时,在高级语言出现之前,我们没有函数的概念.但高级语言出现后有了函数调用后,堆栈就显得非常重要了. 堆栈 堆栈式C语言运行时必须记录的一个记录调用路径和参数的空间: 函数调用框架 传递参数 保存返回地址 提供局部变量空间 32位x86是使用堆栈传递参数,64位的稍有不同. C语言编译器对堆栈的使用有一套的规则,不同的指令序列也可能实现相同的功能,所以在Linux上反汇…
这一节讲的是核化的SVM,Andrew Ng的那篇讲义也讲过,讲的也不错. 首先讲的是kernel trick,为了简化将低维特征映射高维特征后的计算,使用了核技巧.讲义中还讲了核函数的判定,即什么样的函数K能使用kernel trick. 此外,核函数还可以衡量两个特征的相似度,值越大,越相似(可用于跟踪哦 ). 接着讲的是Polynomial Kernel,需要注意的是核函数的系数和常量,这会影响到最终的margin. 再接着讲了高斯Kernel,它能将原始数据映射到无限维!但是如果参数选的…
极其淡腾的一学期终于过去了,暑假打算学下台大的这门机器学习技法. 第一课是对SVM的介绍,虽然之前也学过,但听了一次感觉还是很有收获的.这位博主总结了个大概,具体细节还是 要听课:http://www.cnblogs.com/bourneli/p/4198839.html 这位博主总结的很详细:http://www.cnblogs.com/xbf9xbf/p/4617120.html 这节课提出了一个重要的概念--maxmum margin(它和hinge loss是线性SVM最重要的两个部分)…
这一节主要讲的是如何将Kernel trick 用到 logistic regression上. 从另一个角度来看soft-margin SVM,将其与 logistic regression进行对比,发现可将 SVM看作一个正则化模型: 将SVM看作一个regularize model,是为了更好的延伸到其他模型上. 下面从erro measure的角度来分析二者相似性: 再从binary classfication的角度来比对:做了一个LogReg就相当于做了SVM,那SVM的结果能否用到L…
随机森林就是要将这我们之前学的两个算法进行结合:bagging能减少variance(通过g们投票),而decision tree的variance很大,资料不同,生成的树也不同. 为了得到不同的g,除了用bootstrap用不同的资料得到不同的g外,还可以采用随即选择特征的方式: 为了增加特征的随机性,将特征投影到任意方向上: bagging中,没有被选中的资料被称为OOB: 在N次选择中都没有被选中的概率是: 可以用OOB来做validation,不同的是,不需要对每个g来做,可以用G-来做…
将分类器组合的过程中,将重点逐渐聚焦于那些被错分的样本点,这种做法背后的数学原因,就是这讲的内容. 在用bootstraping生成g的过程中,由于抽样对不同的g就生成了不同的u,接下来就是不断的调整u,使得Ein最小. g越不同,通过aggregation,越能得到更好的结果.通过调整u来得到不同的g.如果某个gt,在ut+1时表现的不好,那么gt或与gt很像的hypothesis就 可能不会被选到.因此,可通过调整ut+1来使g不同.那么如何定义g的表现不好呢?如果错误率与丢硬币没什么两样(…
将Radial Basis Function与Network相结合.实际上衡量两个点的相似性:距离越近,值越大. 将神经元换为与距离有关的函数,就是RBF Network: 可以用kernel和RBF来衡量相似性: 那么如何选中心点呢,一种方法是把所有看过的资料都当做中心点,这就是 FULL NETWORK: 用所有的点作中心太麻烦,可以选择某几个点来投票,这就是KNN(具体可参考机器学习实战): 之前投票的y就是资料的标签,如果每笔资料都不同的话,可以得到一个简洁的贝塔: 减少中心点(相当于选…