けつまつける

ゲーム、映画、ときどき文芸

プログラマーじゃない人が始める人工知能: 準備しよう

実践 機械学習システム


「プログラマーじゃない人が始める人工知能」の各記事はこちら

【目次】

はじめに


人工知能をやってみたいと、ずっと思っていた。UEIの清水さんの記事を読んだり、各種メディアの記事を読んだり、日経ビッグデータの本を買ったりした。松尾先生の本も買ってみた。


でも、やっぱり、自分で手を動かしてみないと身につかない。サポートベクターマシンとか、多層パーセプトロンとか、響きは超カッコいいから口にしてみるけど、イマイチ意味は分かっていない。


2045年にシンギュラリティが到来して、人工知能が人間を知性を超えて、自らテクノロジーを進化させる時代が来るそうだ。楽しみである。自分が生きている間にデス・スターかスペースコロニーかマクロスに移住すると心に決めているので、人間の生産性を大きく上回る人工知能と、それを搭載した多足歩行型作業機械は不可欠なのだ。(デス・スター建設に要する鉄を掘り出すためには、今の生産性では83万3,315年を要するのだから)


どっかの誰かが、高性能なサーバーを使って人工知能を作り上げるのを、指をくわえて待っているのもいいけれど、やっぱり自分でもやってみたい。自分で人工知能を駆使したサービスを作ってみたい。自分で器用に話しかけてくれる人工知能を作ってみたい。そしたらいつか、PCに雷が落ちてきて、人工知能が現実の美少女になって現れるかもしれないし。


そんなわけで、人工知能を自分でやってみることにした。まずは、優秀な人工知能を育てるべく、機械学習を学ぶことにする。使う教科書は、冒頭にリンクを貼ったオライリーの『実践 機械学習システム』だ。


筆者のプログラミング技術は赤子のようなものである。数学の素養も低い。ベイズ理論なんて使ったことない。


なので、道は長く、険しく、まっすぐ歩くことも困難であるだろう。


そんな、プログラマーじゃない人の、ふらふらしながら学んでいく様を見て、「こんなレベルなら、自分でもできるんじゃねぇの」と思ってもらえる人がいれば幸いである。


当面の目標は、グラマーな美少女人工知能を作ること…ではなくて、人工知能を使ったアプリをリリースできるくらいになりたいと思う。


ご注文はPythonですか?


『実践 機械学習システム』を買う前に、本屋で色々な本を手に取ってみたのだが、大体の本で、プログラミング言語のPythonが使用されている。


Pythonというのは、プログラムの記述や実行を比較的簡易に行うことができるスクリプト言語であり、モジュール(便利な処理をしてくれる機能のセット)が充実しているが、日本での知名度がイマイチらしい。


ちなみにPythonは"パイソン"と読む。Pyでパイだ。"ピーソン"では無い。


筆者は馴染みが無いけれど、どの言語もそもそも得手不得手が無いので、とにかくPythonでやってみよう。


NetBeansというエラーチェックするのに便利なフリーソフトでコツコツとPHPを書いたりしてきたので、それを使ってPythonを書くことにする。


ネットで見つけた記事を読むと、筆者が使っているNetBeans 8.0.2でPythonが使えるようだ。以下のサイトからPythonを使うためのファイルをダウンロード。


plugins.netbeans.org


そして、NetBeansを開き、圧縮ファイル内のファイル達をドロップする。


f:id:ktadaki:20151022005522p:plain


これで準備完了! プログラムを書き始めるために、新規プロジェクトを起動して、使用言語のところで"Python"を選択……できない。


あれ、プラグインのファイルを全部ドロップしたはずなんだが…。


で、気づいたのは、オライリー本にも"ここではPython(バージョンは2.7以上)は既にインストール済みであると仮定します"と書いてある。ワイ、Pythonをインストールしてないんやけど。


気を取り直して、Pythonの公式サイトからPythonのインストールに必要なファイルをダウンロード。


www.python.org


Pythonには2.7.X系と3.X系があるそうなのだが、ネットの記事を読んでもどっちを選ぶべきか分からんので、なんとなく3.X系の最新版 3.5.0をダウンロードする。新しいことは良いことだ。


Pythonのインストールを完了させ、NetBeansのファイルたちをはもう一度インストールし直し、新規プロジェクトを起動する。今度は見事に言語選択時に"Python"を選択できた!


そして、"次へ"ボタンを押すと、何やら不吉な赤字が…。


"wrong python platform"


Platformが間違っています、そもそもPython使えませんとのこと。調べてみると、どうやらNetBeans 8.0.2がPython 3.5.0に対応していないようだ。先に言って…。


仕方がないので、Python 3.5.0を一度アンインストールして、今度は2.7系の最新版 2.7.10をインストールし、もう一度NetBeansを再起動。すると、Platformが認識された!(Auto Detectっちゅうボタンを押さんとあかんかったけど)


f:id:ktadaki:20151022011255p:plain


ようやく、準備完了した。プロジェクトを開いた画面はこんな感じだ。


f:id:ktadaki:20151022011428p:plain


ここまで来るのに2時間弱かかったので、疲れ果てる。


オライリー先生は、Pythonに加えて、NumPy(ナンパイ)とSciPy(サイパイ)なる数値計算用のライブラリ(便利機能が入ったセット)を導入しろと言っているのだが、これまた調べてみると、コマンドプロンプトからインストールしないといけないという面倒くさそうな代物たち。というか、NumPyとSciPyの話題に関しては日本語対応ページが少ない…。


オライリー先生によるとPython(x,y)というNumpy、SciPyを含めた色んなライブラリが入ったパッケージがあるらしいので、それをぶち込むことにする。インストーラーが用意されていたので、Python(x,y)は難なくインストール完了。「これをインストールするなら、Python 2.7.10をアンインストールしといてや」みたいなメッセージが出てきたが、とりあえず無視したら乗り切ることができた


※※※


人工知能を学ぶ第一歩。環境を準備するところで、躓いてしまった筆者。思えば、NetBeansを諦めて、エディタを使うようにしても良かった気もするが、もう遅いのである。

プログラムを書く前から多難であるが、次回はオライリー先生の導くままに、NumpyとScipyで遊んでみたい。



↓応援して頂ける方はクリックをお願いします!!

社長ブログ ブログランキングへ