« GoogleがRaspberry Pi向けに人工知能用ツールを提供へ | トップページ | iPhoneで髭剃り!?Linghtningコネクタにつないで使用する”ライトニングシェーバー” »

2017年1月30日 (月)

Re:ゼロから始めるディープラーニング

どこかのアニメのタイトルを丸パクリしたことは認めますが、まさにそんな感じなので。”死に戻り”ならぬ、”学び戻り”です。

実は職場で「人工知能に使われてるTensorFlowを職場でも使えるようにしようと思ってる」と何人かに話したところ、「人工知能」だけが独り歩きしていることが先日の飲み会で判明。「あいつ人工知能やるらしいぞ」ってことになってるそうで。

そんなに大げさなものをやるわけじゃないですけど、最近キャッチーな言葉ですからね、人工知能。こうなったら、ちょっと本気出してみようかなと。

ならばこの先決心が緩まないように、このブログでも宣言しちゃおうかと思った次第で。

さて、私自身「人工知能」というものを去年の夏ごろからいじりつつありますが。

人工知能ライブラリ”TensorFlow”をRaspberry Pi 3に入れていろいろなものを画像認識させてみた: EeePCの軌跡

私のようなにわかプログラマーでも簡単に使えてしまう機械学習プログラミング。

ブラックボックスの部分は多いものの、それでも何とか動いてしまうもので、いろいろと作ってみました。

TensorFlowで歴代「クラウン」の画像を判別させてみた: EeePCの軌跡

TensorFlowを使って”ゴキブリ”探知機を作ろうとしてみた: EeePCの軌跡

が、そろそろブラックボックスの部分を理解しないとこれ以上の発展は望めません。

てことで、こういう本を購入。

Img_1240

ゼロから作るDeep Learning」という本です。

ネット上の評判はかなり上々のこの書籍。

買おうかどうしようかと悩んでましたがどうせいつか買うつもりならさっさと買ってしまえと購入。

Img_1241

この本の特徴は、

・ Pythonで最低限のライブラリ(Numpy、Matplotlib)のみ使用したプログラム、画像認識に特化した内容にすることで、基本的な深層学習の仕組み理解を目指す

・ Pythonを使ったことがない人でも使えるよう、Python解説ページも付属

内容理解がメインなので、TensorFlowやCaffeといった機械学習用プラットフォームは一切使われてません。

ということで、これから”ディープラーニング”を始めるという人にはちょうどいい本です。

私も昨年夏から始めたとはいえ、中身はわりとすっからかん。

てことで、再び”ゼロ”からスタートです。

Img_1242

Python初心者でも使えることを謳ってるだけに、1章分をPython解説に使ってます。

Img_1243

人工知能やTensorFlowのコードを読むと結構難解な用語が次から次へと出てきます。この”誤差逆伝播法”という言葉もその一つ。

他にも”畳み込みニューラルネットワーク”だの”交差エントロピー”だの”パーセプトロン”だの・・・もはや何を言ってるのかわからない単語のオンパレード。それが人工知能の世界。

しかしプログラミングというのは動いているところを見ると理解がすすむもので、それを自身でプログラミングしながら促進しようというのがこの本の意図であり、これが多くの人から支持されている理由のようです。

ネット上の情報って結構役に立ちますけど、なんというかLinux系・プログラム言語系にありがちな「行間を読め」的な端折った説明にかなり惑わされます。

まだまだ読み始めたばかりですが、これまでブラックボックスだったところのいくつかがわかり始めてます。

ちょうど私が最初にTensorFlowをいじったときには、まだこの本は出てませんでした。もうちょっと早く出会いたかったですねぇ。

さて、人工知能導入に向けてリスタートを切ったわけですが、そのためにもう一つやらなきゃならないことが。

それは「WindowsにTensorFlow環境を構築」すること。

以前Windows 10のBash on WindowsでTensorFlow動かしてみた: EeePCの軌跡でも書いた通り、Bash on Windows上で構築はしたんですが。

この環境はWindows 10でないと動きません

ちなみに、私の会社のPCは未だにWindows 7

てことでWin 7でもTensorFlowが動かせる環境を導入しました。

参考にしたのはこちらのサイト。

TensorFlowがWindowsサポートしたのでインストールしてみた - デジタル・デザイン・ラボラトリーな日々

Windows用Anacondaを入れてpipでTensorFlowをインストールするというもの。

必要なものを後から入れることもなく一発で導入できるため、楽ですね。

ただTensorFlowで歴代「クラウン」の画像を判別させてみた: EeePCの軌跡で作ったコードを使うにはOpenCVも必要なため、こちらも導入。

Windows Anaconda Python 3.5 への OpenCV 3.1 のインストール - にせねこメモ

ここを参考にインストール。

これで先の”クラウン判別器”は動作させようとしたんですが。

元々Python 2.7で書いていたコードPython 3.5にもってきたため(Anaconda for WindowsはPython 3.5用を導入)、ちょっと改変が必要でした。

例えば”print ~”という文は”print (~)”という感じに変えたり、日本語のコメントを全部消したり(文字コードエラーが起こります)、”for i in range(len(train_image)/FLAGS.batch_size):”というコードでエラーが出るので(整数型のところに浮動小数点型変数が入ってる!みたいなエラー)、”for i in range(len(int(train_image)/FLAGS.batch_size)):”と書き換えたり・・・ちょっと一筋縄ではいきませんでしたが、何とか使えるようにはなりました。

てことで、自宅でも会社でもPython+TensorFlow環境を構築中。

使いこなすために、再度勉強中です。

果たして、この先何かを作ることができるんでしょうかね?

また、報告します。

【おまけ】

再学習に当たり、参考となりそうなサイトをいくつか見つけたので紹介しておきます。

定番のConvolutional Neural Networkをゼロから理解する - DeepAge

「畳む込みニューラルネットワーク」の説明としてはわりとわかりやすいです。

高卒でもわかる機械学習 (0) 前置き | 頭の中に思い浮かべた時には

タイトルのわりには難解なところもありますが、それでも難しい用語でごまかさず説明してるところはなかなかいい。人工知能の前提知識が全くないとお考えの方なら、参考書を手にする前にまずここを一読されるとよろしいかと。この記事書いてる時点では(7)までありました。私もちょっとづつ読んでます。

詳説 人工知能 - ディープラーニングの仕組みと応用:ITpro

ここはディープラーニングの知識習得というより、応用事例の解説が役に立ちます。

日本ならどこでもそうですが、こういう技術って上の人からはマユツバ扱いされるんですよね。説得用にはいい記事かと。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

« GoogleがRaspberry Pi向けに人工知能用ツールを提供へ | トップページ | iPhoneで髭剃り!?Linghtningコネクタにつないで使用する”ライトニングシェーバー” »

パソコン系」カテゴリの記事

科学・技術」カテゴリの記事

Raspberry Pi・Arduino・電子工作」カテゴリの記事

数値解析系」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: Re:ゼロから始めるディープラーニング:

« GoogleがRaspberry Pi向けに人工知能用ツールを提供へ | トップページ | iPhoneで髭剃り!?Linghtningコネクタにつないで使用する”ライトニングシェーバー” »

当ブログ内検索

  • カスタム検索

スポンサード リンク

ブログ村

無料ブログはココログ