最近在搞神经网络,我选择了和别人不同的学习方法,别人是先搞定数学,在搞理论,最后搞应用。而我是先大致搞清楚神经网络的大致流程和BP的基本算法,然后找一些开源的神经网络框架来学习,直接搞应用,最后在理论和数学不懂的地方再去查资料学习。结果发现这种方法很好,最起码很能调动我学习这些深奥知识的兴趣。搞了没几天,竟然可以把神经网络用于自己项目中了,爽!
寻找开源项目没花多少时间,在百度里搜神经网络,发现有很多都在谈论Joone这个项目,估计这个人缘不错,然后到sourceforge上面一查,确实下载量很大,社区搞得也不错。下载关于它的所有资源,一切准备就绪,开始搞定它的源代码。
读它的源代码过程中发现,这个项目写得确实很不错,层次非常清楚,用了几个核心类(Layer,Synapse,Learner,Matrix,NeuralNet和Monitor)和几种设计模式 (Factory,Adapter,Observer等)就把神经网络复杂的结构构建得清清楚楚,读它的源代码真的很值,不仅可以搞清楚神经网络的原理,还可以学习到如何用程序构建神经网络,以下是我读源代码的收获:
1)Layer层是包含神经元的层次,从一些理论书上得知,虽然层次越多精确度越高,但复杂度也越大,在实际应用中一般都是用3层。在Joone里一般也只用三层,分别是输入层,隐藏层和输出层。Layer层主要作用有两个:传递数据和激化函数。Joone有个基类Layer,它有两个主要函数fwdRun和revRun,一个是先前传递,一个向后传递,先前主要是训练,向后主要是学习和修改权矩阵。fwdRun和revRun的过程很类似,fwdRun是分为三步:向输入Synapse中取数据,用激化函数处理数据,向输出Synapse中放数据。revRun过程正好相反。Layer下面有很多子类,如:LinearLayer,SigmoidLayer,SineLayer等,这些子类主要是派生forward和backward函数,这两个函数主要用途就是用激化函数去处理输入数据,如LinearLayer的激化函数是线性的,SigmoidLayer的激化函数是1/(1+ex)等。
2)Synapse主要是构建突触的层次。它主要是用途有两个:连接Layer和储存权矩阵。因为基于多线程,连接Layer主要采用缓冲机制。Synapse有个缓冲区,先用fwdGet方法取数据,如果缓冲区内有数据就让线程wait。再用forward方法更新数据,最后用fwdPut方法输出数据,如果缓冲区内没有数据就让线程wait。revGet和revPut的思想基本相似,中间的backward方法主要用于更新权矩阵。Synapse下面有很多子类,如FullSynapse,KohonenSynapse等,它们也是在forward和backward方法上面派生,主要差别是在连接机制上面,比如FullSynapse采用全连接机制。
3)Layer层和Synapse层结构非常类似,互相连接互相传递数据,子类继承机制也非常相似,都是派生forward和backward方法,用基类完成基本的数据传递,让子类完成特殊的数据处理。数据流和工作流清清楚楚,并能适用于任何情况。这不光包含了神经网络原理,更是包含了软件设计艺术,真是值得学学!
4)Monitor主要是监视类,用于监视和控制整个网络的运行
5)NeuralNet是整个网络的控制中心。用于配置和连接各个层次,并控制网络的开始,结束,和中间循环的开始和结束。它的主要程序有三个步骤:一,循环初始化所有Layer和Synapse 二,循环进行向前和向后过程 三,结束程序。并且Jooner提供了NeuralNetListener接口,用于监视和控制NeuralNet的所有过程
基本上Jooner的大致思想和过程就是这么些,但它里面的细节却远不止这些,以后的工作就在于深入学习它的学习机制,数据处理和分布式处理方式。并且可以写自己的Layer和Synapse来做试验。现在终于能体会到数学在编程中的应用了。以后争取把神经网络用于自己的项目,比如搜索引擎和CRM。估计可以在专家决策和客户数据分析等方面有些运用吧,不过估计蔡总不太会愿意用这些比较虚幻的技术。
用Joone实现人工智能编程有感
来源:互联网 发布日期:2011-12-16 19:07:53 浏览:35457次
导读:最近在搞神经网络,我选择了和别人不同的学习方法,别人是先搞定数学,在搞理论,最后搞应用。而我是先大致搞清楚神经网络的大致流程和BP的基本算法,然后找一些开源的神经网络框架来学习,直接搞应用,最后在理论和数学不懂的地方再去查资料学习。结果发现...
下一篇:自组织神经网络
相关内容
AiLab云推荐
最新资讯
本月热点
- 2025年,人形机器人行业将迎来“百机大战”
- 阿里云通义开源首个多模态推理模型,OpenAI入局人形机器人 | 蓝媒GPT
- 中国科大研发“章鱼”触手机器人 能抓取任意物体
- “克隆阿尔法”仿生机器人明年开放预订,拥有合成器官、人造肌肉
- 科瑞思:正在初步研究人形机器人领域空心线圈绕线机和空心杯电机项目
- 中国机器狗交付新加坡电网,开拓海外能源场景应用
- 量产元年将至?人形机器人2025年展望:产业扩张期蕴藏哪些新机
- 马斯克最新采访:明年机器人产量增10倍,二季度自动驾驶比人类更安全
- 国金证券:当前为人形机器人量产前夕,机器人产业有望迎来集中催化,建议重点关注
- 机构预测前景广阔,人形机器人将于2026迎来量产元年?
热门排行
-
国产版达芬奇手术机器人价格跳水,是价格战要来了吗?
阅读量:68146
-
借势智元机器人,富临精工跨界入局人形机器人,准备好了吗?
阅读量:44084
-
实探全球首个核电灯塔工厂,这里有各式各样的机器人 | 碳访
阅读量:42020
-
美团再投人形机器人公司宇树科技,80亿估值能否撑起“中国版Figure AI”?|钛媒体AGI
阅读量:7595
-
我国新增工业机器人装机量占全球一半以上,券商:海外拓展寻求新增长点
阅读量:6086
-
工业机器人开始“长脑子”了
阅读量:5279