2011-12-01から1ヶ月間の記事一覧

執筆日記

書けないときはまず読む。何を書いていたか思い出すために。 書きたいことはまず質や形式にこだわらずに出力する。質の改善はあとからでもできる。 脳内の情報を消えないメディアに記録することで覚えておくプレッシャーから解放される 時間を決めて宣言する…

「11人いる!」を読んだ

ホーガンやイーガンが好きな妻に勧められたので読んでみました。「11人いる!」 前々から名前は聞いたことがあったけど、読んだのは初めてでした。そしてこれは一見少女漫画風の見かけですが、紛れも無くSFでした。宇宙大学の入学試験の最終段階の実技試験と…

脳神経系をモチーフにした言語Neuronyを作りました

…と言いたいところですが、教師あり学習と教師なし学習が同じ構造のニューラルネットワークで実現できることを示したところでタイムアップになってしまいました。昨日の「遺伝子をモチーフにした言語「Genomy」を作りました」にかぶせるネタの予定だったのに…

遺伝子をモチーフにした言語「Genomy」を作りました

最近、3年くらい前に書いた「そろそろ例のプロジェクトについて言及するか」についてTwitterで言及があったので思い出しました。「条件を満たしたものをすべて呼び出す」という設計思想でプログラムが書けてしまうという点について意外とみんなピンと来ない…

git checkout -pのユースケース

特にプロトタイプ的なコードを書いている時、将来的にはオプションなどで変更できるようにする予定のモノをコードに直書きで埋め込んだりするよね。簡単なものでは1行だったり、複雑なものだったらモックのクラスだったり。今回のユースケースは「もうこのモ…

隠れマルコフモデルで自然言語を学習

隠れマルコフモデルで社内掲示板の1万個弱の書き込みを学習させてみた。 まず初期値について。遷移確率はおおよそ対角行列。それだけだと差別化できないし、確率が0だと遷移が置きなくて面白く無いので対角成分を11、対角線の一つ上を2、それ以外1として確率…

Numpyで行列に行や列を貼り合わせる方法

In [23]: M = arange(9).reshape(3, 3) In [24]: M Out[24]: array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) In [25]: c_[M, [7, 7, 7]] Out[25]: array([[0, 1, 2, 7], [3, 4, 5, 7], [6, 7, 8, 7]]) In [27]: r_[M, [[7, 7, 7]]] Out[27]: array([[0, 1, 2], […

数式を含む論文の読解効率化

知的作業の生産性はやり方の設計によって左右される。「数式だらけの論文を読む」というタスクも「とにかく頑張って読む」のではなく、やり方をうまく設計することで生産性向上ができるんじゃないかなぁ。そう考えて、自分を観察しながらやってみることにし…

gitをテキトーに使って生産性を向上したユースケース

バージョン管理とかgitとかが「おおげさでめんどくさいもの」だと思う人は多い。でも、それは生産性向上のチャンスを逃していると思う。特に業務として多人数で開発している人たちの「変更前にはまずトピックブランチ」というやり方が、それはそれでよい方法…

新感覚STGの動画を作りました

昨日「次の日曜日、新感覚シューティングゲームを展示します」で紹介した新感覚STGの紹介動画を作りました。まだ開発中のものなのでハイライトだけ紹介しました。このでかいテーブル型モニターはもらったわけではなく貸してもらっている状態なので、もしかし…

次の日曜日、新感覚シューティングゲームを展示します

次の日曜日、ちょっと面白いものを展示します。でかいテーブル型モニターで、フィギュアを使って直感的に操作できる新感覚シューティングゲーム!位置だけでなく角度も制御できるので、今までにない体験ができると思います。イベントは18日のトレジャーフェ…

numpyスライシングのカルトクイズ

問:空欄に入る出力を答えよ >>> m = array([[1, 2], [3, 4]]) >>> m array([[1, 2], [3, 4]]) >>> x = [True, False] >>> m[x] (Q1) >>> m[array(x)] (Q2) >>> m[tuple(x)] (Q3)もちろんわざわざ問題にしているってことは全部結果が違うってことですよ! 可…

最小公倍図形を図にしてみた

GPCCの「最小公倍図形の解答」で紹介されているdeepgreenさんの成果を、図で見たいと思ったので作りました。ソースコードはこちら: https://gist.github.com/1426526

matplotlibのLine2Dの座標指定順序はBASICのLINE命令とは違う

BASICではLINE (x1, y1)-(x2, y2)だったし他のものもそういう順番になっているものが多いように思うが、matplotlibは Line2D(self, xdata, ydata, ...)つまりLine2D([x1, x2], [y1, y2])ということだ。多分折れ線を書くことを想定しているんだろう。markerと…

matplotlibで線分を描く

こう書くとAttributeError: 'Line2D' object has no attribute 'get_patch_transform'になる。 line = matplotlib.lines.Line2D([0, 1], [1, 0]) ax.add_patch(line)原因は、artists — Matplotlib v1.1.0 documentationをちゃんと読めば分かることだが「Line…

理解に関する考察

11月30日に「数式を含んだ論文を読んで理解するというタスクにも生産性向上の方法論があるのではないか」などと考えて書いたTweetを流れ去らないようにメモしておく。 数学は複雑に絡み合った知識の体系なので知性に高い負荷をかけ、そのため理解とは何か考…

numpyのarray#sortの挙動が想定外だった件

numpyのsortは、特に2次元(以上)の時に「リストのリスト」のような気持ちでsortすると「リストの中の各々のリストがソートされる」という挙動をするのでハマる >>> x = [[6, 5], [4, 3], [2, 1]] >>> y = array(x) >>> x.sort() >>> x [[2, 1], [4, 3], [6, …