算法学习心得体会

2024-06-30

算法学习心得体会(精选12篇)

1.算法学习心得体会 篇一

根据208月31日第十二届全国人大会第十次会议审议通过的《关于修改<预算法>的决定》,新《预算法》自1月1日起正式施行。学习新《预算法》、宣传新《预算法》、遵守新《预算法》、落实新《预算法》,是财政部门当务之急的一件大事,也是每一名财政干部的应尽之责。据初步统计,新《预算法》在原《预算法》的基础上,共作了82处的修改,新增了28个条文和3款内容,删去了5个条文和1款内容。新《预算法》全文共11章、101条。通过集中学习,我们认为需要强化六个新理念,以更好地适应新《预算法》对规范财政收支管理与监督的各项新要求。

体会之一:要改变过去“重资金分配、轻规范管理”的模糊认识,不断强化用法律来“规范和约束政府收支行为”的新理念。相比较原《预算法》而言,新《预算法》的立法宗旨发生了巨大变化,在第1章第1条开宗明义,明确立法的宗旨是“为了规范政府收支行为,强化预算约束,加强对预算的管理和监督,建立健全全面规范、公开透明的预算制度,保障经济社会的健康发展”,这是新《预算法》的重大理论突破。从过去强调预算的分配和管理,变为强调对政府预算的规范和约束,这是立法理念上的深刻变化。同时,新《预算法》至少有7处条款对县级财政部门在预算编制、预算审查、预算批复、预算调整等方面提出明确的时限要求和约束性规定,超过时限即构成违法行为,对比以往这是有本质区别的。如第44条,“县级政府应当在本级人民代表大会会议举行的30日前,将本级预算草案的初步方案提交本级人民代表大会常务委员会进行初步审查”。第52条,“各级预算经本级人民代表大会批准后,本级政府财政部门应当在20日内向本级各部门批复预算”。第80条,“各级决算经批准后,财政部门应当在20日内向本级各部门批复决算”。因此,作为基层财政干部一定要认真学习,带头执行,在法律规定的时间内,做好预算执行与管理监督等各项工作,避免过去的工作问题演变成违法违规行为。

体会之二:要改变过去“单一预算管理”的固化模式,不断强化“全口径预算”、“透明预算”的新理念。过去由于种.种原因,一部分行政事业单位掌握着一定数额的公共资金,这些资金虽然大部分纳入“收支两条线”管理,但总的来讲,其资金的“部门”特色是客观存在的。为了强化现代预算完整性的要求,全面建立全口径预算制度,新《预算法》删除了有关预算外资金的内容,在第4条明确规定:“政府的全部收入和支出都应当纳入预算”,也就是说,今后政府的收支不再有预算内外之分,这就彻底改变了过去我们将一些公共性质资金和应纳入预算管理的非税收入而纳入“收支两条线”管理的做法。新《预算法》在第5条、6条、9条、10条、11条等条款,第一次明确规定了一般公共预算、政府性基金预算、国有资本经营预算和社会保险基金预算四本预算各自的功能定位、编制原则和相互关系,要求后三者与一般公共预算相衔接,这也彻底颠覆了过去我们习以为常的单一预算观念。同时,新《预算法》还特别强调了预决算公开透明的内容,明确规定,除涉及国家秘密事项外,经本级人大或其会批准,预算、调整预算、决算、预算执行情况的报告及报表,应当在批准后20日内由政府财政部门公开。重点包括两个20日内公开并说明:一是预算、预算调整、决算、预算执行情况的报告及报表,必须在经人大批准后20日内,由财政部门向社会公开,并对本级政府财政转移支付安排、执行的情况以及举借债务的情况等重要事项作出说明(见第14条第1款)。二是各部门预算、决算及报表,必须在经本级政府财政部门批复后20日内,由各部门向社会公开,并对部门预算、决算中机关运行经费的安排、使用情况等重要事项作出说明(第14条第2款)。因此,我们财政部门要以此为抓手,让财政各项政策和资金“普见阳光”,特别是加大社保、就业、教育、卫生、扶贫等民生领域资金分配信息的公开力度,让预算执行经得起群众质询,回答得了群众疑问。

体会之三:要改变过去“把预算审查的重点放在当年收支是否平衡上”的惯性思维,不断强化“建立跨年度预算平衡机制”的新理念。原《预算法》要求对预算审查的重点放在当年收支是否平衡上,并要求预算收入征收部门及时足额完成上缴任务,在客观上带来预算执行“顺周期”的问题。执收部门在经济增长放缓时,为完成任务收“过头税”,在经济过热时,应收不收或放到下一年征收。这既不利于依法征税,也严重影响国家的宏观调控政策。根据十八届三中全会关于“审核预算的重点由平衡状态、赤字规模向支出预算和政策拓展”的要求,新《预算法》第48条将各级人大对预算审查的重点修改为:预算安排是否符合国民经济和社会发展的方针政策,收支政策是否可行;重点支出和重大投资项目的预算安排是否适当;对下级政府的转移性支出预算是否规范、适当等。第55条第1款规定,在严禁违法擅自减征、免征、缓征预算收入的基础上,增加了严禁多征和提前征收的规定。第55条第2款规定,各级政府不得向预算收入征收部门和单位下达收入指标。同时,新《预算法》强调,各级政府应当建立跨年度预算平衡机制。各级一般公共预算按照国务院的规定可以设置预算周转金和预算稳定调节基金,用于弥补以后年度预算资金的不足(第41条第2款)。各级一般公共预算年度执行中有超收收入的,只能用于冲减赤字或者补充预算稳定调节基金(第66条第1款)。在此之外,新《预算法》还提出了各级政府财政部门应当按年度编制以权责发生制为基础的政府综合财务报告,报告政府整体财务状况、运行情况和财政中长期可持续性(第97条)。这为下一步实行中期财政规划管理,编制三年滚动财政规划,为强化其对年度预算的约束预留了空间。

体会之四:要解决过去“财政预算刚性不足”的问题,不断强化“无预算不支出、无支出不行政”的新理念。现代预算管理的灵魂是强化预算对政府支出的约束,而硬化预算约束的关键在于不能随意开口子,做到有预算才能开支,有支出才能行政。新《预算法》实施以前,在县级层面,支出预算编制比较粗放、预算执行调整较多、随意性较大、约束力不强,是一个较为普遍存在的问题,干一件事要一笔钱,每年人大审查和审计部门例行审计都指出这些问题,要求从根本上加以解决。对此,新《预算法》贯穿了对政府预算进行约束的精神,体现了厉行节约反对浪费的要求,确定了统筹兼顾、勤俭节约、量力而行、讲求绩效和收支平衡的一般公共预算支出编制原则(第12条第1款、第35条第1款、第37条第3款)。并强调严格控制机关运行经费和楼堂馆所等基本建设支出(第37条第2款)。要求在预算执行中,各级政府一般不制定增加财政收入或者支出的政策和措施,也不制定减少财政收入的政策和措施(第68条)。实行国库集中收缴和集中支付制度,对政府全部收入和支出实行国库集中收付管理(第61条)。同时,新《预算法》进一步规范预算调整,明确了预算调整的情形和调整程序,并强调预算一经人大批准,未经法定程序不得调整(第67条、第70条第1款)。要求在预算执行中,各级政府对于必须进行的预算调整,应当编制预算调整方案,说明预算调整的理由、项目和数额(第69条第1款)。对由于发生自然灾害等突发事件,必须及时增加预算支出的,先动用预备费;预备费不足的,可以先安排支出,属于预算调整的,列入预算调整方案(第69条第2款)。

体会之五:要解决过去“政府债务游离于预算监管之外”的问题,不断强化“政府债务必须可防可控”的新理念。原《预算法》规定,“地方各级预算按照量入为出、收支平衡的原则编制,不列赤字”。但实际上,各地出于发展的需要,采取多种方式融资,已经形成了较大额度的地方政府债务。这些债务大多数未纳入预算统一管理,给各级财政带来了一定的风险隐患。新《预算法》按照“开前门、堵后门、筑围墙”的改革思路,增加了允许地方政府举借债务的规定,但同时也作出了五个限制:一是限制主体,只有经国务院批准的省级政府可以举债;二是限制用途,举借债务只能用于公益性资本支出,不得用于经常性支出;三是限制规模,省级政府在国务院下达的限额内举债,并列入本级预算调整方案,报本级人大批准;四是限制方式,举借债务只能通过发行地方政府债券的方式,不得采取其他方式筹措,除法律规定之外,不得以任何方式举借债务和提供担保;五是控制风险,举借债务的同时,必须有偿还计划和稳定的偿还资金来源(第35条)。这些规定从法律上解决了地方政府债务怎么借、怎么管、怎么还的问题,既坚持了严格控制地方政府债务的原则,又适应了地方经济社会发展的需要,为建立规范合理的地方政府举债融资机制奠定了基础,从而防范和化解债务风险。

体会之六:要解决过去“对违法违规人员问责条款比较模糊”的问题,不断强化“对违法违规人员处罚处分的震慑力”。一方面,新《预算法》第53条明确规定,各部门、各单位是本部门、本单位的预算执行主体,负责本部门、本单位的预算执行,并对执行结果负责。这就从法律上划清了预算单位与财政部门在预算管理上的责任边界,突出了各部门、各单位在预算执行中的责任主体地位,从法律层面较好解决了财政部门在预算管理工作中的“越位”和“缺位”的问题,减少了财政部门背负的法律风险。另一方面,新《预算法》对法律责任规定进行了全面充实和明确,原《预算法》仅就擅自变更预算、擅自支配库款、隐瞒预算收入三种情形设置了法律责任,而且不够具体明确,新预算法不仅对各级预、决算送审和批复的时间作出了明确规定,而且在第92条至95条中,详细规定了违法调整预算、违法开设专户、虚列收支、违规担保、挪用骗取预算资金等20类违法违规行为的法律责任,特别是对一些实践中比较突出的问题,规定了较为严格的责任。如违法举借债务或者为他人债务提供担保,或者挪用重点支出资金,或者在预算之外及超预算标准建设楼堂馆所等,对负有直接责任的主管人员和其他直接责任人员给予撤职、开除的处分(第92条、93条、94条、95条)。同时在第96条中明确,违反本法规定、构成犯罪的,要依法追究刑事责任。这相对于原《预算法》来说,对违法违规人员的处罚和处分更加严格,更具有震慑力。

总之,新《预算法》总结并吸收了原《预算法》实施以来特别是1994年分税制财政体制改革以来预算管理的实践经验,全面体现了党的和十八届三中全会关于全面深化改革的精神。新《预算法》的内容更加丰富、要求更加严格、责任追究更加具有针对性,它的实施必将对经济社会发展带来深远影响,给各级政府、财政及其各部门、各单位的预算管理带来巨大影响。我们财政部门要针对预算管理实践中存在的问题和差距,认真抓好新《预算法》的贯彻与实施,主动适应预算管理新常态,加快建立和完善“全面规范、公开透明”的现代财政制度。

2.算法学习心得体会 篇二

由于遗传算法能够搜索到全局最优解, 而且遗传算法的鲁棒性强, 将遗传算法与前馈网络结合[6]起来是很有意义的, 不仅能发挥神经网络的泛化的映射能力, 而且使神经网络具有很快的收敛性以及较强的学习能力。BP网络[7]的误差函数为平方型, 存在局部极小值问题, 且收敛速度较慢;遗传算法GA具有全局搜索能力, 善于搜索复杂问题和非线性问题等方面有着独特的优点, 但在学习、训练能力上远不如神经网络。因此将这两种方法有机的结合起来, 取长补短, 这样能够很好的解决神经网络出现的上述问题。

1 BP网络结构及算法

BP网络是一种由输入层、输出层及若干隐层的节点互连而成的一种多层前馈型网络[7], 对于这种多层前馈网络的训练采用的算法是反向传播 (Back Propagation, BP) 算法。每一层内神经元的输出均传送到下一层, 这种传送由联接权来达到增强、减弱或抑制这些输出的作用, 除了输入层的神经元外, 隐蔽层和输出层神经元的净输入是前一层神经元输出的加权和。每个神经元均由它的输入、活化函数和阈值来决定它的活化程度。这是一种有导师的学习方法, 其基本思想是最小二乘算法。它利用根均方误差和梯度下降法来实现对网络连接权的修正, 对网络权值修正的目的是使网络实际输出与规定的输出之间的根均方误差 (Root Mean Squared Error, RMSE) 最小。其基本算法如下:

BP算法的学习过程如下:

2 GA算法概要

遗传算法[4] (Genetic Algorithm, 简称GA) 是一种模仿自然界生物进化思想而得到的一种自适应启发式全局搜索算法, 其实质是由复制、交换、变异算子组成的周而复始的循环过程。从任一初始种群 (Population) 出发, 通过随机选择、交叉和变异操作, 产生一群更适应环境的个体, 使群体进化到搜索空间中越来越好的区域。这样一代一代地不断繁衍进化, 最后收敛到一群最适应环境的个体 (Individual) , 求得问题的最优解。

遗传算法的运行过程如下:

3 GA和BP算法的结合

3.1 基本思想

遗传算法是一种非导数优化的随机优化方法[6], 可以对一复杂的、多峰的、非线性极不可微的函数实现全局搜索。而BP网络主要是采用误差梯度下降的权重修改原则, 在应用上的主要问题是收敛速度太慢, 而且不能保证收敛到全局最小点。神经网络则比较适合局部搜索, 可以取两种方法各自的特点。目前广泛使用的BP网络, 是基于梯度下降方法, 因而对网络的初始权值异常敏感, 不同的初始权值会导致完全不同的结果。而且在训练过程中, 有关参数 (如学习速率) 的选取也没有理论指导, 完全凭借经验来确定, 一旦取值不当, 就会引起网络振荡而不能收敛, 即使收敛也会因为收敛速度慢而导致训练时间长, 同时又极易陷入局部极值而无法得到最好的权值分布, 最终影响网络的泛化能力。用遗传算法进化神经网络的联接权可以有效克服这些问题。

3.2 实现方法和步骤

(1) 编码方案

对网络中连接权值和阈值进行编码主要有两种方法:一是采用二进制编码方案, 另一种是采用实数编码方案[4]。为了提高算法的精度, 便于较大空间的遗传搜索和设计专门问题的遗传算子, 使GA更接近问题空间, 同时也便于算法与经典优化方法的混合作用, 改善GA的计算复杂性, 提高运算效率, 这里采用实数编码。

文中讨论的是一个3层神经网络结构, 其中X1, X2, …, XmY1, Y2, …, Yn分别表示网络的输入和输出mn分别表示输入和输出的维数。如果总共有s个隐节点, 其中编码的前部分为输入层到隐层的权值, 随后是隐层到输出层的权值, 之后是输入层阈值、输出层阈值。编码长度为:s*m+s*n+s+n。其中W为权值、B为阈值。编码, 如图1所示。

(2) 适应度函数

衡量BP网络的性能的主要指标是网络的输出值与期望的输出值之间的误差平方和。该误差平方和小则表示该网络性能好。

定义 适应度函数f=1F+1 (1)

其中F=12i=1le (i) 2, e (i) =y (i) -ym (i) , l为样本数, y (i) 为网络的输出值, ym (i) 为期望输出值, e (i) 为两者之间的误差。

(3) 遗传操作

在这里采用遗传操作方法。首先将当代种群的个体适应度由大到小进行排序, 然后选择一定比例的下位个体淘汰掉, 在剩下的上位个体中实行算术交叉, 生成新的子个体加到种群中, 以保证种群大小不变。最后, 进行变异操作 (采用非均匀变异) , 生成子代种群。

(4) 具体步骤

1) 随机产生一组分布, 采用实数编码方案对该组中的每个权值 (或阈值) 进行编码, 进而构造出一个个码链。在网络结构和学习规则已定的前提下, 该码链就对应一个权值和阈值取特定值的一个神经网络;

2) 根据 (2) 对所产生的神经网络计算它的误差函数, 从而确定其适应度函数值, 误差越大, 则适应度越小, 评价网络性能;

3) 根据 (3) 中规定的遗传操作, 产生下一代种群, 形成下一代网络;

4) 重复2) 、3) , 直到F<Fmax或达到进化代数, 此时, 得到通过GA优化后的网络的连接权和阈值。Fmax为遗传算法所要达到的性能指标;

5) 将GA优化后的网络权值和阈值作为BP算法的网络初始权值和阈值;

6) 对网络进行训练, 对网络权值和阈值的调节, 评价网络性能;

7) 重复6) , 直到F<Fmin或e (i) ≤max{ep (i=1, …, l) }, 其中l为训练网络的样本数, Fmin为BP算法所要达到的网络性能指标, 即最终要求的性能指标, max{ep}是单个样本的最大误差。此时, 保存网络权值和阈值。

4 仿真实验

以一个3层前馈神经网络的训练为例[8,9], 输入层神经元个数为3, 隐层神经元个数为6, 输出层神经元个数为1。采用Matlab7.1编程实现算法和完成相应的数据处理。

(1) 参数选择

训练样本数8, 遗传算法初始种群30, 进化代数80, 编码长度为31, 权阈值变化范围[-1, 1], 选择操作时的淘汰率0.08, 采用非均匀变异为, 利用算术交叉, Fmax=1e-6[10]。

标准BP算法学习率0.05, Levenberg-Marquardt BP算法[9]学习率0.05, Fmin=0.000 1, 最大循环次数为1 000。

(2) 仿真结果

经过计算机仿真实验, 各算法计算结果的比较, 如表1所示。

(3) 讨论

从表1, 表2中, 可以看到GA+BP学习算法比现有的标准BP算法和基于Levenberg-marquardt的BP算法无论在收敛速度上, 还是在误差及精度上, 都取得了很好的效果。仿真也说明了GA算法能以较快的速度减小了搜索空间范围, 而且不易陷入局部极小点, 而BP算法则具有局部搜索效率高的特点, 将两者结合从而得到比现有的学习算法更好的学习效果。

5 结束语

遗传算法优化神经网络主要包括3个方面的内容:优化网络结构、优化权系数和同时优化网络结构和学习规则等[6]。用遗传算法优化计算时, 运算量较大, 当优化设计解决复杂问题的大规模神经网络时, 随着神经元个数的增加, 连接权的数目也急剧增多, 从而造成遗传算法的搜索空间很大。文中将遗传算法全局搜索最优和传统的BP神经网络模型局部寻优结合起来, 取长补短, 既可以减小遗传算法的搜索空间、提高搜索效率, 又可以较容易地收敛到最优解, 使算法具有一定的实用性。

摘要:介绍了遗传算法和标准BP算法及其改进形式, 指出遗传算法和BP算法各自的优缺点。利用遗传算法全局寻优和BP神经网络局部寻优相结合的方法, 提高了传统BP神经网络的计算精度和收敛速度。最后进行了仿真实验, 结果表明, 该方法不仅收敛速度快, 而且易达到最优解, 具有很高的实用价值。

关键词:神经网络,遗传算法,网络训练,反向传播算法

参考文献

[1]Simon Haykin.神经网络原理[M].叶世伟, 史忠植, 译.北京:机械工业出版社, 2004.

[2]蔡自兴, 徐光佑.人工智能及其应用[M].3版.北京:清华大学出版社, 2004.

[3]Davis L.Hand book of Genetic Algorithms[M].New York:Van No Strand Reinhold, 1991.

[4]张文修, 梁怡.遗传算法的数学基础[M].西安:西安交通大学出版社, 2000.

[5]David E Goldberg.Genetic Algorithm in Search, Optimi-zation and Machine Learning[M].Reading, MA:Ad-dison-Wesley, 1989.

[6]阎平凡, 张长水.人工神经网络与模拟进化计算[M].北京:清华大学出版社, 2001.

[7]田景文, 高美娟.人工神经网络算法研究及应用[M].北京:北京理工大学出版社, 2006.

[8]许东, 吴铮.基于Matlab6·X的系统分析与设计—神经网络[M].西安:西安电子科技大学出版社, 2002.

[9]丛爽.面向Matlab工具箱的神经网络理论与应用[M].合肥:中国科学技术大学出版社, 2003.

3.“算法初步”学习的定位与思考 篇三

一、重难点解析与学习定位

本章的重点是程序框图。程序框图往往含有顺序结构、条件结构和循环结构三种基本逻辑结构,其中的难点是对循环结构的理解和应用。正确理解循环结构,首先要确定是当型循环结构还是直到型循环结构,第二要认清表示累计变量的意义,第三要确定在哪一步开始循环。

算法的程序语言,是将算法框图转化为计算机能识别和执行操作的语句,任何一种正确的算法程序,输入到计算机中,通过计算机运行就能输出结果。输入语句、输出语句和赋值语句是任何一个算法中必不可少的语句。在赋值语句中,一定要注意其格式要求,如:“=”的右侧必须是数值表达式,左侧必须是变量,一个语句只能给一个变量赋值,变量的值始终等于最近一次赋给它的值,先前的值将被替换。在一个算法对输入的值进行判断时,就需要条件语句。若一个算法中某些步骤需要反复执行多次,就少不了循环语句。

二、算法的多元表征与案例分析

4.算法学习心得体会 篇四

心得体会

通过本次课程设计,对图的概念有了一个新的认识,在学习离散数学的时候,总觉得图是很抽象的东西,但是在学习了《数据结构与算法》这门课程之后,我慢慢地体会到了其中的奥妙,图能够在计算机中存在,首先要捕捉他有哪些具体化、数字化的信息,比如说权值、顶点个数等,这也就说明了想要把生活中的信息转化到计算机中必须用数字来完整的构成一个信息库,而图的存在,又涉及到了顶点之间的联系。图分为有向图和无向图,而无向图又是有向图在权值双向相等下的一种特例,如何能在计算机中表示一个双向权值不同的图,这就是一件很巧妙的事情,经过了思考和老师同学的帮助,我用edges[i][j]=up和edges[j][i]=up就能实现了一个双向图信息的存储。

对整个程序而言,Dijkstra算法始终都是核心内容,其实这个算法在实际思考中并不难,也许我们谁都知道找一个路径最短的方法,及从顶点一步一步找最近的路线并与其直接距离相比较,但是,在计算机中实现这么一个很简单的想法就需要涉及到很多专业知识,为了完成设计,在前期工作中,基本都是以学习C语言为主,所以浪费了很多时间,比如说在程序中,删除顶点和增加顶点的模块中都有和建图模块相互重复的函数,但是由于技术的原因,只能做一些很累赘的函数,可见在调用知识点,我没有掌握好。不过,有了这次课程设计的经验和教训,我能够很清楚的对自己定一个合适的水平,而且在这次课程设计中我学会了运用两个新的函数sprintf()和包涵在#include 头文件中的输入函数。因为课程设计的题目是求最短路径,本来是想通过算法的实现把这个程序与交通情况相连,但是因为来不及查找各地的信息,所以,这个计划就没有实现,我相信在以后有更长时间的情况下,我会做出来的。

5.算法学习心得体会 篇五

经过这次课程设计,不但巩固了C语言、C++以及数据结构的知识,更加很好的将这三门专业课的知识融会贯通。

刚开始抽到这个题目的时候,看了好半天,不懂题目的意思,也找不到与书上哪种存储结构挂上钩,看到是游戏设计,心就有点慌了。看了几遍,在任务书的后面看了提示,慢慢的弄懂了是什么意思,一开始我想到了用矩阵这种存储结构,因为我想空间的点可以用矩阵这种存储结构来存储,矩阵的三元组法中可以定义行数和列数及非零元素的个数。我想先给矩阵赋初始值为0,当某个点有玩具时就可以将该点赋为1,表示有玩具。若矩阵中某两点横纵坐标都相等的话则半径为零,否则先求行与行间的最小距离,在求与下一行的最小距离,依次循环。后来想想玩具任意放的而矩阵只能存储整形这种数据类型,不能计算对于浮点型这种结构,后来想到想到用带有分量X和Y的结构体数组这种存储结构可以解决这种问题,而且利用分而治之的递归算法,使算法更简单一点。对于一个问题,需要多想,多方面考虑,不能仅仅只看到了它的一方面或两面,而要多方面观察。只有将所有的问题都考虑到了,这个程序才算完整的,没有缺陷的。就像操作系统,由原来的单处理机系统逐步变为多处理机系统,到现在的windows xp.。这些都是问题更加完善的过程。编写程序的过程和思想一样重要,对于刚开始编写的以及过后修改之后的,都要相互比对,将过去好的得到保留,不好的继续修改,最后得到比较完善的结果。

由于要设计完成这样一个比较复杂的程序,需要的不仅仅是课堂上书本上那些简单的知识,更需要我们去多方面的查阅资料,学会利用各种可能的资源,让自己自主的去学习。本程序中我经过查阅资料学会了系统的一些库函数的一些用法,像qsort(n1,n2,n3,n4),第一个参数为数组名即数组的首地址,第二个参数为数组的大小,第三个参数为数组元素的字节大小,第四个函数调用比较函数。用这种排序算法快儿准,节省了不少的时间。学会查阅资料也是一种需要培养的能力,无论基础知识学得有多牢固,也需要我们多看其他相关的书籍,查阅资料,找到更好的解决方法。让自己解决问题的能力更上一层楼。

在课程设计过程中有过因不知如何解决而忧愁,有过因同一个意思显示不同的结果而埋怨,有过因差一点点就成功了而不甘心,有过因解决问题而喜悦而自豪。经过这次的课程设计,真得是让我深深爱上了编写程序,调试程序。因为它给了我五彩的世界,充实的生活,有成就感的心情。当然,这次设计,过程中遇到了很多问题,有得已经通过各种方法得到了解决,但有的还需要继续查阅相关书籍。

现将课程设计中的收获简单的写在下面。

1.程序的设计思想的精巧的重要性,是不管怎么说都不为过的,好的设计可以让大家很快的明白你的思想,而且很方便的来实现它。

2.数据结构的课程设计不仅仅是编写完成一个程序那么简单,它要的是运用数据结构的思想设计一个即简单又方便的程序来完成课程设计任务书上要求的功能。

3.良好的编程习惯,它可以使你的程序很方便的被别人阅读,也很方便的被更改,所以可以的话,尽可能多的写出注释,没有人会闲你写的太多。

6.算法学习心得体会 篇六

大概花了将近2个月的时间,自己把18大数据挖掘的经典算法进行了学习并且进行了代码实现,涉及到了决策分类,聚类,链接挖掘,关联挖掘,模式挖掘等等方面。也算是对数据挖掘领域的小小入门了吧。下面就做个小小的总结,后面都是我自己相应算法的博文链接,希望能够帮助大家学习。

1.C4.5算法。C4.5算法与ID3算法一样,都是数学分类算法,C4.5算法是ID3算法的一个改进。ID3算法采用信息增益进行决策判断,而C4.5采用的是增益率。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42395865

2.CART算法。CART算法的全称是分类回归树算法,他是一个二元分类,采用的是类似于熵的基尼指数作为分类决策,形成决策树后之后还要进行剪枝,我自己在实现整个算法的时候采用的是代价复杂度算法,详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42558235

3.KNN(K最近邻)算法。给定一些已经训练好的数据,输入一个新的测试数据点,计算包含于此测试数据点的最近的点的分类情况,哪个分类的类型占多数,则此测试点的分类与此相同,所以在这里,有的时候可以复制不同的分类点不同的权重。近的点的权重大点,远的点自然就小点。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42613011

4.Naive Bayes(朴素贝叶斯)算法。朴素贝叶斯算法是贝叶斯算法里面一种比较简单的分类算法,用到了一个比较重要的贝叶斯定理,用一句简单的话概括就是条件概率的相互转换推导。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42680161

5.SVM(支持向量机)算法。支持向量机算法是一种对线性和非线性数据进行分类的方法,非线性数据进行分类的时候可以通过核函数转为线性的情况再处理。其中的一个关键的步骤是搜索最大边缘超平面。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42780439

6.EM(期望最大化)算法。期望最大化算法,可以拆分为2个算法,1个E-Step期望化步骤,和1个M-Step最大化步骤。他是一种算法框架,在每次计算结果之后,逼近统计模型参数的最大似然或最大后验估计。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/42921789

7.Apriori算法。Apriori算法是关联规则挖掘算法,通过连接和剪枝运算挖掘出频繁项集,然后根据频繁项集得到关联规则,关联规则的导出需要满足最小置信度的要求。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43059211

8.FP-Tree(频繁模式树)算法。这个算法也有被称为FP-growth算法,这个算法克服了Apriori算法的产生过多侯选集的缺点,通过递归的产生频度模式树,然后对树进行挖掘,后面的过程与Apriori算法一致。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43234309

9.PageRank(网页重要性/排名)算法。PageRank算法最早产生于Google,核心思想是通过网页的入链数作为一个网页好快的判定标准,如果1个网页内部包含了多个指向外部的链接,则PR值将会被均分,PageRank算法也会遭到Link Span攻击。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43311943

10.HITS算法。HITS算法是另外一个链接算法,部分原理与PageRank算法是比较相似的,HITS算法引入了权威值和中心值的概念,HITS算法是受用户查询条件影响的,他一般用于小规模的数据链接分析,也更容易遭受到攻击。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43311943

11.K-Means(K均值)算法。K-Means算法是聚类算法,k在在这里指的是分类的类型数,所以在开始设定的时候非常关键,算法的原理是首先假定k个分类点,然后根据欧式距离计算分类,然后去同分类的均值作为新的聚簇中心,循环操作直到收敛。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43373159

12.BIRCH算法。BIRCH算法利用构建CF聚类特征树作为算法的核心,通过树的形式,BIRCH算法扫描数据库,在内存中建立一棵初始的CF-树,可以看做数据的多层压缩。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43532111

13.AdaBoost算法。AdaBoost算法是一种提升算法,通过对数据的多次训练得到多个互补的分类器,然后组合多个分类器,构成一个更加准确的分类器。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43635115

14.GSP算法。GSP算法是序列模式挖掘算法。GSP算法也是Apriori类算法,在算法的过程中也会进行连接和剪枝操作,不过在剪枝判断的时候还加上了一些时间上的约束等条件。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43699083

15.PreFixSpan算法。PreFixSpan算法是另一个序列模式挖掘算法,在算法的过程中不会产生候选集,给定初始前缀模式,不断的通过后缀模式中的元素转到前缀模式中,而不断的递归挖掘下去。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43766253

16.CBA(基于关联规则分类)算法。CBA算法是一种集成挖掘算法,因为他是建立在关联规则挖掘算法之上的,在已有的关联规则理论前提下,做分类判断,只是在算法的开始时对数据做处理,变成类似于事务的形式。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43818787

17.RoughSets(粗糙集)算法。粗糙集理论是一个比较新颖的数据挖掘思想。这里使用的是用粗糙集进行属性约简的算法,通过上下近似集的判断删除无效的属性,进行规制的输出。

详细介绍链接:http://blog.csdn.net/androidlushangderen/article/details/43876001

18.gSpan算法。gSpan算法属于图挖掘算法领域。,主要用于频繁子图的挖掘,相较于其他的图算法,子图挖掘算法是他们的一个前提或基础算法。gSpan算法用到了DFS编码,和Edge五元组,最右路径子图扩展等概念,算法比较的抽象和复杂。

7.智能学习算法的预测性能评估 篇七

目前各种智能学习、分类、预测算法主要是通过对训练数据集的学习来完成的,而算法的预测性能则主要在测试数据集上进行,在测试数据集上,使用适当的性能评估指标进行计算,就可以得出对算法的预测性能所做的评估分值。

2 预测性能评估问题描述

已知测试数据集序列,其真实的结构数据为D= (d1, …, dN) ,预测算法产生的输出为M= (m1, …m N) 其中,di, m i∈U, i=1, 2, …, N。求解的问题是对预测结果M的性能进行评估,即计算M对D的拟合、近似程度。根据U的不同形式的表示,真实数据D和预测输出M有三类:区间标度变量、二元变量和标称变量。

3 预测性能的检验指标和计算模型

已知样本(检验数据)分为两类:“阳性数据 (P) ”和“阴性数据 (N) ”。P为真实的,被实验所证实的数据;N为被实验证明无功能的数据。真阳性 (True Positive TP) 表示{di=1, mi=1}的次数;真阴性 (True Negative TN) 表示{di=0, mi=0}的次数;假阳性 (False Positive FP) 表示{di=0, mi=1}的次数;假阴性 (False Negative FN) 表示{di=1, mi=0}的次数。对于预测结果的评测,常用的检验指标如下:

敏感性 (Sensitivity, Sn) ,又称测全率、命中率,表示对于真实的数据,能够预测成“真”的部分所占的比例是多少。Sn (D, M) =TP/ (TP+FN)

特异性 (Specificity, Sp) ,即测准率、精度,表示对于阴性的数据,能够预测成“假”的比例是多少。SP (D, M) =TP/ (TP+FP)

准确性 (Accuracy, Ac) ,即总体正确性,表示对于整个数据集 (包括阳性和阴性数据) ,预测总共的准确比例是多少。Ac (D, M) =(TP+TN)/ (TP+FP+TN+FN

马修相关系数 (Mathew correlation coefficient MCC) ,是一种相似性的度量。如果把D和M作为概率随机变量,则可以用相似性来度量D与M的关系。当阳性数据的数量与阴性数据的数量差别较大时,MCC能够更为公平的反映预测能力。

3 预测性能的评估程序

使用svm训练,性能评估代码:

4 结束语

算法的预测性能评估能从特定角度衡量预测算法和预测效果的优劣,建议综合使用多种指标进行评估,使评估结果尽可能客观。

参考文献

[1]J Moult, K Fidelis, A Zemla, etal.Critical Assessment of Methods of Protein Structure Prediction (Casp) :Round Iv[J].Proteins, 2001, 45 (Suppl5) :227.

8.“算法”的一点教学体会 篇八

关键词:数学教学; 算法 ;特征

一、算法的意义

“算法”一词英译为“Algorithm”。 数学史学家发现了algorism(算术)一词的真实起源:它来自于阿拉伯著名数学家阿尔花拉子米论述算术的著作,大约在公元825年,阿尔花拉子米在巴格达写了《算法》一书。 在2002年颁布的《高中数学课程(实验稿)》中,首次在高中数学课程中列入算法的有关内容,而且是必修部分。2006年辽宁省教育厅正式在全省实行新课改,所有普通高中使用人民教育出版社的标准实验教科书,在《数学3》中有算法的教学,教学时数为12学时。设置算法的目的是:让学生集中学习算法的初步,主要包括算法的基本结构、基本语句、基本思想、算法案例等。并且在新教学大纲中规定此章节是高考必考的内容。目前在各高中数学教学中,各校教师都在探索中教学,由于在教学时,没有过多的经验,大多数数学老师没有经过计算机程序设计语言的专业培训与学习,所以在这一部分的教学中产生了一些问题。再者,算法不仅是数学及其应用的重要组成部分,也是计算机科学的重要基础。随着现代信息技术飞速发展,算法在科学技术、社会发展中发挥着越来越大的作用,并且日益融入社会生活的许多方面,算法思想已经现代人应具有的一种数学素养,需要特别指出的是,中国古代数学中蕴涵了丰富的算法思想。在本模块中,学生将在义务教育阶段初步感受算法思想的基础上,结合对具体数学实例的分析,体验程序框图在解决问题中的作用;通过模仿、操作、探索学习设计程序框图表达解决问题的过程;体会算法的基本思想以及算法的重要性和有效性,发展有条理的思考与表达的能力,提高逻辑思维能力。

二、算法的特征

算法对我们来说并不陌生,“算法可以理解为由基本运算及规定的运算顺序所构成的完整的解题步骤,或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤或序列能够解决一类问题”。算法的主要特征:①有限性②能行性③确定性④通用性⑤有输出性。其意思是:

1.输入输出的数据必须是由字母组成的有限符号串(例如不能输入一条曲线);

2.算法的处理过程必须可以明确地分解成有限多个不能再分解的步骤(例如不能把画无限多个点的曲线作为算法过程);

3.算法的继续进行和结束要有明确的条件加以规定;

4.算法的变换规则必须是非常简单而机械,不依赖于使用者的聪明才智。

用以上的四条来分析,小学里做四则运算,输入输出都是字母(阿拉伯数字),计算规则都是按一定次序执行有限步,而且按这一步骤去做一定成功,无须技巧,到了最后一步,结果自然就出来了。因此,“四则运算”的过程符合上述四条。在高中阶段《数学1》中求方程近似根的二分法,《数学2》中利用公式计算几何问题进行分步求解等都是算法。

算法的思想, 不一定仅仅用于数字计算,它可以广泛地描述许多操作过程。例如,有一队士兵要过河,但当时只有一条小船,上面有两个小孩。小船至多可以载一个士兵或者两个小孩,请问这队士兵依照何种程序才能渡过此河?可以用流程图加以表示。

在我国古代,数学发展的主导思想就是构造“算法”解决实际问题;在现代,算法已是数学及其应用科学中的重要组成部分。算法思想也逐渐成为每个现代人应具有的数学素养。并且,这一部分内容为新增内容,为配合新课程改革,高考中必定有这方面的内容。通过平时做题总结发现,在2007年高考中,广东卷的第6题,海南卷的第7题,山东卷的第10题,宁夏卷的第5题都考了算法。四省不约而同把算法作为一道选择题来考,约占总分的3%左右。因此,我认为算法和其他知识的结合将是高考的解答题的重点,也体现了算法的普遍性和工具型,难度不会太大。

三、算法的教学体会

我在教学中及时进行了总结:

1、算法讲解时,书中P5例2学生普通反映难,摸不着头脑,教师在设计时,要注意创新,注意联系实际,算法就在我们身边,我们每天干的事情就是一个算法,教师要从身边的小事说起,如:教师监考的程序就是一个算法,啤酒的生产流程也是一个算法,这样便于学生的接受和理解,促进学生更好学习算法的相关知识。在条件允许的学校,使其能在计算机上实现。为了有条理地、清晰地表达算法,往往需要将解决问题的过程整理成程序框图;为了能在计算机上实现,还需要将自然语言或程序框图翻译成计算机语言,。本模块的主要目的是使学生体会算法的思想,提高逻辑思维能力。不要将部分内容简单处理成程序语言的学习和程序设计。

2、算法教学必须通过实例进行,使学生在解决具体问题的过程中学习一些逻辑结构和语句,应鼓励学生尽可能上机尝试。

3、课后反思:课后我主要作了如下的工作:(1)从学生的作业、试卷中反思。(2)让学生先总结本章知识,教师在课堂上再小结。(3)在今后的教学中与电脑教师联系,让学生上机操作两节课,学以致用,激发学生学习热情。(4)发放调查表,见附录。(5)成立计算机兴趣小组,让一些有特长的学生带动其他同学提高大家钻研算法的兴趣。

4、算法的学习,对于学生今后的深造,特别是大学中计算机学习打下了一个良好的基础并发挥出巨大的作用,这一点,在他们在大学必须通过国家计算机等级考试时就能看到效果。应该说,是很有实际的价值和意义的。

9.算法学习心得体会 篇九

摘要:针对算法与程序设计类课程群的特点,结合建构主义学习理论的意义和以学生为中心的教学理念,提出基于建构主义学习理论的创新教学模式。通过情境创设、自主学习、协作学习、会话交流、综合评价等教学活动,学习者能够在与客观环境的交互过程中主动地建构认知结构,完成知识的学习。

关键词:建构主义;算法与程序设计;教学模式

引言

建构主义源于20世纪后期人类对自身认知过程及认知发展理论的深入研究,是由认知主义发展而来的学习理论和哲学理念。由于人类的认知发展与学习过程联系紧密,因此建构主义可以很好地说明人类学习过程的认知规律和发展水平。建构主义学习理论已经成为世界范围内教育教学改革的重要指导思想和理论基础。

算法与程序设计类课程群通常包括c语言程序设计、数据结构与算法设计、面向对象程序设计、高级算法设计等。将建构主义学习理论引入算法与程序设计类课程的教学中,对于提高学生的主动性、创造性和实践能力具有深远的影响和积极的意义。

1建构主义学习理论

1.1建构主义知识观

建构主义知识观认为人类总是以自身原有的知识经验为基础来理解现实世界并赋予其意义。由于个体原有知识经验的差异和学习情境的不同,个体对现实世界的理解也不同,由此建构的知识也就不可能完全客观地反映现实世界。因此,知识仅仅是一种对现实世界的较为合理的解释或者假说,并不是对现实世界绝对真实和客观的表征。建构主义强调知识的动态性和情境性。由于知识的非客观属性,知识必然会随着人类对现实世界的深入理解而不断发展变化,因此,知识是动态变化的。在解决具体问题时,知识也不可能被简单地直接应用,而需要针对具体问题情境对知识进行再加工,以适应问题的具体要求。

1.2建构主义学习观

建构主义认为学习不是简单地将知识传递或灌输给学习者,而是学习者主动建构知识意义的过程。学习者通过“同化”与“顺应”实现对所学知识的意义建构。同化指学习者吸收外部信息,并将其整合到自己原有认知结构中的过程;顺应是指当学习者的原有认知结构无法同化外部信息时,对其认知结构进行重组和改造的过程。认知结构是在同化与顺应的过程中逐渐建构起来的,并在认知结构与外部世界之间的“平衡―不平衡一新的平衡”往复循环中不断丰富和发展。认知结构与外部世界的平衡是指能够使用现有认知结构同化新信息的认知状态,反之即为不平衡状态。

1.3建构主义教学观

在建构主义教学观中,教师的角色由传统的知识传递者和灌输者转变为知识意义建构的帮助者和引导者,学习者也由外部信息的被动接受者转变为外部信息的加工主体和知识意义的主动建构者。建构主义教学观强调协作学习和已有知识对于知识意义建构的重要作用。由于个体认知结构和对客观世界理解的差异,学习者对知识的意义建构结果是不同的。而这种差异正是学习者非常宝贵的资源,通过学习者之间的合作可以使知识理解更加全面,意义建构更加准确。同时,建构主义教学观重视学习者原有的知识和经验,引导学习者建立新旧知识之间的联系,通过新旧知识的相互作用建构出新知识的意义。

2基于建构主义学习理论的创新教学模式

2.1突出学生的主体地位,以学生为中心开展教学活动

算法与程序设计类课程建构主义教学模式,首先要在学习过程中充分发挥学习者的主动性和创造性,通过采用任务驱动式教学、情境创设和协作学习等教学方法激发学习者的学习主动性和积极性,使学习者主动地建构所学知识的意义,将知识真正内化为自身的认知结构。其次要让学习者在不同的情境下应用所学的知识,将知识外化于具体环境,掌握用知识解决不同情境下实际问题的具体方法,真正实现知识的双向意义建构。鼓励和引导学习者不断反思意义建构的过程和结果,通过对自身学习活动进行阶段性反思和整体性反思,实现知识的深层次理解和完善的意义建构,探索解决问题的最优方法。

2.2重视教师的指导作用。引导知识的意义建构

在算法与程序设计类课程的建构主义教学实践中,教师角色的变化对其在教学过程中发挥的作用提出了更高的要求。首先,教师要以具有挑战性和应用性的问题激发学习者的学习兴趣,提高其积极性和主动性,促进自主学习和主动的知识意义建构。其次,教师要在教学目标分析的基础上确定学习任务,组织和引导学习活动,提供必要的指导和帮助。再次,教师要善于提示新旧知识之间的联系,帮助学习者进行知识的迁移。此外,教师应该通过分组完成实训项目的方式组织协作学习,并对协作学习过程进行监督和引导,使之向有利于知识意义建构的方向发展。

2.3重视对学习者知识基础的分析

由于算法与程序设计类课程之间的紧密联系性以及课程体系的知识递进等特点,对学习者知识基础的分析尤为重要。例如,在数据结构与算法设计课程的教学过程中,学习者对先修基础课程c语言程序设计的掌握情况很大程度上决定了教学活动能否顺利展开以及学习者对于所学知识的掌握程度。因此,基于建构主义学习理论的算法与程序设计类课程教学模式重视对学习者知识基础的分析,以便教师根据分析结果采取相应措施、查缺补漏,以保证课程教学工作的顺利展开。在教学实践中,教师可以在每门课程开始之前,进行先修课程学习情况测验,包括基础知识和编程能力的检验,以掌握学习者先修课程的学习情况。例如,在数据结构和算法设计课程教学之前,通过测验的方式检查学生对先修课程C语言程序设计中数组、链表、函数等必备知识的掌握情况,并且重点考查学生利用c语言编程验证算法的能力。

2.4任务驱动式教学,以问题驱动学习

将任务驱动教学法引入算法与程序设计类课程的教学中,具体操作可以分解为以下步骤:

首先是任务的提出。教师在备课阶段先行完成任务系统的程序编制,将系统的运行结果展示给学生,让学生对任务的结果有一个直观的印象。友好的用户界面、完善的系统功能,能够激发学生尝试编程实现系统功能的兴趣,任务由此展开。

其次是任务的分解。在学生对目标任务有了直观印象之后,教师要根据学生具体的知识结构特点,将任务进行分解,即将较大任务分解为若干子功能,降低编程难度,使学生有信心、有能力完成任务。

再次是任务的实施。在教师的指导下,学生主动查找相关资料,或独立完成,或合作完成,逐步编程实现各个子功能模块,最终集成一个完整的系统,完成整个任务。

最后是任务的验收。任务验收是对学习者任务完成情况的检验和评价,可以通过项目报告或项目答辩的形式验收任务的完成情况。任务验收结果作为学习评价的重要依据。

2.5创设真实的学习情境,促进知识的意义建构

建构主义学习总是与一定的情境联系,情境包括个人知识经验和社会文化背景两个方面。建构主义教学模式将创建真实情境作为意义建构的基本前提,创造能够表征知识结构、促进学生主动建构知识意义的社会化的、真实的情境,减少知识与现实应用之间的差距。在真实情境下学习有利于促进学习者同化、顺应所学的新知识,促进知识的意义建构。

算法与程序设计类课程是实践性较强的一类课程,其共同特点是每个学习主题都可以直接在计算机上编写、调试、运行,并检查运行结果。因此,上机编程实践就是学习者在学习过程中体验到的真实的学习情境。教学设计应着眼于为学习者提供实践编程情境,让学习者更多地上机实践,体验编写程序、调试程序、运行程序、检查运行结果等一系列过程,在实践中掌握程序设计的知识和思想,缩小所学知识与实际编程应用之间的差距。此外,对于课程中的概念、语法和算法等理论基础知识的学习,应当以丰富的学习资源作为学习情境,从而使学生能够在不同的情境下利用各种学习资源完善对所学知识的意义建构。

2.6鼓励协作学习,创建支持协作学习的环境

在算法与程序设计类课程中;教师依据课程的教学目标设计若干个中等规模的算法或程序设计实训题目,如学生信息管理系统、校园游览导游系统等,学生采用分组协作的方式完成选定的题目。实训项目从系统规划到成果展示的整个开发周期通常需要4~5人,项目小组由一名学习者担任组长,负责统筹和协调项目小组的工作。项目小组需要完成任务分析、算法设计、编程实现、论文撰写、项目答辩等任务。通过协作完成实训题目,学习者不但提高了算法或程序设计实现能力,还培养了团队协作意识,提高了论文撰写和PPT制作的能力。

2.7利用各种信息资源促进知识的意义建构

算法与程序设计类课程应具有三个层次的信息资源:第_个层次是教材和课件,这个层次的资源起到支撑基础知识框架建构的作用,帮助学生建构课程知识的框架;第二层次的资源包括基于校园网的课程教学网站的“学习指导”“常见问题”“参考资料”“习题和答案”等功能模块,第二层次资源在第一层次资源的基础上帮助学生更好地完成知识的意义建构;第三层次信息资源包括课程教学网站的“自测练习”“课后作业”“网络答疑”等功能模块,第三层次资源帮助学生在完成基本的意义建构后进行自我评价、自我反馈和自我反思,以便纠正知识意义建构中存在的偏差或错误,从而实现对所学知识的意义建构。

2.8建立综合学习评价体系,完善教学评价机制

教学评价是建构主义教学模式一个非常重要的组成部分。通过建设与教学方法相适应的、具有导向性的建构主义评价体系,可以帮助学习者客观、准确地认识自身学习效果,引导学习者合理安排学习时间,提高学习效率。由于实现知识的意义建构是建构主义学习的最终目标,因此评价学习者的学习效果应该以完成知识意义建构的情况为依据,而知识意义建构的客观表征就是学习者学习知识后解决实际问题的能力。建构主义教学评价通常包括总结性评价和形成性评价,这两种评价方式发生在教学过程中不同的阶段,其作用也不尽相同。

总结性评价是在教学活动结束后,为检验教学活动的最终效果是否满足教学目标的要求而进行的评价,通常采用期末考试的方式。建构主义思想指导下的考试应注重对学习者解决实际问题能力的评价,因此程序与算法设计类课程的考试试题应以程序编写为主,减少客观题的比例,重点考察学生的实际编程能力,甚至可以采用上机考试的形式取代传统的笔试。

形成性评价是为了取得更好的教学效果,在教学过程中进行的评价。由于学习者对外部世界理解的差异,建构主义教学评价侧重于对学生认知过程的评价,即自主学习的形成性评价。源于学习过程的形成性评价体现了学习是知识积累的过程的特点,有利于及时了解学生的学习进展以及存在的问题,并据此调整和改进教学方法和学习策略。目前,算法与程序设计类课程的形成性评价普遍采用的方法是让学习者完成一个真实的算法设计或编程任务来检验学习者的学习效果,在学习者完成任务的过程中对其进行评价。编程实践过程能够充分体现出学生能力发展的情况,从而为教师提供充足的评价空间。教师应以学生在完成编程实验过程的各个环节中的表现为依据,以学生能力发展情况为重点考察对象,兼顾学生在协作学习过程中的表现,对学生做出客观公正的形成性评价。此外,学习者的自我评价也是形成性评价的一个重要组成部分。为了让学生能够在学习完一个主题之后及时地进行自我评价,在教学网站中可以设置“自测练习”模块,自测练习的题目经过精心设计,能够有效地检验学生对基本概念、基本算法、基本编程方法的理解和掌握。通过完成“自测练习”,学生可以实现自我反馈,纠正错误理解或片面认识,建构符合要求的认知结构。

3结语

将建构主义学习理论引入算法与程序设计类课程的教学中,突破了以教师为中心的传统教学模式的局限,建立了以学生为主体、教师为指导,通过情境创设、自主学习、协作学习、会话交流等教学活动,使学生在与客观环境的交互过程中主动建构认知结构的全新教学模式。这一教学模式不仅有效地激发了学习者的积极性和主动性,提升了教学效果和教学效率,而且培养了学习者的创新思维能力、自主学习能力、实践编程能力和协作探索能力,是算法与程序设计类课程教学改革的重要方向。

10.倡算法多样化数学教学心得体会 篇十

倡算法多样化数学教学心得体会

《数学课程标准》指出:数学教学活动必须建立在学生认识发展水平和已有知识经验的基础之上。“提倡算法多样化”、“鼓励算法多样化”是《数学课程标准》中关于计算教学改革的一个亮点,它有利于调动学生已有的计算经验,探寻不同的算法,使“不同的人在数学上得到不同的发展”。但是,在课堂教学的实践中,到底应该如何体现算法多样化的教学呢?下面是我在教学中的几点体会:

1、为学生创设算法多样化的机会。

给学生提供的学习内容应该是能够紧密联系他们生活实际,发生在他们

身边的现象或问题。而且这些现象与问题中含有数学价值,学生能从中发现客观规律、积累数学活动经验。教科书在编写时作了许多努力,教师的任务是把教科书中的学习材料用生动、有趣的方式呈现给学生。我们可以从三个方面来考虑,一是学生感不感兴趣、想不想学习、愿不愿探究;二是学生有没有回忆起相关的旧知识和已有的经验与方法;三是学生是不是有了初步的解决方法与打算。

例如:有这样一道题:5×25×8要求用简便方法计算,学生的方法很多,先算5×25=125再算125×8=1000(2)把8拆成2×4,先算5×2=10、25×4=100,再算10×100=1000(3)先算25×8=200再算200×5=1000(4)先算5×8=40再算40×25=1000这样的题目为学生提供了广阔的思维空间,有效的调动了学生思维的积极性,为算法多样化创造了机会。

2、为学生提供算法多样化的平台。

不同的算法展示了学生的不同认

知方式。面对问题,教师应该不是告诉他们可以(应该)怎样算,而是应让学生进行自主探索,以“做”而非“听或看”的方式介入学习活动。在这样的活动中,学生不仅能理解所学的知识,掌握正确的算法,而且提高了自己从事数学活动的能力,增强了学习数学的信心,促进自身的整体发展。

学生在解决问题的时候总是会有一些自己的独特的想法,我们应该让他们按照自己的设想去试一试,用自己的策略去尝试解决。教师只要注意:一是留给学生比较充裕的时间,保障每一名学生都有独立探索的机会;二是鼓励学生勇于克服困难,尽力寻找问题的答案;三是在学生遇到困难是及时给予合理化的建议。

3、让学生在交流中提升算法多样化的品位。

学生通过自己的实践活动得到了问题的答案,找到了解决问题的方法,这就为交流创造条件,他们既有交流的

愿望,也有交流的内容。教师要引导全体学生都参与交流,交流的组织形式应是灵活多样的。同桌学生之间或学习小组内部的交流频率高、机会多、参与面广,可以在此基础上再组织班集体的交流,展示不同的计算方法,让每个学生都发表自己的不同观点,倾听别人的想法,有利于学生感受解决问题策略的多样性与灵活性,从中受到启发,学会理解他人,欣赏他人。

4、让学生在自主探究中升华算法多样化的内涵。

学生通过自己动手实践,自主探索找到的解决方法只要是正确的,就都是好方法,要允许学生用自己的方法解决问题。这些方法是学生的创造,是他们的学习成果,其中既包含着数学知识,还包含了宝贵的精神和态度。

教师应“允许学生以他们喜欢的方式学习数学”。如果把学生自已喜欢的算法看做“基本算法”的话,每个人心中的基本方法是不同的,在不同的阶段,基

本方法也在发生变化。因此教师要让学生自已选择“基本算法”,并应予以肯定和鼓励。但是强调个体的“基本算法”并非到此为止,还需引导探索、“多中选优”。

11.算法学习心得体会 篇十一

针对BP算法容易陷入局部极值和粒子群算法易失去多样性的问题,为了克服两种算法的缺点同时能够利用这两种算法的优点,本文提出一种新的算法,在算法前期利用粒子群算法能够较快的找到局部最佳的优点,如果此时粒子群失去多样性的情况下,再继续用BP算法继续训练网络,在局部极值的情况下继续训练网络,从而找到局部更优点,如果在BP算法陷入极值时,转到粒子群算法进行训练神经网络,进而克服BP算法的缺点,同时,本文将新的算法用户网络入侵检测中进行验证,发现本文提出的算法在精度和速度方面都要优于BP算法和粒子群算法。随着移动终端电子设备的使用普及,计算机网络已经渗透到我们生活的每个角落并正在改变我们的生活方式,但是,网络安全问题日渐凸显,当前网络安全防护技术有访问控制,入侵检测等等,其中,网络入侵检测是当前研究的热点问题之一。然而,传统的入侵检测技术正逐渐显示其缺点和不足,基于BP神经网络的入侵检测系统引入使得与人工智能结合的更为紧密,更能识别和检测出各类入侵行为。但是BP算法本身具有训练时间长且不易收敛到局部最小的缺点,本文分析了当前的入侵检测系统及神经网络技术,并且考虑到BP算法的缺陷的基础上提出将粒子群优化算法(PSO)和BP算法相融合的新算法,称之为IPSO-BP算法。主要优点是克服两种算法在入侵检测训练过程中各自的缺点。

改进算法原理

PSO-BP算法用来优化的对象(粒子)主要是BP神经网络的权值和阈值,粒子群空间维度是BP神经网络的权值和阈值的个数之和,每个粒子对应神经网络的权值和阈值,在输入样本时,用粒子群中的粒子来计算出相应的输出,而衡量每个粒子的适应度的是网络的期望值和实际输出值之间的均方误差。公式如下:

(1)

J表示每个粒子的适应值;其中N为训练样本集的总数;Yij为第i个样本的第j个网络输出节点的理想输出值;yij是第i个样本的第j个实际输出值,c是网络输出元的个数。在本算法中还要引入另一个重要指标-粒子群的聚集程度公式如下:

(2)

其中t表示粒子群迭代到第t代;s(t)表示当前粒子和每个粒子历史最好位置的聚集程度;n表示粒子总数;i表示第i个粒子;j表示第i个粒子的第j维;xij(t)表示第i个粒子的第j维坐标值;表示粒子群中所有粒子的第j维坐标的平均值。当粒子的聚集程度低于S(t)时,要进行对当前粒子的每维加上一个(-1,1)之间的随机值进行干扰,同时对每个粒子的最好位置也加上随机值进行变化,提高其多样性。对全局最优值用BP算法进行训练。具体的算法流程如下:(1)设定粒子群中粒子个数N,根据需要确定神经元的个数和相应的权值和阈值,以此确定粒子群中粒子的维数D,设定训练次数iter,设定粒子更新速度的最大值Vmax,学习因子c1,c2,设定适应值精度error。(2)随机初始化每个粒子的位置和速度。并且将每个粒子的pbest和全局最小值gbest设为无穷大。(3)把每个粒子值赋对应的赋给神经网络的权值和阈值。输入样本,计算出对应的实际输出值,按公式(5)计算每个粒子的适应值。(4)取适应值最小的与gbest比较,如果比gbest小,更新gbest,反之gbest不变。每个粒子当前适应值和自身历史最好pbest比较,如果比pbest小,更新pbest和相应的位置,反之pbest不变。如果gbest低于设定的error则,训练结束。如果训练次数大于iter,训练结束,反之进入步骤(5)。(5)根据公式(2)、计算出每个粒子每一维的变化速度,并且与Vmax和 -Vmax比较比Vmax大,值改之为Vmax比-Vmax小的改之为-Vmax,带入公式(3)更新每个粒子。(6)用公式(6)判断当前粒子的聚集程度,如果不低于預先设置的标准时,转到步骤(3)重复执行,反之进入下一步骤。(7)产生随机数对当前粒子进行干扰。对每个粒子的历史最好位置,用随机函数进行干扰,保存为历史最好位置和适应值。用BP算法对全局最优值的位置进行训练,得到的适应值与全局最优值比较,较好的话,更新全局最优值和相应位置。转入步骤(3)重复执行。

实验

本实验数据主要源于麻省理工学院林肯实验室提供的1999年从模拟网络中手机的网络攻评估数据。设计网络中为一个输入单元,8个隐含单元和1个输出单元的三层神经网络。C1=C2=1.5,Vmax=1.5,Wmax=0.95,Wmin=0.25,均方误差设置为error=1e-4;粒子群的大小设置为N=70。通过比较带动量项的BP算法,标准的PSO算法,IPSO-BP算法。在粒子群聚集到一定程度,用rand()对当前粒子群干扰的算法和对粒子群粒子历史最优位置干扰的方法和IPSO-PB算法比较结果。均方误差值如下:

图1:三种算法误差比较曲线

从图1可以看出,在均方误差值方面,IPSO-BP算法优于后两种算法。本文提出的干扰当前粒子群,干扰每个粒子历史最好位置和集合两种方法并且对粒子群最好位置采用BP算法等三种方法在均方误差方面用实验验证。可以看出,对于本实验数据,在粒子群迭代到1500次左右时,干扰当前和干扰粒子历史最好位置两种方法在均方误差方面已经不是很明显了,在IPSO-BP算法中,到1500次左右的时候却下降的很快。

(作者单位:中国人民银行淮安市中心支行)

作者简介

12.一种SVDD增量学习算法及应用 篇十二

关键词:SVDD,增量学习,垃圾邮件

0引言

SVDD是由Tax和Duin[1,2]提出并发展起来的一种单值分类算法, 其理论源于Vapnik[3]提出的支持向量机。与支持向量机的最优超平面不同的是, SVDD寻求一个尽可能包容目标样本数据的最优超球体。在说话人识别[4]、入侵检测[5]、机械故障诊断[6]、气象预报[7]等领域应用中, SVDD算法均取得了很好的分类效果。与支持向量机相同的是, SVDD也是一种小样本学习算法, 在大规模样本数据学习中, 同样存在学习时间长、对内存等硬件资源要求高的缺陷, 这就给SVDD的实际应用造成了很大障碍。于是有些学者提出了简单增量学习算法[8,9,10,11], 主要思想是在每个增量学习步骤中只保留支持向量, 有新的数据到来时, 用新的数据和前一步得到的支持向量构成新的训练集对SVDD进行训练。这种方法虽然充分利用样本数据中支持向量集的地位大大削减了训练样本的数量;但同时也引入了新的问题, 即当新增样本的分布规律发生变化时, 这种方法会产生较大的误差, 因为随着新增样本的加入, 原样本中支持向量集的地位可能发生变化。本文在此增量学习算法的基础上充分考虑支持向量集在新增样本前后的变化特性, 提出了一种新的SVDD增量学习算法, 并以Spambase邮件语料进行实验, 结果表明该算法在保证垃圾邮件识别精度的同时大大缩短了SVDD的学习时间。

1SVDD介绍

SVDD的基本思想是把要描述的对象作为一个整体, 建立一个封闭而紧凑的超球体, 使得描述的对象全部或尽可能多地包在这个球体内, 而非该类对象要没有或尽可能少地落入该球体内。如图1所示。

假设训练数据集为{xi|xiRd, i=1, 2, …, n}, 根据结构风险最小化 (SRM) 定义, 最优超球体的求解可转化为二次优化问题:

其中a为超球体的中心, R为半径, ‖xi-a‖2为点xi到中心a的距离, ξi为松弛因子, ξi≻0对应于超球体外部的异常点;参数ν∈[0, 1]作为对异常点的惩罚, 反映了尽量少的异常点数和尽可能小的超球体半径R的折衷。式 (1) 优化问题即为求解下述的Lagrange极值问题:

L (R, a, ξ, λ, μ) =R2+1nνi=1nξi-i=1nλi[R2+ξi- (xixi-2axi+aa) ]-i=1nμiξi (2)

式中:λiμi均为Lagrange系数, λi≥0, μi≥0, xi·xixixi的内积。对于每一个样本xi都有一对对应的Lagrange系数λiμi。将式 (2) 分别对Raξ求偏倒数, 并令其等于0, 得到:

LR=0i=1nλi=1 (3)

La=0a=i=1nλixi (4)

Lξ=0μi=1nν-λi (5)

可见a是由xi的线性组合而得到的, 是与xi具有相同维数的向量。因λi≥0和μi≥0, 则式 (5) 转化为式 (6) :

0λi1nν (6)

将式 (3) 、式 (4) 代入式 (2) , Lagrange优化目标函数可写作如下形式:

L (R, a, ξ, λ, μ) =i=1nλi (xixj) -i=1, j=1nλiλj (xixj) (7)

式 (7) 是一个标准的二次优化问题, 解这个优化问题可得λi的最优解。在实际计算中, 多数的λi=0, 只有少部分λi>0, 不为0的λi对应的样本xi称为支持向量, 也只有这少部分的支持向量才决定aR的取值, 其它非支持向量因其对应的λi=0, 在计算中将被忽略。超球体中心a可由式 (4) 求得;半径R通常为0≤λi≤1/的样本点xi到中心a的距离平均值。对于一个新样本Z, 判断它是否属于目标样本, 首先要求出该样本到超球中心的广义距离:

f (Ζ) =Ζ-a2= (ΖΖ) =2i=1nλi (Ζxi) +i=1, j=1nλiλj (xixj) (8)

f (Z) ≤R2, 则判其属于目标样本;反之, 判其为非目标样本。

依据V.Vapnik提出的理论, 可用符合Mercer条件的核函数K (xi, xj) 替代式 (7) 中的内积运算xi·xj, 实现由低维空间到高维空间的映射, 从而使低维空间的非线性问题转化为高维空间的线性问题, 即式 (7) 变为如下形式:

L (R, a, ξ, λ, μ) =i=1nλiΚ (xixj) -i=1, j=1nλiλjΚ (xixj) (9)

本文选用了高斯核函数, 即:

Κ (x, y) =exp[-x-y2δ2] (10)

2SVDD增量学习算法

2.1分析

由上述SVDD算法描述可知, 支持向量集充分描述了整个训练数据集的数据特征, 支持向量集和训练样本集之间的等价关系可以得到证明[12]。通常, 支持向量集是样本集的一小部分, 因此, 借助支持向量集进行增量学习是可行且有效的。传统增量学习算法[8,9,10,11]是将历史样本集的支持向量集与新的样本集进行合并训练, 而原样本数据集中非支持向量部分被舍弃。这种算法的缺陷是可能会因舍弃了原历史样本集中非支持向量数据集提供的有用信息而降低识别精度。事实上, 随着新增样本的介入, 支持向量集和初始训练样本集之间的等价关系有可能被打破, 从而使得原有的支持向量集已不能充分刻画新训练集的数据特征, 即原样本集中非支持向量有可能转化为支持向量, 而原样本集中支持向量也有可能转化为非支持向量。如图2所示。

原始数据集old={x1, x2, x3, x4, x5}经训练生成由x2和x5两个支持向量确定的SVDD模型, 如上图中黑色实线所围区域;new={y1, y2, y3, y4, y5}为新增数据集, newold合并训练生成了由x1、x5和y3三个支持向量确定的SVDD模型, 如图2中红色虚线所围区域。可以发现, 原支持向量x2经增量训练后变成了非支持向量, 而原数据集中非支持向量x1经增量训练后变成了新的支持向量。这一实例说明了原始数据集中支持向量以外数据在增量学习中不能轻易地舍弃。

2.2一种新的SVDD增量学习算法

经过上面的分析, 本文提出一种新的SVDD增量学习算法, 具体描述如下:

(1) 将训练样本集随机等分为N个互不相交的子集, 分别记为Subset1, Subset2, …, SubsetN。

(2) 取子集Subset1进行训练, 得到SVDD模型Ω1, 其支持向量集记为SV1;用Ω1 对Subset2分类, 识别错误的数据集记为Subset2err;若Subset2err=Φ, 则Ω12last =Ω1 , SV12last = SV1, 转 (6) 。

(3) 取子集Subset2进行训练, 得到SVDD模型Ω2, 其支持向量集记为SV2;用Ω2 对Subset1分类, 识别错误的数据集记为Subset1err;若Subset1err=Φ, 则Ω12last=Ω2, SV12last= SV2, 转 (6) 。

(4) 对SV1+SV2进行训练, 得到SVDD模型Ω12, 其支持向量集记为SV12;用Ω12对Subset1-SV1进行分类, 识别错误的数据集记为 (Subset1-SV1) err;同样用Ω12对Subset2-SV2进行分类, 识别错误的数据集记为 (Subset2-SV2) err。

(5) 对SV12+ (Subset1-SV1) err+ (Subset2-SV2) err进行训练, 得到Subset1和Subset2最终SVDD模型Ω12last, 其支持向量集记为SV12last。

(6) 重复 (2) ~ (5) 对后续子集进行学习, 最终得到这N个子集的SVDD模型Ωlast及支持向量集SVlast。

3应用举例

为验证上述SVDD增量学习算法的有效性, 这里选用了Hopkins、Reeber等人提供的垃圾邮件过滤研究语料库Spambase进行实验。Spambase语料来源于提供者在一段时间内收到的真实邮件, 去掉了HTML格式的tag、附件等, 保留了邮件正文的纯文本内容。Spambase将每一封邮件都表示为向量的形式, 每个向量都是57维, 其中第1~54维表示一个特定的单词或字符在邮件中出现的频率, 第55维表示所有连续大写字母的平均长度, 第56维表示最长的连续大写字母的长度, 第57维表示所有连续大写字母长度总和。语料库中共有4601封邮件, 包含1813封垃圾邮件和2788封正常邮件。这里只选择其中1813封垃圾邮件进行实验。将1813封垃圾邮件随机分成互不相交的10份, 并随机从10份中选取5份作为训练数据集, 剩下的5份用于实际测试, 如此重复10次。实验中对数据集进行了规范化处理, 目的是为了防止个别属性维取值过大而掩盖其它属性维的贡献, 实验证明基于规范化数据集上的SVDD模型性能要优于非规范化的[5]。文中属性维采用下式进行规范化处理:

xi, j´=|xi, j-min (xi, j) jmax (xi, j) j-min (xi, j) j|i=1, 2, , lj=1, 2, , d (11)

其中:l为样本数, d为属性维数。

为了验证本文所提SVDD增量学习算法 (这里暂称之为My_inc) 的有效性, 实验中将其与传统增量学习算法 (这里暂称之为Trad_inc) 和非增量学习算法 (这里暂称之为Non_inc) 进行了比较, 如图3、图4所示。实验环境:Windows XP、Matlab 6、CPU (1.8GHZ) 、256M内存。实验中, 参数ν和δ的取值均分别为0.001和50, 算法My_inc及Trad_inc中N取值均为5。

由图3可知, 算法My_inc的训练时间与传统算法Trad_inc相近, 但比非增量训练方法Non_inc短得多;由图4可知, 算法My_inc对垃圾邮件的识别精度与原始非增量训练算法Non_inc完全相同, 而传统增量训练算法Trad_inc却比Non_inc低。因此, 本文所提出的SVDD增量学习算法My_inc不仅可以大大缩短训练时间, 而且能够保证训练模型的识别精度。

4结束语

本文通过对SVDD算法的描述和分析, 提出了一种SVDD增量学习算法My_inc, 并借助于Spambase语料库将其与传统增量学习算法Trad_inc和非增量学习方法Non_inc进行了比较。实验结果表明, 算法My_inc在保证识别精度的同时又大大缩短了训练时间, 为SVDD的实际应用提供了一种选择途径。

参考文献

[1]David M J Tax, Robert P W Duin.Support Vector Data Description[J].Pattern Recognition Letters, 1999, 20 (11-13) :1191-1199.

[2]David M J Tax, Robert P W Duin.Support Vector Data Description[J].Machine Learning, 2004, 54:45-66.

[3]Vapnik VN.The Nature of Statistical Learning Theory[M].NewYork:Springer Verlag, 1999.

[4]Xin Dong, Wu Zhaohui, Zhang Wanfeng.Support vector domain de-scription for speaker recognition.2001IEEE Signal Proocessing Society Workshop.Falmouth, 2001.

[5]杨敏, 张焕国, 傅建明, 等.基于支持向量数据描述的异常检测方法[J].计算机工程, 2005, 31 (3) :39-42.

[6]李凌均, 张周锁, 何正嘉.基于支持向量数据描述的机械故障诊断研究[J].西安交通大学学报, 2003, 37 (9) :910-913.

[7]燕东渭, 孙田文, 杨艳, 等.支持向量数据描述在西北暴雨预报中的应用实验[J].应用气象学报, 2007, 18 (5) :676-681.

[8]Syed N, Liu H, Sung K.Incremental learning with support vector ma-chines[C]//Proceedings of Workshop on Suppor Vector Machines at the International Joint Conference on Artificial Intelligence.1999:876-892.

[9]Cauwenberghs G, Poggio T.Incremental and decremental support vector machine learning[C]//Advances in Neural In-formation Proceeding Systems.Cambridge, MA:MITPress, 2000 (13) :409-415.

[10]Domeniconi C, Gunopulos D.Incremental support vector machine con-struction[C]//Proceeding of first IEEE Interna-tional Conference on Data Mining.2001:589-592.

[11]刘晔, 王泽兵, 冯雁, 等.基于增量支持向量机的DOS入侵检测[J].计算机工程, 2006, 4 (32) :179-181.

上一篇:学校推普工作方案下一篇:描写元宵夜景的作文