×
最新の人気コンテンツ情報をまとめた
メールマガジンをお届けします

ページトップへ

Watsonは人工知能ではない

IBM Watsonは、Artificial Intelligence(AI:人工知能)ではなく、Intelligence Amplifier(IA:知覚増幅)と言われることが多いようです。特にIoTによるセンサー情報や既存の顧客情報等、人の意思決定を手助けしてくれます。6月5日の日経産業新聞で、Watsonは人工知能でないとIBMの方がお話ししている記事がありましたので記憶にある方もいらっしゃるかと思います。
「AI」と「IA」の違いは、たとえば、カフェに常連客が来店したとします。「AI」は、常連のお客様が見えたらいつものコーヒーを黙って用意します。あるいはお客様の好みに合致した新商品をお客様に聞かずに出すかもしれません。知能を持つことで、人に言われる前に機械が判断し行動します。「IA」は、お客様にいつものコーヒーにするか、好みに合致しそうな新商品のどちらにするか、確信度の高い候補をお客様に提示し、どちらを用意するか意思決定の手助けをしてくれます。
「AI」も「IA」も、より良い判断ができるよう人による教育が必要です。今後、「AI」や「IA」を適切に教育・学習させることが出来る人材や資格制度が必要になるでしょう。
 
Watsonは、確信度の高い解候補を利用者に提示してくれます。もちろん適切な解候補を利用者に提示していくれるように、Watsonに学習させることが重要です。きちんと学習・教育させることで、利用者が望む解に近い解候補をWatsonは提示してくれるでしょう。
仕組みに興味がある方は、IBMの技術情報誌「ProVISION」の「ProVISION No.70 質問応答システム Watsonが示す未来」の記事がオススメです。


「Node-RED」を使ってIoTアプリ開発環境を構築

Watsonを活かしたアプリケーション開発には、IBM Bluemixが今のところベストな手段です。30日トライアルの申込みにクレジットカードがいらない点もチャレンジし易いでしょう。(ここをクリックしてIBM Bluemix フリートライアル参加手順へ)
Bluemixを触っていると、Watsonほどではないけども、自社ないし自分専用のIoTアプリ開発環境が欲しいと思うことがあります。そこで、今回はIoTアプリ開発基盤の「Node-RED」を自社ないし自分用に「SoftLayer」上の仮想サーバー上で動かす手順をご紹介します。
「Node-RED」は、IBMのEmerging Technology Teamが開発しているオープンソースソフトウェアで、
インストール時点で基本的なネットワーク(MQTTもサポート)、ソーシャル(メールやTwitter)、データ変換をサポートしており、node(他のデータ連携ツールで言うところのアダプタのようなもの)を追加することで、ストレージやDB、SalesforceやTwilio(電話)といったクラウドサービスの連携も行うことができます。

イメージ図


■今回使用した「SoftLayer」の仮想サーバースペック
SoftLayerには、他の某A〇〇と異なりネットワークI/Oの無料枠が月額課金(monthly)でありますので、IoTアプリのようにデータ転送が頻繁に発生するアプリケーションに向いています。(SoftLayer未使用の場合は、こちらから無料トライアル参加し環境を用意してください。)

  • SoftLayer Virtual Server
  • データセンター:香港
  • OS:Ubuntu Linux 14.04 LTS Trusty Tahr - Minimal Install (64 bit)
  • メモリ:1GB以上
  • CPU:1コア × 2.0GHz
  • ストレージ:25GB もしくは 100GB (無料トライアルでは、25GBで固定)
  • UPLINK PORT SPEEDS:100 Mbps Public & Private Network Uplinks
  • Hardware & Software Firewalls:APF Software Firewall for Linux ← とても重要。
 
■ソフトウェアのインストールと起動
インストールには、Tera Termを用いてSSH接続で作業しました。
 
Node-REDのインストール
# apt-get update
# apt-get install build-essential curl
# curl -sL https://deb.nodesource.com/setup_0.12 | bash -
# apt-get install nodejs
# apt-get install git vim
# npm install -g grunt-cli
# cd /opt/
# git clone https://github.com/node-red/node-red.git
# cd node-red
# npm install
# grunt build
 
Node-REDは、デフォルトでは認証機能が有効ではないので、最低限ログイン機能を追加しておきましょう。
参考情報 http://nodered.org/docs/security.html
 
# npm install bcryptjs
# node -e "console.log(require('bcryptjs').hashSync(process.argv[1], 8));" zaq12wsx@
zaq12wsx@の部分を書き換えてください。
実行するとハッシュ値が表示されます。
例 $2a$08$GYk08c60olF.J57gI/xdwuvOoKpnmKvQg8YIpEYFc/tecHdxOGAWi

# vim /opt/node-red/settings.js
最後尾の「}」の手前に、下記を追加。追加後、:wqで保存。

,adminAuth: {
    type: "credentials",
    users: [{
        username: "admin",
        password: "ハッシュ値に書き換え",
        permissions: "*"
    }]
}
 
■ポートの解放
# vim /etc/apf/conf.apf
i キーを押し、入力モードへ
IG_TCP_CPORTS= に、1880を追加
Escキーを押し、:wqで保存
# /etc/init.d/apf restart → ファイアウォール(APF)を再起動
 
■Node-RED で使用するパッケージ(node)の追加例
# npm install node-red-contrib-salesforce
(参考情報 https://www.npmjs.com/package/node-red-contrib-salesforce)
他にも様々な追加パッケージ(node)があります。
https://www.npmjs.com/search?q=node-red にアクセスすると幾つか見つけることができます。
 
■Node-REDの起動
# cd /opt/node-red
# nohup node red.js & ← バックグラウンドでNode-RED を起動
Tera Termを閉じることができます。

お手元のPCのWebブラウザにて、http://SoftLayer上の仮想サーバーのPublic IP:1880 にアクセスすると、ログインを求められます。
username:admin, Password:設定したパスワード でログインすることができます。

なお、初めて触れる方には、サンプルを眺めることがオススメです。
サンプルは、ここで配布されています。 → http://flows.nodered.org/
サンプルはコードをコピー&ペーストするものと、npm install コマンドでインストールするものがあります。
コードをコピー&ペーストで利用するサンプルは、Node-REDにログイン後、画面右上の横三本線のアイコンをクリック → [Import]→[Clipboard]をクリックし、Import Nodesの入力項目に、サンプルサイトでコピーしたサンプルコードを貼り付け、OKボタンをクリックすると下記のようなサンプルフローが表示され、実際に触れることができます。



終わりに

Node-REDは、オープンソースソフトウェアのため、今回のようにSoftLayer上で動かすことで、IoTアプリサービスを自社サービスとして始めることができます。
nodeを組み合わせてフローを作成し、データ変換やデータ連携を直感的に行うことができるわけです。もちろんプログラミングも。IoT以外のアプリにも使用することができます。
今回の記事を参考に、自分用のIoTアプリ開発環境が欲しい場合に参考にしていただければ幸いです。