機械学習はハードウェアやサービスの進歩により、以前に比べて格段に身近な技術として定着しつつあります。しかし、ビジネスで本格的な運用を検討している場合、やはり運用までにはある程度の時間と費用を必要とするため、一朝一夕では仕上がらないのも事実です。そんな機械学習における業務の大半を占めているとされているのが、データの前処理です。学習そのものは短期間で終えることができる一方、学習を始めるまでの負担が大きいということで、AI開発には時間を必要としています。今回は、なぜ機械学習のデータの前処理には時間がかかるのかについての理由や、どうすれば効率化を行えるのかのポイントを、順番にご紹介していきます。データの前処理とはデータの前処理は、AIによる機械学習をより効率よく実施するため、人間が収集したデータに対して手を加える作業のことを言います。料理でいう下ごしらえの段階で、不足している情報はないか、あるいは学習効率を低下させるような無駄がないかなどをチェックし、修正していきます。機械学習を実践する上では、そんな下ごしらえのプロセスに多くの時間と手間をかけることが一般的です。もちろん、前処理だけでAIが完成するわけではないものの、ここにどれだけ時間をかけられるかが、AIのパフォーマンスへ大きく影響を及ぼします。AI実装の基本的な流れAI実装の基本的な流れを簡単に書き出すと、以下のようなステップに分けることができます。課題の設定データの収集データの前処理手法選択モデル学習学習モデルのパフォーマンス評価どのような処理を行うのか、簡単に見ていきましょう。課題の設定課題設定の段階においては、AIを使ってどんな問題を解決したいのかを考えます。機械学習を通じて獲得したAIは、基本的に一つの目的にのみ活用するのが一般的です。まずは社内でどんな課題を抱えているのかを明らかにし、課題解決につながるAI開発を目指しましょう。データの収集目指すべきAIの姿を明らかにした後は、データの収集が必要です。問題解決につながるデータの収集を実践し、効率よく学習できるよう方向づけます。データは社内に蓄積しているものはもちろん、外部で拾ってきたものや、購入したものが役に立ちます。データの前処理データを用意した後は、前処理を行います。集めてきたデータのフォーマットを揃えたり、過不足をチェックして修正したりと、いくつものプロセスを必要とします。詳しい手続きについては後述します。手法選択データの前処理が終わった後は、最適な学習方法選びます。機械学習にはさまざまなアプローチがあり、得られる結果もどんなモデルを選ぶかで変わってきます。目的やデータの傾向から、最適な手法を選ぶことが大切です。場合によって期待できる結果が得られるまで、さまざまなモデルを試してみることも重要です。モデル学習学習方法を選んだ後は、いよいよ学習を進めていきます。ここでは選んだ手法や計算を実施するハードの性能にパフォーマンスが左右されるため、結果が出るのをひたすら待ちましょう。学習モデルのパフォーマンス評価最後に、学習を経て誕生したモデルの良し悪しを評価します。当初設定していた課題に対して、どれくらいの精度で、どれくらいのスピードで解答できるかをテストし、改善点を探します。ここでの評価が一定の水準を満たした時点で、初めて実践投入の道が切り開かれることとなります。データの前処理が必要な理由上記の手順をさらってみると、機械学習には多くの工程が含まれることがわかります。それでもデータの前処理に時間をかける必要があるのは、以下の二つの理由が背景にあるためです。AIの学習スピードを高めるため一つ目の理由は、AIの学習スピード向上です。機械学習の速度はどんなマシンを使って実行するかによって左右されますが、それ以前にデータの可読性にも注意を払う必要があります。コンピューターにとって読み込みやすいデータ形式をあらかじめ整えておくことで、同じ性能のマシンであっても学習スピードは飛躍的に改善します。学習速度が早くなればなるほど、効率よくAI学習を進められるため、実践投入に至るまでの期間も短くできます。AIの精度を高めるため二つ目は、AIの精度向上です。データが適切に処理されていない状態だと、余計な情報が含まれてしまったり、正しい判断を下すためのデータが不足したりするため、学習モデルに悪影響を及ぼします。できる限りフラットにデータを読み込ませられるよう前処理を実施することで、結果的には優れた学習モデルの登場を促してくれるのです。主な前処理の実施プロセス続いて、データの前処理をどのようなプロセスに則って実行するのかをご紹介します。データの前処理とは一言で言っても、必要に応じてさまざまな方法を使い分ける必要が出てきます。順に確認していきましょう。データクレンジングデータクレンジングは、その名の通りデータを磨き上げて綺麗にする工程です。ヒューマンエラーで発生しているデータ内のノイズを取り除いたり、欠損値を補ったりすることで、データの可読性を確保します。データを直接いじる作業であるため、正しくクレンジング作業を行わないと、事実とは異なるデータを読み込ませてしまったりという悪影響も出てきます。そのためデータクレンジングの実施には、ある程度データサイエンスに知見のある人物が対応しなければなりません。データ統合一つ一つのデータを綺麗にした後は、データの統合が必要です。バラバラになっているデータ群を一つのデータに統合し、一貫したデータとして形成します。データ収集の際には複数のソースから集められることとなりますが、データ統合を通じてまとまりのあるデータへと生まれ変わります。データ変換適切なデータを生成することができたら、必要に応じてデータ変換を行います。どんなモデルを構築した以下によって、最適なデータへと生まれ変わらせる工程となります。データを運用する範囲を指定したり、データの一般化を通じて、モデルの学習を効率よく進めます。主な前処理の手法続いて、データの前処理における具体的な手法をご紹介します。データを処理する方法にはいくつもの方法がありますが、以下で紹介するのはポピュラーな3つの方法です。カテゴリデータの変換カテゴリーデータの変換は前処理において不可欠となる工程です。これは、テキストデータを数値データへと変換することで、コンピュータが読み込みやすいよう促すというものです。例えばECサイトの商品データをテキストデータで扱う場合、そのままだと情報量は非常に大きくなってしまいます。ここで各データに対して数値を当てはめることで、コンピュータはテキストデータと比べて遥かに処理しやすくなるため、学習効率の向上につながります。特徴量の処理特徴量の処理とは、AIが物事を判断する際の目安となる特徴量を目的に応じて処理することです。不必要に特徴量が多すぎると、学習精度を低下させたりといった問題も生まれやすくなります。そのため、あらかじめ特徴量を人間側で調節することにより、バランスの取れたデータ活用を実現できます。欠損値への対処欠損値とは、データにおける不足した値のことを指しています。データクレンジングにおいて、欠損値が見つかった時には他のデータから不足している値を予測して補完し、円滑な学習を促します。どんな値をはめ込むべきなの、そもそも補完すべき値なのかについては、データサイエンスの知見が問われるシーンでもあります。前処理の具体的な実施プロセスここでは、それぞれの機械学習においては具体的にどのような前処理を行えばいいのか、シーン別に見ていきましょう。自然言語処理の場合まずは自然言語処理のケースです。自然言語をAIに学ばせる場合、テキストデータをうまく処理できるようデータを整える必要があります。例えば、テキストの誤字脱字を徹底的に洗い出し、訂正を行うことでノイズを除去するプロセスは欠かせないでしょう。また、「佐藤」「は」「僕」「の」「友達」など、文章を単語ごとに分割し、コンピュータが読み込みやすいよう噛み砕いてやることも必要です。文字の種類も半角・全角や大文字・小文字を整えたり、タスクの処理に必要のない頻出語句を排除したりなど、必要な作業は決して少なくありません。画像認識の場合続いては、画像認識のケースです。画像の場合、テキストよりもデータの形を整える作業に多くの時間を要します。画像のサイズを整えて統一したり、色の調整を行ったり、傾きを整えたりと、豊富な種類を揃えるにしてもある程度の規則性を設けなければいけません。それぞれの画像の特徴が鮮明となるよう、人間の手解きが必要となります。もちろん、大前提として画像のバリエーションを確保することも必要になるでしょう。データ前処理における問題点データの前処理を実施する上では、以下の点に注意して行う必要があります。どのような点が問題視される傾向にあるのか、あらかじめ確認しておきましょう。AIが読み込めるフォーマットは決まっている一つ目に、機械学習を実行する上での限界についてです。AIは汎用性が高い技術であるとはいえ、正しい学習を効率よく行うためには適切な形でデータを流し込んでやらなければなりません。AIが得意とするフォーマットは限定的であり、彼らにとっての可読性を確保するためには、目的やデータセットによっては骨の折れる作業が必要となります。AIはどんなデータであれば読み込めるのか、という理解を深めておかなければ、適切な前処理を行うことは難しいでしょう。手作業で行うため時間がかかる前処理はケースバイケースの処理が求められるので、現状ではどうしても手作業が必要になります。AIを実装できた時の業務効率化の効果は大きなものが期待できますが、それまでに必要な負担というのは、思いの外大きくなり、人も時間も大いに必要とする点は受け入れなければいけません。なぜデータの前処理には時間がかかるのかそもそも、なぜデータの前処理には時間がかかるのでしょうか。ここで、前処理に時間を要する3つの理由についてご紹介します。膨大なデータを処理する必要があるため一つ目の理由は、膨大なデータを処理しなければならない点です。どんなAIを開発するかにもよりますが、機械学習を効率よく進めるためには、膨大なデータセットを集めなければいけません。場合によっては数千から数万のデータを集める必要も出てくるので、これら全ての前処理を行うのには多大な時間を必要とします。データに統一性がないため二つ目の理由は、データに統一性がない点です。データの前処理は、データが持つ過不足をそれぞれのパターンに合わせて綺麗に仕上げる作業ですが、必ずしも一つのやり方でデータを綺麗にできるとは限りません。データが抱える問題に応じて、最適な手法を選ぶ必要があるため、処理には時間を必要とします。AI運用ノウハウの浸透がまだ進んでいないため三つ目に、運用ノウハウの浸透が遅れている点です。AIの必要性は急速に高まっている一方、まだまだ技術的な知見の共有は世間一般では進んでいないため、どうやって運用すれば良いのか、どのように構築すれば良いかがあまり知られていないのです。そのため、外部にデータの前処理を委託したいと考えても、満足のいく結果を得られるとは限らず、丁寧な会社選びをしなければかえって品質が低下してしまう可能性もあります。データ前処理のためにFastLabelが役立てることFastLabelでは、データの前処理を委託したいと考えている方に向けて、高品質なアノテーションサービスを提供しています。最後に、こちらのサービスの強みについてご紹介します。専門チームが迅速にデータ処理へ対応FastLabelでは、優れた機械学習開発を支援するためのデータ作成サービスを提供し、その際には専門チームによるデータ処理が行われる体制を採用しています。専門スタッフが案件ごとに仕様を確認し、アノテーションマニュアルを作成することで、確実な相互認識が生まれた状態でアノテーション作業を開始するため、高品質のデータ処理を実現します。2段階のレビューフローや独自の品質チェックアルゴリズムを導入することで、データ品質のギャップを最小限に抑え、常に最高のパフォーマンスを目指せる体制を整えました。Web上から簡単に進捗管理が可能データ処理の進捗状況は、Webプラットフォームから簡単に確認することができます。プロジェクト進捗やラベルの偏り、アノテーション結果などをリアルタイムで確認し、必要に応じてフィードバックを届けられるので、目的に応じたデータの提供を受けられるのが強みです。データの検品もプラットフォームから実施が可能なため、データの受け渡し作業や検品作業のコストを丸ごと削減することにもつながります。データの前処理を高品質に委託したいと検討されている際には、お気軽にFastLabelまでご相談ください。おわりに今回は、データの前処理の必要性や、なぜ時間をかけて行う必要があるのかについて、ご紹介しました。前処理には多くの人手と時間を必要とする一方、まだまだ十分な人材確保は難しいため、前処理の時間短縮のための方法は限られています。前処理の結果によって、機械学習のパフォーマンスにも大いに影響します。データに応じた最適な処理を実行し、質の高いデータを事前に確保しましょう。