Python
Bluemix
DataScience
ibmcloud
DSX

10分でできるPython機械学習環境! Watson Studioセットアップガイド

(2018-04-27 製品バージョンアップに伴い全面改定)

はじめに

Watson Studio(旧IBM DSX)は、IBMクラウド上で動く統合開発環境です。
R Studioも動くのですが、メインの開発環境はJupyter Notebookで、言語としては現在Python 3.5, Rをサポートしています。
また、同じIBM Cloud上のWatson Machine Learning, Cloud Object Storage, Sparkとも連携していて、これらのリソースをJupyter Notebookの中からシームレスに使えるようになっています。

スクリーンショット 2018-04-27 14.31.15.png

Watson Studioの全体像を正確に表現するのは、かなり難しいことなのですが、一般ユーザー目線でいうと、「とてもお手軽に( しかも無料で)使えるクラウド上のAI開発・実行基盤」ということができます。
PythonのAIプログラムでよく出てくる、Tensorflow, Keras, NumPy, Pandas, matplotlibなどは事前導入済み、そうでないライブラリもpipコマンドで導入できるものなら簡単に追加導入できます。
皆さんも、これから説明する手順を試してみて、そのお手軽さを味わっていただきたいと思います。

ちなみに、これからの説明で出てくるスクリーンショットは、全部つい先ほど、プライベートなアドレスでライトアカウントを取った直後に取得したものです。
一番最初の画面と、一番最後の画面のタイムスタンプを比較してみたところ、10分しか差がなかったです(つまり10分でセットアップが全部終わったということ)。もちろん、勝手知ったる人間が操作したので最短でできたということはありますが、タイトルの「10分でできる」は、あながち嘘でもないと思っています。

10分後に環境ができあがった時の実行イメージを以下に添付しておきます。

スクリーンショット 2018-04-27 18.25.33.png

ステップ0 IBM Cloudアカウント取得

まず、IBM Cloudのアカウントをまだ持っていない方はアカウントの取得を行って下さい。
最新版IBM Cloud ライトアカウント登録手順

ステップ1 Watson Studioインスタンスを作る

続いてWatson Stuidoのインスタンスを作成します。
最初にIBM Cloudダッシュボードの画面を開きます。
ここで、画面右上の「リソースの作成」ボタンをクリックします。

スクリーンショット 2018-04-27 14.37.29.png

登録可能なサービスの一覧表示の画面になるので、左のカテゴリから一番下の「Watson」を選択し、続いて画面右下の「Watson Stuido」を選択します。

スクリーンショット 2018-04-27 14.38.18.png

すると、下のような画面が現れます(中身が完全に表示されるまでちょっと時間がかかるのでご注意下さい)。
しばらく待っていると、右下の「作成」ボタンがアクティブになるので、全部デフォルトの状態でクリックし、サービスの作成を行います。

スクリーンショット 2018-04-27 14.39.43.png

下の画面が出たら「Get Started」をクリックします。

スクリーンショット 2018-04-27 14.40.19.png

組織とスペース選択の画面が出た場合は、すべてデフォルトのままで「Continue」とします。

dsx-06.png

"Done!"と表示されるので、「Get Started」ボタンをクリックします。これで、Watson Studioサービスの作成は完了です。

ステップ2 プロジェクトの作成

下の図のような、Watson Studioの初期画面が表示されます。
ここで、メニューの中から「New Project」を選択します。
一番上の図で示したObject Storageとの紐付けはプロジェクトの中で行われる形になります。

スクリーンショット 2018-04-27 14.45.40.png

下の画面が出たら、デフォルトの状態で「OK」をクリックします。

スクリーンショット 2018-04-27 14.56.20.png

下の画面が出たら、まずプロジェクトの名前を入力します。なんでもいいのですが、例では"My First Project"としました。
次に右(解像度により下の場合もあります)の「Define storage」の設定に移ります。
「 Add」をクリックして下さい。

スクリーンショット 2018-04-27 14.57.29.png

すると、(COS)クラウドオブジェクトストレージのインスタンス作成画面に遷移します。
やたらに文字が多いのですが、必要な設定項目は画面の一番下にあるので、下までスクロールします。

dsx-10.png

プランは「Lite」を選択し、画面右下の「Create」ボタンをクリックします。

dsx-11.png

下のConfirm Creationの質問には「Confirm」で答えます。

dsx-12.png

すると、画面右下の「Create」ボタンがアクティブになるはずなので、このボタンをクリックします。

スクリーンショット 2018-04-27 14.59.30.png

下のようなプロジェクト初期画面が表示されれば、プロジェクト作成に成功しています。
Jupyter Notebokが使えるまであと一歩の状態です。

スクリーンショット 2018-04-27 15.02.04.png

ステップ3 Jupyter Notebookの作成

上の画面が表示されたら、「Add to Project」->「Notebook」を選択します。

スクリーンショット 2018-04-27 15.02.44.png

Notebook作成の画面が出たら、まず名前を入力します。
なんでもいいのですが、ここでは「My First Notebook」としています。
あとはデフォルト値で、画面左下の「Ctreate Notebook」を押します。

スクリーンショット 2018-04-27 15.07.18.png

下のような画面がでてくれば、Python v3.5の動くNotebook環境の完成です。
スクリーンショット 2018-04-27 15.08.32.png

ステップ4 動作テスト

動作の確認をするため

①入力欄に1+1を入力
②実行アイコンをクリック

としてみて下さい。
計算結果で2が出力されていればPythonが正常に稼働しています。

上の例ではあまりに簡単すぎるので、最後にちょっとハデめのテストをしてみます。
下にあるコードをまるごとコピーして空白のセルに張り付けて下さい。
この状態で先ほどと同じように実行のアイコンをクリックします。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D 
from matplotlib import cm
%matplotlib inline
def func(x,y):
    return x**2 + y**2
x = np.arange(-5,5,0.05)
y = np.arange(-5,5,0.05)
X, Y = np.meshgrid(x,y)
Z = func(X,Y)
fig = plt.figure()
ax = Axes3D(fig) 
ax.plot_surface(X,Y,Z,cmap=cm.coolwarm) 
plt.show()

下のような三次元グラフが表示されれば成功です。
大変お疲れ様でした。

スクリーンショット 2018-04-27 18.25.33.png

Watson Machine Learningサービスの追加

Watson StudioでJupyter Notebookを動かすために必須ではないのですが、以下で紹介するサンプルアプリでは、Watson StudioとWatson Machine Learning、Sparkを連携させて使う関係で、以下の追加セットアップも必要となります。
Cloud Object Storage の時と同様に、プロジェクトにWatson Machine LearningとSparkのサービスを追加します。
まず、プロジェクトの管理画面から一番右の「Settings」タブを選択します。

スクリーンショット 2018-04-27 18.31.03.png

下の方にスクロールして、「Associated services」にある「Add service」のリンクをクリックします。

スクリーンショット 2018-04-27 18.32.10.png

ドロップダウンの中で「Machine Learning」を選択します。

スクリーンショット 2018-04-27 18.28.49.png

画面を下の方にスクロールして「Lite」プランを選択し、「Create」ボタンをクリックします。

スクリーンショット 2018-04-27 18.34.51.png

「Confirm Creation」のパネルでは「Confirm」で回答します。

スクリーンショット 2018-04-27 18.36.25.png

設定が完了すると、下の画面のように、Machine Learningがサービスとして追加されています。

スクリーンショット 2018-04-27 18.37.59.png

同様の手順で「Spark」もサービスとして追加しておいて下さい。

推奨する追加セットアップ

実は、導入直後の状態ではmatpoltlibを使ったグラフ表示の際、キャプションに漢字を使えないという問題があり、俗に「豆腐問題」と呼ばれているようです。
この問題の解決策について、別記事に記載しましたので、こちらの設定もあわせて行って下さい。

Watson Studio Jupyter Notebook上のmatplotlibで日本語ラベルを表示させる

このあとどうする?

この環境があれば、ネットに出ているPyhtonを使ったAIサンプルコード(特にJupyter Notebook用に書かれたもの)をいくらでも試すことができます。
以下に私が書いた記事を紹介します。

15分でできる日本語Word2Vec

Watson Machine Learing チュートリアルを試してみる

Watson Machine Learning - Watson Studio Jupytet Notebook上のscikit-learn 機械学習モデルをデプロイする -

【メモ】Watson Studioで強化学習サンプルを動かすNotebook

Watson Machine Learning - HPO機能を試してみる -