推進ノウハウ
AIはデータが9割!?
データ準備がAIプロジェクト成功のカギを握る
#AI導入
#データ準備
データ準備してますか?
「AI導入プロジェクトにおいて重要な要素はなんでしょう?」と質問すると、どんな回答が返ってくるでしょう。
「優秀なエンジニア」や「予算」などの回答がある中で、意外と出てこないのが「データ」です。そのため、AI開発前には時間と手間を掛けてでもデータを準備する必要がありますが、この作業を重要視する人は少ないでしょう。
しかし、AIを開発するうえでデータは必ず必要になります。人間が準備したデータを元にAIが学習することで、正解を導き出すためです。AIの精度は学習したデータに依存するため、準備したデータの量や品質が重要であるとわかります。
AIが学習する仕組み
そしてAIに学習させるデータの準備として、これらの作業が想定されます。
- 社内で管理しているデータを把握する
- AIの学習用に利用できるデータを選別する
- インターネット経由で利用できるデータの活用を検討する
- 学習に必要なデータを新たに取得する
など
そのうえで、AIが学習するデータにおいて手間もかかります。
例えば、AIが建物のひび割れから危険度を判断する場合、画像データに対して下記の準備が必要になります。
- 社内で建物のひび割れを撮影した画像がどの程度あるのかを調べる
- 画像の解像度や大きさなどAIが学習できる画像を選別する
- ひび割れの大きさや長さから建物に影響する危険度を人間が判定する
- 天候とひび割れの関連性を調べる場合は、気象に関するデータを入手する
- データが足りなければ、現場作業員にひび割れの写真を撮影してもらう
など
さらに、紙の資料などそのままではAIが認識できないアナログデータもあります。
例として、設備点検における報告書から故障を予測する場合、紙のレポートをスキャナやOCRで電子化する作業から始めなければなりません。プロジェクトが始まってからデータ準備の負担が判明すると、作業人月や予算にかかわり作業全体に影響を及ぼすため注意が必要です。
ではAI開発において、どのように大量かつAIが学習しやすいデータに集めればよいでしょうか。
AI開発プロジェクトを料理で考える
データを大量に集めれば、AIの精度は上がるのでしょうか。AIはそこまで単純ではありません。
その理由を説明するため、AI開発プロジェクトを料理に例えて考えてみます。
まず、データは料理で言えば材料です。どんな料理でも、材料がなければ作れません。
しかし「とりあえず大量に集めただけのデータ」は、畑から収穫した野菜や釣ったばかりの魚と同じです。当然そのままでは料理に使えないので、野菜は汚れを落として皮を剥き、魚は三枚におろすなどの準備が必要です。さらに、隠し包丁(味が染みやすくなるように切込みを入れるなど)で手間をかければ、料理はより美味しくなります。
AIに学習させるデータにおいても、こうした下準備が必要です。
また、同じ材料や似た材料ばかりでも、料理の幅は広がりません。同じくAIで偏ったデータで学習させると、特定の条件しか判断できないなど性能に問題が生じます。
料理を作るうえで、材料の下ごしらえは必要不可欠であり、相応の手間もかかります。同じくAI開発においても、データを学習できる状態にする「前処理」という準備が必要です。この点は、準備したデータが様々な問題を抱えているためです。
そこで、下記のような作業が必要になります。
データの異常や欠損
問題のあるデータやデータの漏れを確認します。
間違ったデータは修正し、未入力の場合は仮のデータを登録します。
データの抽出や結合
特定の条件に合致する人を抽出します。
目的に応じて別のデータと結合させて、さらに条件を絞り込む場合もあります。
画像データの拡張
既存の画像データに回転や拡大などの加工を施して、学習するデータ量を増やします。
しかし、こうした準備は簡単に誰でもできるわけではなく、技術を習得するまでに手間や時間もかかるでしょう。
それでも材料の下準備を怠ると、料理は失敗します。AI開発においても、学習するデータの準備が重要だとご理解いただけましたか。
また、材料の管理という観点では、食材によって保存法(常温・冷蔵・冷凍・冷暗所など)に加えて、保存期限も異なります。AI導入においても、データの保管方法は考慮が必要です。
必要なデータをすぐ取得できる仕組みを作り、個人情報や機密情報にアクセスできる人を制限しながら、画像や動画や音声などは容量が大きくなるので注意が必要です。
データの問題をどうやって解決すべきか?
そのまま料理に使える状態まで加工した材料を大量に準備するのは、手間がかかります。そこで飲食チェーン店では、工場で材料のカットや下処理を済ませて店舗に配送して、手を加えれば料理が完成するように工夫しています。
このような方法をAI開発でも導入することで、効率化を実現できます。学習に必要なデータを作成して保管する環境作りなどにおいて、いくつかの方法が挙げられます。
様々な形式のデータを大量に保管したい
データレイクやDWH(データウェアハウス)と呼ばれるデータを保管する仕組みがあります。
一般的にデータレイクは様々なデータを大量に保管することが中心となります。DWHは特定用途ごとに必要なデータを保管して、必要な時に素早く取り出せることが強みと言えます。
データの加工や抽出が大変
データを取り出したり加工するには、様々な方法があります。しかしプログラミングでデータの加工を行うには、利用できる人が限られます。さらに特定の人物に作業負荷が集中するため、依頼からデータが完成するまでに時間が掛かる問題もあります。
そこで、データの抽出や加工を簡易的に使えるツールとして、ETL(ELT)やデータプレパレーションがあります。これらはプログラミングなどの難しい操作が不要で、データの取得と加工と出力を効率よく行えるツールとして注目されています。
大容量のデータベースを1から設置するのは手間がかかる
新たに社内でデータベースを設置するには、専用設備の設置やデータベースソフトなど、費用も手間もかかります。
そこで、クラウドサービスとして提供されているデータベースを利用すると簡単に構築できます。
用途に応じたデータベースが準備されており、導入後の運用もクラウド業者が行ってくれます。費用はデータ量など利用した分だけ発生する従量課金制となります。1から設置するよりも手間と費用面から手軽と言えます。
データの種類や量が増えるたびに、準備や加工の手間も増えていきます。PoCのように試作段階で小規模な開発環境では問題なくとも、本格的な開発や実際に運用段階になれば新たな問題が発生します。データにまつわる課題と解決法について、AI開発プロジェクトを始める前にきちんと理解しておきましょう。
社内データに対して価値を判断できない
社内にデータがあるものの「AIの学習に適した品質なのか?」「どんなデータを準備するべきかわからない」という懸念があります。
自社で判断するのが難しい場合は、外部の会社に相談してみましょう。最初は作業を委託しつつ、徐々に自社内に知見を蓄積することで、自社で作業できる割合を増やすことができます。
まとめ:データの次はツールにこだわる
AI開発において、"実は"重要なのがデータです。そして、データを準備してAIが学習できる状態にするまでに手間もかかります。AI開発を行う前にこれらのデータ準備にかかる手間を把握しておき、必要なスケジュールや予算を想定しておくことが成功の秘訣と言えるでしょう。
美味しい料理を作るために、料理人は材料にこだわります。同じようにAIエンジニアは、高性能なAIを開発するために、データにこだわります。
AI開発における、データの質と量、管理方法に前処理などの準備が大きく影響することがご理解いただけたと思います。AI開発ではどうしても分析手法やプログラミングなどに注目しがちですが、AIに学習させるデータにもこだわってください。
とはいえ、いくら良いデータを大量に用意できても、データだけAIは動きません。データを準備できたら、AI開発ツールもこだわって選んでみてください。