昨今ではAI(人工知能)搭載型のアプリケーションを、数多くの企業がこぞって開発を進めています。そんな注目度の高いAIアプリですが、実際に自分でAIアプリを作ってみるとしたら、どのようにして開発すればよいのでしょうか?
今回は初心者向けにAIアプリの代表的な開発方法について紹介していきます。
1. 【初心者向け】AI(人工知能)アプリの作り方
AIを用いたアプリの開発には、いくつかのアプローチがあります。ここでは代表的なAIアプリの開発方法と、AIアプリの主な用途などについて紹介していきます。
1.1 AIアプリの作成方法には2通りある
AIアプリを開発するには「学習済み機械学習モデル」をAPIで利用する方法と、ゼロから人工知能を開発する方法のふたつがあります。それぞれの開発方法について、以下で解説します。
1.1.1 学習済み機械学習モデルをAPI経由で利用する
実践レベルのAI開発スキルを習得するには、人工知能開発向けプログラミング言語だけでなく、「微分」「線形代数」「確率統計」など数学やデータ分析の知識が必要です。また学習のための膨大なデータを揃える手間と、AIをゼロから開発する手間の両方が「AIを使い始める前の段階」で発生するのは大きなコストです。よって、これらの手間を削減するために既に学習済みの機械学習モデルをAPI経由で利用し、ソフトウェア開発に組込むケースも多いです。
APIから利用できる学習済みAI系のサービスには、Speech-to-Textなどを提供するGoogleのCloud AIや、IBM CLoudの学習済みWatsonなどがあります。
1.1.2 ゼロから人工知能を開発する
ゼロからディープラーニングや機械学習で人工知能を開発するためには、プログラミング言語、統計、ニューラルネットワークの構築方法などを学び、開発を行うことが必要です。個人開発で人工知能を取り入れて盛り上がった代表的な事例に、将棋AIの「ボナンザ」があります。国立大学法人電気通信大学の保木邦仁特任助教が開発した将棋AIのボナンザは、機械学習のアプローチで構築した将棋のアルゴリズムで、2006年の世界コンピュータ将棋選手権に初出場で優勝するという快挙を成し遂げました。
その後、ボナンザに続く形でさまざまな個人開発の将棋AIが開発されました。現在に至るまで数多くの将棋AIが、エンジニアの手により開発されています。
参照:国立大学法人電気通信大学特任助教 『ボナンザ』開発者 保木邦仁氏|情報誌「戦略経営者」
1.2 AIアプリの代表的な用途
AIアプリは、AI技術の登場以前には実現の難しかったいくつかの分野において特に注目されています。以下で、AIアプリの代表的な用途について解説していきます。
1.2.1 文字起こし
インタビューの書き起こしの自動化など、音声を文字として認識させ活用するアプリにはAIが使われています。
たとえばAWS(Amazon Web Service)が提供する文字起こし用のサービス「Amazon Transcribe」では、ディープラーニングの手法で学習したAIが高い精度の音声・テキスト変換を行います。電話越しの聞き取りづらい音声であっても、高度に学習されたAIが正確に音声を文字として認識できるので、コールセンターにおける自動文字起こしツールとしても利用されています。
1.2.2 バックオフィスなどの業務サポート
AIをバックオフィスのサポートツールとして活用するケースもあります。たとえば国内電気通信事業者の大手であるSoftBankでは、新卒採用選考におけるエントリーシートの評価業務を業務向けAIサービスの「IBM Watson」を利用して効率化しています。過去のデータを学習したAIがエントリーシートの各項目について評価を提示することで、統一された評価軸での選考プロセスを実現できます。
参照:新卒採用選考におけるIBM Watsonの活用について|SoftBank
1.2.3 画像認識
画像認識はAIアプリの得意分野です。全国に眼鏡の販売店「JINS」をチェーン展開する株式会社ジンズでは、眼鏡の似合い度を評価するAI「JINS BRAIN」を開発しました。バーチャル上で眼鏡を試着しその似合い度を評価できるので、ユーザが自分にぴったりの眼鏡を時や場所を問わずすぐに探すことができます。
また画像認識はメーカー系企業の業務サポートとしても役立ちます。精密機器メーカーの武蔵精密工業ではベベルギヤと呼ばれる自動車部品の検品工程で、画像認識機能を有するAIを活用しています。従来は熟練の職人による目視での確認を要していた工程を画像認識AIでサポートすることで、作業時の負担軽減に成功しました。
参照:導入事例:武蔵精密工業株式会社 様|株式会社ABEJA
1.2.4 性格分析・感情分析
AIは言語分析を利用することで、感情の検出や性格の分析を行うこともできます。たとえばIBM Watsonの「Personality Insights」というサービスでは、学習済みのAIが入力したテキストから性格や感情の傾向を分析します。これを活用すれば、たとえば問い合わせフォームからの顧客のメール、チャットなどを感情分析で分類し、ネガティブ訴求のものを社内グループウェアで通知してスピーディーな対応をすることもできます。
2. 基本的なAI(人工知能)の作り方
実際に自分でAIを開発するとなると、どのような手順を踏めばいいのでしょうか。ここでは基本的なAI開発手法を紹介します。
2.1 データを集める
データの収集はAI開発工程の中できわめて重要なポイントです。AIが自身のアルゴリズムを強化していくには数多くの高品質なデータを必要とします。より品質の高いデータを数多く用意することが、より優れたAI開発には重要です。
2.2 モデルを設計し、機械学習を行う
機械学習を行うには、教師となる大量のデータのほかに、入力されたデータをどのように解釈・分析し、学習を行うかを定める「モデル」の設計が必要です。モデルにはさまざまな種類があり、開発したいAIの特性ごとに向いているモデルが異なります。適切なモデルを設計し、実際に入力データをもとに機械学習を行うことで、AIは人工知能としての分析能力を獲得します。
2.3 AIの精度を確認する
AI開発は学習を行なえばそれで終わりというものではありません。学習によって目標としたレベルの分析能力を得られたかどうかを確認するために、開発したAIの精度を確認する必要があります。テスト用に用意したデータをAIに分析させ、思うような出ない場合には学習用データの再検討や追加を行います。精度が出るまでこれを繰り返し、期待通りの結果を得られるようになればAIは完成です。
3. 【IBM Watson・無料枠編】API経由で学習済みAIを利用する方法
ここまでAIの基本的な作り方を紹介しましたが、実際にいざAIを利用したアプリを作るとなると、なかなか思うように開発が進まない人が大半だと思います。そんな人のために、以下ではIBM Watsonの無料枠プランで使える学習済みAI「Personality Insights」を利用したサンプルアプリを作る方法を紹介していきます。
サンプルアプリはTwitterアカウントと連携させることで、そのアカウントの人物の性格を分析できます。以下で解説する手順に沿って、学習済みAIを利用したAIアプリを作っていきましょう。
参照:IBM Watson Personality Insights
3.1 Node.jsのインストール
Personality Insightsのサンプルアプリを作るには、Node.jsの実行環境が必要です。そのため、まずは以下の方法でNode.jsをインストールしましょう。
1. Windowsユーザの場合:
以下URLからインストーラをダウンロードして実行
https://nodejs.org/ja/download/
2. Mac OSユーザの場合:
以下コマンドをターミナルから実行する
curl https://nodejs.org/dist/latest/node-${VERSION:-$(wget -qO- https://nodejs.org/dist/latest/ | sed -nE 's|.*>node-(.*)\.pkg.*|\1|p')}.pkg > $HOME/Downloads/node-latest.pkg && sudo installer -store -pkg $HOME/Downloads/node-latest.pkg -target /
3. Linux ( centos7, 8 ) ユーザの場合:
以下コマンドをコマンドラインから実行する
yum install nodejs -y
4. Linux ( Ubuntu ) ユーザの場合:
以下コマンドをコマンドラインから実行する
apt install -y nodejs
3.2 IBM Cloudのアカウントの取得
IBM CloudのLiteアカウントを登録します。Liteアカウントはクレジットカード不要の無料アカウントです。
1. 以下のURLからメールアドレスとパスワードを入力し、画面の指示に従って操作します。
https://ibm.biz/BdzceS
2. アカウント・プライバシーについての承諾事項が表示されるので、確認します。
3. 承諾事項に同意して、次の画面に進むとIBM Cloud のアカウント作成は完了です。自動でIBM Cloudのダッシュボードが表示されます。
3.3 Twitterアカウントのログイン情報の取得
次に、Personality Insightsのサンプルアプリに分析させるTwitterアカウントのログイン情報を取得します。
既に分析させたい自分のTwitterアカウントを持っている人は、ここでは準備の必要はありません。もしまだTwitterアカウントを持っていない人は、以下URLからTwitterのアカウントを新規作成してください。
https://twitter.com/i/flow/signup
アカウントを作成したら、分析対象となる「つぶやき」(Twitter上に投稿するテキストのこと)を複数投稿しましょう。分析のためには少なくとも100単語が必要です。より正確な分析を行うのであれば、さらに多くのつぶやきを投稿してください。
3.4 Personality Insightsのサービス作成
IBM Cloudのダッシュボードから、Personality Insightsのサービスを作成します。ダッシュボード上部の「カタログ」をクリックすると、IBM Cloud の製品一覧ページが開きます。
製品一覧ページの検索窓から「Personality Insights」を検索すると、Personality Insightsのカタログページへのリンクが表示されます。
表示されたリンクをクリックすると、Personality Insightsのカタログページが開きます。カタログページでは、利用したいリージョンや料金プランを選択して、Personality Insightsのサービスを作成できます。
デフォルトではリージョンが「ダラス」、料金プランが「ライト(無料プラン)」が設定されています。今回はこのままの設定で、Personality Insightsのサービスを作成するので、画面右下の「作成」ボタンを押下します。
これで、Personality Insightsの作成は完了です。
3.5 GitHub上のリソースのクローン
次に、自分のPCに Personality Insightsのサンプルアプリをクローンします。GitHub上の以下リポジトリをクローンしましょう。
https://github.com/watson-developer-cloud/personality-insights-nodejs.git
リポジトリのクローンは、Gitがインストールされている状態で以下コマンドを実行することで可能です。
git clone https://github.com/watson-developer-cloud/personality-insights-nodejs.git
コマンドライン上に「done」が表示されたら、サンプルアプリのクローンは完了です。
次の手順に移る前に、さきほど作成したPersonality Insightsのサービスとサンプルアプリを連携させるために、サンプルアプリ内の設定ファイルを書き換えましょう。
クローンしたサンプルアプリに以下ファイルがあります。
personality-insights-nodejs/.env.example
このファイルの名前を「.env.example」から「.env」に書き替えた上で、任意のテキストエディタからファイルを開きましょう。
PoweShell(Windows)やTerminal(Mac OS)上から操作する場合、以下コマンドでファイル名を変更できます。
mv personality-insights-nodejs/.env.example personality-insights-nodejs/.env
最初に開いた段階では、ファイルは以下の内容となっています。
この中で、以下2つの項目を書き換えましょう。
・PERSONALITY_INSIGHTS_URL
・PERSONALITY_INSIGHTS_IAM_APIKEY
まず、PERSONALITY_INSIGHTS_URLとPERSONALITY_INSIGHTS_IAM_APIKEYの設定値から編集しましょう。これらの項目に設定する値は、作成したPersonality Insightsサービスの管理ページから取得できます。
管理ページは、以下の手順で開くことができます。
1. IBM Cloudの「リソース・リスト」ページを以下URLから開く
https://cloud.ibm.com/resources
2. リソースリスト内にあるPersonality Insightsサービスへのリンクをクリックする
これでPersonality Insightsサービスの管理ページが開きました。管理ページの「資格情報」に表示されている「URL」「API鍵」が設定ファイルに入力すべき値です。
「URL」「API鍵」が表示されているフォームの右端にある四角いボタンを押すと、それぞれの値をコピーすることができます。「URL」の値を設定ファイルの「PERSONALITY_INSIGHTS_URL」に入力し、「API鍵」の値を「PERSONALITY_INSIGHTS_IAM_APIKEY」に入力しましょう。
ここまでの手順を実施したら、Personality Insightsのサンプルアプリを、IBM Cloud上のPersonality Insightsサービスに連携する準備は完了です。
3.6 Twitterアプリケーションの設定
サンプルアプリの設定ファイル「personality-insights-nodejs/.env」の項目「TWITTER_CONSUMER_KEY」と「TWITTER_CONSUMER_SECRET」を設定して、Twitterアカウントをサンプルアプリで分析できるようにするためには、まずTwitte Developerのアカウント作成が必要です。以下URLからTwitter Developerのアカウント作成を行いましょう。
https://developer.twitter.com/en/apps
まず、上記ページの画面右上「Create an app」をクリックします。
すると以下の確認画面がポップアップで表示されるので「Apply」をクリックしてください。
以降の画面でTwitter APIを利用するための申請手続きを行います。表示された画面で利用目的を選択して、「next」をクリックします。
画面の指示に従い、必要な項目を入力して申請手続きを行います。
すべての項目に回答すると、Twitter Developerアカウントの作成は完了です。
登録時に入力したメールアドレスに届いた本人確認リンクを開いた後、もう一度以下のURLにアクセスすると、今度は「Create app」から実際にTwitterアプリケーションの作成を行うことができます。さっそくCreate appをクリックします。
https://developer.twitter.com/en/apps
すると、最初にアプリの名前の入力を求められます。適当な名前を入力して次に進みましょう。
開いたページの中から、「Authentication settings」の「edit」ボタンをクリックします。
開いたページで認証に関する設定を行います。「Enable 3-legged OAuth」を ON にしたら、以下それぞれの項目を設定して、Saveボタンをクリックしましょう。
・Callback URLs:http://localhost:3000/auth/twitter/callback
・Website URL:https://test.com(仮のWebサイト名)
最後に、サンプルアプリの設定ファイルに入力する値をTwitter Developerの管理画面から取得しましょう。今いるページの上部「Keys and tokens」をクリックしてください。すると以下のような画面が開きます。
この画面内の「View Keys」をクリックすると、作成したTwitter アプリケーションの「API key」と「API key secret」を取得できます。ここで取得したそれぞれの値をサンプルアプリの設定ファイル「.env」の以下項目に設定しましょう。
・「API key」を「TWITTER_CONSUMER_KEY」に設定
・「API key secret」を「TWITTER_CONSUMER_SECRET」に設定
これでサンプルアプリとTwitter アプリケーションの連携は完了です。
3.7 ローカル実行
ここまでの手順で、サンプルアプリを実行するための準備が整いました。さっそく以下の操作でローカル環境にサンプルアプリを立ち上げてみましょう。
1. コマンドライン上で、サンプルアプリの最上位ディレクトリ(personality-insights-nodejs)に移動する
2. npm install
を実行
3. 上記コマンドが完了したら、npm start
を実行
これでサンプルアプリがローカル環境で起動したので、実際にブラウザで「http://localhost:3000」にアクセスしてみましょう。アクセスすると次のような画面が表示されます。
このページ内の「あなたのTwitterによる分析」をクリックすると、「私のTwitterによる性格推定」というボタンが出現するのでこれを実行してみます。
するとTwitterアカウントへの認証処理が起動します。認証に完了すると、Personality Insightsの学習済みAIが、あなたの過去のツイートから性格を分析して表示してくれます。
このようにしてIBM Watsonの学習済みAIをAPI経由で利用できます。
4. AI(人工知能)の作り方が学べるおすすめの書籍
本格的なAI開発の技術を習得するには、広範かつ専門性の高い知識を要します。ここでは本格的なAI開発をできるようになるためにおすすめの技術書を紹介します。
4.1 「ゼロから作るDeep Learning」シリーズ
ゼロから作るDeep Learning ❸-フレームワーク編
著者:斎藤 康毅
出版社:オライリージャパン
発売日:2020年4月20日
定価:4,400円
ページ数:552ページ
ITエンジニア向けの技術書籍の最大手企業、O'Reilly Japanが出版する「ゼロから作るDeep Learning」シリーズはAI開発を基礎から応用までしっかりと学びたい人におすすめの書籍です。
シリーズの最新作は2020年に発売された「ゼロから作るDeep Learning 3」です。DeZeroというディープラーニングのフレームワークをゼロから作っていくことでPyTorch、TensorFlow、Chainerなど現在のAI開発に役立つスキルを習得できます。
同シリーズの過去作は「1」が2016年、「2」が2018年に出版されています。いずれの書籍も「ゼロからAI開発のフレームワークをつくる」という性質上、発売からやや年数が経っている書籍ではありますが、十分にAI開発の技術習得に役立ちます。
各書籍はそれぞれ独立しているので、シリーズの最初から順に読み進める必要はありません。最新版の3から学習を始め、さらに理解を深めたい人は過去作にも手を出すのがおすすめです。
5. まとめ
AIを用いたアプリの開発には、ゼロからAIを開発して自作アプリに組込むケースと、GoogleやIBM Watsonなどが提供する学習済みAIをAPI経由で利用するケースのふたつがあります。
既存の学習済みAIで開発したいアプリの機能を実現できる場合には、学習済みAIを用いることで短期間・低コストのAIアプリ開発が可能です。一方で、自らAIを学習させていく場合には高品質な大量の教師データを用意したり、機械学習モデルの設計をしたりとさまざまな工程が必要です。
広範な知識をしっかりと学び、業務レベルのAI開発スキルを獲得したい場合には、O'Reilly Japanが出版する「ゼロから作るDeep Learning」シリーズの書籍を利用することもおすすめです。