Musashitokiwa.LLC Blog

武蔵常盤株式会社のブログです。

AIに手を出して見る PythonとKerasによるディープラーニング - 8

皆さん、こんにちは、こんばんわ。

His First Japan 合同会社 代表社員の字引淳です。

 

 f:id:a-j1b1k1:20180805211928p:plain

渡されるデータを確認すると、理解が進むな〜。

 今回は、チクチク、逐一実行してみますよ。

これは、画像のデータをコンソールアウトしたもの。

 

f:id:a-j1b1k1:20180814090044p:plain

これは画像のデータを出力したもの

f:id:a-j1b1k1:20180814090155p:plain

若干、コンソールアウトしたものが縦に潰れているが、28✖︎28の画像になっている事がわかる。

 

これを前処理にかける。

train_images = train_images.reshape*1

上記の2次元テンソル(行列)が、1次元テンソル(ベクトル)にエンコードされます。

 

さらに

train_images = train_images.astype('float32') / 255

をかけることで

…3 18 18… → …0.01176471 0.07058824 0.07058824…

というfloat32型の値の配列に変更されます。

 

ここでは、何も難しいことをしているのではなく、ただ、単に画像の2次元テンソルデータを1次元テンソルに変換し、それをFloat32型の配列に変更しているだけということ。

 

なーんだ、そんだけのことか。

って、なりますよね。

 

*1:60000, 28 * 28

AIに手を出して見る PythonとKerasによるディープラーニング - 7

皆さん、こんにちは、こんばんわ。

His First Japan 合同会社 代表社員の字引淳です。

 

 f:id:a-j1b1k1:20180805211928p:plain

2章目の内容を繰り返し確認すると、気のせいでしょうか、自分の理解が大分進んだ感じがします。

 

 

今まで曖昧なまま進めていたので、前処理では何をやっているかとか、すっ飛ばしていたことに気がつきますね。

 

行き詰まるまで徹底して進んで、疑問や、不明点が出て来たところで素直に理解できていない個所の先頭まで戻ると上手くいきますね。

 

各人には得意な学習方法があるので、わからないでもとにかく進める事に抵抗を覚える人も居るとは思いますが、僕にとっては、知ったかぶりをし先に進めば必ず苦しくなる。

 

その時が学習のチャンスだと思っています。

疑問が出たところで、その疑問を解決する事が、本当の意味での学習であると思います。

学生の頃の様に、テストなどがあって、評価してくれる人がいるわけではないので自分なりの方法で、理解し実行する以外に学習方法はないと思いますね。

 

前処理では、定義されたモデルに合致するデータに変換すると言う、至極当たり前のことしか書いていなかった。

 

その後に、しっかりとデータテンソルの説明もされています。

この辺は、フレームワークに依存する処理といった感じですね。

 

初めて読んだ時は、そんな事すらもわからない。といった感じでしたね。

 

こういうように、見えなかった部分が見えるようになるということは、学習の成果の一つであると思います。

 

よくわからないうちから、誰かのプログラムを真似してAIのプログラムを組んで実戦でAIを学んでいくことも同じかと思いますが、それだと、詳しい知識、体系的な学習をする事が出来ないので、数ヶ月から1年で疲れてしまって学習をやめてしまう事が多いです。

 

 やっぱり、時間かけても自分の理解できる本を探し、丁寧に読んでゆく。

それ以外ありませんね。

AIに手を出して見る PythonとKerasによるディープラーニング - 6

皆さん、こんにちは、こんばんわ。

His First Japan 合同会社 代表社員の字引淳です。

 

 f:id:a-j1b1k1:20180805211928p:plain

この本の5章以降のコードは、どうやらCPUで処理をさせる形式のマシン環境では、処理が遅くなってくる模様。

 

まだ、3章目までしか実行してないのでなんともわかりませんが・・・

 

 

そこで、GPUを利用してAIを実行する事ができるマシンが必要な様子。

たとえば、これ。

 

iiyama DEEP-17FG101-i7-VNRVI | パソコン工房【公式通販】

ものは良さそうだ。

しかし、OSやディープラーニング環境は自分でセットするし、出来合いの物を買うと言うところに抵抗を感じるな〜

 

エントリーモデルだと、こんな感じ。

今すぐ使える事としては、美味しい感じ。ただ、長期的に使おうとすると、スペックにちょっと投資意欲が削がれるな〜。

 

みてると、やっぱりある程度出さないとあっという間にフレームワークのバージョンアップなどにより、性能が劣化して使い物にならなくなりそう。

実際に使ったことはないので、一般的なPCを判断基準に考えてるので、実際のことは、知らんけど。

 

できる限り、仮想マシンのCPUを追加して、なんとか回せる様にして、いよいよとなったら、その時に購入検討するかな。

 

流石に、ハードを買うのは抵抗があるな〜。

AIに手を出して見る PythonとKerasによるディープラーニング - 5

皆さん、こんにちは、こんばんわ。

His First Japan 合同会社 代表社員の字引淳です。

 

 f:id:a-j1b1k1:20180805211928p:plain

この本の5章以降のコードは、どうやらCPUで処理をさせる形式のマシン環境では、処理が遅くなってくる模様。

 

まだ、3章目までしか実行してないのでなんともわかりませんが・・・

book.mynavi.jp

 

そこで、GPUを利用してAIを実行する事ができるマシンが必要な様子。

たとえば、これ。

 

iiyama DEEP-17FG101-i7-VNRVI | パソコン工房【公式通販】

 

僕の一番最初の大学生活の時は、PCに30万出すのは普通だったけど、MacBookAirが10万で買える時代に、どうよ・・・それにOSやディープラーニング環境は自分で作るし、出来合いの物を買うと言うところに抵抗を感じるな〜

 

エントリーモデルだと、こんな感じ。

なんか金をドブに捨てる様なスペックにちょっと投資意欲が削がれるな〜。

 

 

www.pc-koubou.jp

 

 


www.pc-koubou.jp

 

AIに手を出して見る PythonとKerasによるディープラーニング - 4

皆さん、こんにちは、こんばんわ。

His First Japan 合同会社 代表社員の字引淳です。

 

 f:id:a-j1b1k1:20180805211928p:plain

 

この本の3章に書いてある、画像の判断、ニュースのカテゴリ判断、住宅価格の判断の3つのサンプルを丸写しして、Jupyterで実行してみました。

 

book.mynavi.jp

 

実際に入力し、実行することで、コードの特徴を知り、デバッグしてデータをみてみると、なんでこのデータから、この結果が出るのかと言う知的カオスに突入したところで、一旦、前に戻り、基本的な疑問から調べなおす。

 

「なんで、訓練セットとテストセットの両方で実行するの?」

過学習って何をみて判断するの?」

 

とか、当然の疑問を、この本を見直し、2章から調べなおすと、2章の始まって数ページに上記の疑問が関連している事がすでに記載されている。

 

訓練セットとテストセットで両方で実施し、訓練セットの正解率 > テストセットの正解率の状態の事を過学習と言う事が書いてある。

 

1回本を読んでみて、書いてあることを理解したつもりになっていても、所詮、無知なところで字面だけ追っかけただけのこと。

頭に入ってすらいない。

 

プログラムは、そのプログラムを実行して、デバッグしないと何もわかんないよね。

 

2〜3章は、一番基礎中の基礎が書かれているので、ここに書かれている事をある程度説明できるくらいに纏めないと先には進めないね。

 

また、お絵かきまとめしないといけないな〜。

 

AIに手を出して見る PythonとKerasによるディープラーニング-3

皆さん、こんにちは、こんばんわ。

His First Japan 合同会社 代表社員の字引淳です。

 

 f:id:a-j1b1k1:20180805211928p:plain

 

数式が無いだけで、こんなに理解が進むのかと言うくらいにわかりやすい。

 

book.mynavi.jp

 

とは言っても、今まで学習してきた事の積み重ねによるものですので、一概に本だけがいいとは言えないな〜。(※ こういう時は自分の手柄にしてしまう)

 

でも、これ見よがしに数式を書いて、その数式ベースで解説するのは、数学を理解している人達しか理解できないので、あまりいいことじゃないよね。

 

この本の著者は、数学もプログラムもわかっている人なんだろうね。

いちいち著者のことまで調べんので、知らんけど。

 

Pythonコードをコーディングしていると、Javaと言うよりも、Eclipseや、NetBeansがいかに優秀かを思い知るね。Jupyterでは、実行かけないとエラーがわからないので、Python用のIDEが欲しくなる。今は、いらん知識よりもAIの勘所を押さえるのが先決なので、IDEは探さんけどね。

 

プログラミングは、自分で入力して実行して、エラーを除去して、初めて理解した様な気になれる。ここから本を読むと、何が書いてあるのかが少しづつわかる。

 

そんなもんだよね。

 

 

 

 

 

 

 

 

AIに手を出して見る PythonとKerasによるディープラーニング-2

皆さん、こんにちは、こんばんわ。

His First Japan 合同会社 代表社員の字引淳です。

 

 f:id:a-j1b1k1:20180805211928p:plain

 

 

Pythonは、関数型言語の形式でも、オブジェクト指向言語の形式でも、コーディングをする事ができるんですね。

 

この本は、現在のエンジニアを意識した内容になっていて、関数型言語でのサンプルが少なく、オブジェクト指向言語の形式のサンプルが大半を占めています。

 

コンピュータ言語というだけであって、形式が違うとなかなか理解ができず、

サーバーサイドJava専の私は、関数型形式のコードリーディングで疲れてしまいます。

というよりも、理解するまで読んでいなかっただけですね。

 

さっき、昨年初めて買った本を改めて見直したところ、ようやく、そこに書いてあるコードを、理解できる様になりました。

※ 書いてある数式は、著者の自己満足なんだろうなー。

 

ともあれ、ちょっとした進歩を確認しました。