初心者でもわかるIBMのWatson APIを利用して機械学習を始める Vol.1

JavaScriptを利用してお手軽に機械学習が始められるというIBMのWatson APIが注目されてきています。画像認識・SNSなどのデータを元にした自然言語解析、チャットボット風の返答機能など利用用途は様々です。今回はWatson APIを利用してどのように機械学習を進めていくのか、登録の仕方から簡単な実装のサンプルまでご紹介します。

Bluemixとは

Bluemixとは、IBMのクラウドサービスです。Bluemixのサービスから、Watsonが提供する機能をAPIとして提供しています。
またBluemixではWatsonサービス以外にも様々な機能が提供されています。 たとえば、ドラック&ドロップで様々なブロックをつなぎ合わせるだけでアプリケーションを構築するNode-REDなどがあります。

Bluemixを使ったプロダクト

Bluemixを使うと様々なプロダクトを作成できます。テキストを解析して、その人の感情や性格を判断したり、最初に学習させておくことで、その人のパーソナリティやクイズ・診断アプリケーションなどが割と簡単に開発できます。

Bluemixを使ったハッカソンで、様々なアプリケーションが掲載されているのでどのようなアプリケーションを開発するか悩んでいる方はチェックしてみてください。

公式サイト:http://www.ibm.com/developerworks/jp/bluemix/contest/

IBMのBluemixの登録

IBMのBlumixを利用して、はじめます。
https://console.ng.bluemix.net/

会員登録の際に注意すべきポイントがあります。
大文字、小文字、特殊文字を含む文字列でないとパスワードとして認識されません。
また*を特殊文字に使っても下記のようにエラーがでてしまいますので、注意してください。

an error occurred while committing with the server please try again .  payload is not valid. ibm id password can only contain numbers, upper and lower case letters, hyphens, underscore and periods

ピリオドか、アンダースコアを利用して欲しいとのことで、こちらを入力すると無事アカウントの作成が行われます。
メールアドレスにメールが飛んでいるので、下記のボタンを押して、アカウント登録を完了しましょう。

ibm

Bluemixの詳細設定

ibm
https://console.ng.bluemix.net/dashboard/apps/
登録した後に、組織の作成や詳細を設定していきます。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2017-01-11-12-02-19

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2017-01-11-13-14-09

左のサイドメニューにある「Watson」を選択します。
様々な機能が用意されているので、自分が作ってみたいものがあれば、アプリを作成してみてください。

Visual Recognition APIを試しに使っていきます。画像コンテンツの識別など画像に関連する機会学習に用いられます。

Visual Recognition以外を利用するときにはVisual RecognitionのAPIで利用するときに使うAPI_KEYとは違うものが必要になりますので、そこだけ注意してください。

Visual Recognition APIの使い方

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2017-01-11-13-40-10

左のメニューからWatsonを選択して、Visual Recognition-nvのページに繊維します。
サービス資格情報というタブがあるので、こちらを押してください。

そうするとサービス資格情報に一つ作成されているので、資格情報の表示をおします。
表示すると下記のように記載があるので、api_keyの部分を利用していきます。

{
  "url": "https://gateway-a.watsonplatform.net/visual-recognition/api",
  "note": "It may take up to 5 minutes for this key to become active",
  "api_key": "xxxx" //これをAPIコール時に理油する
}

画像認識を実行してみる

ネットから拾った画像を元に、画像のURLを入力してそれぞれの人の顔を認識するようにしてみます。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2017-01-11-13-44-27

適当なフリー素材の家族写真のURLを入力して検索してみると、上記のようにしっかりobjectが4つ返ってきています。

jQueryでの表示ですが、下記サンプルコードです。4人の画像データを取得したい場合は取得した後にfor文でそれぞれ取得してみてください。いろいろな画像で試してみると非常に面白いですよ!

  $(function() {
      // 検索ボタンをクリックした場合の処理
      $('#search').click(function() {
          // 認識対象画像の表示
          document.getElementById("img").src = document.getElementById("img-url").value;
          // APIの呼び出し・取得データの表示
          var url = "https://gateway-a.watsonplatform.net/visual-recognition/api/v3/detect_faces?version=2016-05-20";
          jQuery.getJSON(
              url, {
                  apikey: document.getElementById("apikey").value,
                  url: document.getElementById("img-url").value,
              },
              function(json) {
                  console.log(json);
                  if (json.images) {
                      var data = json.images[0].faces;
                      for (var i = 0; i < data.length; i++) {
                          $('#result').append(data);
                      }
                  } else {
                      document.getElementById("massage").innerHTML = "画像認識ができませんでした。";
                  }
              });
      });
  });

このように割と簡単に画像認識を試してみることができます。性別の判断や顔のサイズなど色々なデータを取得できるので、自分の写真を撮影して、得点をつけるような自撮りアプリケーションなどでも利用できますよね。

また、画像から芸能人の人を判断したりすることも可能なので、自分のスコアと芸能人のスコアを比較して得点をつけたり、似ている人を判断することもできます。

画像認識系のプロダクト・アプリケーションを開発したいのであれば、Visual Recognitionを利用してみてはいかがでしょうか。

Bluemixの利用料金

それぞれのアプリケーションによって利用料金が異なりますので、それぞれのアプリケーションの詳細をみてみてください。利用する場合は、アプリケーションのどこでマネタイズをするのかを決めておくと良いでしょう。

1ヶ月は無料の期間がありますので、1ヶ月の間にやることをリスト化しておきます。

Bluemix有料化までにやることリスト

  • プロダクトの企画設計
  • プロダクトでマネタイズできる部分の構築
  • マネタイズまでにかかる時間、単価を計算
  • 有料化してもペイできるなら有料プランへの変更

いつの間にか有料化されていて困る、ということがないように事前に有料化までのプランを練っておくと良いでしょう。

また、無料プランは1ヶ月ありますのでそこで勝手に有料化されることはありません。なぜなら最初はクレジットカードの登録なしで簡単に始められるからです。ここは安心して利用できます。

これだけの機能が簡単に始められるのは嬉しいですよね!

CodeCampで機械学習をはじめよう

なお、Watson APIを利用した機械学習のカリキュラムがオンラインプログラミングスクールの「CodeCamp」で始まります。
オンラインで予習、学習、復習までを行え、受講講師に直接画面を共有しながらコードチェックまでしてもらえるというサービスです。他のプログラミングスクールよりも、場所を選ばず、それでいてマンツーマン指導のため教育精度も高いということで人気になっています。

CodeCamp」のWatsonのカリキュラムは非常にシンプルで、プログラミング初心者からでも始めやすい内容になっています。受講の講師の先生は親切に登録から実装まで教えてくれますので、心配せずに先生にどんどん聞いてみてください。

JavaScript初心者だけど大丈夫?

JavaScriptやHTML、CSSの知識が必要になりますので、そこはドットインストールなどの無料で独学できるツールを使って学ぶか、同じくCodeCampのカリキュラムのJavaScript編を受講していただくとスムーズに機械学習にチャレンジできるでしょう。

→プログラミング独学者が悩んだときに相談できるサイトまとめ

JavaScriptで気軽に機械学習を始めてみたいという方はこちらもぜひチェックしてみてください。

初心者だけどJavaScriptを覚えていきたい、学んでいきたいという方はこちらを合わせて読んでみてください。

オンラインでPythonを学習する方法

書籍でPythonを学習する方法はありますが、ブラウザでPythonを学習するサービスがあります。PyQ(パイキュー)は、Python経験豊富なエンジニアがカリキュラムを作成しており、代表も20年以上プログラマーをしているという安心感のあるサービスです。