従来は人工知能の開発というと、高度なスキルがないと手が届かないイメージがあった。
しかし現在では、多少のプログラミングの知識があれば、人工知能を使ったアプリケーションやシステムを開発できるようになった。
そこで今回は、手軽にはじめられる人工知能を使ったアプリケーションの開発方法をまとめてみた。
「言語処理AI」「音声処理AI」「画像処理AI」など様々な種類の技術を、入門者向けに広くピックアップした。興味のある分野について、それぞれ掘り下げてみることをおすすめする。
※2016.07.23「Amazon ML」を追記
目次
- 目次
- 関連記事
- 開発方法1.ユーザーローカル社の「全自動会話API」
- 開発方法2.Locl Interactive Incの「Meya」
- 開発方法3.ユーザーローカル社の「形態素解析API」
- 開発方法4.Palo Altoの「Wit.ai」
- 開発方法5.Googleの「Cloud Vision API」
- 開発方法6.マルコフ連鎖
- 開発方法7.Googleの「Tensorflow」
- 開発方法8.OpenCV
- 開発方法9.IBMの「Watson」(追記)
- 開発方法10.AWSの「Amazon ML」(追記)
- まとめ
関連記事
開発方法1.ユーザーローカル社の「全自動会話API」
タイプ
チャットボット
難易度
★☆☆
特徴
- 簡単なJSONサービスで、「りんな」のようなフリートーク型のチャットボットを開発できる
- 日本語対応している
- 現在は申し込みを行った人限定でAPIを公開している
- ユーザーローカル社で機械学習をさせたAIが組み込まれているが、まだ学習途上のようで、精度はまだまだの様子
- 用途は基本的に「お遊び」ということになる
- 実際に組み込んでみたサンプルは以下▼
開発方法2.Locl Interactive Incの「Meya」
タイプ
チャットボット
難易度
★☆☆
特徴
- GUIベースで、LOHACOの「マナミさん」のような台本型のチャットボットを開発できる
- 日本語対応している
- 無料で利用可能。利用形態に応じて課金となる
- TwitterやFacebookや独自のアプリケーションにチャットボットを組み込める
- 簡単なスクリプト言語により、台本を作成して条件によって様々な応答をするよう、プログラミングできる
- 用途は、「ホームページでの自動案内」「Twitterやslackの自動応答」など
開発方法3.ユーザーローカル社の「形態素解析API」
タイプ
形態素解析
難易度
★☆☆
特徴
- 簡単なJSONサービスで、形態素解析(自然言語を分解し解析する技術)を行うアプリケーションを開発できる
- 日本語対応している
- 現在は申し込みを行った人限定でAPIを公開している(前述の「全自動会話API」とセットでアカウント発行してくれる)
- 用途は、「文章内でよく使われている単語をカウントする」「文章の一致度を比較する」など
おすすめ書籍
開発方法4.Palo Altoの「Wit.ai」
Wit -Natural Language for Developers-
タイプ
音声認識&言語認識ボット
難易度
★★☆
特徴
- 簡単なAPIサービスで言語認識や音声認識を行う、Siriのようなアプリケーションを開発できる
- 日本語非対応
- GUIベースでサービス側の構築を行い、独自のプログラムからAPIで呼び出す
開発方法5.Googleの「Cloud Vision API」
タイプ
画像認識
難易度
★★☆
特徴
- APIで画像を送ると、画像内に写っている物の名前をテキストで返してくれる
- 被写体の人物の感情を類推してくれる
- OCR機能で画像内の文字を認識してテキスト化してくれる
- 用途は、「画像の自動タグ付け」「画像の自動分類」など
開発方法6.マルコフ連鎖
タイプ
未来予測のアルゴリズム(中でも文章生成の事例が多い)
難易度
★★☆
特徴
- マルコフ連鎖は、現状から未来を予測するためのシンプルなアルゴリズムだ
- プログラミング言語で独自に実装する必要がある
- 用途は、「文章の自動生成」「ネット上ユーザーの行動予測」など
おすすめ書籍
開発方法7.Googleの「Tensorflow」
タイプ
ニューラルネットワーク学習&分類用ライブラリ
難易度
★★★
特徴
- ニューラルネットワークの学習と分類を行えるライブラリ
- 利用する言語は通常Pythonとなる
- 分類とは、「犬の画像を読み込み、80%で犬、10%で狼である」などと判断すること
- きちんとニューラルネットワークなどについて学ばないと使いこなすのは難しい
- 理解すれば、ニューラルネットワークによる学習と分類を行える
- 画像処理の場合は、後述のCV系ライブラリで物体を切り抜いてから、こちらで分類をする方法がある
開発方法8.OpenCV
タイプ
コンピュータ・ビジョン(CV)用ライブラリ
難易度
★★★
特徴
- 画像や映像の中の物体を認識して切り抜いたり、特定の被写体を検出することができる
- 物体を認識して切り抜く技術はR-CNNと呼ばれ、代表的なものにselective searchなどがある
- OpenCV自体はPepperをはじめ、さまざまなアプリケーションや機器に組み込まれている
- 別のCVライブラリに、dlibなどがある
- 利用する言語はCやPythonなど
- 比較的簡単に、「人間の顔認識」「写真内の物体検出」「映像内の人の動きの検出」などを実装できる
- 機械学習については、きちんとCV技術などについて学ばないと使いこなすのは難しい
- 用途は、「写真上の人の顔の認識」「画像の性質などの分析」「画像や映像の(動的な)加工」など
開発方法9.IBMの「Watson」(追記)
IBM Bluemix - Next-Generation Cloud App Development Platform
タイプ
複数AI機能が搭載されたプラットフォーム
難易度
★★★
特徴
- IBMのWatsonは、複数のAIの機能を搭載している(無料アカウントで確認できたのは、音声、テキスト、画像、翻訳、検索エンジンなど14種のAPI)
- 現状で考えられる、あらゆる人工知能ソリューションが用意されている印象
- 6種類のAPIが日本語対応 → IBM Watson Developer Cloud - Japan
- 一般ユーザーは、WatsonをBluemixというPaaSプラットフォームよりすぐに利用できる
- Bluemixでの利用については、一定まで無料で、そこから課金が必要(ひとまずカード登録もなく無料で試用できた)
- Watsonの機能については、Bluemix上のPaaSインスタンス、または外部のアプリケーションからWeb API接続で利用する
開発方法10.AWSの「Amazon ML」(追記)
Amazon Machine Learning (機械学習モデルの作成、実行) | AWS
タイプ
プラグラミングなしで機械学習によるデータマイニング
難易度
★☆☆
特徴
- Amazon Web Services(AWS)のAmazon ML(Machine Learning)を利用すると、プログラミングなしでビッグデータを機械学習して、未来予測を行える
- 競合となる「Microsoft Azure」「Google Cloud Platform」の機械学習機能と比べてもっとも簡単
- 機械学習の知識があれば、細かなパラメータを調整することもできる
- CSVデータでのインターフェース(CSVデータを読み込ませて、CSVデータで解析結果を取得できる)
- エクセルを使えるレベルのスキルでディープラーニングを使った機械学習を利用できる
- 学習したMLモデル(ネットワーク)は、「日々発生したデータをCSVで一括解析=バッチ処理」「Webアプリケーションなどから随時リアルタイムでAPI呼び出し」することができる
まとめ
今回は、比較的簡単に人工知能を利用したアプリケーションの開発をするための、8つ(+2)の方法を紹介した。
もし興味があれば難易度の低いものから触れてみて、感覚を掴んでいってみるといいと思う。
人工知能系のAPIやライブラリはますます便利かつ高度になってきている。しばらく前では考えられないほど、無料で様々なことができるようになった。
試してみるなら今しかない。