2013-05-28

つらぽよ

Wikipediaで 大脳皮質 を調べたらなぜかナチュラルに前頭葉が切除されてる脳の画像が出てきて面白かったので, Wikipediaのおもしろ画像集 を作りました. とは言ってもまだ3つしかありません.もっといろいろあった気はするんだけど覚えてないです. これぞというネタを知ってる人がいたら教えてください.

最近は研究テーマが決まらなくてつらぽよです. 調べれば調べるほど無力感が増していく…….

ここにはかつてコメントが表示されていました

2013-05-25

イベントまとめ

最近いろいろと面白そうなイベントがあるので, 備忘録を兼ねてまとめました. 基本的には自分の興味で選んでます. 自分と興味の範囲が重なってそうで,なんか面白そうなイベントを他に知ってる人がいたら教えてもらえると嬉しいです.

ここにはかつてコメントが表示されていました

2013-05-19

mecab-rubyのマーク漏れバグ

この情報はmecab-ruby-0.996時点のものです.

mecab-rubyはC言語用APIの単なる薄いラッパーなので色々とRubyっぽくない点があるのですが(nodeのイテレーションがその最たるもの) 先日マーク漏れバグを発見しました.

以下のコードを実行すると,80%くらいの確率でSEGVします. 試した処理系はx86_64上のRuby2.0.0p195です.

 1#!/usr/bin/env ruby
 2
 3require 'MeCab'
 4
 5GC.stress = true
 6node = ::MeCab::Tagger.new.parseToNode("たいたいたい~w")
 7while node
 8  unless node.surface.empty?
 9    puts "#{node.surface}"
10  end
11  node = node.next
12end

何が起きているかというと,MeCabでパースされた後のノードはC++レベルの MeCab::Tagger 上に乗っているのですが 1 , Ruby的にはパースした後は Tagger が不要になっているためGCされることがあります. これが発生してしまうと, Tagger 上にあったはずのノードも一緒に消えて全て無効になってしまうため,アクセス時にSEGVとなります.

以下のように, Tagger を変数に代入してやればGCを回避できるのでSEGVしなくなります.

 1#!/usr/bin/env ruby
 2
 3require 'MeCab'
 4
 5GC.stress = true
 6tagger = ::MeCab::Tagger.new
 7node = tagger.parseToNode("たいたいたい~w")
 8while node
 9  unless node.surface.empty?
10    puts "#{node.surface}"
11  end
12  node = node.next
13end

この問題は@taiki45さんが作ったmecab-ext が当初はTaggerをnewして使い捨てる実装になっており(今は修正されています) このgemを使って発生したSEGVを調査していたら発見しました.

これは MeCab::NodeMeCab::Tagger に内部的に依存していることがnative extention上で表明されていないことが原因で, 本質的にはmecab-rubyのマークミスなのですが,mecab-rubyはSWIGで生成されていてRubyに特化したマーク処理ができない気がするので,修正は難しいと思っています. 誰か詳しい人がいたら教えてください.

  1. 厳密にはtagger.cpp:325のallocator_が持っているバッファ上です.

ここにはかつてコメントが表示されていました

2013-05-13

知能とは何か?

知能システム専攻の講義「パターン情報システム」で,知能とは何かというテーマでの討論会がありました. 1人が前で10分プレゼンして,残り20分で質疑応答を行うというプロセスを90分の授業で3回やるものです. 今回自分は話さなかったのですが,登壇者の話と議論を聞いていると色々な考え方に触れられて,大いに刺激を受けました.

1人めは知能を一般常識を学習することと定義し,その手段として人間のもつ感覚器官で最も情報量の多い視覚を挙げて, 視覚の構造を解明することから知能の本質に迫れるのではないかという内容でした. 最後には映画「アイ,ロボット」を例に出し,十分に知的に見えるなのに人間を攻撃したという点から,人間的な知能の本質の存在を指摘していました.

2人めは知能に関する疑問という形で様々に問題を提起し,知能の本質としては創発性を挙げていました. また,人間と同様に見える人形やジェミノイドは知的に見える(人間の特別性),人間と同じ構造でない知能も存在し得るといった切り口での議論もしていました. 知能をアルゴリズム的に完全に再現できると考えるか質問したところ,完全にはできないと思う,いくら似せても必ず人工的に作れない,本質と呼ぶべき部分があるのではないかとの答えでした.

3人めは知能を形成するための要素として個性を挙げ,遺伝的アルゴリズムによる迷路学習を引き合いに出して,均質でない個性が知的な振る舞いを生み出すという主張でした. また,コンピュータシミュレーションによる知能はコピー可能であることを指摘し,完全に同じものが作れるため個性に欠け,真の知能とは呼べないと論じていました.

自分自身の考えとしては2人めの人とほぼ同じなのですが,人間が大きく依存している視覚を研究することで知能の形成過程をボトムアップに解析するといった視点や, 多様性から知能が生じるという視点はあまり考えたことがなく,新鮮に感じました. 意識のコピーに関してはまた別に思うところがあったので質問したかったのですが,残念ながら時間が足りず,質問できなかったのが少し心残りです.

ここにはかつてコメントが表示されていました

2013-05-12

ハマるあずにゃん

梓「あれ,Data.Textを使ったコードを書いたらGHCに Couldn't match type `Text' with `Text' って言われちゃった…….どっちも Text なのになんで~?」

梓「うわーん,わからないよー!」

唯「あずにゃんあずにゃん,それは Data.TextData.Text.Lazy

のことだよ」

梓「ほ,ほんとだ! import Data.Text.Lazy したら型が合いました!さすが唯先輩……」

というので今日ハマりかけましたが,Twitterでつぶやいたら@daimatzさんに指摘されて事なきを得ました. なんかハマったらあずにゃんがハマったことにすると萌えると思います.

ここにはかつてコメントが表示されていました

2013-05-09

更新. 最近飲んだ酒でおいしかった,蜂蜜酒とキャプテンモルガンを追加しました.

今日は月曜授業だったので大岡山に行って,ICPC練習会に参加してきました. 色々面白い話ができて満足. 3日分くらいのやる気を補充した(4日分以上はストックできない)のでまだがんばれそうです.

ここにはかつてコメントが表示されていました

2013-05-06

ゴールデンウイーク

GWやったことまとめ.

5/3

@slope81のふぁぼを機械学習すると面白いんじゃないかと思いついたので,12時くらいに起きてからずっとそれ関連のコードを書きまくる. ふぁぼと非ふぁぼそれぞれのツイートを1:5くらいでもってきて,適当に素性を抽出すればできるだろーという浅はかな考えでした. あと,人間が解釈できる形で学習結果を出したいと思ったので半強制的に決定木を使うことになりました.

結果としては,素性が多すぎて決定木には荷が重かったのか,そもそもふぁぼが無差別すぎて学習が無意味なのか,とにかくあまり精度がよくなりませんでした. とりあえず内輪で公開して(そもそも内輪ネタだし)無理矢理一区切りとしました.

5/4

11時くらいに起きてから15:30まで前日の残り作業をして,てオフへ. 皇居の公園に20人くらいのておくれが集まったけど,人数が多すぎてまとまって動くのは難しいということで自己紹介して30分で解散.ておい.

その後は@Phenomer,@brsywe,@notegia,@penguin2716と新橋の方へ適当に歩いて行き,ご飯を食べつつmikutterのこととかLinuxのこととかを話してました. ぺんぎんさんがやってた,フレームバッファを画面の画素数より大きく取ってから -scale で縮小して擬似高解像度を実現するやつがやばかった.

5/5

また12時くらいに起きて,水曜提出の英語の課題をだらだらとやる. 軽いエッセイ課題だけど,結局普段から考えてる認知科学っぽい内容でごまかす. というか英語の課題で脳科学か認知科学のことしか書いてない. 完全に興味が偏ってるけど,興味のないことはやる気が起きないし…….

その後は五反田の原価バーで@carbon_twelveと飲み. 研究のこととか,周囲の人が優秀でつらぽよ~という感じのことを話してました. ISではとりあえず優秀と付けて煽る文化が最近流行っているらしい.やばい.

普段外では居酒屋でしか飲まないので,まともな酒が飲めるというだけでも原価バーは良かったです.食事もおいしかったし. キャプテンモルガン プライベートストックというラム酒が良かったので今度買おうかと思います.

5/6

なぜか7時くらいに目が覚めて,ニコニコで超電磁砲を観てからiPadでWebページをさまよってたらいつの間にか二度寝していて,気づいたら12時でした. とりあえず起きてから,みっくストアをAURっぽくする計画のためRails4.0.0-beta1を試してみることに. Railsは半年以上前にちょっとチュートリアルをやったけど,それからなんも作ってないです.

GW最終日なのでやる気がなく(という言い訳),Twitter見ながらだらだらとコードを書いていたんですが,ルーティングに resources :model と書いておくと /model/:id でModelsController#showに飛ぶ仕組みが気になってしまったのでRailsの中を掘り返してました. メタプログラミングは関係ないとこだけど,単純に型注釈がないのに大規模なので追いづらい……. あとpry-debuggerで nextcontinue を実行しても step っぽい処理になってしまうことがあって割とハマってしまい,結局それで1日が終わりました. (pry-debuggerの問題は分かってない)

ここにはかつてコメントが表示されていました