2014年、機械学習の背後に隠れた高い技術的負債を調査したGoogleの論文が話題になりました。今日、この論文は再び、有名なテクノロジーコミュニティ HackerNews の見出しを飾りました。 4年が経過して、人工知能は新たな春を迎えたようですが、機械学習の研究者を悩ませる問題は依然として似ています。 この記事の著者は、本番環境で機械学習システムを使用する開発者や保守担当者に、この論文が実用的な提案を提供できることを願っています。著者らは、機械学習システムをゼロから構築するのは比較的簡単だが、その後の改善は予想外に難しい場合があると警告している。この記事を読むと、読者は、そこに書かれている経験が、著者が Google 在職中に苦労して蓄積してきたものから来ていることをはっきりと感じるでしょう。 AI Frontline では、この古典的な記事をレビューします。記事内の経験の一部は、「機械学習に関連しているからといって、優れたソフトウェア エンジニアリングのプラクティスを完全に放棄できるわけではない」と強調しており、コンテンツの一部は機械学習に特有の一般的な落とし穴に属しています。 「X+AI」ビジネスの構築を目指すすべてのスタートアップが直面する潜在的な課題を考えると、この記事のアドバイスは検討する価値があります。 この記事で言及されている機械学習システムによってもたらされる技術的負債の主なカテゴリには、情報の隠蔽と変更の封じ込めによって引き起こされる課題、グルーコードと構成、そして常に変化する外部世界と分析モデルの結論によって引き起こされるこの世界の理解の偏差が含まれます。
情報の隠蔽と変更のカプセル化
事前確率の重要性を理解していれば、機械学習を使って証明を繰り返す必要はありません。したがって、モデルは巨大なミキシング マシンのようなもので、大量の情報を投入して結果を取得しますが、入力のさまざまな変化に対する感度を予測することは難しく、影響を分離することはほぼ不可能です。このような難しい問題に直面して私たちは何をすべきでしょうか?万能の解決策はありませんが、著者らは役立つかもしれない 3 つの戦略を提案しています。
偶発的な結合を探すもう 1 つの方法は、隠れたフィードバック ループを作成することです。これは、特に未申告の消費者の間で顕著です。システムは、宣言されていない消費者を通じて、モデリング出力の出力を単に消費しているだけであり、これらのプロセスの存在にはほとんど気づきません。モデルに影響を与える入力パラメータに関する情報に基づいて何らかのアクションが実行される場合、この隠れたフィードバック ループによって次のような問題が簡単に発生する可能性があります。
データ依存性の問題
たとえば、一部の入力信号は時間の経過とともに動作が変化します。 CACE 原則に従うと、これらの変更が改善の方向として採用されたとしても、結果を予測することは困難です。別の種類のデータ依存性は、モデル内の機能のセットであり、その一部は精度の向上が非常に限られています。十分に活用されていない依存関係を活用する方法は多数あります。これには、非推奨となったレガシー機能、組み合わせて追加された機能 (実際に機能した機能だけではなく)、または正確さを追求するために追加されたが複雑さへの影響を正当化できない機能が含まれます。定期的に機能を清掃することが非常に重要です。
データの依存関係を理解するツールは、機能のクリーニングをスムーズに行うのに役立ちます。 Google のチームが自動化された機能管理ツールを構築しました。
データ依存関係を管理するための最終的なアプローチは、既存のモデルを再利用するための「修正」メカニズムを組み込むことです。この方法では、初期結果をすぐに得ることができますが、一方で、将来の分析とモデルの改善にはより高いコストがかかります。 残りの95% (グルーコードと構成)
ここで解決する必要がある問題は、多くの機械学習ライブラリが独立した成果物としてパッケージ化されており、間違いなく多くのグルーコード(Java から R または matlab への変換など)が導入されることです。より広範なシステム アーキテクチャ内で適切なリソース オプションが見つからない場合は、アルゴリズム (コードの 5%) を再実装する方が合理的であり、グルー コードの量を削減できる可能性があります。 関連する問題として、パイプライン ジャングル、つまり過度に複雑なデータ準備パイプラインがあります。
グルーコードとパイプラインジャングル問題によってシステムが固定化されると、多くの人は実稼働コード内の実験的なコードパスを微調整して追加の実験を実行したくなります。これは確かに便利ですが、頻度が高すぎると、より大きな混乱を引き起こすだけです。
セクションの最後では、「構成は、現実世界の乱雑さが美しいアルゴリズムに干渉する手段となることがよくあります。」 次の例を考えてみましょう。機能 A では、9 月 14 日から 9 月 17 日の間に記録エラーが発生しました。機能 B は 10 月 7 日まで正式にリリースされませんでした。レコード形式が変更されたため、11 月 1 日以前のデータと 11 月 1 日以降のデータでは、特性 C を計算するために使用されるコードを変更する必要があります。機能 D は本番環境では使用されない為、ライブ調整におけるモデルクエリでは D' と D" を使用する必要があります。機能 Z を使用する場合、トレーニング関連のすべてのタスクは追加のメモリ割り当てを取得する必要があります。そうしないと、トレーニング効率が大幅に低下します。最後に、機能 Q はレイテンシ制約により機能 R を除外します。このような混乱により、構成を正しく変更することが難しくなり、推論も困難になります。さらに、構成エラーは、時間の大幅な損失、コンピューティングリソースの損失、本番環境の問題など、コストがかかる可能性があります。 構成の変更はコードの変更と同様に慎重に扱い、ピアレビューの対象となる必要があります。 世界は他にどんな変化をもたらすでしょうか?
決定しきい値(広告を表示するかしないかなど)を手動で設定するのではなく、既存の検証データを評価してしきい値を見つけることを検討してください。また、因果関係が不明瞭な相関関係のある特徴も問題を引き起こす可能性があります。
最後に、システムのリアルタイム監視が重要です。この論文では、予測バイアスを測定し、システムが実行したアクションの数が一定のしきい値を超えた場合にアラートを発行することを提案しています。
|
<<: アルゴリズム面接経験:Google、Microsoft、Alibaba、Tencent、Baidu、Byte、いくつ正解できますか?
>>: Flask を使用して機械学習モデルを簡単にデプロイするにはどうすればよいですか?
私の国は、世界で最も深刻な災害に見舞われる国の一つです。自然災害は一般的に、種類が多く、被害地域が広...
人工知能と機械学習は企業の世界で注目を集めており、組織はますますこれらのテクノロジーを活用して顧客の...
ストレージ インフラストラクチャに人工知能を導入することで、容量とパフォーマンスの要件が高まっていま...
人間とロボットが協力して協働ロボットを作る[[321860]]協働ロボットは人間と対話し、協働するよ...
今週、米国科学アカデミー紀要に発表された新たな研究は、ディープフェイク技術がどれだけ進歩したかを示す...
AI はこれまでに開発された最も強力なテクノロジーの 1 つですが、すでに 4 回の進化を経ています...
[[418996]]画像ソース: https://pixabay.com/images/id-391...
ディープラーニングの活発な発展に伴い、業務シナリオで使用するためのディープ ニューラル ネットワーク...
[[206602]]デフォルトの損失関数は当然使用される始めたばかりのときは、損失関数として平均二乗...
アーキテクチャ、クラウドコンピューティング1. 複雑なものをシンプルに: 「ミニマリズム」の道を行く...
昨日の3.15ガラでは、CCTVによって顔認識が初めて公開されました。 3月15日に顔認証が命名され...
人口の高齢化は世界中の発展途上国や先進国が直面する深刻な問題となっている。 少数の人間が大多数の人間...