ぎょーむ日誌 2007-07-23
2007 年 07 月 23 日 (月)
-
0800 起床.
ねむい
……
コーヒー.
朝飯.
0920 自宅発.
晴.
0935 研究室着.
-
またアリ文献よみのつづき.
さっさとアリ作文まわりはかたづけてしまって,
アリ炭化水素データ解析に移行したい
……
-
などと思いながらアリ文献まわりうろうろしてると
……
ふと,
ゐんばぐす
でアリ触角のセンサー + 神経系を模倣する neural network が作れるんでは
(そして ``機械学習'' も可
……
擬似ぼるつまんマシン?
……
まあ複雑な相互作用はいらんと思うんだけど),
という気がしてきた.
いや,
そうなるとむしろ
Bayesian network
になるのか?
ちょっとちがうかな?
-
上のアイデア,
けっこう悪くないような気がしてきた
……
計算にどれだけの時間をくいつぶされるのか,
そもそも MCMC 計算がうまくいくのかどうかもよくわからんけれど.
バックプロパゲイション法なんかで最適化するより
(このアリ研究の場合,
べつに最適化のたぐいをやりたいわけではないので),
Gibbs な空間をふらふらとさまよう神経回路網のほうがそれっぽいような
……
-
たとえば中間層の node の個数なんかも「自動的」に増減できる?
いや,
いったん ``off'' にされた node
まわりの結線加重はめちゃくちゃになるだろうから,
やっぱりダメかしらん?
いやいや,
めちゃくちゃな node ってのは「あってもなくても同じ」になりそうだから,
わりとすぐに off → on になるのかしらん?
-
とうぜんながら,
私などが考えつくようなコトは専門家たちはとっくの昔に
研究ずみ
(あるいは
こちら
のほうがより適切な検索結果か?)
のよーで
……
あ,
neural network winbugs
で検索してみてもけっこう論文が見つかる.
-
てなコトやってるうちに,
とっくに正午をすぎてしまったので北大生協
(中央)
に昼飯調達の旅.
ついでに隣接する大野池やサクシュコトニ川をみてみたんだけど,
やはりアメンボはいない.
研究室にもどって昼飯.
-
アリ文献よみのつづき.
Grzegorz Buczkowski
たちの一連のアルゼンチンアリ研究は面白いなあ.
とくに
Buczkowski et al. (2005),
食いもの (エサの昆虫とか) で体表面炭化水素組成がかわる
(そしてアリたちの敵対性行動も変わる)
ハナシってけっこう重要じゃないかな.
石狩浜のエゾアカヤマアリに関して,
大統領一派は遺伝子ばっかり注目してるみたいだけど
(そして現時点では negative な結果),
「石狩浜ならどこでもたくさん得られるエサ」
がここを ``supercolony らしく'' 見せかけてるんじゃないの,
という気もするんですが.
-
この論文にかぎらず,
他でもいろいろとおもしろそうなキーワードがでてきたりして,
``the diminutive supercolony''
だの,
``context-dependent nestmate discrimination''
だの
……
後者はアルゼンチンアリの「強気」「弱気」
がまわりの状況に応じて変化するんでは,
というハナシ.
岩倉さんのエゾアカヤマアリ実験結果
(拉致られアリは「逃げ腰」)
と何やら関連づけられそうな
……
-
ちょっと不安になってきたので,
岩倉さんの体表面炭化水素データをちょっとヒネくりまわし,
これを測定した城所さんに
あれこれとお尋ねしたほうがよいのかなぁ
……
-
やや不規則生活がつづいてたので,
夕方になるとややばてぎみ
……
ということでアリ文献よみ・アリ作文は 1700 ごろでいったんやめて,
岩倉さんのアリ炭化水素データ変換プログラミング.
これはまあ,
単純作業のようなもので.
-
とりあえず,
まずは作図.
さてさて,
これで 7 コロニ−は判別できるのか?
-
このガスクロマトグラフィーデータ,
まだまだ treatment みたいなことが必要だと思うんだけど
……
上のようなパターンみてると何か調べてみたくなったので,
R
で簡単に使える
library(nnet)
(google)
の feedforward 型ニュ−ラルネット,
もっとも単純な三層
パーセプトロン
による判別を試みてみた.
(後記:
どうも入力層-隠れ層間の weight も最適化してるようなので,
これってパーセプトロンではないような気がしてきた
……)
-
無調整なまデータの
……
といいたいところだけど対数変換している.
おそらく動物の感覚器のレスポンスを考えるとそういうスケイルで
「感じさせる」のが妥当だろうと思うんで.
library(nnet)
nnant1 <- nnet(
colony ~ ., data = dlog, size = 4, rang = 0.1,
decay = 1.0e-4, maxit = 10000
)
print(table(
dlog$colony,
predict(nnant1, dlog, type = "class")
))
# 結果
Atsuta Hoshioki Ishikari Jozankei Oshoro Shinkawa Tarukawa
Atsuta 10 0 0 0 0 0 0
Hoshioki 0 10 0 0 0 0 0
Ishikari 0 0 10 0 0 0 0
Jozankei 0 0 0 9 0 1 0
Oshoro 0 0 0 0 10 0 0
Shinkawa 0 0 0 0 0 10 0
Tarukawa 0 0 0 0 0 0 10
……
と,
まあこのよーに,
中間層 (隠れ層) の個数 (size
)
が 3, 4 個ぐらいあれば
「与えられたデータ全体を区別する」
だけなら 99% ぐらいはうまくできます,
と.
じゃあ,
今度は各コロニー 10 個体のうち半分の 5 個体を学習用,
残り 5 個体を試験用としてみると
……
v.training <- c(sapply(
1:7, function(i) (i - 1) * 10 + sort(sample(1:10, 5))
))
nnant2 <- nnet(
colony ~ ., data = dlog, subset = v.training,
size = 12, rang = 0.1, decay = 5.0e-4, maxit = 10000
)
print(table(
dlog$colony[-v.training],
predict(nnant2, dlog[-v.training,], type = "class")
))
# 結果
Atsuta Hoshioki Ishikari Jozankei Oshoro Shinkawa Tarukawa
Atsuta 4 0 0 1 0 0 0
Hoshioki 0 1 0 2 1 1 0
Ishikari 0 0 2 0 2 0 1
Jozankei 0 0 0 2 0 3 0
Oshoro 0 1 0 0 3 1 0
Shinkawa 0 0 0 1 2 2 0
Tarukawa 1 1 0 0 1 1 1
隠れ層の個数がこれぐらい必要なんだけど,
それでもなかなかうまくいかない.
まあ,
こんなものでしょう.
アリ体表面の炭化水素組成は線形判別法とかひたすら
十年一日のごとくやっていて,
おそらくこういう artificial neural network つかった
解析はまだない (ざっと検索してみた範囲では見つからなかった).
まあ,
パーセプトロンだから学習能力なんて
たいしたことないんだけど,
生物現象の模倣としてはより straightforward
だよね.
で,
重要なのは
こんな判別だけ
では生物学的には無意味,
ということだろう.
Hoshioki の若いワーカーたちはお姉さんたちから
「あなた,
外で働くんなら 7 コロニーの識別ぐらいできなきゃダメよ」
と教育されてから巣のまわりでエサさがししてるのか?
そうではないよね.
ということで,
もっとべつの学習スキーム & 試験が必要になるわけだ
……
ばててきたので撤退.
1955 研究室発.
買いもの.
2015 帰宅.
体重 67.0 kg.
ややアリやせか?
晩飯の準備.
晩飯.
[今日の運動]
[今日の食卓]
- 朝 (0830):
ヨーグルト.
トマト・キャベツ・ニンジン・タマネギ・バジルのサラダ.
- 昼 (1400):
研究室お茶部屋.
納豆巻.
- 晩 (2200):
米麦 0.7 合.
ネギ・豆腐の味噌汁.
タマネギ・ニンジン・レタス・ピーマン・ショウガ・ニンニク・
ブナピー・ホタテの炒めもの.
トマト・キュウリ.