はじめに
この記事は、連載「ゼロから始める機械学習」 の2本目の記事となります。
前回「機械学習とは?」 では、機械学習の概要やプログラミングとの関連性について説明しました。
機械学習を学ぶ上ではプログラミングはほぼ必須と言えるでしょう
そして、今後の記事ではPython
プログラムを動かしながら学んで行くことになります。
この記事では、そのための環境構築を行います。
環境構築は学習者の悩みのタネ
皆さんもご存知の通り、プログラミングにおいては環境構築のハードルが高いですね。
初学者向けの言語として認知されているPython
でも同様のことが言えます。
環境構築から学ぶことも多いのですが、
あれこれ勉強しようと手を出してしまうと混乱してしまい、学習効率も落ちます。
そこで、最もおすすめな環境がGoogle Colaboratoryです。
Google Colaboratoryとは
(以下Google Colab
)
https://colab.research.google.com/
Googleが提供しているクラウドで実行されるJupyter Notebook環境です。
Googleアカウントを持っていれば、誰でも無料で利用できます
なぜ初学者におすすめか?
メリットはいくつもあるのですが、特に大きな理由を4つ紹介します。
エディタとしても実行環境としても使えるため
Google Colab
(正確にはJupyter Notebook)はインタラクティブな実行環境です。つまり、エディタや実行環境を用意・管理する必要がありません。
Visual Studio Code
などのエディタは非常に便利ですが、初学者にとっては多機能でありすぎることがデメリットにもなり得ます。その点、
Google Colab
はシンプルな構成となっており、素早く習得することができます。機械学習やプログラミングに慣れてきたタイミングで、自分にあったエディタを探すという方針で良いと思います。
ライブラリのインストールが不要なため
Google Colab
の環境では主要なライブラリは標準でインストールされています。そのためライブラリを管理する必要はありません。一部、インストールされていないライブラリもありますが、セッションごとに一時的にインストールことが出来ます。
インストールした内容はセッションごとにリセットされるため、環境を壊してしまう心配もありません。
インタラクティブに操作ができるため
ノートブック形式であるため、変数の中身やタイプを確認しながら実装を進められます。
初学者のうちはコードを1行ずつ追いながら、それぞれでどういった処理がされているかを理解することが大切です。
また、セルを一つずつ実行できるので、エラーが発生した際に原因を特定しやすいです。
ローカルPCのスペックを問わないため
Google Colab
はWebアプリとして動作します。そのため、ローカルPCのスペックが低くても構いません。Google Colab
ではGPU
も使えてしまいます。またソースコードがクラウド上に保存されるため、一旦中断した後に違う端末から再開することもできます。
実践
アクセス
それでは実際に動かしてみましょう。まずは、下記のリンクからGoogle Colab
にアクセスしてください。
https://colab.research.google.com/
以下のようなページが出てくると思うので「ファイル」「ノートブックを新規作成」をクリック。
ここで、Googleへのログインを求められた場合はログインしてください。
画像のような画面が現れると思います。
画像中の長方形の部分はセルと呼ばれ、ここにコードを書くことになります。
試しにセルに以下のコードを貼り付けてみてください。
1 | var = 1+2 |
そして、セルをクリックした状態で
[Shift]キー+[Enter]キー
を押してください。結果が出力されるはずです。
「+コード」をクリックすると、選択しているセルの下に新たなセルを追加できます。
以上がGoogle Colab
の基本的な使い方となります。
ノートブックは自動でGoogle Drive
に保存されます。
ライブラリのインポート
Google Colab
には主要なライブラリはインストール済みでしたね。
その確認も兼ねて、今後の解説でも使うNumPy
やmatplotlib
をインポートし、動かしてみましょう。
Numpy
数値計算に用いるライブラリです。
Pythonではデファクトスタンダードとなっているライブラリです。
この連載でも、NumPy
を使って機械学習の実装をしていきます。
ここで、少しNumPyを使ってみましょう。
ライブラリを使う際は、まずインポート
が必要です。
次のコードをセルに貼り付けて実行してみましょう。
1 | import numpy as np |
先ほどと違い、何も出力されませんがそれで問題ありません。
今度は0~9までの値が格納されたリストを作成してみましょう
1 | A = np.arange(10) |
結果
1 | array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) |
さて、リストAの中身をシャッフルしてみましょう。
どのように実装するのが良いでしょうか。
実は、こういった基本的な処理であれば、NumPy
でrandom.shuffle
として実装されているため自分で実装する必要はありません。
1 | np.random.shuffle(A) |
random.shuffle
は今後使うことになるので、ぜひ覚えておいてください。
Matplotlib
matplotlibはグラフを描画のためのライブラリです。
このライブラリも今後使っていくことになります。
1 | import matplotlib.pyplot as plt |
ためしに先ほどのリストの中身を折れ線グラフで表示してみましょう。
1 | plt.plot(A) |
今後の記事では散布図を描画するために利用します。
次回
次回はいよいよ、プログラムを組んで実際にデータを処理してみましょう。
まずはルールベースによってデータを判別するプログラムを作成します。
記事情報
- 投稿日:2020年3月27日
- 最終更新日:2020年3月29日