パソナテックは「AI・IoTの流れをキャリアに活かしたいエンジニアに贈る2days」と題し、「 PASONATECH CONFERENCE 2017」を実施しました。5月13日に開催されたのは、そのうちの1つである「デベロッパday」で、著名なエンジニアが講演を行っていました。
PASONATECH CONFERENCE 2017
https://www.pasonatech.co.jp/lp/conference2017/
まず、2017年5月13日に行われたデベロッパーdayから、AIトラックの2セッションの模様をお届けします。
LINEを使ってボットを開発できるLINE Messaging API
LINE株式会社 サービス開発1室の松野徳大氏
PASONATECH CONFERENCE 2017のデベロッパdayにおいて、「 LINE Bot SDKの開発の裏話と、それについてエンジニアとして考えたこと」と題して講演を行ったのは、LINE株式会社 サービス開発1室の松野徳大氏です。
最初に松野氏は、日本でもっとも使われているメッセージングサービスである「LINE」のプラットフォーム上でチャットボットを実装するためのAPI群である「LINE Messaging API」を紹介します。
LINE Messaging APIの基本的な処理の流れ。APIはHTTPS+JSON形式で実現されているため、比較的簡単にLINE上でボットを開発できる
このAPIについて、松野氏は「広く一般のデベロッパの方々にも公開されていて、趣味などでコードを書かれている方でも個人で開発できるようになっています」と話し、広く公開されたものであると説明します。
LINE Messaging APIとAIを組み合わせれば、ユーザからのメッセージにAIを使って自動で応答するといった仕組みも実現可能です。その実例として松野氏が紹介したのは「LINEカスタマーコネクトサービス」でした。
「LINEカスタマーコネクトというサービスでは、LINE Messaging APIを利用し、チャットボットを使ってカスタマーサービスを提供しています。ユーザからのお問い合わせを受け、それをAIで処理して返答するという形です。ただ、それですべてを完結するのは難しいので、チャットオペレーターとのハイブリッドなカスタマーサポートサービスを行っています」
このLINE Messaging APIが公開されたのは2016年9月29日ですが、それ以前にトライアル版として「Bot API Trial」が公開されていました。ただ「公開したこと自体は高評価をいただきましたが、APIがとにかく使いにくいといった評価もありました」と課題があったことを話します。そこで正式版ではAPIを大幅に改修することが決まりましたが、一方でトライアル版を利用しているユーザに申し訳ないという気持ちがあったと言い、次のように話を続けました。
「2016年4月7日にBot API Trialをリリースしましたが、金曜日から日曜日までユーザの反応を見ていると、APIの仕様部分について微妙な反応が多かったんです。そこでSDK的なものを作ってカバーしたほうがよいということになってすぐに開発をスタートし、4月15日の金曜日にはリリースしました」
トライアルで公開したAPIの課題を解決するために、SDKの開発が始まった
このようにLINEのAPIやSDKについて語った後、松野氏はエンジニアの働き方として重要なポイントとして柔軟な対応を挙げ「求められたことに素直に対応しているエンジニアは社内からの信頼も厚くなります」と、来場したエンジニアにアドバイスして講演を締めくくりました。
Azureを活用した機械学習の流れを解説
日本マイクロソフト株式会社 デベロッパーエバンジェリズム 統括本部 テクニカル エバンジェリストの畠山大有氏
「AIをあなたのツール化するための第一歩」と題し、機械学習やディープラーニングについて解説したのは、日本マイクロソフト株式会社 デベロッパーエバンジェリズム 統括本部 テクニカル エバンジェリストの畠山大有氏です。
冒頭、畠山氏は機械学習について「皆さんが普段アプリケーションを書くときに、いろいろとアルゴリズムを考えられて作っていると思います。その部分を逆に機械に探させる、作らせることが機械学習のそもそもの出発点です」と説明します。その上で、機械学習のためのツールとして「Azure Machine Learning Studio」を紹介し、「 機械学習系のツールはPythonとかRで書きなさいというものが実は多いんです。ただ、Azure Machine Learning Studioはドラッグ&ドロップして、プロパティを設定すれば結構行けてしまうように作られています。かつブラウザベースなので、PCじゃなくてMacでも全然使えます」と、その利点を説明しました。
Azure Machine Learning Studioは、選択したアルゴリズムのモデルを可視化するツールも備えている
続けて、実際にAzure Machine Learning Studioを使った機械学習の流れのデモンストレーションが行われました。具体的には、データの選択から機械学習のアルゴリズムを選択、データの要素の選定、学習用と検証用のデータ分割などを設定し、機械学習を行わせるという内容です。そしてマイクロソフトのツールを使うメリットとして、即座にWebサービス化できることを挙げ、「 PHPやPython、Javaなど、さまざまな言語から簡単に呼び出せるようになります。できあがった後は、RESTコールで呼び出せるものに2~3クリックで変換できます」と紹介しました。
このようにAzure Machine Learning Studioの使い方をひととおり説明した後、畠山氏はポイントとなるアルゴリズムの選択について解説します。その中でよくあるパターンとして回帰分析(Regression)や、分類分けに使えるClassification、セグメンテーション分けやグルーピングに使われるクラスタリングなどについて説明が行われました。
また機械学習を使う際の注意点として、次のようにポイントを語りました。
「機械学習で学習させる際、必ず1回はしてしまうのが過学習です。特に技術に長けた方ほど最初に陥りやすいです。訓練用のデータはあくまで訓練用なんです。初めてやると、100%で答えを出そうとします。98%はおかしい、もっとデータを足そうとします。そうするとやり過ぎなんですね。訓練用のデータでやりすぎて、本番ではあまり使えないといったことになりかねません。機械学習は汎用的にすることがポイントです」
機械学習を使う際の注意点として挙げられた過学習。機械学習では汎用性を意識することが大切だとした
昨今話題となることが多いディープラーニングについては「機械学習の中の手法の1つ」と話し、その用途については次のように述べました。
「扱いたいデータや答えが数値やテキストの場合は、普通に機械学習のツール、マイクロソフトで言えばAzure Machine Learningを使ってできます。ただ、画像や音声、動画を扱いたい場合、あるいは言語を作って欲しいなどといった際には、ディープラーニングの方が全然得意です。ですので、対象物によって手法が変わってくるということを覚えてください」
このディープラーニングを実現する方法として、マイクロソフトで提供しているのが「Cognitive Services API」です。これはディープラーニングを使って開発した、画像や音声などのデータを識別するためのAPIです。その1つとして畠山氏が紹介したのは、写真の中に何が映っているのかを判断させる「Computer vision」で、写真を読み込ませて自動的に写真の説明を生成することもできると説明します。そして最後に、機械学習を行うためには大量のデータと、そのデータに対する知見、データ解析手法の知識と経験、そしてツールの4つが必要だと説明し、「 私たちマイクロソフトは、新しい機械学習やAIの手法を使って、ちょっと違う世の中を作っていきたいと思っています。ぜひ、こういった部分でも皆さんとご一緒できればと思っています」と展望を述べました。