posted @ 2011-10-23 16:44
10 2011 档案
摘要:经过多次实验,慢慢觉得随机激活一个备用神经元,去和输入匹配学习的方法,基本上是不行的。大量的神经元之间,随意建立起来的链接,往往使他们总是同时激活,于是链接不断被加强。如果放弃整个网络间的学习,那就退化成了herb学习法则了。思索中慢慢意识到,之前我认为脑应该是简单的,被动的,这种想法可能是错的。大脑可能也有总线结构,也会有意识地去调控一些东西。比如把两个可能相关的事物联系在一起,同时激活它们对应的神经元,试图让他们自己匹配起来。而不是像之前想象的那样,任意两个神经元都可以自己匹配。还需要大脑的中枢调控单位给予刺激才能建立起链接和调整链接强度。这些应该就是化学触突的作用,让一些神经元兴奋起来,
阅读全文
摘要:把bp算法改写成了CUDA代码,用卡内基梅隆大学的人脸识别图片套尝试了一下人脸识别,对比cpu的速度其实是下降了一倍左右。原因是这个图像处理只需要用到3个隐藏神经元,缺需要12000个输入神经元。数据copy和运算量的对比才刚达到1比3,根本没用上cuda的优势。把隐藏神经元数量增加到30个之后,优势就非常明显地体现出来了。cpu算法消耗的时间成倍上涨,而cuda基本不怎么涨。但是也是存在问题的,当隐藏神经元数量进一步上涨之后,cpu算法也就是更慢而已,但是cuda则直接驱动程序失去响应导致程序退出屏幕黑屏了,鲁棒性非常差。总体来说cuda在神经网络算法上较难体现巨大优势,下次还是用openm
阅读全文
posted @ 2011-10-23 16:34
摘要:把一个n元素数组里面的值全部加起来的程序,大家都会写,一个for循环搞定。但是如果在cuda代码里面也这么写的话,速度会比cpu上还慢,毕竟人家一对一对拼的话,肯定是干不过cpu的。在cuda里面的算法是n个线程一起参与这个运算。nvidia貌似有个官方的算法,几乎所有看到的cuda代码里面都是用的它:for(int i=(blockDim.x>>1);i>0;i>>=1){ if(threadIdx.x < i){ pis[threadIdx.x] += pis[threadIdx.x+i]; } __syncthreads();}if(threadIdx
阅读全文
posted @ 2011-10-15 00:31
摘要:关于新的人脑模型网络,基本构架已经出来了,关键点就是上篇提到的两点1.存在自由的、游离的神经元,输入权都是0,也就是说大脑内存在一群新生的神经元,还未被利用过。他们会有一定的概率被随机激活。就像cmos电路一样,超级高的输入阻抗,导致如果输入引脚没有接的话,宇宙射线也有可能激活这个逻辑电路。所以一颗沉寂的大脑,如果每个神经元激活了都会发光的话,看上去应该就像地球的太空录像,时不时各处会有一点闪电的亮光闪耀整个画面,点缀着深蓝色的背景。2.任何两个同时激活的神经元都互相吸引。而连接在一起的神经元,如果激活状态不同,则会发生排斥。就是说同时激活的神经元之间会增加触突,而有链接的神经如果发现链接错了
阅读全文
posted @ 2011-10-05 13:14
摘要:有些时候,一些思路闪电般闪过脑际,一下子照亮混沌的天空,却怎么也抓不住。我需要博客这样的外存,来帮助我记下思绪的碎片,逐渐拼凑出闪电的样子,让它持续照亮我的脑海。关于生物神经网络的模型,我一直都在构想,一直都不得要领,直到今天坐在易买得的门口等lp出来,翻看着《机器学习》,大脑不着边际得思考着。突然一种模式出现在脑中,它似乎能够解决之前想到的不少问题,但又一下子想不清楚。现在回到家我尝试用记录博客的方式整理一下我的思路。1.首先应该有游离的神经元,存在于脑海中,等着被利用。2.其次训练神经元应该也是一个神经元,也有输出,而且一直存在于脑中。而不像bp网络中那样,训练结束,导师信号就不存在了。3
阅读全文
posted @ 2011-10-03 23:53
摘要:接下来我们分析一下生物神经元网络所需要的特性:1.算法简单,要非常简单。至少不会牵涉到多个神经元的相互作用。而应该是一对一的关系。2.网络结构动态变化,所谓的隐藏层神经元的数量可以任意增加。3.强力的记忆能力,一两次的训练就能把训练输入记录下来。有“第一印象”现象,也就是训练系数不断减小的现象。4.有神经反射功能。就是长期共同激活的神经元互相会联系在一起。初步假设其结果是a的输出连到b的输入,b的输出连到a的输入。还有其他特征继续补充中。想到了就记下来。下面一节记录一些想到的思绪。
阅读全文
posted @ 2011-10-03 23:34
摘要:经过仔细思考,我觉得bp网络无论如何也是和生物神经网络毫无关系的一种算法。它的目标就像其他算法,是用来解决一些问题的,比如模糊的模式识别等。这样子的思路在我看来太功利,急功近利,完全是稍微借鉴了一点点生物神经网络的样子提出的传统思路的算法。有以下理由可以说明这个和生物神经完全无关:1.这个算法相当复杂,生物网络绝对不可能存在这种严谨的逻辑。神经元的输出函数还必须可导,一般推荐sigmoid函数,否则在反向传播的时候还得算导函数值。sigmoid函数可是有指数有倒数的函数,要生物支持这种算法是难以想象的。2.网络结构固定,必须预先设计好。解决一个问题,bp网络的隐藏层神经元数目是固定的,少了解决
阅读全文
posted @ 2011-10-03 22:43
浙公网安备 33010602011771号