智灵设计师 智灵设计师
关注数: 26 粉丝数: 182 发帖数: 1,973 关注贴吧数: 43
虚拟神经元数据结构C/C++语言描述 ----------------------------- >>神经元数据结构C/C++语言描述 ----------------------------- 作者:智灵设计师 以下用C/C++语言中的语法和数据结构,来描述数据库中储存的虚拟神经单元。 虚拟神经单元们用一个结构数组来保存他们的属性变量。 程序运行后大循环中通过调用neuron_main()函数 ,来处理虚拟神经单元们每时每刻的互动反应。 主要互动反应: 1.接收已经存在连接的神经单元的输入强度值(权值) 2.统计所有强度值的总和和自身反应阈值进行比较,如果超过阈值,将把自身状态调整为激发1 3.在自身状态为未激发0的时候,调整自身的状态值,恢复为正常预备状态 ////////////////////////////////////////////////////////////////////////////////////// //用结构数组定义的神经元数据结构 struct neuron_unit{ int LIVE; //是否存在 int state; //状态 1-激发 0-未激发 int Linker_num[ neuron_Linker_NUMBER ]; //连接它的神经元编号 float Linker_weight[ neuron_Linker_NUMBER ]; //连接的强度 产生神经递质的量 float Linker_weight_X[ neuron_Linker_NUMBER ]; //实际的输出量 和decay有关 float Linker_decay[ neuron_Linker_NUMBER ]; //单位时间内丢失的量 float threshold; ///激发临界点 float F; //活跃反应强度 int A_time; //Activation 激活延时 int Layer; //所在层级 }N[ neuron_NUMBER ]; //神经元 数量100 ////////////////////////////////////////////////////////////////////////////////////// //对神经元处理函数 void neuron_main() { int i,n; float W; //临时W记录每一个神经元当前得到的其他神经元连接给予的激活作用值 for(i=1;i<neuron_NUMBER;i++) //编历所有的神经元 { if(N[i].LIVE==1) //检查是否存在 { W=0; //W统计初始化 for(n=0;n<neuron_Linker_NUMBER;n++) //统计所有影响神经元激发的因素 { if(N[i].Linker_num[n]!=-1) //连接者是否存在 -1不存在 { //IF连接它的神经元是激发状态 if(N[ N[i].Linker_num[n] ].state==1) { if(N[i].Linker_num[n]!=0) //0号神经元以外 { N[i].Linker_weight_X[n]+= XGX_XIAOHAO; //激活状态时连接习惯性消耗一些递质传递量,适应性麻木 if( N[i].Linker_weight_X[n]>=-0.5 && N[i].Linker_weight_X[n]<=0.5 ) N[i].Linker_weight_X[n]=0; } W=W+N[i].Linker_weight_X[n]; //W统计所有影响该神经元激发的因素,进行求和 } //IF连接它的神经元是静息状态 else { N[i].Linker_weight_X[n] += XGX_HUIFU; //静息状态时连接恢复一些神经递质传递量,适应性恢复 if(N[i].Linker_weight_X[n] >= N[i].Linker_weight[n]) { N[i].Linker_weight_X[n] = N[i].Linker_weight[n]; } } } } if(W>=N[i].threshold) //IF W的净值达到临界值,该神经元则被激发 { N[i].state=1; /*学习机制*/ Learning(i); N[i].F=W; // 反应强度为所有激活的连接因素 N[i].A_time=A_time_max; //元激活延时时间 } else if (W<N[i].threshold) { // N[i].state=0; N[i].F=0; // 反应强度归零 } if(N[i].state==1) //元激活延时时间计时 { N[i].A_time--; if(N[i].A_time<=0) { N[i].state=0; N[i].A_time=0; } } } } } ----------------------------- >>虚拟神经单元可以储存和代表的对象 ----------------------------- 虚拟神经单元可以表示和储存信息的输入输出对象,灵活性、适用性很强,应用面很广泛。 如:符号概念类、输入输出设备指定单元或接口、知识工程的数据对象等 ------------------------------------------------- 了解更多,欢迎加入人工智能QQ讨论群:126471719 期待您的反馈和建议!
搜索引擎在人工智能方面的异军突起 通过测试发现搜索引擎在知识的掌握能力上,最高的谷歌和百度等,已经接近3岁的儿童。 而这只是一个综合的结果,由于在猜测预测,排列组合,规律发现,创新创造,伪装欺骗等更高等级的智慧因素方面表现异常初级,机器的平均智商被大幅拉低,而在如天文,地理,历史等常识,数学计算,语言翻译。这些方面机器或互联网已经远远超过普通人类的能力,甚至强大到令人恐怖的地步。 从商业角度说,搜索引擎在人工智能方面的异军突起,为谷歌和百度们找到了新的未来突破点。它们原来只是一个互联网公司,但由于互联网技术的突飞猛进及数据库的积累为人工智能提供了突破的环境与机遇,通过人工智能这条路,它们却变成有一个未来技术想象力的高科技公司。所以谷歌会把人工智能列为公司未来发展的重点方向。今年年初,收购英国人工智能公司Deep Mind让谷歌再次成为各大报纸的头条,而Deep Mind公司的创始人就包括曾经的国际象棋神童、神经系统科学家杰米斯 哈萨比斯(Demis Hassabis)。 谷歌的终极目标是开发出真正的AI产品,比如一台能够实现自我学习和自我思考的机器。如谷歌联合创始人布林梭所说:“计算机科学家已经花费了数十年的时间来实现这一梦想,但却从未真正推出过这样的机器。然而,我们有理由做出这样的假设,将来终究有一天我们将能够研发出有逻辑思维、会思考、比人类更会做事的机器。” 在中国公司中,与谷歌最接近的是百度,也把未来放在人工智能方向,李彦宏提出目标宏大的百度大脑计划,并从海外挖来世界三大人工智能专家之一的吴恩达。吴恩达的一个著名的深度学习实验就是让机器认识了“猫”这种动物:搭建一个1.6万台电脑组成的网络,向这个网络展示1000万段随机选取的视频。经过一段时间“学习”,该网络在没有外界干涉的条件下,自己认识到“猫”是一种怎样的动物,并成功找到了猫的照片,识别率为81.7%。 如果是搜索引擎公司在人工智能方面得到突破,在未来,这无疑是一项划时代的杀手级发明,说“得人工智能者得天下”也不算过分。但在短期上看,搜索引擎公司在人工智能的研究中,也隐藏着巨大的商业利益,即便没有翻越分水岭,为了人工智能在大数据、深度学习领域的推进,也能够提高搜索、地图、团购等产品的用户体验,更何况,谷歌和百度们还都在推进自己的智能硬件平台计划。 或许更被佩奇、布林和李彦宏所看中的还有人工技能给公司拓展出的几乎没有边际的想象空间。一个普通的搜索引擎公司,它的想象空间无非就是开发更好的系统多卖一些广告而已,但一个创新驱动的、有可能在人工智能方面率先获得突破的公司,寓意中的未来可能性简直数不清。在股票市场上,如果未来有对冲基金之类因为“人工智能”概念潜伏在搜索引擎公司中,一点都不奇怪,或许,人类第一个万亿美元市值公司,就会诞生于这个领域。
从知识图谱出发,“百度一下”背后的故事 也许你还记得影片《人工智能》里能和真人媲美的机器人,他们除了拥有与真人难以区分的完美外形,更拥有甚至能够超越人类的头脑。不知道你是否还记得一个场景,工程师问机器人“什么是爱”,她迅速回答“就是微张我的双眼,让我呼吸急促,体温略为上升……”电影中,智能机器人能迅速识别人类发出的指令,识别“机器眼睛”中捕捉的画面。但是,机器人没有人类所拥有的大脑,也没有上天馈赠的思维,它拥有的只是一个智能记忆芯片。 机器人怎么思考?它们的“大脑”就是我们使用的计算机,接收指令后,它“思考”的过程,就是根据所接受数据在数据库中搜索和分析的过程。现实中,科技的发展远没有达到《人工智能》的程度,但是,数据分析早已经在现实领域得到了广泛应用。搜索引擎就是一个例子,全球最大的中文搜索引擎——百度,已经开始朝着人工智能之梦迈进。 百度开启人工智能之梦 举个简单的实例,如果你百度一下“白加黑”,那么能够立刻得到包含“白加黑”这种药品所有信息的搜索结果,其中既有价格、成分、产地、生产商、相关新闻等直接关联的信息,也会有“感康”“板蓝根”等其他感冒药的关联信息,甚至还会出现“如何治疗感冒”“什么情况容易得感冒”“小儿感冒治疗”等大量信息。 对于用户而言,只是简单地输入关键词,查看结果,然而,背后包含的是“数据分析技术”中的“知识图谱数据分析”技术。什么是“知识图谱”?简单来说,可以理解成为计算机建立的知识体系,它把复杂的知识系统通过它把复杂的知识领域通过数据挖掘、信息处理、知识计量和图形绘制而显示出来,揭示知识领域的动态发展规律,为数据库创立思维的路径。 所以,当搜索引擎的“知识图谱”越全面越细化,就相当于一个人的知识体系更加完善,搜索引擎也就越“聪明”,为用户提供的搜索结果就有可能越精确。但是,计算机并不会主动思考,如果仅仅有知识库而没有挖掘工具,再多的知识也只能石沉大海,于是,对“知识图谱”的“数据分析”(也就是我们所说的“算法”)就变得尤为重要,有了算法,才能把知识从库存中挖出来,算法越强大,挖掘出来的内容就越准确,越符合用户的搜索需求。 追求极致 百度发起“知识图谱数据分析”竞赛 百度搜索引擎是全球最大的中文搜索引擎,如上面所举 “白加黑”的例子,输入一个关键词,能够呈现出横向和纵向相关联的内容,这其实已经挺聪明。显然,百度永远也不会嫌弃自己的支柱产品更聪明,今年五月份百度开放研究社区将进行“百度知识图谱数据分析竞赛”,目标在寻找精准的算法。竞赛负责人百度校园品牌部石洪竺说:“算法的准确率就像给作文打分,可能永远也达不到100分,但是,要始终向着100分努力,让准确率无限逼近极致。” 比赛的进行方式也很有趣,百度给出了两个任务,分别是“实体相似度计算”和“实体关系推理”。百度针对两个任务各给出了11000个实体,每个实体没有给出名称,参赛者只能看到实体唯一的ID和相对应的十几个描述。 第一个任务,通俗来说,需要参赛者写出自己的算法,根据每个实体对应的描述,配对有关联的实体。例如,“白加黑”和“康泰克”便是一对,因为都是感冒药;“白加黑”和“百度”就风马牛不相及了。第二个任务,则需要参赛者通过算法,根据每个实体的描述找出有关连的实体,并推理出实体之间的关系。例如“汉景帝”和“汉武帝”两个实体,便应该根据描述推理出是“父子关系”。最终,参赛者中,所写算法准确率最高的自然就是胜者。 这个比赛考验的就是对搜索引擎知识库的挖掘能力,挖掘能力强大了,才能够准确识别用户搜索的关键词与知识之间的关系,才能提供更全面的搜索结果。 搜索体验“升级” 识图、识电影、识爱好 数据分析的应用不仅仅在搜索引擎。还是用《人工智能》来说,当机器人的“眼睛”“看见”一个画面,它如何进行识别?这用到的便是“深度学习(Deep Learning)”的图像分割技术,它将画面中的人和物从背景中“抠出”,进行识别,然后去数据库中找到答案。当它“抠”的越细致,那么便意味着识别准确度就会越高,那么搜索结果的准确度也就更高。现实中也有相关的应用,“百度图片”中的“相似图片”功能和“百度识图”就是对这一技术的应用,能够用图片搜图片或是用图片搜信息。重视技术发展的百度同样也有相对应的竞赛来寻找更精准的识别技术。 《人工智能》中,工程师向机器人提问“爱是什么?”机器人他也可能问“你认为什么是爱”或是“爱情怎么解释”。虽然语言表达不同,但是问题实际上是一致的,对应的答案也是一致的。但是,计算机却没有人类聪明,这时候,也需要算法来告诉计算机这几个问题应该对应一致的答案,这样,在我们搜索信息时才能增加效率。百度2013年专门为此发起了“QT语义一致大赛”,这个对人类而言本能的事情,对计算机而言也是一样高级技能。 电影中的机器人还能自主为主人选杂志、电影、运动,其实,通用依靠数据分析,我们的互联网也能做到。你在搜索引擎中输入的关键词其实显示了你的兴趣爱好、生活状态,你浏览的网页、网络社区中的朋友、发布的内容同样能够说明这些。根据用户提供的海量信息,利用算法,便能分析出你可能对什么电影感兴趣从而推荐给你。百度去年办了电影推荐算法大赛,也许之后还会有杂志推荐、运动推荐、商品推荐等等。 《人工智能》中能思考、能工作,甚至拥有情感的机器人也许只是科幻片中的主角,但是,其背后的数据分析工具已经不是一个遥不可及的技能。现实生活中,我们的互联网已经进入了智能时代,能够识别我们提供的词汇、句子、图片,并在努力让自己的识别变得更加精确。也许,就在不远的未来,“人工智能”将变为现实。[转]
[转摘]为什么要将电脑信息结构模式向人脑靠拢 人脑有着自身独特的结构模式。人脑中的基本结构单元是神经元,神经元可以抽象成若干输入和若干输出的存储单元。神经元之间的连接丰富,神经元的激活是通过积分实现的。由于神经元数量极大,神经元与神经元之间通过一定的结构形成许多局部功能结构,就像虽然质子、中子、电子是非常单一的,但是由其组合形成的原子就达到数百种,数百种原子再组成无穷多种分子,再构成多种物质结构形态。因此我们不能因为神经元的属性单一,就判定人脑的结构单一,人脑的局部结构是非常复杂的。 人脑是如何表征数据的?人脑中的每个神经元都是活的,数据都是时变的,都是富含能量的,我们可以将其看作是一个能动的单元,这么多能动的单元共同进行着有序活动,使得人脑不需要强大的处理器驱动,也能够进行各种复杂的活动。人脑信息结构可以看作数据与处理器一体结构。人脑神经元活动是非常有规律的,什么条件下该触发,就能立即触发,什么时候不会被触发,就保持待命。神经元拥有巨大的冗余度,即使有很多神经元细胞死亡,也不会对人脑整体的运行产生致命的影响。对于生物生存来说,这点非常重要。 人们在发明计算机的时候,同时也创造了电脑的数据存储模式,这种数据存储模式基本上是仓储式存储,通过编址和寻址实现数据的存放和读取,这种操作模式简单,空间利用率高,但是不足的是这种数据是静态的,静态的数据需要处理器的驱动,这就增加了处理器集中处理的运算量,虽然处理器功能强大,如果实时维护海量的存储数据,就显得捉襟见肘了。 建立脑机接口是我们的目标之一,两种截然不同的结构很难对接,到底是人脑转换成电脑的信息结构模式,还是电脑模拟人脑的信息结构模式呢?结构决定功能,人脑的思维功能是建立在人脑神经结构模式的基础上的,要电脑实现人脑的功能,就需要模拟人脑的信息结构模式,而不是另搞一套;即使另搞一套信息结构模式,也不是目前的冯·诺依曼结构的处理器模式;与其另搞一套,不如参照人脑的信息结构模式来的简单;关键是人脑是长期进化形成的适应人类思维活动的结构模式;不止如此,要与人脑建立无障碍沟通,就需要用尽可能一致的信息结构模式,人脑具有创造性、直觉功能、形象思维等等,要达到与人脑消除沟通障碍,唯一的选择就是不折不扣地模拟人脑信息结构模式。 模拟人脑信息结构模式的可行性。人脑信息结构模式可以抽象化,这样就适合在电脑上模拟,对于非本质属性,可以略去,这样就可能提高模拟的效率,对于目前计算能力还不强的电脑而言,节约处理能力是非常必要的,持续地优化处理能力是计算机和生物系统一直坚持的,是生物提高竞争力的关键手段。用计算机模拟人脑信息结构模式,需要大规模并行计算,需要对神经元进行适当抽象,需要进行大量的尝试和仿真。但是人脑是物质基础的结构,计算机也是物质基础上的结构,理论上计算机与人脑的本质属性是相同的,所以是可以模拟的。 电脑信息结构的可塑性。电脑通过多级系统抽象,从应用层看,不同底层硬件平台或系统平台,并没有什么区别。就好像不论是苹果电脑还是联想电脑,在上面看电影是一样的。相比之下,人脑是难以改变结构来适应电脑的,人是可以学习计算机语言,也能够对计算机进行编程和输入,用汇编语言、c语言、学会电脑操作,但是这是费时费力的,而计算机通过设计好的应用软件模拟人脑信息结构,却是可以非常自动化的。所以从结构的可塑性上来说,为了建立脑机接口,也应该让计算机模拟人脑信息结构。过去一直都是人适应计算机,这种效率不高,如果计算机能够适应人,效率就会得到非常大的提高,但前提是计算机的处理能力再继续提高。 大联网设想。脑机接口建立后,人脑可以与电脑连接,电脑之间也可以连接,于是人脑之间就可以借助计算机进行直接信息交流,这是超越了语言、表情、动作交流的另一种信息交流手段。人与人之间通过思想就可以交流,人与人之间的知识传授也可以以非常高的速度进行,学习将成为一件快乐而简单的事。 [转摘]思考者新浪博客
请教fjg5610,关于时序回忆与权的问题 某帖子21楼.fjg5610这句话是最大的亮点:“和我们平时时序预测的统计方法一样,我们可以把最近发生的事给最大的权,时间远的给一个较小的权,时间越远权就越小,甚至遗忘相当于权等于零)。” 我细细琢磨了一下,但觉得其中之玄妙之深,不得不请教一二。想出两种可能的模式 [模式1]: 思考方向:这里从记忆联结强度上的思考 权值定义:权值是关联的 信息对象 联系的强度 分析:按照时间发生的前后差异,A作用B的事件时间发生在10点,而A作用C的事件时间发生在15点 ,是不是说当前时间是18点在思考,而B作用C的事件因为是进期发生的,所以A作用C的事件有更大的回忆启动值。假设通过激活A更有可能引出C,而不是引出B。这里是不是有一个联系强度增益值的概念,而这个增益值也是一个不断变化的量,和时间先后的启动有关。。。 [模式2]: 思考方向:这里从记忆敏感性启动上的思考 权值定义:权值是一种代表 记忆对象 活跃性强度的量, 分析:最近被唤醒的记忆单元(或者集丵合),活跃度都有所增加,变得敏感起来,容易被其他因素所激活,哪怕是微小的因素,或者激活启动的阀值相对较低,而随着时间推移这些记忆都漫漫被冷却下来了,恢复了正常的激活水准,不对外界刺激敏感了。。。 不知道,你认为哪一种模式比较合适
1 下一页