关于《层级实时记忆(HTM)脑皮质学习算法》一书中伪代码的实现

yixibing 2013-08-06 03:59:28
不知道有没有人看过这本书:《层级实时记忆(HTM)脑皮质学习算法》, 关于这本书中提供好的伪代码,要用C#语言来实现,编一个窗体应用程序,不知道好做不好做,我是最近刚看的这本资料,想实现代码,却发现无从下手,特来请教大神们,不需要细致的代码,只要构建类,类之间的调用继承关系,基本框架就行了,我在这里拜谢了...........
...全文
358 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
yixibing 2013-08-07
  • 打赏
  • 举报
回复
引用 13 楼 hwenycocodq520 的回复:
楼主研究生?博士生?
我是一本科在读生,无聊了看了点专业书,奈何水平太低,做不出来
yixibing 2013-08-06
  • 打赏
  • 举报
回复
引用 14 楼 caozhy 的回复:
[quote=引用 9 楼 yixibing 的回复:] [quote=引用 8 楼 hwenycocodq520 的回复:] 把书本的算法发上来,还有该问题的描述
伪代码按照収生癿顺序被分为三丧阶段: 阶段一:根据当前输入计算柱状匙域癿覆盖情冴 阶段事:在抑刢作用完成后计算最织活跃癿柱状匙域 阶段三:更新突觉癿连通值和内部发量 阶段一:覆盖 给定一丧输入向量,第一阶段就是根据返丧向量计算每丧柱状匙域癿覆盖情冴。柱状匙域 癿覆盖情冴可以简单地理览为不当前激励输入相连癿突觉数量,然后乘以它癿促迕系数。如果返 丧值小二minOverlap,那举我们将覆盖值(overlap(c))置为0. 1. for c in columns 2. 3. overlap(c) = 0 4. for s in connectedSynapses(c) 5. overlap(c) = overlap(c) + input(t, s.sourceInput) 6. 7. if overlap(c) < minOverlap then 8. overlap(c) = 0 9. else 10. overlap(c) = overlap(c) * boost(c) 第事阶段计算哪些柱状匙域在绉过抑刢作用后作为胜刟者余留下来。desiredLocalActivity是 用来掎刢最织活跃癿柱状匙域数量癿参数。丼丧例子,假设desiredLocalActivity是10,那举 一丧柱状匙域如果想成为胜刟者,它癿覆盖值就得是它所在抑刢半徂内前10大癿。 11. for c in columns 12. 13. minLocalActivity = kthScore(neighbors(c), desiredLocalActivity) 14. 15. if overlap(c) > 0 and overlap(c) ≥ minLocalActivity then 16. activeColumns(t).append(c) 17. 第三阶段执行学习操作:根据需要更新突觉癿连通值以及柱状匙域癿促迕系数和抑刢半徂。 主要学习法则癿实现在20-26行。对二胜刟(因输入而最织发得活跃)癿柱状匙域,如 果一丧突觉是活跃癿,它癿连通值就增加,反乀就减少。连通值被限刢在0刡1乀间。 28-26行实现增强。有两丧独立癿促迕机刢以适当地帮劣一丧柱状匙域学习如何连掍。如 果一丧柱状匙域丌是绉帯被激活(通过activeDutyCycle衡量),那举它癿促迕系数就会增加 (30-32行)。不乀相对应癿,如果一丧柱状匙域癿连通突觉对仸意输入癿覆盖情冴绉帯丌是 径好(通过overlapDutyCycle衡量),它癿连通值将被促迕增强(34-36行)。注意:当学 习被关闭旪,boost(c)被冶结。 最后,在第三阶段癿末尾重新计算抑刢半徂(38行)。 18. for c in activeColumns(t) 19. 20. for s in potentialSynapses(c) 21. if active(s) then 22. s.permanence += permanenceInc 23. s.permanence = min(1.0, s.permanence) 24. else 25. s.permanence -= permanenceDec 26. s.permanence = max(0.0, s.permanence) 27. 28. for c in columns: 29. 30. minDutyCycle(c) = 0.01 * maxDutyCycle(neighbors(c)) 31. activeDutyCycle(c) = updateActiveDutyCycle(c) 32. boost(c) = boostFunction(activeDutyCycle(c), minDutyCycle(c)) 33. 34. overlapDutyCycle(c) = updateOverlapDutyCycle(c) 35. if overlapDutyCycle(c) < minDutyCycle(c) then 36. increasePermanences(c, 0.1*connectedPerm) 37. 38. inhibitionRadius = averageReceptiveFieldSize() 39. [/quote] 用扫描软件识别的吧,我怎么觉得说的都不是人话呢。[/quote]这本书的地址我留下了,你可以看看http://www.docin.com/p-466397146.html
threenewbee 2013-08-06
  • 打赏
  • 举报
回复
引用 9 楼 yixibing 的回复:
[quote=引用 8 楼 hwenycocodq520 的回复:] 把书本的算法发上来,还有该问题的描述
伪代码按照収生癿顺序被分为三丧阶段: 阶段一:根据当前输入计算柱状匙域癿覆盖情冴 阶段事:在抑刢作用完成后计算最织活跃癿柱状匙域 阶段三:更新突觉癿连通值和内部发量 阶段一:覆盖 给定一丧输入向量,第一阶段就是根据返丧向量计算每丧柱状匙域癿覆盖情冴。柱状匙域 癿覆盖情冴可以简单地理览为不当前激励输入相连癿突觉数量,然后乘以它癿促迕系数。如果返 丧值小二minOverlap,那举我们将覆盖值(overlap(c))置为0. 1. for c in columns 2. 3. overlap(c) = 0 4. for s in connectedSynapses(c) 5. overlap(c) = overlap(c) + input(t, s.sourceInput) 6. 7. if overlap(c) < minOverlap then 8. overlap(c) = 0 9. else 10. overlap(c) = overlap(c) * boost(c) 第事阶段计算哪些柱状匙域在绉过抑刢作用后作为胜刟者余留下来。desiredLocalActivity是 用来掎刢最织活跃癿柱状匙域数量癿参数。丼丧例子,假设desiredLocalActivity是10,那举 一丧柱状匙域如果想成为胜刟者,它癿覆盖值就得是它所在抑刢半徂内前10大癿。 11. for c in columns 12. 13. minLocalActivity = kthScore(neighbors(c), desiredLocalActivity) 14. 15. if overlap(c) > 0 and overlap(c) ≥ minLocalActivity then 16. activeColumns(t).append(c) 17. 第三阶段执行学习操作:根据需要更新突觉癿连通值以及柱状匙域癿促迕系数和抑刢半徂。 主要学习法则癿实现在20-26行。对二胜刟(因输入而最织发得活跃)癿柱状匙域,如 果一丧突觉是活跃癿,它癿连通值就增加,反乀就减少。连通值被限刢在0刡1乀间。 28-26行实现增强。有两丧独立癿促迕机刢以适当地帮劣一丧柱状匙域学习如何连掍。如 果一丧柱状匙域丌是绉帯被激活(通过activeDutyCycle衡量),那举它癿促迕系数就会增加 (30-32行)。不乀相对应癿,如果一丧柱状匙域癿连通突觉对仸意输入癿覆盖情冴绉帯丌是 径好(通过overlapDutyCycle衡量),它癿连通值将被促迕增强(34-36行)。注意:当学 习被关闭旪,boost(c)被冶结。 最后,在第三阶段癿末尾重新计算抑刢半徂(38行)。 18. for c in activeColumns(t) 19. 20. for s in potentialSynapses(c) 21. if active(s) then 22. s.permanence += permanenceInc 23. s.permanence = min(1.0, s.permanence) 24. else 25. s.permanence -= permanenceDec 26. s.permanence = max(0.0, s.permanence) 27. 28. for c in columns: 29. 30. minDutyCycle(c) = 0.01 * maxDutyCycle(neighbors(c)) 31. activeDutyCycle(c) = updateActiveDutyCycle(c) 32. boost(c) = boostFunction(activeDutyCycle(c), minDutyCycle(c)) 33. 34. overlapDutyCycle(c) = updateOverlapDutyCycle(c) 35. if overlapDutyCycle(c) < minDutyCycle(c) then 36. increasePermanences(c, 0.1*connectedPerm) 37. 38. inhibitionRadius = averageReceptiveFieldSize() 39. [/quote] 用扫描软件识别的吧,我怎么觉得说的都不是人话呢。
智商余额不足 2013-08-06
  • 打赏
  • 举报
回复
楼主研究生?博士生?
智商余额不足 2013-08-06
  • 打赏
  • 举报
回复
不看不知道,看了惊呆了小伙伴,貌似这个理论好复杂的,楼主等高手来吧,我只看看就不说了,不过还是要尝试下
yixibing 2013-08-06
  • 打赏
  • 举报
回复
yixibing 2013-08-06
  • 打赏
  • 举报
回复
引用 7 楼 hwenycocodq520 的回复:
引用 5 楼 yixibing 的回复:
[quote=引用 3 楼 hwenycocodq520 的回复:] 不 明 觉 厉
就是对书中的伪代码进行实现,要求是用C#语言,但我的要求是:不要求写出所有的代码,你大致构建一个框架就行了,具体的代码可以用伪代码来代替,我会具体看
你有三个选择: 1. 把那本书的链接发上来 2. 把书上的原理和伪代码发上来 3. 让我们自己百度谷歌这书再看 [/quote]http://www.docin.com/p-466397146.html
yixibing 2013-08-06
  • 打赏
  • 举报
回复
引用 8 楼 hwenycocodq520 的回复:
把书本的算法发上来,还有该问题的描述
伪代码按照収生癿顺序被分为三丧阶段: 阶段一:根据当前输入计算柱状匙域癿覆盖情冴 阶段事:在抑刢作用完成后计算最织活跃癿柱状匙域 阶段三:更新突觉癿连通值和内部发量 阶段一:覆盖 给定一丧输入向量,第一阶段就是根据返丧向量计算每丧柱状匙域癿覆盖情冴。柱状匙域 癿覆盖情冴可以简单地理览为不当前激励输入相连癿突觉数量,然后乘以它癿促迕系数。如果返 丧值小二minOverlap,那举我们将覆盖值(overlap(c))置为0. 1. for c in columns 2. 3. overlap(c) = 0 4. for s in connectedSynapses(c) 5. overlap(c) = overlap(c) + input(t, s.sourceInput) 6. 7. if overlap(c) < minOverlap then 8. overlap(c) = 0 9. else 10. overlap(c) = overlap(c) * boost(c) 第事阶段计算哪些柱状匙域在绉过抑刢作用后作为胜刟者余留下来。desiredLocalActivity是 用来掎刢最织活跃癿柱状匙域数量癿参数。丼丧例子,假设desiredLocalActivity是10,那举 一丧柱状匙域如果想成为胜刟者,它癿覆盖值就得是它所在抑刢半徂内前10大癿。 11. for c in columns 12. 13. minLocalActivity = kthScore(neighbors(c), desiredLocalActivity) 14. 15. if overlap(c) > 0 and overlap(c) ≥ minLocalActivity then 16. activeColumns(t).append(c) 17. 第三阶段执行学习操作:根据需要更新突觉癿连通值以及柱状匙域癿促迕系数和抑刢半徂。 主要学习法则癿实现在20-26行。对二胜刟(因输入而最织发得活跃)癿柱状匙域,如 果一丧突觉是活跃癿,它癿连通值就增加,反乀就减少。连通值被限刢在0刡1乀间。 28-26行实现增强。有两丧独立癿促迕机刢以适当地帮劣一丧柱状匙域学习如何连掍。如 果一丧柱状匙域丌是绉帯被激活(通过activeDutyCycle衡量),那举它癿促迕系数就会增加 (30-32行)。不乀相对应癿,如果一丧柱状匙域癿连通突觉对仸意输入癿覆盖情冴绉帯丌是 径好(通过overlapDutyCycle衡量),它癿连通值将被促迕增强(34-36行)。注意:当学 习被关闭旪,boost(c)被冶结。 最后,在第三阶段癿末尾重新计算抑刢半徂(38行)。 18. for c in activeColumns(t) 19. 20. for s in potentialSynapses(c) 21. if active(s) then 22. s.permanence += permanenceInc 23. s.permanence = min(1.0, s.permanence) 24. else 25. s.permanence -= permanenceDec 26. s.permanence = max(0.0, s.permanence) 27. 28. for c in columns: 29. 30. minDutyCycle(c) = 0.01 * maxDutyCycle(neighbors(c)) 31. activeDutyCycle(c) = updateActiveDutyCycle(c) 32. boost(c) = boostFunction(activeDutyCycle(c), minDutyCycle(c)) 33. 34. overlapDutyCycle(c) = updateOverlapDutyCycle(c) 35. if overlapDutyCycle(c) < minDutyCycle(c) then 36. increasePermanences(c, 0.1*connectedPerm) 37. 38. inhibitionRadius = averageReceptiveFieldSize() 39.
智商余额不足 2013-08-06
  • 打赏
  • 举报
回复
把书本的算法发上来,还有该问题的描述
智商余额不足 2013-08-06
  • 打赏
  • 举报
回复
引用 5 楼 yixibing 的回复:
引用 3 楼 hwenycocodq520 的回复:
不 明 觉 厉
就是对书中的伪代码进行实现,要求是用C#语言,但我的要求是:不要求写出所有的代码,你大致构建一个框架就行了,具体的代码可以用伪代码来代替,我会具体看
你有三个选择: 1. 把那本书的链接发上来 2. 把书上的原理和伪代码发上来 3. 让我们自己百度谷歌这书再看
yixibing 2013-08-06
  • 打赏
  • 举报
回复
引用 4 楼 a346729576 的回复:
引用 2 楼 yixibing 的回复:
引用 1 楼 a346729576 的回复:
大神啊,你是来额....围观的吗?求支招啊.....求支招
我是菜鸟。你连需求都不说
额,规定输入是一个100乘100的正方形,输出是这个正方形做左右移动,要求用书中的算法来实现,语言用C#
yixibing 2013-08-06
  • 打赏
  • 举报
回复
引用 3 楼 hwenycocodq520 的回复:
不 明 觉 厉
就是对书中的伪代码进行实现,要求是用C#语言,但我的要求是:不要求写出所有的代码,你大致构建一个框架就行了,具体的代码可以用伪代码来代替,我会具体看
夜色镇歌 2013-08-06
  • 打赏
  • 举报
回复
引用 2 楼 yixibing 的回复:
引用 1 楼 a346729576 的回复:
大神啊,你是来额....围观的吗?求支招啊.....求支招
我是菜鸟。你连需求都不说
智商余额不足 2013-08-06
  • 打赏
  • 举报
回复
不 明 觉 厉
yixibing 2013-08-06
  • 打赏
  • 举报
回复
引用 1 楼 a346729576 的回复:
大神啊,你是来额....围观的吗?求支招啊.....求支招
夜色镇歌 2013-08-06
  • 打赏
  • 举报
回复

110,531

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧