コードは従来のプログラマーにとって、ML デベロッパーにとっても重要です。 このレッスンでは、データに関して尋ねるべき質問に焦点を当てます。
動画講義のまとめ
ML システムの動作は、その入力特徴の動作と品質によって異なります。これらの特徴の入力データが変更されると、モデルも変化します。そのような変更を行うことが望ましい場合もありますが、そうでない場合もあります。
従来のソフトウェア開発では、データよりもコードに集中しています。機械学習の開発では、コーディングはまだ仕事の一部ですが、データを含めるために焦点を広げる必要があります。たとえば、従来のソフトウェア開発プロジェクトでは、コードを検証するための単体テストを作成することをおすすめします。ML プロジェクトでは、入力データを継続的にテスト、検証、モニタリングする必要があります。
たとえば、モデルを継続的にモニタリングして、未使用の(またはほとんど使用されていない)特徴を削除する必要があります。モデルにほとんど、またはまったく影響していない特定の特徴について考えてみましょう。その特徴の入力データが急激に変化すると、モデルの動作も予期しない形で変化する可能性があります。
信頼性
入力データの信頼性について、いくつか質問をします。
- シグナルは常に利用できるか、それとも信頼性の低いソースから発信されているか?例:
- 高負荷時にクラッシュするサーバーから信号を受信していますか?
- 毎年 8 月に休暇に出ている人間の兆候でしょうか?
バージョニング
バージョニングについていくつか質問します。
- このデータを計算するシステムは変更されますか?その場合は、次の操作を行います。
- どのくらいの頻度で行いますか?
- システムが変更されたとき、それはどのように判断できるでしょうか。
データはアップストリーム プロセスから取得されることがあります。この処理が急激に変化すると、モデルで問題が発生する可能性があります。
アップストリーム プロセスから受け取ったデータの独自のコピーを作成することを検討してください。削除しても問題がないことを確認できた場合にのみ、アップストリーム データの次のバージョンに進みます。
必要性
次の質問では、正則化について思い出すことがあります。
- この機能の有用性は、費用を含めることに見合っていますか?
常にモデルに特徴量を割り当てたくなるものです。たとえば、加算によってモデルの精度がわずかに高くなる新しい特徴があるとします。精度が高いほど、精度が低く聞こえるようになります。しかし、これでメンテナンスの負担が増えました。この追加機能は予期せずパフォーマンスが低下する可能性があるため、モニタリングする必要があります。短期的な成果につながる機能を追加する際は、慎重に検討を行ってください。
相関関係
一部の機能は、他の特徴と(正または負の)相関関係があります。次の点を考えてみましょう。
- それらの特徴を結び付けて、それらの引き分けに別の戦略が必要か。
フィードバック ループ
モデルが独自のトレーニング データに影響を与える場合があります。たとえば、一部のモデルの結果は、同じモデルに特徴を直接または間接的に入力します。
モデルが別のモデルに影響を与えることがあります。たとえば、株価を予測する 2 つのモデルについて考えてみます。
- モデル A。これは不適切な予測モデルです。
- モデル B:
モデル A にはバグが多いため、誤って在庫 X の在庫を購入することにします。 そうした購入は、株式 X の価格を引き上げます。モデル B は株式 X の価格を入力特徴として使用するため、モデル B は株式 X の株価について誤った判断を下すことがあります。したがって、モデル B は、モデル A のバグのある動作に基づいて株式 X の株式を売買できます。モデル B の動作がモデル A に影響を及ぼし、チューリップ マニアや会社 X の在庫の引き金が引き起こされる可能性があります。