「IT、ガジェットなど」カテゴリーアーカイブ

機械のなかの疑似生命たち

作って動かすALife ―実装を通した人工生命モデル理論入門本読みの時間があまり取れなかったが、今週の一冊はなんと言ってもこれ。岡瑞紀・池上高志・ドミニク・チェン・青木竜太・丸山典宏『作って動かすALife ―実装を通した人工生命モデル理論入門』(オライリー、2018)。AI人気の昨今ではあるけれど、こちらはさらに踏み込んだアーティフィシャルライフ(ALife)についての概説書。生命現象の様々な側面をシミュレーションするという研究領域の入門という感じ。プログラミング本ではあるけれど、打ち込んで学ぶというよりも、公開されているソースコードをローカルで実際に動かして、ALの主要な研究領域の入り口をざっと見る一冊か。たとえて言うならプログラミング絵本というところ。pythonの実行環境が必要だが、それさえ問題なければかなり刺激的なプログラムが並んでいる。当然いろいろな応用も考えられそうで、そうしたことを夢想するだけでも楽しい。

と同時に、ここには、生命現象のシミュレーションのどうしようもなく(というか絶対的に)パーシャルな性質というものを改めて突きつけられている気がする。析出され再構成される部分的な動作は、当然ながら部分的なものでしかないわけだが、それが別の部分とどうつながっていくのかといった経路は見えない。そのつなぐ部分というのが、もしかしたら現在ないしそれ以降の検討課題になっているのかもしれない……。そんなことに思いを巡らせてみるのも一興かもしれない。

機械学習の型稽古

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎今週はあまり読書時間が取れなかったので、とりあえず通読完了直前のものを取り上げておこう。基本的な教科書だけれど、数ヶ月前からコードを実際に打ち込みつつ読んできたのが、アンドレアス・ミュラー&サラ・グイド『Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎』(中田秀基訳、オライリージャパン、2017)。Pythonの機械学習用ライブラリの代表格であるscikit-learnの具体的な紹介本だけれど、機械学習を実践する上でのいろいろなやり方、tipsが学べる。もちろんこれを通読したからといって、すぐに実践に活用できるわけではなさそうだが、scikit-learnには学習用の適切なデータセットなどが含まれていて、いわば柔道などの型稽古としては悪くないのでは、という気がしている。ただ難点は、2017年刊行なのに、掲載コードを実際に打ち込んで実行すると、Future Warningが結構出るということ。一部の機能が今後のバージョンで廃用になりますよ、こちらに乗り換えてください、というわけで、わずか2年くらいで古くなってしまってしまうという、昨今のプログラミング本の命運……。機械学習では自前データの収集と前処理が重要だということも改めてわかる。そのための技法などを別口で学ぶ必要もありそうだ。

(雑感)今週の足跡 – ディープラーニング

直感 Deep Learning ―Python×Kerasでアイデアを形にするレシピこのところ、空き時間にディープラーニングで遊んでみている。理論的な話はいくつか読んだので、そろそろ実践もかじってみたい、という感じ。とは言っても、まだ初歩の初歩にあたるMNISTの手書き数字認識と、それに続く画像分類を試してみただけ。参考書としてアントニオ・ガリ&サジット・パル『直感 Deep Learning ―Python×Kerasでアイデアを形にするレシピ』(大串正矢、久保隆宏、中山光樹訳、オライリージャパン、2018)を用いている。ど素人にとってもkerasは分かりやすい……。それでも、学習精度を高めるための工夫というあたりはすでにして興味深げなトピックだ。スコアを競う感じでなかなか楽しそうな雰囲気。

また、いつもの癖で、こうした技術をたとえば人文知の領域でどう活用できるだろうかということもつい考えてみたくなる。画像認識ならば(ベタだけれども)中世の手書き写本の認識とかができるのでは、とか(少し前に、あの誰も読めないヴォイニッチ写本を機械学習にかけたツワモノが、もとはどうやらヘブライ語らしいという研究結果を出したという話があった)、でもやはり主流となるのは自然言語処理のほうだろうか、とか。自然言語処理のほうも、そのうち遊んでみたいところ。

 

Unity雑感

別にゲームショウが今週末だからというわけではないが、今週は個人的にちょっとUnity三昧。Unityは素人でも手を出せるゲーム製作用の開発環境。有償・無償の部品(アセット)を用いて場面を作り、それらの動きはC#などのスクリプトで制御する。ほとんど感覚はプラモデル作りに近い。慣れや習熟度、技術的な感性などに応じて、荒っぽいものから精巧なものまでいろいろなレベルのものを作って楽しめる。1年ほど前くらいからネット上のチュートリアルをいろいろやってみて、そろそろオリジナルも手がけたいところなのだが、とりあえず現段階はチュートリアルの複数の要素を組み合わせてみる感じでしかない……。模倣から独創へのギアチェンジは難しいが、ある種の醍醐味でもあり、当面の目標でもある。

試作途中のFPS

というわけで、目下取り組んできたのはFPS(一人称シューティング)。もちろん本格的なものでは全然ないが(苦笑)、実際に作り始めると、たとえば敵は人物像(ゾンビなど)よりももっと抽象的なもののほうが望ましいのではないかとか(円筒形の黒くロボットっぽいクリーパー)、弾薬は数に制限があったほうがよい(60発)とか、そもそも撃つための理由も必要になるんじゃないか(奥に到達すべきゴールとしてシェルターの入り口っぽいものを置いてみた)とか、ガンアクションはさしあたり要らない(弾倉を取り換えるアニメーションの実装が某チュートリアルにあったが、煩雑なので割愛……笑)、そんなことをしている暇がないくらい敵が出るようにしたほうがよい(ほうっておくと4秒おきくらいに、撃ちきれないほど沸いてくる)……などなど、いろいろなことを詰めていかなくてはならない。こうして、ある種の世界観というか最低限のシナリオのようなものができていく。

個人的に興味深いのは、場面内で動くゲームオブジェクトの動きかた。たとえばFPSの場合、一人称のプレイヤーが「撃った」想定上の弾丸はすべてゲーム空間に固定された一点(画面中央の赤い点)に向かって発射される。けれども周りの風景を視点移動やゲーム空間内の移動によって変化させるために、ターゲットに合わせてプレイヤー(一人称視点)が動いているかのような効果をもたらす。まさに地動説に対する天動説状態。ゲームオブジェクト(ここでは敵)の移動方法もいくつかあって、それぞれの方法に付随する制約があるのでどれもまったく同じというわけではないが、見た目には同じ動きをいくつかの方法で実現することができる。実現された動きを「現実」とするならば、それを実現している方法すなわち「理論」「モデル」は複数設定されていることになる。この、複数のモデルがありうる点はことのほか重要だ。基本的には動因をオブジェクトを構成する要素のどれに置くのか、動体のプロパティはどのようにするのかという作り手の判断で分かれる。用いる方法が違えば、関係するプロパティや動体の制約なども違ってくる。実際の動きという「現実」だけを見て、どの「理論」「モデル」が適用されているのかを計り知るのは難しいが、たとえば「現実」の動きのみから作中人物の誰かが、方法はこれこれに違いないと思い込むような事態を仮定すると、誤ったものも含めて諸説が乱立し対立し合うようなことが、なんらかの形で再現されうるかもしれない、などと考えてしまう。うーん、そういうことを、なんらかのゲームストーリー(メタゲーム?)に落とし込めないかしら、などと技術もないくせに夢想してしまう(苦笑)。

アナロジーの限界

プロトコル: 脱中心化以後のコントロールはいかに作動するのかこれも年越し本だが、アレクサンダー・R・ギャロウェイ『プロトコル: 脱中心化以後のコントロールはいかに作動するのか』(北野圭介訳、人文書院、2017)を見ているところ。脱中心化時代の制御を担うものとして「プロトコル」(一般には「規約」ほどの意味で、周知のとおりコンピュータ界隈でも通信規約の意味で使われる)を概念化しようという壮大な企図なのかもしれないが、理系的・工学的な情報を文系的なイマジネーションの包み紙でくるむことによって、概念本来の身の丈から無理矢理逸脱させようとしているふうに読めたりもする(著者曰く、プロトコルとはそういう情報を包んだものなのだというが……)。

基本的な話としては、ネットワークというものを、単なるメタファーの類としてではなく、物質的なもの、他を物質化するものとして捉えることで、管理・制御社会の権力関係についての理解を多様化・複雑化するというのが、著者の狙いだとされ(ユージン・サッカーによる序文)、そのためのメディウムに位置付けられる「プロトコル」は、一種のマネジメントシステムとして、フーコーの「テクノロジー」概念のごとく、またそれをより物象化したかたちで、個別化されると同時に制度全般へと普遍化・敷衍される。こう整理すると、フーコーの生権力・生政治の議論を、より技術的なレイヤから再考しようというマニフェストのようにも見えるが、その議論はどこか疾走・暴走ぎみ(?)。現実的な通信ネットワークのプロトコルはなんらかの中央的な決定機関を前提としているわけだけれども、なるほどそうした決定はときに大きな影響を与えもするだろうが、そうでもない場合もある。その影響関係を具体的に論証するのは難しいし煩雑になるだけだろう。さらにその守備範囲を社会的なもの全般へと拡げるとなると、困難はいや増すだろう。たとえば著者が挙げる、手続き型のプログラミングからオブジェクト指向型のプログラミングへの移行などは、著者が言うほどの「分散化」をもたらしているとは必ずしも言いがたいし、そこから直ちに、官僚主義や階層秩序から分散型社会システムへの移行へと話が飛躍していくのもいささか性急すぎるだろうし。人工生命形式の話にまで至るくだりなどはサイバーパンクの戯画すら思わせる。ここには、前に記したアナロジーと学問というテーマの、ある種の限界点(臨界点?)が見いだせるようにも思われる。そのアナロジーは学問的・発見的に意義あるものとなりうるのか、そこにはアナロジーの悪しき用例、アナロジカルな断絶が見いだされるのではないのか……などとつい考えてしまう。もっとも、白状してしまうと、こういう疾走感・暴走感自体は決して嫌いではなく、休日に読むエンターテインメント(失礼!)としては悪くないという思いもある……。