従来は人工知能の開発というと、高度なスキルがないと手が届かないイメージがあった。
しかし現在では、多少のプログラミングの知識があれば、人工知能を使ったアプリケーションを開発できるようになった。
そこで今回は、手軽にはじめられる人工知能を使ったアプリケーションの開発方法をまとめてみた。
「言語処理AI」「音声処理AI」「画像処理AI」など様々な種類の技術を、入門者向けに広くピックアップした。興味のある分野について、それぞれ掘り下げてみることをおすすめする。
- 関連記事
- 開発方法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
- まとめ
関連記事
開発方法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」
タイプ
畳み込みニューラルネットワーク(Convolutional Neural Networks, CNN)用ライブラリ
難易度
★★★
特徴
- 畳み込みニューラルネットワークの学習と分類を行えるライブラリ
- 利用する言語は通常Pythonとなる
- 分類とは、「犬の画像を読み込み、80%で犬、107%で狼である」などと判断すること
- きちんとニューラルネットワークなどについて学ばないと使いこなすのは難しい
- 理解すれば、畳み込みニューラルネットワークの得意とする、画像や音声の分類を、学習段階から行える
- 似ているライブラリに、caffeやchainerなどがある
- 画像処理の場合は、後述のCV系ライブラリで物体を切り抜いてから、こちらで分類をする方法がある
開発方法8.OpenCV
タイプ
コンピュータ・ビジョン(CV)用ライブラリ
難易度
★★★
特徴
- 画像や映像の中の物体を認識して切り抜いたり、特定の被写体を検出することができる
- 物体を認識して切り抜く技術はR-CNNと呼ばれ、代表的なものにselective searchなどがある
- OpenCV自体はPepperをはじめ、さまざまなアプリケーションや機器に組み込まれている
- 似ているライブラリに、dlibなどがある
- 利用する言語はCやPythonなど
- 比較的簡単に、「人間の顔認識」「写真内の物体検出」「映像内の人の動きの検出」などを実装できる
- 機械学習については、きちんとCVの技術などについて学ばないと使いこなすのは難しい
- 用途は、「写真上の人の顔の認識」「画像の性質などの分析」「画像や映像の(動的な)加工」など
まとめ
今回は、比較的簡単に人工知能を利用したアプリケーションの開発をするための、8つの方法を紹介した。
もし興味があれば難易度の低いものから触れてみて、感覚を掴んでいってみるといいと思う。
人工知能系のAPIやライブラリはますます便利かつ高度になってきている。しばらく前では考えられないほど、無料で様々なことができるようになった。
試してみるなら今しかない。