接上篇
5.4.2 粒子群优化算法(PSO)
练习BP神经网络常常选用差错反向传达算法,这种算 法简略堕入部分极值点,而且跟着层数增多,内层权重梯 度过低,学习速度慢。而PSO算法是一种依据集体的优化方 法,算法中种群称作粒子群,个别称为粒子。它的根本概念 源于对海鸥等海鸟捕食办法的模仿。一群海鸟随机地查找食 物,它们不知道食物在哪里,但知道当时离食物最近的位 置,然后挑选查找现在离食物最近的鸟的周围区域,以赶快 地找到食物。这种算法有练习速度快,不易堕入部分极值点 的长处。
1.问题的描绘
采 用 P S O 训 练 神 经 网 络 时 , 首 先 应 将 特 定 结 构 中 所 有 神 经 元 间 的连 接 权 值 编 码 成 实 数 码 串 表 示 的 个 体 。 假 设 网 络 中 包 含 M 个 优 化 权 值 ( 包 括 阈 值 在 内 ) , 则 每 个 个 体 将 由 M 个 权 值 参 数 组 成 的 一 个
M 维 向 量 来 表 示 。 例 如 : 给 定 如 下 结 构 的 神 经 网 络 , 其 中 包 括 一 个 阈 值 , 一 维 输 入 , 两 个 隐 层 单 元 , 一 维 输 出 , 从 图 中 可 知 其 中 包含 6 个 连 接 权 , 分 别 是
, 令则 微 粒 群 中 的 个 体 可 用 一 个 6 维 向 量 来 表 示 , 即
此刻, 个别结构中的每一个 元素,即代表神经网络中的一个权值。
2.初始化微粒群
图19 CCD摄像头
图20 舵机什物
依据微粒群规划,依照上述个别结构随机发生必定数意图个别(微粒)组成种群,其间不同的个别代表神经网络的 一组不同权值。一起初始化集体最优方位gbest,个别最优位 置lbest。
3.神经网络的练习及微粒
将微粒群中每一个别的重量映射为网络中的权值,然后构成一个神经网络。对每一个别对应的神经网络,输入训 练样本进行练习。网络权值的优化进程是一个重复迭代的过 程。为了确保所练习的神经网络具有较强的泛化才能,在网 络的练习进程中,往往将给定的样本空间分为两部分,一部 分用作练习样本,称为练习集,一部分作为测验样本,称为 测验集。而在权值优化进程中,每进行一次练习,都要对给 定的样本集进行分类,以确保每次练习时选用的练习集均不 相同。核算每一个网络在练习集上发生的均方差错,并以此 作为方针函数,并结构如下的习气度函数,用来核算个别的习气度。
其间,tk,p指练习样本P在K输出端的给定输出,则习气度函数界说如下:
4.PSO模型核算
点评微粒群中的一切个别( 每一个别视为可飞翔的微 粒),从中找到最佳个别用来判别是否需求更新微粒的Gbest 与Lbest。之后,依照PSO模型更新每一个别不同重量上的飞 行速度,并以此发生新的个别微粒。
5.算法停止条件
当方针函数值(即均方差错)小于给定的 时,算法停止。 用PSO练习神经网络算法的详细流程如下图21。
5.5 Linux体系下经过地址映射拜访物理内存
规划依据ARM的linux运用程序操控FPGA端PIO操控器 pio_led,pio_led连接到HPS/ARM lightweight axi bridge然后获 得在HPS/ARM总线上的物理地址空间。linux运用程序经过 linux内核内存映射设备驱动拜访PIO操控器pio_led的寄存器 物理地址然后操控pio_led履行相应的动作。
Linux体系下经过地址映射拜访物理内存的原理如下
图22 算法停止条件
/dev/mem: 物理内存的全镜像。能够用来拜访物理内存。
调试嵌入式Linux内核时,或许需求检查某个内核变量 的值。/dev/kmem供给了拜访内核虚拟内存的途径。现在 的内核大都默许禁用了/dev/kmem,翻开的办法是在 make menuconfig中选中 device drivers –> Character devices –>/dev/
kmem virtual device support.用 cat /proc/kallsyms | grep *** 找到要检查的变量的地 址, 这个地址作为本程序的输入参数。/dev/mem 用来拜访物理IO设备, 比方X用来拜访显 卡的物理内存, 或拜访嵌入式板中的G P I O 。 用法一般是 open,mmap,然后运用map之后的地址拜访物理内存。这 是完结用户空间驱动的一种办法。
比方,规范VGA 16色形式的实形式地址是A000:0000, 而线性地址则是A0000。设定显 存巨细为0x10000,则能够 如下操作mem_fd = open( "/dev/mem", O_RDWR );
vga_mem = mmap( 0, 0x10000, PROT_READ | PROT_ WRITE, MAP_SHARED,
mem_fd, 0xA0000 ); close( mem_fd );
然后便能够对vga_mem进行拜访。当然,假如是操作 VGA显卡,还要取得I/O 端口的拜访权限,以便进行直接的 I/O操作,用来设置形式/调色板/挑选位面等等。在工控领 域中还有一种常用的办法,用来在内核和运用程序之间高效 传递数据。
6 规划特色
6.1 机械手臂规划
使用舵机的旋转带动拉伸杆的拉伸,然后到达像人的 手臂相同灵敏弹性旋转,抓取魔方,滚动魔方。
6.2 魔方机器人结构
奇妙地使用舵机与塑料条的合作树立机器人的机械手 臂,使用方形架构固定四个机械手臂,使机械手臂能灵敏快 速地滚动以及弹性。
6.3 依据BP神经网络的色彩辨认算法
对色彩进行分类的办法有多种,其间 RGB色彩空间是 最根本、最常用的色彩空间,可是,从色彩感知特性来说, R G B 颜 色 空 间 是 非 均 匀 的 , 各 颜 色 分 量 之 间 的 相 关 性 较 强, 因而一般用于把方针分为两类的辨认模型中。HSI 色彩 空间是另一种比较常用的色彩空间,它依据人的心思感知特 性而树立,归于极坐标空间结构,其长处是能直观地描绘颜 色,可是,因为 HSI 色彩空间内存在奇特色,一起,当光线 明暗改变,灯火中的某重量值稍高时,对色彩分类会呈现许 多过错。因而也不适合用来完结对色彩的分类和量化。关于 这种杂乱多变环境下的色彩的分类,咱们终究选用人工神经 网络(ANN)来进行。
6.4. 独立开发的复原魔方算法
算法的中心是依据迭代加深启示式查找算法(IDA*)的 一种二阶段的查找算法,进程规矩很简略,没有很杂乱的状 态判别,仅仅重复循环:对每个阶段的魔方不断重复测验不 同的旋转,然后判别是否到达方针状况,假如没有,则依据 一个评价函数,挑选评价最低的操作持续测验。第一个阶 段有18种或许的操作,最多12步,第二阶段有10种或许的操作,最多有18步。可见,假如仅做简略处理,循环的次数会
非常巨大,难以查找出正确成果。所以,对每个操作进行高 效的价值核算,然后进行剪枝是非常必要的。评价函数是一 张事前生成好的内存查找表。选用该内存查找表进行启示搜 索,有些状况下,得出复原办法速度会非常快,在百毫秒之 内,当然,也存在必定的概率,需求花较长时刻得出复原方 法,(算法运转到现在,未呈现超越3秒的状况)在一台intel i5@2.50Ghz的个人电脑,得出办法均匀仅需一秒钟的时刻。
6.5 选用SoC规划
使用FPGA端丰厚的外设做数据收集,将收集到的图画 数据进行处理,在ARM端做算法,对恣意一个打乱的魔方 进行复原的求解过程,充分发挥DE1-SoC的SoC特色。
7 总结
经过三个月的奋战,咱们的著作根本到达预期方针, CCD摄像头辨认、VGA显现以及机械部分的树立等都已实 现,仅有缺乏的是在VGA显现部分画面不行艳丽,写好的
3D魔方程序因为移植呈现问题,没有呈现在显现屏上。在 团队的分工上,硬件软件分工清晰,很大地提高了著作完结 功率。
在这次竞赛中,咱们学会了Altera公司许多开发东西, 例如Quartus ,Qsys以及ARM公司的DS-5等,为咱们的硬件 开发和测验供给了很大的便当。
从入门FPGA开发板,到现在根本完结预期著作,经过 这次竞赛和这三个月的尽力,咱们团队的每个人都学到了很 多,咱们都总结了许多处理问题的办法,并养成了杰出的文 档习气。在竞赛进程中,咱们选用多种途径处理技能难题, 例如网络、DE1-SoC的配套书本、官方论坛以及开发板的用 户手册和自带例程,攻破规划难点。咱们针对各个模块拟定 了多套方案,合理剖析了规划的可行性,确保在完结根本功 能的基础上再进行优化。在每一次试验中,咱们将自己的收 获写进文档,然后与队友进行沟通,共享心得,共同进步。 当然,咱们有必要感谢湖北大学—Altera公司EDA/SOPC联合 试验室供给的丰厚的硬件、软件资源,一起还要感谢感谢 Altera和TERAS%&&&&&%公司为本课题供给的规划东西,包含大学 方案所供给的学习资源、FPGA、软件、开发板、文档支撑 和参阅规划。