• 回答数

    2

  • 浏览数

    287

徐珊珊11
首页 > 工程师考试 > 算法工程师考试题

2个回答 默认排序
  • 默认排序
  • 按时间排序

好好在一起吧

已采纳

上采样upsampling的主要目的是放大图像,几乎都是采用内插值法,即在原有图像像素的基础上,在像素点值之间采用合适的插值算法插入新的元素。 线性插值法是指使用连接两个已知量的直线来确定在这个两个已知量之间的一个未知量的值的方法。 假设已知两个坐标(x0,y0)和(x1,y1),要得到[x0,x1]区间内某一位置x在直线上的值。 该直线的方程可表示为: 这样 双线性插值是插值算法中的一种,是线性插值的扩展。利用原图像中目标点四周的四个真实存在的像素值来共同决定目标图中的一个像素值,其核心思想是在两个方向分别进行一次线性插值。 已知的红色数据点和待插值的绿色数据点 假如我们想得到未知函数f在点P= (x,y) 的值,假设我们已知函数f在 四个点的值。 在x与y方向上,z值成单调性特性的应用中,此种方法可以做外插运算,即可以求解Q11~Q22所构成的正方形以外的点的值。 总结:线性插值法利用原图像中两个点计算像素值进行插值,双线性插值法利用原图像中四个点计算目标像素值进行插值。 这是最简单的一种插值方法,不需要计算,在待求象素的四邻象素中,将距离待求象素最近的邻象素灰度赋给待求象素。设i+u, j+v(i, j为正整数, u, v为大于零小于1的小数,下同)为待求象素坐标,则待求象素灰度的值 f(i+u, j+v)如下图所示: 如果(i+u, j+v)落在A区,即u<, v<,则将左上角象素的灰度值赋给待求象素,同理,落在B区则赋予右上角的象素灰度值,落在C区则赋予左下角象素的灰度值,落在D区则赋予右下角象素的灰度值。 最邻近元法计算量较小,但可能会造成插值生成的图像灰度上的不连续,在灰度变化的地方可能出现明显的锯齿状。 双线性内插法是利用待求象素四个邻象素的灰度在两个方向上作线性内插。 如下图所示: 对于 (i, j+v),f(i, j) 到 f(i, j+1) 的灰度变化为线性关系,则有: f(i, j+v) = [f(i, j+1) - f(i, j)] * v + f(i, j) 同理对于 (i+1, j+v) 则有: f(i+1, j+v) = [f(i+1, j+1) - f(i+1, j)] * v + f(i+1, j) 从f(i, j+v) 到 f(i+1, j+v) 的灰度变化也为线性关系,由此可推导出待求象素灰度的计算式如下: f(i+u, j+v) = (1-u) * (1-v) * f(i, j) + (1-u) * v * f(i, j+1) + u * (1-v) * f(i+1, j) + u * v * f(i+1, j+1) 双线性内插法的计算比最邻近点法复杂,计算量较大,但没有灰度不连续的缺点,结果基本令人满意。它具有低通滤波性质,使高频分量受损,图像轮廓可能会有一点模糊。 该方法利用三次多项式S(x)求逼近理论上最佳插值函数sin(x)/x, 其数学表达式为: 待求像素(x, y)的灰度值由其周围16个灰度值加权内插得到,如下图: 待求像素的灰度计算式如下: f(x, y) = f(i+u, j+v) = ABC 其中: 三次曲线插值方法计算量较大,但插值后的图像效果最好。

算法工程师考试题

119 评论(14)

单眼皮姐姐

摘 要:本文将BP(Back Propagation)神经网络应用到题库试题分值的确定中,以解决目前智能组卷研究中题库试题分值确定的不合理性。在训练网络时,对标准BP算法作了相应改进,以适应该智能模型的建立。通过案例试验,验证了确定试题分值的智能模型的精度是符合实际要求的,在一定程度上为智能化组卷奠定了基础。 关键词:BP算法 题库 试题分值 引言 题库是保证考试题目具有较高质量、更好地达到教育测量目标的重要手段。随着计算机及网络技术,特别是人工智能技术在现代教育中的推广及应用,教育领域对电子测评有了很大的重视,更多地关注题库建设及智能组卷的研发。 目前,市面上已出现了各种各样的题库系统。实际上题库建设仍缺乏科学理论指导,尤其是在试题参数确定上,主观因素影响很大,使题库系统不能很好地实现预期的目标。例如,试题分值的确定一直没有一个很好的解决方案。传统的做法是采用难度赋分法和时间赋分法[1],而没有考虑其它因素的影响,如知识点数、知识点的重要程度等。考虑到试题分值与影响试题分值的参数之间的高度非线性关系,本文利用BP神经网络所具备的模拟人的思维、非线性变换和自学等功能来构建试题分值智能确定模型,以克服传统做法中各种随机性和主观性对分值的影响。 1 基本原理和方法 利用已知样本对BP网络进行训练,使其获得专家经验和对确定试题分值的认识,当对新的样本进行处理时,该网络模拟人的思维并再现专家知识经验,达到客观地确定试题分值的目的,具体步骤是: ① 提取确定试题分值的参数,量化处理为(0,1)内的精确值作为网络输入。 ② 利用已有的专家知识库(样本库),通过BP算法对网络进行训练,通过对网络参数及算法参数的调整得到稳定的网络参数――分数确定模型。为了能在实际应用中保证可接受的计算精度,我们在训练网络时,使它在更高的精度下收敛。 ③ 输入需要确定分值的相关试题参数,网络根据自学获得的专家知识经验对输入值进行处理,然后输出(0,1)的值作为最终结果(该试题的分值)。 2 分值确定的BP神经网络结构 本文分析总结出影响题库试题分值得7个参数(BP网络的输入向量),作为对该领域问题的首次研究,为了获得足够多的有代表性的训练样本,本文限制参数“题型”的取值为:1、2、3和4,分别代表单选题、多选题、判断改错题和填空题。根据考试理论、命题设计理论,属于这几类题型的每道试题所考察的知识点一般不超过3个,而且最适合考查识记、理解和应用三个认知水平。所以本文亦限制参数“知识点数”取[1,3]之间的整数,同时限制参数“认知层次”的取值为:1、2和3,分别代表识记、理解和应用。从而缩小了样本空间。7个参数的取值见表1。 在神经网络的应用中,网络结构的选择很重要,好的网络结构可以减少网络训练次数,提高网络学习精度。[2]隐含层数越多,神经网络学习速度就越慢,根据Kosmogorov定理,在合理的结构和恰当的权值条件下,3层BP神经网络可以逼近任意的连续函数,因此,我们选取了3层BP网络结构,如图1所示。 图1 其中,输入层节点数目n由影响试题分值参数个数确定,这里n=7,由于输出结果为一个试题分值,故输出节点数为m=1;在总结大量网络结构的基础上,得出隐含层神经元数目的经验公式为 由此本文初步确定隐含层的神经元数目为s=5。在实验仿真时,我们将动态调整隐含层的神经元数目,以获得网络 3 调整BP算法 动态调整隐含层单元数目和学习步长 如上所述,初步确定隐含层神经元数目为5,然后,通过人机交互,增加或减少隐含层神经元数目,分析比较全局误差的震荡程度、误差递减程度、误差稳定后的网络精确程度及网络的收敛性能,从而确定隐含层神经元数目。本文训练网络时既没有采用固定步长,也没有采用自适应调整步长的方法,而是采用人机交互动态调整的方法,笔者认为这样虽然麻烦,但对步长的调整是更智能的。 选择模式对的方法及全局误差的计算 本文将所有的样本都存储在数据库中,并把2/3的样本作为训练样本,在选择模式对时,从训练样本的第一条记录开始一直到最后一条,如此循环。经过反复实验,验证了这种方法比随机选择的方法更加有效,表现为网络误差递减明显,基本不存在震荡。通过分析,笔者认为,在随机选择方法中,由于随机性,不能保证所有的代表性样本都被选中,使得样本不再代表整体,失去了样本的意义,致使误差递减缓慢,震荡明显,训练不得收敛。采用下式计算全局误差: 其中,fp是输出层的实际输出,y是期望输出,M为训练样本总数,E是全局误差,N为正整数,该值的选择要合理,否则会使网络进入局部极小值,或者误差递减缓慢,震荡明显,训练难于收敛。 4 题库试题分值确定实例及分析 样本的选取 样本应很好地代表整体,这就要求必须有足够训练样本,否则样本只能代表整体中的某一部分,这样即使网络训练到了很高的精度,当实际应用时会发现网络误差有时变得很大,根本无法使用。根据这一原则及确定试题分值得参数个数和每一参数的取值,我们至少需要22500个训练样本。考虑到获取样本的难度及分值确定所需要的实际精度,本文从我们正在研发的《计算机文化基础》课程的智能题库中提取了具有高度代表性800个训练样本和400个试验样本,由于题库中的试题的难度、区分度等参数是经过测试得到的,所以是比较可信的,答题时间及分值根据经验人为估算而得。为了提高网络精度,我们又组织了一个专门小组(三位相关专业的教授和7位信息技术教学论专业的硕士研究生)对1200个样本的估计答题时间及分值进行了比较严密的估算,估算值精确到。估算方法是十位小组成员分别对每个样本的答题时间及分值估算,然后去掉一个最高分和一个最低分,把剩下的八个估算值计算加权平均值,所得的值即为最后的答题时间或分值。 样本归一化处理 为了使归一化处理的结果尽可能均匀分布在[0,1]之间,本文采用了如下式所示的归一化方法: 确定训练网络的精度 在实际中,我们通常以的整数倍作为某一试题的分值,所以如果得到的BP网络模型能精确到就可以了,然后根据类四舍五入的方法把它处理为的整数倍的一个值。当结果的小数部分小于时,则舍掉,当介于[,],则处理为,大于等于,则向整数进1。这是符合实际要求的。然而,经训练达到某一精度的网络在实际应用时,其误差总是围绕某固定值上下波动。特别是当样本的代表性较差时,更是如此。为此,我们在训练样本时,将网络的全局误差设置得比实际要求的更小。本研究将其设为10-5。 网络训练过程 本研究在网络训练时,隐含层单元数动态调整,以得到更合适的隐含层单元数目。没有采用动量项(经试验,没有动量项效果更好),步长动态调整,将其初值设为1,然后根据误差递减情况以的幅度在[0,1]之间调整。循环选择800个训练样本对网络进行训练,每循环m次计算一次全局误差,每循环n(n为m的整数倍)次观察记录一次误差变化情况,通过分析比较决定步长调整方向。训练网络的主要程序代码(c#)如下: button3_Click(object sender,EventArgs e) 本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文 {h_num= (()); //动态指定隐含层单元数 wj=new double[h_num];//输出-隐含权值 wij=new double[7,h_num];//隐含-输入权值 hvj=new double[h_num];//隐含层阈值 int i,j; netj=new double[h_num];//隐含层输入向量 xi=new double[7];//输入层输入向量 comm2=(); hoj=new double[h_num];//隐含层输出向量 ej=new double[h_num];//隐含层的一般误差 //初始化权值、阈值、步长及动量系数 a=(()); //初始化输出节点阈值 double e1=,E1=e1+1,E2=0; int count=0,count1=0; for(i=0;i=yb_count+1) ybbh=1; ybbh=(1,yb_count+1); = "select * from gyhVIEW where 样本编号="+ " ’" + ybbh + " ’" ; dr1 = (); if (()) {for (i = 0;i = 3*yb_count) { E1 = E2 /3*yb_count;count = 0;count1 += 1; if (count1 >= 1000) {if ((() + " a="+ () + "减小步长?","提示信息", , ) == ) { a -= ;} if ((() + "增加步长?","提示信息", , ) == ) { a += ;} count1 = 0;}}} 通过反复训练和比较分析,最后将网络隐含层单元数目确定为6,每循环3次计算一次全局误差,次每循环3000次观察记录一次误差变化情况,学习步长从1调整到,最后在时收敛。共训练了1128万次。模型稳定后,输入层与隐含层的连接权值如图3所示(其中i表示输入层单元序号,wij表示输入层单元i与隐含层单元j的连接权值),隐含层与输出层的连接权值及隐含层阈值如图4所示(其中j表示隐含层单元序号),输出层阈值为。 观察分析网络模型的测试误差,基本都小于,最小值为,最大值为,完全满足题库试题分值确定所要求的精度(),符合实际用需求。 结束语 本文将BP神经网络应用到题库试题分值的确定中,为题库试题分值得确定提供了一种可行的方法。在应用BP算法时,动态调整隐含层单元数目,动态调整学习步长,采用循环选择训练样本的模式对选择方法,经过特定次数的循环训练后计算一次全局误差。所有这些均源于本模型的准确建构。另外,如果训练样本能够很好地代表整体,用这种方法将能建立精度更高的确定试题分值的智能模型。 参考文献: [1]胡中锋,李方.教育测量与评价[M].广东高等教育出版社,. [2]Hadi, applications in concrete structures. Computers and Structures Volume:81,Issue:6,March,2003,. [3]姜华,赵洁.基于BP神经网络的学习行为评价模型及实现[J].计算机应用与软件,,(8):89-91. [4]戴永伟,雷志勇.BP网络学习算法研究及其图像识别应用[J].计算机与现代化,:68-70. [5]宋乃华,邢清华.一种新的基于粒群优化的BP网络学习算法[J].计算机工程,:181-183. 基金项目:全国教育科学“十一五”规划教育考试学研究重点课题项目(2006JKS3017);山西省教育科学“十一五”规划课题(GH-06106)。 注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。” 本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

338 评论(11)

相关问答