まゆたまガジェット開発逆引き辞典

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを

マイナスから始める機械学習入門2 Bluemixで遊ぶ

WatsonとBluemixとは?

ガチでコードを書き始める前に、IBMのWatsonで感覚を掴んでみたいと思います。
Watsonとは、専門家の思考パターンを学習させて意思決定に役立てるものです。
人の脳をコードで再現するAI(人工知能)とは異なるため「人工知能」ではない、というのがIBMの見解のようです。

IBMはWatsonを「自然言語を理解・学習し人間の意思決定を支援する"コグニティブ・コンピューティング・システム(Cognitive Computing System)"」と定義しています。
「コグニティブ」というのが、専門家の思考パターンですね。

このWatsonを使って様々なアプリを作るために必要なのが、Bluemix。
Bluemixは簡単にアプリを作るためのフレームワークと、Web上でアプリを実行させるための実行環境です。
こちらのサンプルから分かるように、

  • Arduinoで室温を計ってWeb上でその変化をグラフ化する
  • Twitterボットをつくる
  • 質問応答システムを作成
  • Twitterを分析してユーザーの性格を知る
  • 脳波でラジコンを動かす
  • Oculusの位置データを取得する

などがあります。
脳波でラジコンを動かしたり、Oculusの位置データを取得するのはローカル環境でもできます。
が、いざセンサのデータをネットを介して受け取ったり処理したりとなるとけっこうメンドくさいので、こういうのは有難いです。
この中でも、Twitterボットや質問応答システムにWatsonが使われています。
いきなりWatsonを使うのも良いのですが、実行環境であるBluemixのことも知っていないといけないので、まずはBluemixのセットアップからやっていきましょう。

Bluemixのセットアップ

  1. こちらからIBM IDを登録し、「Bluemixのフリートライアルを開始する」をクリックする
  2. 先ほど入力したメールアドレスに「 confirm your account」と書かれたメールが送られているので、クリックしてBluemixを有効化する
  3. ログインのリンクが出てくるので、クリックしてメールアドレスとパスワードを入力
  4. ダッシュボードをクリックして、ここからアプリやらを作っていく

アプリをBluemix上(クラウド上)で作成する(「Hello world」の表示)

ローカル環境でコードを書くのがベターだと思われますが、ブロックを組み合わせることでコードを書かずにアプリを作成できる「Node-RED」と組み合わせて使うこともあるかと思いますので、ひとまずはBluemix上でコードを書いていくことにします。
どうもSafariではなくGoogleChorme等でやったほうがいいみたいです。一部Flash使ってるんでしょうか。

  1. ダッシュボードから、「アプリの作成」を選び「WEB」をクリック
  2. SDK for Node.js」をクリック(上記のサンプルでもNode.jsを使用しているものが多いため)
  3. 続行をクリックして、アプリ名をつける(英語推奨・他ユーザと名前が被っているとNG)
  4. 少し待って、「アプリは稼働しています」の表示が出たら「GIT」をクリック
  5. ダッシュボードに戻り、作成されたアプリのアイコンをクリックする
  6. 「概要」を選択し、「GITの追加」をクリック
  7. 適当にIDを入力して、利用条件にチェックを入れたら「作成」を押す
  8. 続行を押していき、閉じるを押す
  9. アプリの「概要」をクリックすると右上に「コードの編集」のボタンがあるので、それをクリック
  10. アプリ名が書かれた左側のウィンドウから「public」→「index.html」をクリック
  11. 右側にコードが表示されるので、h1タグの中身を変えてみる(Hi there!から例えばHello world!)
  12. 「ファイル」メニュー→「保存」で保存する
  13. 再生ボタンのようなアイコン(ワークスペース・コンテンツを使用したアプリケーションのデプロイ)をクリックしてOKを押して、実行する
  14. 少し待ってアプリケーション名の左隣にあるボタンが緑色になったら、再生ボタンのようなアイコンの右2つ隣の矢印がついているアイコン(アプリケーションURLを開く)をクリック
  15. 変更が適用されて、アプリが実行されているのを確認できる

これが基本のようですね。次からはNode-REDをやってみたいと思います。