Rakontanto de ludo

Peace cannot be kept by force. It can only be achieved by understanding.

「ゼロから作るDeep Learning」をiPhoneのPythonistaだけで学ぶ

10/28(金)に仕事で東京に来ました。帰るのは10/30(日)なのですが、久々に本屋をじっくり見て回りました。島根県の一つの欠点が本屋が少ないことですが、それを東京に来た時に補っています。

www.blog-tmp.tokyo

最大瞬間風速的にバズった記事になりましたが、その後、この本は読了しています。Google発の機械学習のライブラリであるTensorFlowを題材に、学習のきっかけづくりをしてくれる良い書籍でした。

機械学習をするときはどんなことをするのか、蓄積されたデータから目的のものを探して来てもらうにはどうすればいいのか、そのアプローチの一端に触れることができます。どの分野にもこの手のきっかけづくりとなる書籍があると良いと思います。

次のステップへ

ですが、私の野望は世界征服ではなくAIを搭載した汎用人型決戦兵器に自分の代わりに会社へ行ってもらい、給料を稼いで来てもらうというササヤカナ野望です。これを実現するためには次なるステップに進まねばなりません。

Amazon.co.jpで電子書籍を買うのもいいですが、大きな本屋で目的の本に出会う楽しさもまた捨てがたいものです。

今回はこの本に出会いました。

プログラミング言語Pythonを使ってDeep Learningを学ぶ本です。最初に私が読んだ本はGoogleが開発した機械学習のライブラリであるTensorFlowを「使う」本でしたが、今回の本はTensorFlowのようなライブラリを「作る」本です。

外部ライブラリをほとんど使わず、ゼロからの構築をしながらDeep Learningを学んで行く本です。

使うライブラリ

この本はPython 3系でやります。最低限用意するライブラリはNumPyとMatplotlibのみです。

NumPyは数値計算のためのライブラリでPythonをこの分野で使われる言語のデファクトスタンダードとも言える存在にしている最強のライブラリです。

Matplotlibはグラフを描くためのライブラリです。

処理系

基本的に上記の環境があれば何でもいいのです。Windows, Mac, Linuxを問いません。書籍の中でも特に言及はされていません。

私は学習のしやすさと今後の野望を見据えてiPhoneのアプリであるPythonistaを使うことにしました。

Pythonista 3

Pythonista 3

  • omz:software
  • 仕事効率化
  • ¥1,220

何度か紹介しているアプリですが、¥1,200は安すぎます。価格設定を明らかに間違えているかサービス精神が旺盛なのか、とにかく開発者の懐の深さに脱帽です。こんな素晴らしいアプリを低価格で提供してくれることに敬意を表するアプリです。

これをインストールすると、Python 3.5とNumPyとMatplotlibがそのまま使えます。メジャーな外部ライブラリは最初から入れておいてくれるのも親切です。この二つ以外にもRequestsも入ってたりするので、http通信もすぐできます。

ウォーミングアップ

まずPythonistaでNumPyとMatplotlibの動きを確認しておきました。本の中でも1章は言語の概略とこれらライブラリの使い方になっています。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 6, 0.1)

y1 = np.sin(x)
y2 = np.cos(x)

plt.plot(x, y1, label="sin")
plt.plot(x, y2, linestyle = "--", label="cos")
plt.xlabel("x")
plt.ylabel("y")
plt.title('sin & cos')
plt.legend()
plt.show()

まんまそのままのコードですが、iPhone上のPythonistaでちくちく打ち込みます。コードアシストがあるので楽だと思います。

実行するとこんな感じです。

サインカーブとコサインカーブを描くスクリプトです。iPhone上でここまでできるのがすごいです。10年前はこんな小さな端末でプログラミングする時代が来るとは思っても見ませんでした。

ということで

すでに2章のパーセプトロンの話を読み進めています。ちなみにこの分野はどうしても数学の知識が必要です。

私はもともと日東駒専のひとつの出身ですが、専門は物理です。なので数学とかは普通に知識がある(思い出せば)ので抵抗なくこの手の本を手に取りますが、高校数学から大学初年度(と言っても今時の高校生とか大学初年度で何やってるのか知りませんが)くらいの数学は知らないと何が書いてあるのか理解できないと思います。

行列(法律関係のテレビ番組ではない。マトリクスのこと)や微分はこの本でも普通に出て来ます。

ただ、数学は別に高校や大学でないと勉強できないわけではないので、このジャンルをやるのに必要な数学を学ぶことはできないことではありません。眠くはなると思いますが。

この本は先を急がずに時間をかけるつもりなので、時々記事を書きます。