人工知能という言葉がTVなどでも取り上げられるようになり、将棋や囲碁のチャンピョンを人工知能が倒してしまう時代になりました。スマフォではその人の声を自動で学習して言葉を理解し、車なども自動で危険だと判断した場合には自動ブレーキをかけたりと、私たちの身の周りにどんどん人工知能が使われるようになりました。
皆さんは、SF映画で「ターミネータ」をご存知でしょうか?ターミネータの世界は、機械が人間を支配している世界が舞台であり、人間が機械から自由を勝ち取る為に戦うような映画なのですが、これは本当にSF映画なのでしょうか?近未来で、機械が自分で自分に対して判断を下し自身を制御できるようになり、「人間は地球にとって危険な生き物である。よって人間は殺すべきである」と判断した暁には、ターミネータのような世界になるのも100%ありえないとはいえないでしょう。
目次
ディープラーニングってなに?
そもそもディープラーニングとはどういったものなのでしょか?
・本サイトは以下の書籍を参考にしています。
先ほど、人工知能の裏側ではディープラーニングという技術が重要な役割を果たしていると説明をしましたが、ディープラーニングはこの記事ですべて説明できる程簡単なものではありません。
そこで今後は機械学習や統計処理などを得意とするプログラミング言語、「Python」
を使って、一つずつ理解していきたいと思います。
開発環境
- Python3.x
- NumPy
- Matplotlib
それぞれ開発環境の設定方法については、以下のサイトが分かりやすいと思いますので、参考にしながら開発環境を整えてください。
64bit環境でPythonのNumpy/Scipy/Matplotlibをインストール
上記のサイトではWindowsの64bit版で話をしていますが、Pythonを使った開発環境は他にも沢山あります。
その中でもオススメなのが「Anaconda」というディストリビューションです。
このAnacondaはデフォルトで上記のNumPyやMatplotlibが入っています。
また、Python3系とPython2系が存在しますが、本サイトではPython3を使って説明をしていきますので、このサイトを見ながら学習をする場合は、Python3系のディストリビューションをインストールしてください。
Pythonの基本プログラミング
管理人はWindowsの64bit版で開発環境を構築したので、コマンドプロンプト上で操作をしますが、LinuxやMacを使っている場合、それぞれのターミナルを起動して操作を行ってください。
1、Pythonのバージョンを確認する
Pythonをインストールしたら、Pythonが正常に動作しているか確認してみます。
また、インストールした時期によっては本サイトに掲載されているバージョンと数値が多少違うことがありますが、原則Python3系であれば問題ありません。
python --version Python 3.6.0b4
2、変数と算術計算
height = 170 bmi = 22 std_weight = bmi * (height / 100) ** 2 print("身長: " + str(height) + "cm → ", end="") print("標準体重: " + str(std_weight) + "kg")
1行ずつ説明していきたいと思います。
【1行目~2行目】
これはheightとbmiという変数を用意し、その中に170と22という数値をそれぞれ代入しています。この時、数値は170と22で整数になるので変数の型はint型になります。
これが例えば170.5や22.9という数値を代入した場合、heightとbmiの変数はfloat型となります。
【3行目】
std_weightという変数に対して、右辺の計算結果を代入しています。この時、**2という記述がありますが、これはPythonでは2乗という意味になります。
【4行目~5行目】
ここでは、printというメソッドを使いメソッドの引数で渡したものを出力しています。
実際にここではプログラミングをしてみて、なんという出力がされるのか確認してみてください。
Pythonでは文字列の結合は”+”を使います。
3、条件分岐
age = int(input("年齢を入力してください: ")) if age >= 0: if age < 4: print("無料です") elif age < 15: print("200円です") elif age < 70: print("400円です") else: print("無料です") else: print("正の整数を入力してください")
【1行目】
ageという変数に、入力された数値を代入しています。
【3行目以降】
Pythonではif文は上記のように記述します。
他の言語から学ぶ方は、いくつか疑問に思うかと思いますが、Pythonではブロック記号{}を記述する必要はありません。代わりにタブ(空白4文字)を使ってブロックを判断します。
また、if文に後ろには:(コロン)を記述しなければなりませんので忘れないようにしてください。
4、関数
class Customer: def __init__(self, number, name, height=0): self.number = number self.name = name self.height = height # インスタンスを生成 taro = Customer(100, "山田太郎", 170) print("{}: {} {}cm".format(taro.number, taro.name, taro.height)) # 身長を変更 taro.height = 185 print("{}: {} {}cm".format(taro.number, taro.name, taro.height))
【1行目】
1行目はCustomerクラスを定義しています。
【2行目~5行目】
また、2行目では、__init__という見慣れないものがありますが、まず、defという記述で関数を作っています。そして__init__はコンストラクタを意味します。少しPython独特の記述なので、ここは暗記してしまってください。また、コンストラクタで呼び出した後は、クラスの属性に対してself.属性名でアクセスします。
まとめ
いかがでしたか?
Pythonの記述は少し理解できましたか?
今後は、Pythonを使い様々なプログラムを組みながらディープラーニングについて実際に手を動かしながら学習していきたいと思いますので、Pythonの記述方法がまだ不安である。という方は是非、基本文法から学んでみて下さい。
次回は、ディープラーニングの起源とも言われている「パーセプトロン」のアルゴリズムについて学んでいきましょう。
斎藤 康毅「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」(オライリージャパン,2016)
No comments yet.