ライブラリをインクルード

Pythonではimportというそうです。輸入。
まずはnumpyをインクルードしてみます。
numpyは行列計算を実行する時に使うライブラリです。

ノートブックを開き、下記のように打ち込んで、Runをクリック。

特にエラーがでなければimport成功です。
もしエラーがでるようであればnumpyがPCにインストールされていないようです。
その場合はプロンプトを開き、下記のコマンドでインストールできます。

pip install numpy

同じ感じでグラフを扱うときはMatplotlib、データ解析の時はPandasなどをimportしていきます。
また自分で作ったクラスも同じ感じでimportして使います。

from common.mycode import mydefinedclass

commonフォルダにある、mycode.pyファイルの中で定義されているmydefinedclassをimportするよ、という意味になります。
自分でclassを実装して行って、実行ファイルではそれを読み込んで実施する、といった流れになります。

なぜPythonなのか

なぜPythonなのでしょうか?(2回言っちゃった。)
私が学生の時は、まずはFortrun, 実質C++, 少しトレンディな人はJavaでした。
今でも正式な商用プログラムの多くはC++で書かれているようですし、企業が求める人材としてもCはトップです。

なぜDeep LearningではPythonなのか?(3回目になっちゃった。)

2018年度の人気プログラミング言語を徹底比較! (TECH ACADEMYさんのページです)
やはり人気のようです。

「でもPythonってインタプリタじゃん。実行遅いじゃん。」
Deep Learningのような計算負荷が高いものを実装するのに、何故にわざわざ遅いプログラミング言語を選ぶのか。
行列計算をうまい事使えば、Pythonでも早い実装は出来ますよ、といった記述はよく見かけます。
しかしそのためにはPythonの特徴を理解した上で、上手な実装が必要になるわけで、そうしたらPythonの利点の一つである、シンプルで習得しやすいという特徴が無くなりませんかね…?

この辺りがひっかかって、Pythonにはしばらく手を出していませんでした。
今回の事がきっかけで使い続けていくうち、自分でもすっきりした答えが見つかるといいなーと思いつつ、あまり深く考えないようにしようと思います。

今日は単なる雑談でしたね。

環境を整える

ディープラーニングの開発には歴史的にPythonが使われており、手に入る情報やライブラリも圧倒的にPythonが多いのだそうです。
Pythonの統合環境としてAnacondaが有名とのことで、下記のサイトから無料でダウンロードできます。早速入れてみましょう。

https://www.anaconda.com/download/

結構重いですね。ダウンロードしたファイルを指示されるとおりに進めていけば、無事にインストールできると思います。
バージョンは3.6と2.7がありますが、まあ今から始めるなら新しい方を入れておいて問題ないですね。
Windows版もMac版もLinux版もあります。全部無料で。不思議な世の中ですね。

Windows版をインストールすると、スタートメニューにAnacondaが現れます。
いくつかのソフトの内、Spyderが開発環境という事になり、コーディングや実行、デバッグを行うところになります。

これがタダで使えるとはすごい世の中ですね。
その他、Notebookも便利です。
起動するとwebブラウザが立ち上がりますが、中身はファイルのエクスプローラーのようです。

適当なフォルダに移動して、右上のnew -> Python3と押すと、見慣れない画面が出てきます。
が、なんとここでコーディングや実行が出来てしまうのです。
これは見やすくて便利。

まあ、viで開いて編集して、ターミナルから./で実行するのと変わりないですが、他人とやり取りする時もすごくスマートなのではないでしょうか。
世の中、賢い人は道具もスマートなんですね。
これがお金いらないとは、いい世の中ですね(しつこい)。

ところで、私はそのうちLinuxを使ってプログラミングしていきたいので、Anacondaを同様にLinuxにも入れます。
試しにWindowsからsshでLinux PCにログインしてSpyderを立ち上げてみたのですが、これはなぜか出来ませんでした。
X-Window Systemは入れていて、xclockは来るので、Xの問題ではないようです。
同様にnotebookもダメでした。何が悪かったのかな。。。

この辺りはちょっと嵌まりそうなので、今は考えない事にしたいと思います。

PCの選定

Deep Learningを学ぶにあたりまして、PCの選定を行いましょう。
CPUだけで行うなら、普通のラップトップ(ノート)PCで十分です。
研究用や、野望用には、やはりGPUが必要になってくるでしょうね。
ではどのくらいのスペックなら、そこそこのDeep Learningに耐えれるのか。

私はGDEP社のGU-1100を選びました。
ホントはDeeplearningBoxが欲しかったんですが、お金が足りませんでした。

Deeplearning BOXのサイトはこちら

GPUとしてはGeForce GTX 1080Ti 11GBが入っています。
NVIDIAのGPUはGeForceの他にQuadroやTeslaというシリーズがあって、GeForceは主にゲーム用との事なので、ちょっと気になったんですが、お金の関係でGeForceを使います。
OSはLinuxが基本との事で、CentOSがデフォルトで入っているようですが、Ubuntuの方が良かったなぁ。(自分で入れ替えて動かなくなったら困るから、このまま行くけど。)

今見たらもうGU-1100は古い型番になっていて、売っていませんでした。
本当に変化の早い業界だこと。
GTX 1080Tiは色々なところで使われている実績あるGPUだから、
まだまだ現役だと思うんですがねぇ。

CudaはGPUプログラミング開発環境との事です。NVIDIAのGPUを並列計算に用いる場合はCudaを使います。

…これらの環境が整っているからGU-1100を選びましたが…素人には贅沢スペックで、本格使いにはそこそこ…といったスペックなのでしょうか?

たまごが先か、にわとりが先か。
アルゴリズムを学ぶのが先か、PCを買うのが先か。

明らかにまずは勉強しろよ、となりますが、、、道具がなければ始まらないのでね。

はじめに

~ 新しい事を求めて日々を苦労する ~

近年、人工知能のニュースを見る機会が増えました。

ペッパー君は至る所で見かけるようになりましたし、OK Googleは便利ですし、人工知能の展示会などに出かけると、そこかしこに自動運転車の展示があって、未来を強く感じさせます。

ところで近年の人工知能における技術革新は、ディープラーニングの登場が牽引しているのだそうです。人工知能の研究は昔からありましたが、ディープラーニングの登場によってようやく実用に耐えうるようになり(つつあり)、様々な業界での応用が検討され始めたようです。

人工知能の可能性について、ニュースなど通じた露出が一般に広まるにつれ、各業界の主導者達は焦りにも似た感情で、いかにして人工知能をビジネスに取り込み、ライバルに先んじるかを虎視眈々と狙っているようですが、そもそもディープラーニングの専門家はまだまだ希少であるため、優秀な技術者の取り合いが始まっているのだそうです。

中には理系出身の技術者というだけで、上司から人工知能に関するビジネスの導入を依頼され、弱った事になっている方もいるのだとか。

そこで理系出身の技術者ではありますけれども、ドシロウトの筆者が、ディープラーニングの環境構築から始めた記録を残しておくと、私の後に始める誰かの役に立つかもしれないという考えから、ブログを始める事にしました。

本ブログは、ディープラーニング初心者による、ディープラーニングの初心者のための、ディープラーニング環境構築に関する記録になります。専門的な議論は他所でやっていただき、パソコンしかないところからディープラーニングを実装できるようになるまでを、ゆっくりと記録していきますので、どうぞよろしくお願い致します。

では初めから

目次のページはこちらから

(追記)
人工知能、ディープラーニングは今はすっかり有名になり、色々なところで活用法が検討されています。中でも医療分野は人工知能の応用に積極的な分野の一つです。現在私は、放射線を用いたがんの治療、放射線治療に携わっており、放射線治療と人工知能の二足の草鞋で活動しています。放射線治療を紹介するにあたり、簡単な説明動画を作成する活動を、少しずつまったりと始めておりますので、こちらもよろしければご覧ください。

放射線治療動画のご紹介