Rの利点

近ごろよくR言語を用いることが多いので、利点を挙げてみる。 ベクトル指向プログラミングとも呼ばれるように、繰り返しの記述が簡潔。 グラフィックライブラリのggplot2の図表化ツールとしての完成度はピカイチ。reshape2やplyr, dplyrと合わせるとSQLのよ…

スクウェア・エニックス AIアカデミー第5回(最終回)「キャラクターの学習」感想

第5回の要約: 第5回ではゲームAIでは滅多に見られない学習について取り上げた。 実際の商業ゲームでは、ゲームデザインや計算量の制約からゲームAIを成長させることは難しい。さらにゲームの環境がこれまでハリボテだったことも問題になっている。厳…

サンプルプログラムを実際に自分で書くことを写経と呼ぶのは根本的にミスリーディングである

写経の経験がないために「写経は基本的に前から線形的に筆もしくは修正可能な筆記具で書いていくもの」と仮定する。以下でこの仮定と矛盾する点を挙げる。 変数宣言は「変数を使ったあと」に、数行戻って書き込むことが多い(C++など)。このようなことは写…

一般的に勉強と呼ばれるものを、知識決定は包含する

三宅さんの話を聞いてから、勉強と知識決定の違いについて考えていた。 自分は昔から、大量の情報をバーッと見せられると慌ててしまって何も覚えられない、ということがよくある。それは特に大学で頻発して、とても1学期では読みきれない莫大なテキストを使…

スクウェア・エニックス AIアカデミー第2回「キャラクターの持つ知能」感想

第一回の感想はこちら 第2回の要約: 第2回ではキャラクターAIの基礎となる、意思決定について取り上げた。 生物は生きるために未来の色んなところを創っていかなければならない。高等な生物になるほど目的やポリシーなどを創ることが必要になる。そうでな…

プログラム学習中ににっちもさっちも行かなくなることをhelplessnessと名付けよう

プログラミングをしているとにっちもさっちも行かなくなるということがたまにある。具体的には以下の場合である。 予想していたのと違う場所のデータが変更されている!(実際は、値渡しと参照渡しを理解していない) バグの場所が分からない(実際は、狭め…

スクウェア・エニックス AIアカデミー第1回「ゲームAI入門」感想

本日7月23日に株式会社スクウェア・エニックス本社で行われた「スクウェア・エニックス AIアカデミー」の初回次に参加してきた。 内容は、まずゲームにおけるAIについて1時間の講義を受けたのち、実際にスクエニ製のオリジナル・ボードゲームを使ってAIにな…

プログラミングを上達させているのは「プログラムを書く」ことではない

それは、「プログラムを動かした結果を考察する」ことである。 この事実はプログラミングの学習高速化にとって致命的に重要な事実であるが、驚くほど認識されていない。私自身もプログラミングを本格的に学び始めて、約2年経った今日にやっと明確に認識でき…

数学の「まちがい」とプログラミングの「まちがい」は違う

数学の「まちがい」は1+1=3や 10 mod 4 = 3 のような、本来の定義とは異なる値を求めてしまうことを指す。 プログラミングにおける「まちがい」はそれよりも少しだけ構造が複雑だ。人間が定義とは異なることをしてしまうのは数学の「まちがい」の場合…

論破について

感情の強さに妥当性を託す話し方は有効なのだろうか。 相手が信じていれば有効だ。根拠がなくても信頼されていれば「▲▲さんが言ってるなら」という気持ちが率先して相手を説得してくれる。 だが、相手が信じてない場合は別だ。普段あまり自分の意見を聞いて…

greedy searchとパフォーマンス

貪欲法で、「こんなことをするよりもこっちしてたほうが生産的」とやることが、長期的に見たらそんなに生産的じゃないのだなと感じつつある。飲み会に行くとか。 機会費用で言えば価値が低いことのほうが、巡り巡ってあるていど良い評価に達する的な。人間社…

初心者に勧めるプログラミング言語は何か

僕は、プログラムをやりたいという人に出会ったら、JavaScriptを必ず勧めている。 以下では僕がこれまでに扱ったことのある言語について、なぜそれを初心者に勧めないのかを列挙する。 なおここで初心者と書いたのは、全くの初心者を表す。メールやウェブサ…

df-pnアルゴリズム学習記(2)

[進捗] 前回の文献[1]に記載されたアルゴリズムに基づくC++実装を一段落させた。 ループ(Directed acyclic graph)を検出するようにした。 『ストラウストラップのプログラミング入門』を読んでいる。ほんとこれが無かったら実装するのは無理だった。いまは…

df-pnアルゴリズム学習記(1)

詰め将棋ならdf-pnアルゴリズムとどこかで聞いた。 今日から3日かけてこのアルゴリズムを理解して実装してみる。 理解するために飛び回るのは CiNii 論文 - df-pnアルゴリズムの詰将棋を解くプログラムへの応用 CiNii 論文 - 詰将棋を解くための探索技術に…

A few million new items 暗記の話

SuperMemoというiPhoneアプリを使っている。単体ではけっこう使いにくいが、部屋の壁に単語を書くなど工夫して使い出したらメキメキと覚えられる単語数が増えて自分でも愕然とした(今まで死ぬほど苦労していた3年間は何だったのか)。 現在、770単語を覚え…

「考える」という言葉

考えるという言葉は非常にトリッキーだと思う。 各用法が共通の意味を意外と持っていない。想像以上にお互いの意味が関連していない。だから「考える」という言葉を他人が使った場合、その意図しているところを理解するまでにかなりの時間がかかる。 加えて…

ブログの名前

A succulent windfall は棚からぼたもちという意味らしい (『ランダムハウス英和大辞典』(第2版) 小学館)。 かっこよさげな英語に対する素朴な訳語という面白みがあったので、採用した。

今年の抱負

黙ってたら過ぎることより、 考えておけば変わることを考えよう。

プログラムに完成がないこと

まつもとゆきひろの『コードの未来』をたまに書店で立ち読む。前回はデザインパターンの章について読んだ。言語機能の説明がほんとピカイチだと思う。 そのなかで、オブジェクト指向に基づいたプログラミングとは、現実をモデリングするとかそういう話ではな…

「普通の人はこんなものに興味を抱かない」という話題について

僕は人より物事に関する興味関心が薄い。1つの物事に没頭したりすることが少なく大体常に「こんなものには興味がない」と思いながら作業をしている。これは由々しき問題なので解決策を考えた。 ●「普通の人」を想像しない 「普通の人はこれに興味を持たない…

感動の値踏みを禁じるべき場面と、感想の目的について

映画『ショーシャンクの空に』を見た。以下はネタバレ無しで考察する。 Amazon.co.jpにはこの作品に対して600強のレビューが集まっている。500強が★5を付け、10人ほどが★1を付けている。★1つのレビューだけ全て読んだ。かなりの動機や強烈な感情がないとその…

「何が問題か?」→「問題は何なのか?」→「問題は本当のところ何か?」(注意とプログラマについて)

タイトルに挙げた3つの問いは、問題解決について書かれた『ライト、ついてますか』という本のそれぞれ第1・2・3部のタイトルだ。 ライト、ついてますか―問題発見の人間学 作者: ドナルド・C・ゴース,G.M.ワインバーグ,木村泉 出版社/メーカー: 共立出版 …

HerokuとMySQLを利用したTwitterBotを作成した

製作動機 サーバー機(PowerPC時代のmac mini、メモリ512MB)を偶然手に入れたので使ってみようと思った。 データベースの利用経験を積みたかった。 製作内容(初は初めて利用したことを表す) Rubyだとライブラリであるgemも豊富だろうし簡単に作れるかなと思…

探索について

人工知能が好きというよりは探索が好きなんだと思う。ある問題に対してより良い答えを探すために何をするのか、ということを知ることがおもしろい。 本を読んでいると悲観的解(暫定解)のことを考える。 いまここで読書を打ち切ったほうが効果が高いのでは…

1つの物がいくつもの物に分かれる瞬間が大事だと思う

冬休みに入ったのでMySQLとRubyを組み合わせてTwitterのBotを作っている。データベースをきちんと組み込んだ作品を作るのは初めてだ。いろいろと躓いたが、枯れた技術で情報も豊富なために比較的どん詰まりすることもなく製作が進んだ気がする。 いまのとこ…

boost::program_options

今日は朝からいきなりvalgrindのインストールに失敗してOSから再インストールする羽目になったが、全体としては収穫が多かった。 aptitudeのresolve dependenciesg++やらlibboost-devやら、不可欠なライブラリを洗いざらいremoveするような選択肢が出てきた…

ブログ開設

公開ブログを書くのは数年以来である。 「他人から見てどれだけ滑稽でも決して足を止めない」 「トピックとバイオリズムが大事である」 の2つを指針として、地道に開発を続けていこうと思う。