機械学習 & ディープラーニング入門(Python編)[Lesson 1]

機械学習 & ディープラーニング入門(Python編)[Lesson 1]

ディープラーニングを始めるための、Python基礎文法入門

2018年12月26日

一般的にディープラーニングはPython言語で開発する。実際に開発でよく使うPython言語の基本文法を厳選し、それらを図解で解説していく連載の初回である今回は、Python言語のバージョンについて説明する。

一色政彦 デジタルアドバンテージ 一色 政彦

はじめに

【これを学ぼう】Pythonの基礎文法

マナブ:にんまり ディープラーニングのプログラムって、Python言語で作るんだよね?

藍:厳しく教える そうよ。今日からはプログラミングの基本的な考え方も含めて、Pythonの基礎中の基礎の文法を説明していくね。

読者対象

  • 初めてディープラーニングや機械学習を学び始めるが、プログラミングも初めて学ぶ方

学習内容

 ディープラーニングのモデルを作成するためのプログラムは、Pythonを使って開発するのが一般的だ。そのPython言語の基礎文法を、本当によく使うものに絞って解説する。

 本連載は、「プログラミングがまったくの未経験で、知識ゼロの状態から、すばやくディープラーニングの実践に入りたい人」を意識して書いている。つまり、文法解説としては、必要最低限のラインを狙っており、逆にデメリットを見ると「完ぺきではない」と言える。

 「Python言語の文法をしっかりと丁寧に学びたい」という人は、今後公開予定の『Python入門連載』やPython言語の公式リファレンスなど、完全な文法解説(Web上の連載や紙の書籍など)を活用することをお勧めする。もちろん本稿でざっと概要を学んでから、本格的に別の連載や書籍に当たるというのでもよいだろう。

実行環境

 本連載は、Pythonコードを手元で実行しながら、読み進めることを想定している。

 Pythonの実行環境についてあまり知らないという人は、『機械学習 & ディープラーニング入門(作業環境準備編)』を、プログラミング自体も初めてという方は、『同(コンピューター概論編)』を一読しておくことをお勧めする。

 Pythonコードの実行環境としては、Google Colaboratory(以下、Google Colab)を用いる。Google Colabは、インタラクティブシェルを活用したノートブック形式のオンラインPython実行環境で、(2018年12月時点では)誰でも無償で利用できる。初心者や学習者にはうってつけの環境である。

 Python言語のバージョンは3系を使うことを想定している。Pythonのバージョンについては、本稿で解説する。

デモとサンプルコード

 本連載のすべてのサンプルコードは、下記のリンク先で実行もしくは参照できる。

Google Colabで実行する
GitHubでソースコードを見る

 基本的には自分の手を動かしながらコードを書くことをお勧めするが、時間節約のために簡単にコードを実行しながら学びたいという方は、上記のGoogle Colabのノートブックを開いて、それを自身のGoogleドライブにコピーしてほしい(具体的には、Google Colabのメニューバーにある[ファイル]メニューの[ドライブにコピーを保存]をクリックすればよい)。コピー後のノートブックを上から順に実行していき、分からないところだけ、本連載の本文を参照すれば、より短時間で文法を学べるだろう(ただし、現時点ではすべてのサンプルコードはまだそろっていない。本連載が完結してはじめてそろう予定なので、この手順を実行するには3月ごろまで待ってほしい)。

本連載のゴール

 Pythonによるディープラーニングの実装を学び始めたときに、「ディープラーニングの理解の前に、そもそもPythonコードそのものが何をやっているか分からない……」と戸惑ってしまわないためには、どのくらいの基礎知識を身に付けておけばよいだろうか?

 この疑問に対する解答を、本連載は、ライブラリ「TensorFlow」の公式チュートリアルのサンプルコードの読み方が、ある程度分かるレベルに達すること、と定義した。

 具体的には、以下の図1-a/b/c/dのコードが読めるし、意味も理解できようになることが、本連載の最終的なゴールである(各図のコードは、2018年10月時点のもの。公式チュートリアルの内容やコードは頻繁に更新されており、読者が本稿を読むときには違うコードになっている可能性が高いので注意してほしい)。

TensorFlowの公式チュートリアルのサンプルコード(1)
図1-a TensorFlowの公式チュートリアルのサンプルコード(1)
TensorFlowの公式チュートリアルのサンプルコード
図1-b TensorFlowの公式チュートリアルのサンプルコード(2)
TensorFlowの公式チュートリアルのサンプルコード
図1-c TensorFlowの公式チュートリアルのサンプルコード(3)
TensorFlowの公式チュートリアルのサンプルコード
図1-d TensorFlowの公式チュートリアルのサンプルコード(4)

Python言語が使いこなせるようになるには

 ただし、筆者の経験から言っても、コードを読めるようになったからといって、自分でコードがスラスラと書けるレベル、すなわち「Pythonプログラミングができるレベル」にすぐに達するわけではない。Python言語の文法書などを参考にしながら何とかコードが書けるようになるのが1~数週間後、自信を持ってPython言語を使いこなせるようになるのが1~数カ月後、といった期間がかかることが一般的だ。その理由は、プログラミングには知識の定着と慣れが、ある程度必要だからである。

 だからといって、じゃあ数カ月かけてマスターしてください、と言うつもりはない。とりあえず、Python言語の文法を一通り学習&体験したら、あとはOJT(オン・ザ・ジョブ・トレーニング)的にディープラーニングのサンプルプログラムなどを書き写したりする中で、分からない部分があれば自分で調べたり勉強し直したりしながら、Python言語を徐々に体得していけばよい。いわゆる「習うより慣れろ」形式の学習スタイルである。

Python言語の基礎文法

 それではさっそく、基礎文法についての説明を開始しよう。まず今回は、Python言語のバージョンについて説明する。

Python言語のバージョン

 Python言語のバージョンには、次の2つの系統がある。

  • バージョン2系(最新:2.7
  • バージョン3系(最新:3.7

 当然、バージョン3系が新しく、冒頭の「実行環境」でも示したように、本連載ではそちらを利用する(なお、「最新」としたバージョン番号は2018年12月時点のもの。最新のバージョン番号については、Python.orgの公式ダウンロードページなどを参考にしてほしい)。

 Python言語の文法仕様は2系と3系で一部互換性がない。よって本連載の基礎文法の解説は「3系でのみ通じる話」となっているので注意してほしい。

 ただし、何らかの理由で2系を利用せざるを得ない場面もあるかもしれない。そこで、2系の実行環境であっても、3系の文法をある程度使えるようにする方法について、Lesson 13で説明する*1全18レッスンの予定)。

  • *1 ここですぐに説明しない理由は、3系の文法を有効化するためのコードを何行か書く必要があるためだ。そのコードの内容・意味を説明するには、事前に、ある程度の基礎文法を理解しておかなければならない。
Google ColaboratoryでのPython 3選択

 Google Colabでは、Python言語のバージョン2系を使うか、3系を使うかが選べる。

 具体的にはまず、新規Google Colabファイル(以下、ノートブック)を作成して開いたら、メニューバーから[ランタイム]-[ランタイムのタイプを変更]を選択する(図2-1)。

ランタイムのタイプを変更
図2-1 ランタイムのタイプを変更

 これにより[ノートブックの設定]ダイアログが表示されるので、図2-2のように[ランタイムのタイプ]欄で「Python 3」を選択し、その右下にある[保存]ボタンをクリックすれば完了だ。

Python 3の選択
図2-2 Python 3の選択

 なお、このPython 3の選択作業は、ファイル新規作成のたびに必要となるので注意してほしい(2018年10月時点)。

【コラム】[ノートブックの設定]ダイアログのその他の設定

 [ノートブックの設定]ダイアログの[ランタイムのタイプ]欄の下にある[ハードウェア アクセラレータ]欄GPUなど、AI向きの演算処理装置を使うかどうかを指定するためのものだ。

 初心者の学習段階では、それほど大きなデータを使わず、処理時間もそれほど長くない場合が多いだろう。よって基本的には、「None」(なし)のままでよい。必要に応じて「GPU」や「TPU」(詳細後述)も使える。

 ちなみにTPUとは、基本的にGPUと同じような働きをする、Google Cloudプラットフォーム専用の独自の演算処理装置である。グーグルは、GPUよりもTPUの方が高速だとうたっているので、ディープラーニングに慣れてきたら、どちらが速いか、設定を切り替えて試してみるのもよいだろう。

 さらにその下の[このノートブックを保存する際にコードセルの出力を除外する]チェックボックスオフのままでよい。

 通常、Jupyter Notebook(および、その派生のGoogle Colab)では、Pythonコードの実行結果もノート内容として保存する。[このノートブックを保存する際にコードセルの出力を除外する]チェックボックスは、これを保存しないようにするかどうかの設定である。ほとんどのケースでは、結果を含めてノートブックを作成したいだろう。そうではないレアケースに限ってチェックを入れるようにしてほしい。

つづく

 以上、今回はPythonの「バージョン」について説明した。次回からは、いよいよ文法の説明に入る。まずは「モジュール」という概念について見ていこう。

  • このエントリーをはてなブックマークに追加

※以下では、本稿の前後を合わせて5回分(第1回~第5回)のみ表示しています。
連載の全タイトルを参照するには、[この記事の連載目次]を参照してください。

機械学習 & ディープラーニング入門(Python編)[Lesson 1]
1. 【現在、表示中】≫ ディープラーニングを始めるための、Python基礎文法入門

一般的にディープラーニングはPython言語で開発する。実際に開発でよく使うPython言語の基本文法を厳選し、それらを図解で解説していく連載の初回である今回は、Python言語のバージョンについて説明する。

2018年12月26日(水)
機械学習 & ディープラーニング入門(Python編)[Lesson 1]
2. モジュール ― Python基礎文法入門

Python言語の文法を、コードを書く流れに沿って説明していく連載。今回は、プログラムの1行目に記載されることが多い、モジュールのインポートや、そのモジュールを含むライブラリのインストールについて説明する。

2019年2月4日(月)
機械学習 & ディープラーニング入門(Python編)[Lesson 1]
3. コメント ― Python基礎文法入門、APIリファレンスの使い方

Python言語の文法を、コードを書く流れに沿って説明していく連載。今回は、コードの中で頻繁に使われるコメント機能を説明。さらに、コーディング作業で常用するAPIリファレンスの使い方について紹介する。

2019年2月7日(木)
機械学習 & ディープラーニング入門(Python編)[Lesson 1]
4. 変数、オブジェクト ― Python基礎文法入門

Python言語の文法を、コードを書く流れに沿って説明していく連載。今回は、プログラミングの基本中の基本である変数と、Pythonの世界を構成するオブジェクトについて説明する。

2019年2月13日(水)
機械学習 & ディープラーニング入門(Python編)[Lesson 1]
5. データ型(ブール/数値/文字列) ― Python基礎文法入門

Python言語の文法を、コードを書く流れに沿って説明していく連載。今回と次回は、値やデータの型を説明。今回はその前編として、bool型/int型/float型/str型を取り上げる。

2019年2月14日(木)
Deep Insider の SNS :