Tuesday, November 24, 2009

Genetic Programming, Self Reproduction



[日本語] [to English]

遺伝的プログラミングと自己複製

遺伝的プログラミング:

遺伝的プログラミング (GP: Genetic Programming) は、遺伝的アルゴリズム (GA: Genetic Algorithms) に基づいています。GA は進化論 (ダーウィンなど) を使い、データ操作によって最適解探索、学習、推論などの機能を実行します。

GA は、まず個体 (あるいは、それを表現するに充分なデータ構造) のグループからスタートします。それぞれの個体は、それぞれ環境適応度を持っています。この適応度は個体によって違います。これらの個体は生殖 (あるいは、再結合) をおこない、次世代を作ります。

生殖の過程では、「適者生存」の原理のように、適応度の高いものが低いものよりもより高い確率で生存します。

GA モデルは、GTYPE (遺伝タイプ) と PTYPE (発現タイプ) の両方を持つことが必要です。GTYPE は、簡単に言えば遺伝子、PTYPE はそれぞれの個体が GTYPE をもとに発現した形質と行動特性 (行動パターン) と言えます。

世代が、(t, t+1, t+2...) というように進むにつれ、グループ全体の環境適応度は高まってゆきます。
生殖をコンピュータでの計算操作でおこなう際には、部分的な遺伝子交換 (crossover: 交差) や突然変異 (ごくまれに、遺伝子の一部をランダムに変更する) が使われています。

遺伝的プログラミングや遺伝的アルゴリズムをうまくモデル化すると、シミュレーション、あるいは進化エンジンなどのさまざまな分野に応用できる可能性があります。



自己複製:

最も簡単な自己複製プログラム (C言語) の例をあげます。これは、自分自身のソースコードを print する(書き出す)だけのものです。

#include
char *s="#include %cchar *s=%c%s%c;main(){printf(s,10,34,s,34,10);return 0;}%c";main(){printf(s,10,34,s,34,10);return 0;}

コンパイルして実行すると、ソースコードを全くそのまま書き出します。

自己複製は、多くのコンピュータサイエンスやプログラム開発者にとって、魅力的な課題の一つです。

自己複製プログラムを作る実用的方法の一つは:

  • まず最初の卵 (egg) になるプログラムを作り、それが他のプログラムを作って実行できるようにする。

  • そのオブジェクトコードを暗号化した文字列にして、親 (mother: 鶏) プログラムに入れる。

  • 親プログラムは、この文字列を解読(暗号化の逆を)して、また新しいプログラムを作る。

  • ....「鶏->卵」のプロセスを繰り返す。

それから、乱数を使って突然変異を生じさせてもいいでしょう。



[English] [to 日本語]

Genetic Programming, Self Reproduction

Genetic Programming:

Genetic programming (GP) is based on genetic algorithms (GA). GA uses the theory of evolution (Darwin, et al) and manipulates data to do best-solution search, learning, and inference.

GA starts from a group of individual creatures (or substantial sets of data). Each individual has its own adaptation level. The level differs. Those individuals do reproduction (or recombination) and create next generation descendants.

During reproduction, those with higher adaptation level have higher probability of survival than those with lower adaptation level - like "survival of the fittest".

GA model should have both GTYPE (gene-type) and PTYPE (pheno-type). GTYPE is basically gene and PTYPE is each creature's resulting characteristics and behavioral patterns based on GTYPE.

As the generation (t, t+1, t+2...) goes forward, the overall adaptation level of the group will improve (become well fitter to the environment).

For reproduction, partial gene-exchange (crossover) and mutation (random change of some part of gene, in some rare cases) are used for computational operation.

If GA/GP is properly modeled, this could be used in various areas - for simulations, and even evolution engines.


Self-Reproduction:

One of the simplest C programs which can reproduce (in this case, print its source code) is shown below:

#include
char *s="#include %cchar *s=%c%s%c;main(){printf(s,10,34,s,34,10);return 0;}%c";main(){printf(s,10,34,s,34,10);return 0;}

When compiled & executed, it prints its source code exactly.

Self-reproduction is an attractive theme for many computer scientists and rogrammers.

One practical way of creating self-reproductive programs would be:

  • Create the first egg program which can create another program and execute it.

  • Then encrypt the object code and put it as a character string into a mother program.

  • A mother program creates a new program by decrypting the character string.

  • .... "Chicken & egg" process continues….

Then we may use random numbers for mutation.

Thursday, November 12, 2009

『お金』の正確な例えを求めて




バンカーソファーでは次の原理を信じています。
ある現象を、いいメタファー(=例え)をもって網羅的に記述出来ないかぎり、それはその現象を理解していない証拠であります。
たとえば、電流はよく川の流れとして見なされたりしますね。このメタファーは正しいと思われます。なぜなら、水の分子が流れていくかわりに、電子が流動していますが、基本的に両者は完全に相当していますね。

では、『お金』を正確に指せるいい例えってご存知ですか?
ウェブを探索しても、"metaphor money"とググっても、ブログそして論文を読んでも、シンプル且つ正確なメタファーが見つかりませんでした。その中でも、「株」としてのお金、「財貨」としてのお金、また「再生可能エネルギー」としてのお金などがありましたが。
一番間違っていないと感じたお金のメタファーは「期日までの時間」というものでした。XEROXにて決定理論の研究者であるVenkatesh Raoのブログ「ribbonfarm.comの中でそのメタファーをたまたま見つけました。ですが、今一つ満足できるものではないです。

社会における
『お金』の役割や普遍性に気付くと、当然ながらも、『お金』に対する正確なメタファーを持つことがとても重要であると実感できますね。
なお、この世の中ではお金のメタファーが数えきれないぐらいあります。
それはいったいなぜなんでしょうか?
お金自体が正確なメタファーを何一つももたないということは、お金が既に基礎となっており、それ以上に基礎的な物がないからなのかもしれない。
あるいは、Robert Kiyosaki氏が述べたように、先進国の教育制度によってお金についての問いかけをしないように教育を受け、いざお金を正確に考えるとなると困難になるからなのかもしれない。
あるいは、我々の日常生活においてはお金のように行動する物がないから、正確なメタファーが思いつかないなのかもしれない〜
僕はそれこそ、それが理由であると思います。

実は計算工学においてこそ正しいメタファーを抽出できると私は思います。
しかも、自分がそれを発見できたと思います。

では、少しでも暴露して上げようか。
でも、ご注意願います☆今のところは、頭の中に自分の為にだけ、大事に保存して下さいね。じゃなければベン・バーナンキはあなたを指名手配するぞ〜^^

じゃ、お待たせしました。このメタファーは次のようになります:
私どもの生きている社会は実は計算機として見なされることが可能です。
みなさんは実は「計算する世界」において生きています。この計算する世界にはマスターとスレーブ的なデバイスもありますし、周辺機器もありますし、マザーボードCPUもそうです。それに、もちろんオペレーティングシステムもあります。
その間には、『お金』が入ってくる。お金は多分「命令を量化し、コンピューティングを量化する単位である☆」と閃いてきました。

次のポストにて、より詳しくこのメタファーを説明致します☆

Wednesday, November 11, 2009

In Search of a Metaphor for Money



At BunkerSofa, we believe in the following.
When you are not able to find a satisfying Metaphor to describe and encompass a phenomenon, then you haven't understood it yet.
For example, electric current is often seen through the metaphor of the flow of a river.
This metaphor is indeed correct because this is exactly what happens with it: instead of having a flow of molecules of water, you have a flow of moving electrons; but this is fundamentally identical.

Now, do you know an exact metaphor to describe "Money"?
I searched the web, I googled "metaphor money", I read papers and blog posts but literally, no metaphor was enough encompassing and at the same time simple enough in describing the nature of Money.
Between others, I encountered the following: Money as a
Growing Tree, Money as a Commodity, Money as a Renewable Energy, Money as a Growing Material etc...
The least wrong and the most comprehensive one was for me Money as a
time-to-deadline, that I discovered in ribbonfarm.com, the blog of Venkatesh Rao a researcher in Decisions Science at Xerox. But this is still not satisfying enough.

It's obviously crucial to possess a correct metaphor of Money, given its ubiquity, role, and preponderance in Society.
And it's amazing how many metaphors of Money there can be out there;
So I wonder: if Money has not got a single correct metaphor, maybe it's because "Money" is a given (i.e. a foundation, a pillar) of our developed societies and you cannot express Money by something more fundamental than Money.
Or Maybe it's because, as Robert Kiyosaki underlined, we are trained in our educational system not to think about what Money is, hence our pain and struggle to think about it correctly.
Or Maybe it's because there is nothing in our daily layman life that behaves exactly or very much like Money ; and I think this is the case.

Indeed, I believe the correct metaphor can be extracted from Computer Science and I think I've found it.
Economists like to say that Money allocates Resources. True, but that does not constitute a metaphor.

So, for the lucky ones that read this article, I expose it here for you a little bit. But hush... Keep it for you for now. Otherwise Ben Bernanke will bust you^^.

The metaphor I found is as follows. 
Our Society can be viewed as a big Computer; we live in a Computational World that has its Master and Slave Devices, Peripheral Devices, a Motherboard, a CPU etc... and an Operating System on it ... and Money must be Instruction; Money quantifies Computation.

Got it?:) Much more detailed to come in the next Post soon!

Sunday, November 8, 2009

Songs as powerful "brainware uploaders"





[jp]

つい最近、横浜インターナショナルスクールに行ってきました。
そこで、幼稚園の子供達の脳に言語的情報をアップロードするには、歌が強い媒体として、未だに利用されていると実感しました。
ご存知の通り、脳はある種の計算機であり、より正確に申し上げますと、電気化学的計算機です。
それに当たるソフトウエアーは(ブレーンウエアーという新しい単語を作りましょう)どういう形になっているのか、そしてそのブレーンウエアーをどのようにアップロードするのかという質問があります。
言語的情報はブレーンウエアーの一種で、それに当たるアップローダは歌かと思います。

歌?なぜ?ご存知の通り、人間の脳は比較的に弱い計算機です。
従って、何回も同じ内容を繰り返さないと、完全に記録されません。
コーラスはその目的を果たしています。
歌はパワフルなブレーンウエアーであるに違いありません。

嵐の「きっと大丈夫」という曲は他の例です。
今回は子供だけではなく、20~30代の社会人の脳が対象になっています。
当該ブレーンウエアはこんな感じです:”80%しか満足してないが、心配する必要はない。それほど悪くはないから。過去のいい思い出を思い浮かべ、未来のために頑張ろう。”
因みに、その曲は明らかに日本政府に支援されています。つまり洗脳ですよ。



[en]

I recently visited the Yokohama International School.
There, I could realize that songs are still used as media to literally upload linguistic information into the brain of kindergarten kids. The brain is a kind of computer, more precisely an electrochemical computer.
Then, the question is what kind of software is uploaded and how?
Well, we can start by saying that one type of software (we can call it brainware) is just pure linguistic information and the corresponding way to upload it is using songs.

Why songs? Because human brains are so weak that you need to repeat many times the same content until it's fully stored. And songs choruses do that job well.
In other words, songs are powerful brainware uploaders.

Another example. That song from the famous Japanese boys band "ARASHI", "Kitto Daijoubu".
In that case, the brains are the brains of the Japanese workers in their late twenties - early thirties.
The brainware uploaded is a bunch of linguistic information that goes like this: "Don't worry guys if you are not satisfied 100% with your lives right now. After all it's not so bad. Remember the good moments of the past and look forward to a happy future."
By the way, it's obvious that the song is backed by the Japanese government. In fact, it's brainwashing.

Friday, November 6, 2009

ベイズの定理を指名手配!ベイズさんよ、もうバステッドだよ^^





このポストは以前Paskalが投稿したベイズの定理に関する記事(
1)及び(2)の続きです。
Bayes' theorem BUNKERIZED - You are busted, Mr. Bayes^^」の和訳でもあります。
ベイズの定理
主流の考え方やドグマまた技術パラダイムに対する、私どもBunkerSofaのアプローチの仕方の典型的な例と言えます。
特にバカーソファーにおいて好まれているのは、論理上の誤解(=誤謬)や技術上の誤解を特定し、システムの誤作動を裏付けるというタスクです。


バンカーソファーの原理にも基づき、そういった世の中の間違いの「特定」や「批判」というプロセス(「検疫」という見方も出来ますかね)は、
BUNKERIZEと名付けさせて頂きたいと思います。
また、みなさんもご存知かと思いますが、ベイズの定理は音声認識、情報検索、自然言語処理、スパム対策など、非常に頻繁に計算工学においてよく使用されています。
それだけ、
ベイズの定理の妥当性を正確にきっぱりと問う必要があります。

さっ!本題に入りましょう。
一体、
ベイズの定理のどこが間違っているのでしょうか?その実用性が何度も実証され続けてきた定理なのにね。

数学上では、凡俗法則がベースであること以外、可笑しい側面なんてありません。
ですが、計算工学におけるその実装になってくると、問題点がいくつか出てきます。


1)ベイズの定理の凡俗法則:
まずは、ベイズの定理が何を述べているのかを見てみましょう。
次の式を述べています:
P(A/B)=P(B/A)*P(B)/P(A)
しかし、
AB は事象で、Pは確率になります。
ということは、実はベイズの定理は次式を述べることに過ぎないのです:
A & B = B & A

なぜなんでしょうか?
では、ベイズの定理をたった3行で、証明させて頂きますね。

a) ベイズさんが定義したように:
P(A/B)=P(A&B)/P(B)
P(B/A)=P(B&A)/P(A)
b) しかし、 A&B = B&A なので、 P(A&B)=P(B&A)
を得ます。
c) 従って、 P(A/B)=P(B/A)*P(B)/P(A)

ということは、ベイズの定理が唯一必要としているのは、「A&B = B&A 」が正しいであること以外は何もありません。
これは、それこそ、正しいであることは
常に保証されています。なぜなら、対称関係である「&」の定義そのものからなんです。


2)ベイズの定理の誤解:
(A&B = B&A)をどういう風に解釈するかによって色々と問題点が出てきますね。
(A&B = B&A)という式の中で、時間というものが考慮されていませんよね。
すなわち、非時間性の式で、時間そのものが存在していません。

ただ、時間が流れて行く
日常生活の現実においては、どういう風に解釈すればいいのでしょうか?
すこしでもその問題点を実感するために、(A&B)の実装での意味を探ってみましょう。

a)Aのすぐに後にB
その場合であれば、何時間以内に?
それとも、
b)Bは正確に
Aと全く同時に起きる必要がありますか?

正解はa)でもb)でもないのです。
なぜなら、本定理は時間を全く考慮していないからなんです。


- なので、実際の現実での実装をしたいのであれば、解釈問題を無視できるようなケースを選定しないといけないのです。すなわち、a)なのかあるいはb)なのかを決定できないぐらいのシチュエーションですね。
そうすれば、ベイズの定理は問題なしに完璧に機能してくれます。ですが、そういったケースは限定されていますね。

次の例は安心して、適用が可能です:
例1 A="女性であること"B="ドレスを着ること".

例2 A="コップは満杯です"B="赤ワインが注がれた状態".

もう既にお分かりになったかと思われますが、この二つの例は人間の脳にとって、巨視的で非時間性です。
実はこれがベイズの定理を正確に実装するために必要不可欠な条件であります。

この条件は次のようになります:
ABの後なのか、それとも逆なのか」を決める必要にならないシチュエーションを選ぶこと。


- しかし、この致命的な条件を正しく理解していない計算工学のエンジニア達があまりにもいます。
たとえば、音声認識を研究している研究者は次の例のように、ほぼ無断に
(A&B)=(B&A)を使い過ぎています。
A=("[bu]音韻の発声")B=("[zz]音韻の発声").
当然ながら、 ("bu"&"zz")
("zz"&"bu")と等しくないのですね。


今回はここまでですね。
このポストを経て、ベイズの定理は
BUNKERIZED状態になったつもりです☆
ベイズさんよ、もうバステッドだよ^^
ベイズの定理は結局「脳のウイルス」ですね。
今回の検疫のおかげで、みなさんよ!、今後ともより正確に
ベイズの定理を使って頂ければ幸いです。

また、このポストが切っ掛けにBunkerSofaにおいては、新しい運動の始まりになるでしょう。
それはBunkersofist哲学を適用し、人間の脳にとっての危険な
ウイルスをキャッチし、
それらを
Bunkerizeすれば面白いかと思います。

私どもBunkerSofaは
MemeBustersと自称呼べば面白いよね
?^^


Thursday, November 5, 2009

Keireki is a copycat of Twitter


[jp]

(以下のポストはわざと人を批判することが目的ではありません。改善が得られ、進化を起こすことが目的です。)

私が思うには
Keireki は失敗だと思います。新しい価値を生み出してないし、それのふりをしている様に見えます。
社会人のためのコミュニティーを作り出すはずなのに、
これまで出されてきたサービスと比較してみたら、新しい要素はありません。

Keirekiは四つの柱に基づいている様です:

1- ケイレキ:学歴、職歴に関するフィールド

2- キッカケ:「今を何している?」又は「何を考えているか?」
について、何かを書き込むフィールド

3- コメント・確かに:
キッカケで書き込まれた情報について何かをコメントする、又はそれに賛成する、というフィールド

4- シッテル・シラレテル:
誰かのステータスアップデートを得る、又は自分自身のステータスアップデートを誰かに公開するというフィールド


新しい概念は全くありません。

実際、Keireki
はTwitter、LinkedInそしてFacebookから、それぞれのコードの一部を取ってきた様にしか見えません。
Twitterは2-と4-に反映されているし、
LinkedInは1-ですし、Facebookは3-に反映されています。

Twitterのレイアウトまで、そのまま真似をされました!

コンピュテーションは人類の日常生活をより豊かにするものであって、より多い情報の処理が出来るようになるための存在かと思います。人間の脳に於ける弱い計算力を助けなくてはいけません。

Keireki
は新しいタイプの情報は処理してくれません。私の脳はより一層混乱してしまいます。決して良いことではありません。

ところが、バグはない様ですし、綺麗なインタフェースですし、
なんだかちゃんとプログラミングされている様に見えます。
Ascot Projectのチームメンバーの一員としてKristopher様に来てもらいたいぐらいです。

しかし、残念ながら、Keireki
は直ぐ消えてしまうことに変わりはありません。。。(泣)


-----------------
[en]

(This post is not aimed at criticizing just for fun. This is aimed at improving things and help move things forward.)


I think that Keireki
is a failure. It does not bring any new value. It is just pretending to do so.
It is supposed to enhance professional opportunities but I mean it is just a complete copy of existing services, in particular of Twitter.

Apparently, it
is based on 4 pillars:

1-
keireki, "personal history" in Japanese: information about your education and professional experience

2-
kikkake, "opportunity" in Japanese: information about what you are doing or what you have on your mind

3-
komento/tashikani, "comment/yes,sure" in Japanese: you can comment or approve what has been written in the kikkake section.

4-
shitteru-shirareteru, "to know - to be known" in Japanese: the status update of other people will show up in your timeline or the reverse.

There is absolutely no new concept or notion.

In fact, I think that Keireki is merely a bad mixture of pieces of code extracted from Twitter, LinkedIn and Facebook, roughly speaking.
Twitter is reflected in 2- and 4-, LinkedIn in 1- and Facebook in 3-.

The layout is even a copycat of Twitter's layout but without its graphical taste!

Computation exists to enrich our world with new information and with the ability to process more information.
It is also supposed to help the human brain because its computational power is limited and it is biased.

Keireki does not process new information. Worse. It is confusing my mind!

However I think that it is well coded. The interface is clean. No bug. I would even be interested in having Kristopher as an engineer for Ascot Project.

But, overall, I think that Keireki
will be ignored very soon if they do not change the bloody record soon, unfortunately...