作者micklin (mick)
看板CSSE
标题Re: [News] 世界着名人工智能专家在汉研制新人工脑
时间Thu Aug 24 10:38:22 2006
※ 引述《reader (读者)》之铭言:
: 标题: Re: [News] 世界着名人工智能专家在汉研制新人工脑
: 时间: Wed Aug 23 18:38:04 2006
:
: ※ 引述《haryewkun (Har)》之铭言:
: : 反过来说,这句话,对於你的立论也一样。
: : 你也不能够通过粗糙的利益分析,去断定人类必然有方法,可以在那个时候来临
: : 之前,就会召开国际会议协商,封锁技术,排除所有的危险性。
: : 过度相信“船到桥头自然直”,其实就是一种乐观主义。
:
: 这太过搞不清楚状况了,你提的是一个必然性的情况,只要有任何其他可能的
: 状况,你的立论就完蛋了。
:
: 你去说别人的说法「未必」会发生,根本就不能解决你立论的问题。亏你还提
: 什麽可证伪性,若你不能破除最乐观的假设,你就是错的。
:
: 该提出严格推论和证据资料的是你,不是任何其他人。
:
: 本来我还不想脱离本板的讨论主题太远,还有点兴致说人工智慧和万能机器的
: 事情,现在就真的觉得没有意思了。
:
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 61.222.173.30
: 推 jeunder:别这样嘛, 聊聊机器(程式)如何制造(演化)机器(程式)... 08/23 21:32
如果是演化的话, 我看过几篇用GA/GP 演化程式的论文,
主要的概念是, 将程式码的先规划成一个一个instruction,
然後GA/GP的chromosome就是这些instruction的排列,
假设fitness的值是MSE之类的就可以了,
将这些chromosome进行交配与突变, 会产生新的程式码,
再用这些程式码去进行fitness运算,
最後得出符合需求的chromosome.
用例子讲比较好讲 XD
假设现在我们想求出能加总的程式, 像是
1 int goal(int n){
2 int i,sum=0;
3 for(i=0;i<n;i++)
4 sum=sum+i;
5 return sum;
6 }
我们要求的只是第3行到第4行, 因为为了简化复杂性,
宣告跟return这种与演算法较无关系的, 可以直接给定。
所以现在定义
instruction set={A op B;, for(A = B; A comp C; A = D);}
A属於terminal set,
B, C, D属於terminal set 或 constant set 或 instruction set
terminal set={sum, i, n}
op set={+, -, *, /, =}
comp set={>=,<=,>,<,==}
constant set={0,1}
然後random 产生可能解, 例如一号个体:
for(sum=i;sum>sum;sum=1)
i-i;
i+0;
二号:
for(i=0;i>n;sum=sum+1)
n+0;
三号:
for(sum=0;i==i;i=n*0)
for(i=i;i<i;i=i/i)
一看就知道是错的, 但是因为我们有限制instruction的形式,
而且在random产生个体时加入限制, 可以避免出现 0=0 或 sum-sum+sum-sum 这种东西,
即使出现, 也可以在计算fitness时发现, 并给予其一个无限大的fitness值。
三号那种其实可以在instruction set中做调整来避免其出现, 但是这里先拿来做例子。
然後一直交配, 突变, 复制,
可能就会出现
for(i=0;i<n;i=i+1)
sum=sum+i;
这种个体, 而其MSE将会是0, 於是我们就得到结果了。
下面这篇paper可以参考一下,
IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION, VOL. 5, NO. 1, FEBRUARY 2001
A Comparison of Linear Genetic Programming and Neural Networks in Medical
Data Mining
Markus Brameier and Wolfgang Banzhaf
Banzhaf写的Genetic programming: an introduction值得GP入门者一读。
提出Genetic programming的John Koza有几个专利,
是用GP去产生更好的IC Layout, 这也算是某一种的程式产生程式。
在I, Robot中有提到类似的概念, 不过仔细想一想就会觉得,
以可能的程式码做为搜寻空间实在太庞大了,
以上述的例子来看, A op B 有许多种可能的排列, 而那个例子已经是简化过的了。
要在可以接受的时间内得到答案, 就要给予更多的限制。
然而更多的限制也让得到最佳解的可能性受限了, 更何况在没有prior knowledge时,
要下限制也无从下起。
还有就是之前有版友提过的, fitness不容易设计,
因为在没有目标的情况下, 没办法评估改变是好还是坏。
大概就是这样吧~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 70.171.224.50
1F:推 jsbjgk:push ... 08/24 13:27
2F:推 Wolfram:太强,我看不懂... 08/25 10:26
3F:推 cplusplus:搜寻的空间也太大了吧 XD 08/26 14:34