スペシャルトーク@プログラミング+ 第16回
2017年9月20日(水)『1日で学ぶ “人工知能” で失敗しないプロジェクト発注の仕方』初開催します
「安易な企業AIブームに踊らされるな!」あなたの会社が本当にAIを活用するためには?
2017年09月13日 13時00分更新
2017年9月20日(水)に、角川アスキー総合研究所は『1日で学ぶ “人工知能” で失敗しないプロジェクト発注の仕方』と題したビジネスセミナーを初開催する。今回、セミナーで講師を務める株式会社ウサギィの町裕太氏と五木田和也氏へ、遠藤諭(角川アスキー総合研究所 取締役主席研究員)が「企業が人工知能(AI)やディープラーニングを導入するって、つまりどういうこと?」というぶっちゃけ取材を敢行した。本記事ではそのインタビューの様子をお届けする。
「AI/ディープラーニングを自社でも活用せよと予算がついたが、果たしてどんなメリットがあるのか?」や「自社事業が抱えている課題に対して、AI/ディープラーニングという手法がその解決につながるのか?」といった点にお悩みの方に、ぜひ本インタビューをお読みいただきたい。
AI/ディープラーニングにこだわるな!と断言する理由とは
角川アスキー総合研究所・遠藤(以下、遠藤) 人工知能(AI)やディープラーニングといった技術が様々な業界において企業(事業)導入される流れが進む現状ですが、そういった方面へ知識があまりないビジネスマンの方もまだまだ多いと思うんですね。そこで長年こうした分野で受託開発や案件受注をされてきているウサギィさんに、ぜひ今日は「人工知能時代においてビジネスを考えるうえで必要な知識や理解とは?」というテーマでお話をうかがいたいのですが。そもそも今で言うところの “人工知能” 的な開発案件というのは、いつ頃からお仕事の話が増えだしたのでしょうか?
ウサギィ町氏(以下、町) 弊社は11年前に創業したのですが、創業後すぐに “遺伝的アルゴリズム” という分野へ興味を持ち、いろいろなAIを活用したビジネスをしていきたいというのが、AI分野に進出を始めたきっかけでした。当初はWebに強いシステム開発の事業を多く手掛けていまして、今でもそうしたシステム開発の案件はおこなっていますが、いわゆる “人工知能(AI)” や “ディープラーニング” というものの活用を伴った案件が増えだしたのは、2013~14年頃からだったと思います。
遠藤 現在はAIブームと言えるわけですが、どれくらいの開発案件を手掛けられてるんですか?
ウサギィ五木田氏(以下、五木田) 年によって変動はありますが、これまで合計すると100件くらいはAI/ディープラーニング系開発案件の実績があります。
遠藤 とすると、現状はAI/ディープラーニングなどの技術を活用する案件がお仕事のメインなんですか?
町 そこなんですが、弊社は手法として「ディープラーニングにはこだわらない」会社なんですよ。
遠藤 え、逆にこだわらないんですか?やや意外です。
町 それはなぜかと言いますと、ディープラーニングには向き不向きがあるんですね。データがたくさんあったり、解析するためのマシンがたくさんあったり、計算にたくさん時間を用いたりできる場合には、ディープラーニングという手法は精度を高めることができます。ですが「今から学習データを集める」であったり、「リアルタイムでデータを分析する」というような開発案件の場合は、ディープラーニングよりは精度が劣るけれども、解析するためのデータ量が少なくてもよい手法だったり、マシンリソースが掛からなくて済む手法だったりをご提案することが多いです。
五木田 顧客が「ディープラーニングを使うことに予算が付いたから頼みたい」という要望をしたとしても、ディープラーニングが必要ではなかったり、他の手法のほうがより適しているというときには、きちんとそのことをお伝えして受注するというのが弊社の特徴と言えるかもしれません。
遠藤 すると「ディープラーニングがいちばん優れたデータ解析技術だ」などとも考えがちなんだけど、必ずしもそうではないケースというのが、実はたくさんあるってことなんですかね。
町 弊社が以前手掛けた事例だと、ある動作に関してその人が熟練者かどうかを、身体センサーを活用して見分けるというシステム開発をおこなったことがあります。当初はたくさんの人に身体センサーを付けてもらって実験データを収集し、ディープラーニングを用いて学習するというのが先方の希望でしたが、ディープラーニングに十分な実験データを収集するには時間やコストが掛かりすぎるといった点などを検討し、数十件のデータでも熟練者かどうかを区別できる仕組みを最終的には作成しました。
五木田 あとは「システムをハードへ組み込みたい」といった場合、ディープラーニングのように消費電力が大量に必要な手法を導入すると、それに対応できるだけの電源を手配できなかったり、ハードそのものが大きくなりすぎたりといったことになります。こういうケースだと、ディープラーニング以外の手法を選ぶべきという選択にどうしてもなりますね。
高い精度の結果を返せるディープラーニングだが、その “精度” とは何を指した言葉なのか?
遠藤 逆に「こういう目的のためにはAI/ディープラーニング技術が最適な手法だ」という事例はどういうものになるんでしょうか?
町 車の自動運転や医療系の分野など、そのシステムの動作が人命に関わるようなクリティカルなケースでは、非常に高い精度が求められます。そのような場合、ディープラーニング以外の手法では求める精度には届かない場合があります。
五木田 ただここも難しい点があって、ディープラーニングを活用したシステムだと “ブラックボックス” な部分が多く、人命に関わるようなシステムではどうしても導入を見送らざるをえない、という判断をされるメーカーさんもいらっしゃいます。
町 たとえば自動運転システムで、ある状況において「AIがなぜブレーキを踏むという判断をしたのか」について、そこがブラックボックスになっていては責任が取れないという結論になってしまうということですね。
五木田 この場合は、システムがその判断を「どこでどう下したのか」について人間が検証可能である、ということが重要です。古典的にはルールベース(注:ある問題の解を出すための情報処理や判断手順を論理ルールで記述しておき、そのルールを適用して問題解決を行う手法・システムのこと)、機械学習としてはたとえば決定木ベース(注:YES/NOで応えられるような多数のルールを自動的に獲得する手法。応用してランダムフォレストなどがよく用いられる)の手法を用いるほうが適切だと言えます。
遠藤 手法としてAIやディープラーニングを導入すれば優れた解析結果ができたとしても、実装の部分でそれが適切ではないという場合もあるということですね。
町 ですので、AI系の開発案件の場合、ベンダー側が発注されるお客さんへあらかじめ説明しておかなければいけないポイントというのがたくさんあるんです。営業職やマーケティング職の方は、案件受注のためにやや過剰な表現を用いられたりされることもありますが、実際のところAIというのは万能な手段ではまだありません。その点をベンダー側がしっかりと説明し、発注される側も「AIができる範囲はこれくらいなんだ」という認識を相互に持ったうえで契約に進む必要があると言えます。
遠藤 その認識が共有できていないと、いざ開発が完成しても使い物にならなかったというケースにも発展しかねないと。
町 そうですね。よく「構築したシステムが結果として返す精度を保証してほしい」という要望を発注される側から受けるのですが、精度の測り方やその定義、基準というのも、きちんと話し合っておくべき点だと言えます。
五木田 “精度” って実はあいまいな言葉で、発注側が「●●パーセントの精度がほしい」と要望されても、じゃあそのパーセンテージで何を基準にした数値を指しているのか、ふわっとしたまま話が進んでしまうケースも多いんです。結果として目指す精度の定義をはっきりさせてから開発を進めないと、トラブルなどにも繋がりかねません。
町 開発するシステムの精度目標を、仮に95パーセントと設定したとして、その精度目標をAIの力によってのみで達成するのか、それともAIによる識別のあとに人間の目視チェックを入れて達成するのかでも、話は違ってきますよね。つまり、AIを何のために活用するのかを開発側と発注側の双方で事前に確認しておくのが重要だということですね。
五木田 たとえば、「不正行為を行っているユーザーを検出し、そのユーザーのアカウントを凍結する」といったシステムの場合、AIによる自動的な判断で誤った対応をしてしまうと、非常にリスクが高いわけです。まずは膨大なユーザーのなかからAIによって不正なユーザー候補の検出をおこない、最後は管理者が人間の目で判断することで、AIの精度を人間が補い、リスクを回避するという対応が賢明だと言えます。
町 いま五木田が話した事例だと、不正行為の可能性があるユーザーを絞り込むというワークフローに関して、人間の手間が省かれているところにAI導入の意味が生まれています。何のためにAIを用いるのか、それで人手がどの程度省かれるのか、開発の前にその目的と効果を明確にしておくことは、他のシステム開発案件よりも注意しておくべきだということですね。
AI/ディープラーニング系開発は「水脈を当てる掘削」に似ている?
町 また、AI/ディープラーニングを用いる開発について、そのシステムの精度を高めるためには、どれくらい目的やデータへ “特化” させるのか、という点も挙げられると思います。
遠藤 どの程度の汎用性をシステムに持たせるのか、ということでしょうか?
町 そうですね。たとえば文字識別のシステムを開発するとして、識別する対象となるデータについて「データは日本語だけ」なのか、「データには日本語と英語が含まれている」のか、あるいは「データにはどの言語が含まれているか分からない」のか、それらについてどこまで対象とするかで精度も自ずと変わってくるわけです。こういう「用途を絞れば絞るほど得られる精度が高くなる」という点は、発注される側にはあまり意識しにくいところかもしれません。普通「なんにでも対応できるシステムのほうがいいじゃん」って考えがちですから。
五木田 そのシステムを万能化させるのか、それとも特化して精度を高めるのか。この点において “汎用性と得られる精度のトレードオフ” は必ず発生することなので、システム開発の発注をされる方には前もって理解しておいていただきたい点ですね。
遠藤 そんな都合のいいシステムはないってことですよね。あと、データの話で言うと、解析する対象データがすでにあるのか/これから集めるのか、データ量としてディープラーニングという手法に見合うだけのものがあるのかどうかも、けっこうあやふやなままで発注依頼があったりするものですか?
町 ディープラーニング技術を活用するにはデータが少なすぎるという依頼はもちろんありますよ。あとは、単に十分なデータ量があってもそれだけではダメで、発注される側の企業がお持ちのデータを学習で使えるように変換処理しなければいけないということも、発注時にあまり意識されていないことは多く見受けられます。
遠藤 変換処理にもコストが掛かると知らず、「とりあえずデータあるからなんかやってよ」的な依頼も多いってことですよね。
町 AI/ディープラーニング/機械学習などの手法は、データ量が多くなればなるほど学習時間も長くなるわけです。変換処理や試行錯誤の手間も考えると、一般的なIT系のシステム開発よりも、納期までに時間が要することが多い点も、あらかじめ認識しておかれたほうがよいポイントだと言えるかもしれません。「データがあるからすぐできるでしょ」という話ではない、とでも言いますか……。
五木田 「お金を注ぎ込んでもいいから案件を早く進められないか」というご相談を受けても、現状なかなか限界がありますし。
遠藤 するとAI/ディープラーニング系の開発って、あまりイメージが湧きにくい方にとっては、どういう業態や仕事に例えて考えると分かりやすくなりますかね?
町 例えて言うなら……そうだな、「水脈を当てる」とかに近いかもしれませんね。
遠藤 あー!なんか分かる気がします。
町 水脈を当てるために、場所も考えずにボウリングの機械を持ってきて、いきなり穴を掘り出すなんて誰もしないわけですよね。ある程度の地点数について地質を調べて、そのなかでいちばん可能性がありそうな場所を見つけたあと、はじめて深く掘る作業に移るわけです。実際の掘削までには試行錯誤が必要だし、いざ掘り始めてから時間を要するという流れは、学習系のシステム開発についての例えになっているかもしれません。
五木田 それに、可能性があると思った箇所を「30メートル掘ったら水が出るはず」と掘り進めて、そこで水が出なかった時に他へ移るのか、それともまだそこを掘り続けるのかという問題に似た悩ましい事態に出くわすことも多いですね。思った成果が出なかった際に他の解析手法へ乗り換えるというのもコストが掛かるわけで、その判断を発注側へあおぐというわけにもいかないですし……。
遠藤 いざ解析や学習を始めてみて、思った成果が得られなかったというリスクは抱えているわけですよね。それを防ぐためにはどういう対処をされてるんですか?
町 発注される側には、なんとなく同じような “AI的なもの” を扱っている会社に見えたとしても、たとえばチャットボット開発をしているベンダーと、POSデータ解析を主としているベンダーでは、データ処理における “勘所” とも言うべき技術やノウハウが大きく異なります。つまり、開発に関してより広範なジャンルにおける技術的知見を持っていないと、依頼や相談を受けた案件内容について、どの程度の時間が掛かりそうか、どういうところで引っかかりそうかという判断がしにくいわけです。この点について弊社では、受注した開発案件の分野とは別に、それ以外の分野も含めた技術研究にかなりの時間とコストを掛けています。日頃から広範囲の研究を行っておくことで、新たに相談を受けた会社さんの依頼内容について、一見するとその会社さん固有の問題に思えても、問題を分解し、適切な手法を組み合わせて対応を考えることができるので、見積を立てることができるんです。
五木田 AI/ディープラーニングを活用したいという受けるご相談は、どこにも似た開発事例がないような案件も多いんですよ。それらに限られた予算のなかで、リスクを抑えて成果を出していくには、日頃からかなり広範囲に対する研究をやっていないと対応できないですね。
遠藤 一般的なシステム開発、人月を掛ければ完成するという答えが見えているようなものとは、AIやディープラーニングを用いる開発案件は質的に大きく異なるということを、発注する側もしっかり理解しておかなければいけないってことは、ここでやっぱりきちんと言っておかなきゃいけませんね。
“学習済みモデル” に対する著作権やセキュリティー面の正しい理解は極めて重要
遠藤 ここまでお話をうかがった感じだと、AI/ディープラーニングの導入には一筋縄ではいかない難しさがあると、そういうことですかね。難しいからこそ、発注する側の方には今回開催するセミナーに来て、しっかり学んでくださいねって言いたいんだけど……(笑)。
町 様々な開発案件自体の不確定要素ももちろんですが、AI/ディープラーニングまわりの技術自体、日々どんどんアップデートされているんです。つまり、技術がまったく枯れていないんですよね。情報学そのものが、「まだまだ発展の余地がある」とも言えるし、いっぽうで「枯れた技術じゃないから不確定要素をはらんでいる」とも言いかえられます。
五木田 また先ほど少しお話に出ましたが、作成された “学習済みモデル” の権利を持っているのが開発側なのか発注側なのかという権利的な議論も、こうした案件特有の難しさをもった点のひとつですね。
遠藤 “学習済みモデル” っていうのは、大量にデータを読み込ませて学習したファイルのことですよね。出版の世界で言えば入稿データとも呼ぶべきものでしょうか。
五木田 そうですね、遠藤さんがいま例えられた出版業界の入稿データで考えると、そのデータを制作を請け負った側が他の出版物の制作案件に使い回していたら大問題なわけですよね。ですが、ディープラーニングや機械学習だと、発注者側のデータと開発側の技術やノウハウの双方が、モデルのなかに含まれていることが多く、権利関係が難しいんですよね。
町 ですから、契約を結ぶときに、学習済みモデルの権利をどのように扱うのかについても慎重な議論が必要なんです。発注する側が案件終了時にモデルをもらい受けることには、メリット・デメリットがありますから。
遠藤 メリット・デメリットと言うと、どういうことなんですか?
町 たとえば、学習済みモデルを発注側がもらい受けたとして、それらを以後メンテナンスしていく必要がある場合、メンテナンスができる人員を自社で雇おうとするとすごく大変なんですよね。だったら開発側にモデルのメンテナンスも任せたほうがいいのかな、というふうに考えられます。
五木田 最近だと、学習済みモデルに含まれているデータをハッキングするというな事例も出始めているんです。“Adversarial Examples” と検索していただくといろいろ事例が出てくるんですが、たとえば画像認識システムだと、人間の顔を識別するためのモデルに細工が加えられることで、本来できていたはずの顔識別ができなくなったりするんですね。これが監視カメラに用いられてるシステムの場合、どう考えても不審者が映っているのにそれを識別できない、モデルがあざむかれてしまう、という事態に繋がりかねないわけです。
町 音声認識の分野でも、人間には聴こえない高周波を用いてハッキングするというのが最近話題になっていましたね。人の耳では識別できない音域で音声認識の機能を動かし、勝手にメールを送信したり、勝手に情報へアクセスして取り出したりということがすでに事例としては出始めています。
遠藤 学習済みモデルという今までにはなかったタイプの成果物とその扱いについて、発注側も正しい理解をしておく必要があるということですね。もう少し踏み込んでこのあたりについてお話を聞くならば、生成されたモデルの著作権についてはどうなんでしょう?
町 最近になって整備が進みつつある話ではありますが……。
五木田 まだまだ流動的ではありますね。今まさに国が決めている最中なので。
遠藤 いわゆる『著作権法第47条の7』ですかね(情報解析のための複製等:コンピュータ等を用いて情報解析を行うことを目的とする場合には、必要と認められる限度において記録媒体に著作物を複製・翻案することができる。ただし、情報解析用に広く提供されているデータベースの著作物については、この制限規定は適用されない)。
五木田 そうです、そうです。いま遠藤さんがおっしゃった条文は、割とディープラーニングや機械学習に対して “優しい” 内容なんですが。
町 データを収集して構築された学習済みモデルから生成されたデータに、学習データの一部が含まれてしまう場合があるんですよ。たとえば音楽だったら、学習データで読み込ませた既存曲のメロディの一部が含まれてしまっている、というような例です。こういうときに成果として得られた内容の権利関係をどうするか、というのはまだ議論の余地があるところですね。
五木田 絵やイラストの場合で言うと、既存作品の特徴的な構図やキャラクターが、モデルから生成されたデータにそのまま出てきてしまうというケースもなくはないんですね。これらの場合で権利問題が発生した場合は、人間の目で判断しつつ、個別に裁判などで争いましょうという結論に現状はなっていたかと思いますが……。
五木田 あと今年から出始めている研究として、学習済みモデルから学習データを取り出そうというものがあるんですよ。本来であれば、学習データは学習時に失われて、他のデータと混ざるんですが、元の学習データをうまく取り出せるんじゃないかという試みが研究ではなされているんですよ。そうなってくると、従来守られるはずだったデータが守られなくなってくるので、取り扱いがセンシティブなデータを学習データとして用いるべきなのか、という議論も生じてきてしまいます。
AI/ディープラーニング導入における検討注意点まとめ
遠藤 なるほど。学習済みモデルについては、まだまだ著作権的な議論も進行形の状態であり、さらにモデルそのものや、含まれている学習データの保守という点でもセキュリティーリスクだったり、まだ予想されていない脆弱性があったりということですね。
町 今まで出た話題を踏まえて、AI/ディープラーニング技術を導入した開発を検討されている企業の方や、具体的に発注先の開発ベンダーを探されている方、これから開発の契約を結ぼうとされている方に “気をつけていただきたいポイント” や “AI/ディープラーニングを用いた開発で避けなければならない事態” をまとめると、次のような感じになるでしょうか。
AI/ディープラーニング導入そのものについて留意すべき点
- 何のためにAIやディープラーニングを用いたいのか(どのような手間を省きたいのか)
- その目的のために、AI/ディープラーニングが最適な手法なのか
- 学習のために十分な量のデータがあるのか、なければどう集めるのか
- 十分な学習時間を確保できるだけの余裕が求める納期にあるか
- “枯れていない技術” であるがゆえの不確定要素やブラックボックス化していることを許容できるプロジェクト内容か
AI/ディープラーニング導入を決めたあとに注意したい点
- 開発を依頼するベンダーが、プロジェクトの開発内容における “勘所” を持っているかの確認(チャットボット開発会社にPOSデータ解析を頼んだりしていないか)
- 開発したシステムの “精度” についての理解や定義についての、開発側・発注側の意思共有(何をもってその精度を計るのか)
- プロジェクトのワークフローにおけるどの点をAI/ディープラーニングに担わせるのかの位置づけ(人間の目によるデータ確認をするのかどうかなど)
- 学習済みモデルに対する正しい理解、生成されたモデルを誰がメンテナンスするのかの議論
- 学習データ、学習済みモデル、生成されたデータなど、それぞれに対する著作権の考え方が、まだ議論の最中にあるという前提理解
- 学習済みモデル自体がハッキングされるなどのセキュリティーリスクの把握とその対応に対する準備
AI/ディープラーニング導入で避けなければならない実態
- 発注側が望んだものが開発されなかった、あるいはベンダー側が完成させることができなかった
- その案件を得意としている、あるいは研究などを通じて適切な手法を提案できる開発ベンダーを選定することが必要
- ベンダー選定には、分割発注やPoC(コンセプト検証)といった方法を用いるのが効果的
- 開発は完成したものの成果物が全く使い物にならなかった
- 精度を高めるためには用途を特定する必要があり、精度と汎用性はトレードオフの関係であることをあらかじめ理解しておくことが重要
- システムだけに頼らず人間の手間も加えることで、精度を補うというワークフローでの解決も検討するべきポイント
五木田 AI/ディープラーニングならではの注意点やリスクはありますが、それらにはきちんとした対策方法があります。そして、きちんとした目的とそれに適った手法やデータが組み合わされば、大きな成果や業務改善を生むことができます。セミナーではその方法についても詳しくお話する内容を準備しております。もちろん、ここではお話できないような内容もお知らせする予定です。
町 「AIを導入したい」と一言で言っても、実際はその会社さん独特のハードやデータといった、社内固有の事情があるわけですよね。それを分析しようと思うと、開発ベンダー側にいろんな方向に対する知見がないと、見積すらできないんです。弊社は日頃から広範な研究をやっていますし、セミナー内で受講された方それぞれの社内事情などを踏まえて、ご相談などにもお応えさせていただきます。
遠藤 AI/ディープラーニングを実際に導入するまでにチェックすべきポイントを、ひとつひとつプロセスごとに知っていただけるセミナーですし、AI系システム開発に少しでも携わる可能性ある方には、ぜひ参加していただきたいですね。今日は長時間ありがとうございました。
【角川アスキー総合研究所】セミナーご案内
『1日で学ぶ “人工知能” で失敗しないプロジェクト発注の仕方』
- 日時:2017年9月20日(水)10:00 - 17:30
- 会場:角川第3本社ビル(東京都千代田区富士見1-8-19)
- 講師:
町裕太 氏 株式会社ウサギィ 代表取締役
五木田和也 氏 株式会社ウサギィ 取締役 - 総合司会:
遠藤 諭 株式会社角川アスキー総合研究所 取締役主席研究員 - 参加費:6万円(税込)※昼食代を含む。
- 募集予定人数:40名
- 詳細情報・ご応募:http://lab-kadokawa29.peatix.com/
この連載の記事
-
第30回
トピックス
『第九回技術書同人誌博覧会』が11月25日に開催 -
第29回
トピックス
「ChatGPTはどう変わろうとしているのか」を学ぶ講座、11月24日に開催 -
第28回
プログラミング+
U-22で経済産業大臣賞など4冠の中学生上原直人(15歳)さんに聞いた -
第27回
プログラミング+
教育研究家とケンカして作った子どもプログラマー向けキーボードとは? -
第26回
プログラミング+
まだ間に合う! SDLアプリコンテスト応募へ、サンプルコードを一挙公開!! -
第25回
プログラミング+
アプリ開発者のみなさま! SLDアプリコンテスト〆切迫る -
第24回
プログラミング+
クルマは巨大なIoTだ! SDLハッカソンレポート -
第23回
プログラミング+
PyCon JP 2018レポート~参加者1000名超!過去最大の規模で開催~ -
第22回
プログラミング+
『みんパイ』著者が、Pythonはなぜ流行ったのかを考える -
第21回
プログラミング+
イノベーションが強く求められている時代だからこそ「非エンジニアがプログラミングを学ぶべき」な理由 -
第20回
プログラミング+
プログラミング言語「Kotlin」でAndroidアプリ開発を始めよう! - この連載の一覧へ