機械学習のハイパーパラメータ調整の概要 (PySpark ML)
ML における重要なタスクは、モデルの選択、またはデータを使用して特定のタスクに最適なモデルまたはパラメーターを見つけることです。これはチューニングとも呼ばれます。 LogisticRegression などの単一の推定器を調整することも、複数のアルゴリズム、特性評価、その他のステップを含むパイプライン全体を調整することもできます。ユーザーは、パイプライン内の各要素を個別に調整するのではなく、パイプライン全体を一度に調整できます。
ML における重要なタスクは、モデルの選択、またはデータを使用して特定のタスクに最適なモデルまたはパラメーターを見つけることです。これはチューニングとも呼ばれます。単一の Estimator (LogisticRegression など) を調整することも、複数のアルゴリズム、特性評価、その他のステップを含むパイプライン全体を調整することもできます。ユーザーは、パイプライン内の各要素を個別に調整するのではなく、パイプライン全体を一度に調整できます。
MLlib は、CrossValidator や TrainValidationSplit などのツールを使用したモデル選択をサポートしています。これらのツールには次のものが必要です。
- エスティメーター: 調整するアルゴリズムまたはパイプライン
- パラメーターのセット: 選択可能なパラメーターのセット。検索の「パラメーター ネットワーク」とも呼ばれます。グリッド」
- エバリュエーター: 適合モデルがテスト データ上でどの程度うまく機能するかを測定します
これらのモデル選択ツールは次のように機能します:
- これらのツールは、入力データは、個別のトレーニング データセットとテスト データセットに分割されます。
- 各 (トレーニング、テスト) ペアについて、ParamMap コレクションを走査します。
各 ParamMap について、これらのパラメーターを使用して Estimator を適合させ、適合した Model を取得します。そして、Evaluator を使用してモデルのパフォーマンスを評価します。
- 彼らは、最もパフォーマンスの高いパラメーターのセットによって生成されるモデルを選択します。
パラメータ グリッドの構築を支援するために、ユーザーは ParamGridBuilder を使用できます。デフォルトでは、パラメータ グリッド内のパラメータ セットは順番に評価されます。 CrossValidator または TrainValidationSplit を使用してモデル選択を実行する前に、並列度を 2 以上 (値 1 はシリアル) に設定することで、パラメーターの評価を並列で実行できます。並列処理の値は、クラスター リソースを超えずに並列処理を最大化するように慎重に選択する必要があります。値を大きくしても必ずしもパフォーマンスが向上するとは限りません。一般に、ほとんどのクラスターでは 10 を超える値で十分です。
クロス検証
CrossValidator Cross Validator は、まずデータセットを折りたたまれたデータセットのセットに分割し、個別のトレーニング データセットとテスト データセットとして使用します。たとえば、k=3 回の場合、CrossValidator は 3 組の (トレーニング、テスト) データ セットを生成し、それぞれがトレーニングにデータの 2/3、テストにデータの 1/3 を使用します。特定の ParamMap を評価するために、CrossValidator は、Estimator によって生成された 3 つのモデルを 3 つの異なる (トレーニング、テスト) データセットのペアに当てはめることによって平均評価メトリクスを計算します。
最適な ParamMap を決定した後、CrossValidator は最終的に最適な ParamMap とデータ セット全体を使用して Estimator を再照合します。
from pyspark.ml import Pipeline from pyspark.ml.classification import LogisticRegression from pyspark.ml.evaluation import BinaryClassificationEvaluator from pyspark.ml.feature import HashingTF, Tokenizer from pyspark.ml.tuning import CrossValidator, ParamGridBuilder # 准备训练文件,并做好标签。 training = spark.createDataFrame([ (0, "a b c d e spark", 1.0), (1, "b d", 0.0), (2, "spark f g h", 1.0), (3, "hadoop mapreduce", 0.0), (4, "b spark who", 1.0), (5, "g d a y", 0.0), (6, "spark fly", 1.0), (7, "was mapreduce", 0.0), (8, "e spark program", 1.0), (9, "a e c l", 0.0), (10, "spark compile", 1.0), (11, "hadoop software", 0.0) ], ["id", "text", "label"]) # 配置一个ML管道,它由树stages组成:tokenizer、hashingTF和lr。 tokenizer = Tokenizer(inputCol="text", outputCol="words") hashingTF = HashingTF(inputCol=tokenizer.getOutputCol(), outputCol="features") lr = LogisticRegression(maxIter=10) pipeline = Pipeline(stages=[tokenizer, hashingTF, lr]) # 我们现在将Pipeline作为一个Estimator,将其包装在CrossValidator实例中。 # 这将允许我们共同选择所有管道阶段的参数。 # 交叉验证器需要一个Estimator、一组Estimator ParamMaps和一个Evaluator。 # 我们使用ParamGridBuilder来构造一个用于搜索的参数网格。 # hashingTF.numFeatures 的3个值, lr.regParam的2个值, # 这个网格将有3 x 2 = 6的参数设置供CrossValidator选择。 paramGrid = ParamGridBuilder() .addGrid(hashingTF.numFeatures, [10, 100, 1000]) .addGrid(lr.regParam, [0.1, 0.01]) .build() crossval = CrossValidator(estimator=pipeline, estimatorParamMaps=paramGrid, evaluator=BinaryClassificationEvaluator(), numFolds=2)# 使用3+ folds # 运行交叉验证,并选择最佳参数集。 cvModel = crossval.fit(training) # 准备测试未标注的文件 test = spark.createDataFrame([ (4, "spark i j k"), (5, "l m n"), (6, "mapreduce spark"), (7, "apache hadoop") ], ["id", "text"]) # 对测试文档进行预测, cvModel使用发现的最佳模型(lrModel)。 prediction = cvModel.transform(test) selected = prediction.select("id", "text", "probability", "prediction") for row in selected.collect(): print(row)
トレーニング検証分割
CrossValidator に加えて、Spark はハイパーパラメータ調整用の TrainValidationSplit も提供します。 TrainValidationSplit は、各パラメーターの組み合わせを 1 回だけ計算します ( CrossValidator の場合は k 回計算します)。したがって、コストは低くなりますが、トレーニング データ セットが十分に大きくない場合、信頼できる結果は得られません。
CrossValidator とは異なり、TrainValidationSplit は単一の (トレーニング、テスト) データ セット ペアを作成します。 trainRatio パラメーターを使用して、データセットをこれら 2 つの部分に分割します。たとえば、trainRatio=0.75 の場合、TrainValidationSplit は、データの 75% がトレーニングに使用され、25% が検証に使用されるトレーニングとテストのデータセットのペアを生成します。
CrossValidator と同様に、TrainValidationSplit は最終的に、データ セット全体に最適な ParamMap と一致する Estimator を使用します。
rreeee
以上が機械学習のハイパーパラメータ調整の概要 (PySpark ML)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









機械学習とデータ サイエンスの分野では、モデルの解釈可能性が常に研究者や実務家に焦点を当ててきました。深層学習やアンサンブル手法などの複雑なモデルが広く適用されるようになったことで、モデルの意思決定プロセスを理解することが特に重要になってきました。 Explainable AI|XAI は、モデルの透明性を高めることで、機械学習モデルに対する信頼と自信を構築するのに役立ちます。モデルの透明性の向上は、複数の複雑なモデルの普及や、モデルを説明するための意思決定プロセスなどの方法によって実現できます。これらの方法には、特徴重要度分析、モデル予測間隔推定、ローカル解釈可能性アルゴリズムなどが含まれます。特徴重要度分析では、入力特徴に対するモデルの影響度を評価することで、モデルの意思決定プロセスを説明できます。モデルの予測間隔の推定

この記事では、学習曲線を通じて機械学習モデルの過学習と過小学習を効果的に特定する方法を紹介します。過小適合と過適合 1. 過適合 モデルがデータからノイズを学習するためにデータ上で過学習されている場合、そのモデルは過適合していると言われます。過学習モデルはすべての例を完璧に学習するため、未確認の新しい例を誤って分類してしまいます。過適合モデルの場合、完璧/ほぼ完璧なトレーニング セット スコアとひどい検証セット/テスト スコアが得られます。若干修正: 「過学習の原因: 複雑なモデルを使用して単純な問題を解決し、データからノイズを抽出します。トレーニング セットとしての小さなデータ セットはすべてのデータを正しく表現できない可能性があるため、2. 過学習の Heru。」

1950 年代に人工知能 (AI) が誕生しました。そのとき、研究者たちは、機械が思考などの人間と同じようなタスクを実行できることを発見しました。その後、1960 年代に米国国防総省は人工知能に資金を提供し、さらなる開発のために研究所を設立しました。研究者たちは、宇宙探査や極限環境での生存など、多くの分野で人工知能の応用を見出しています。宇宙探査は、地球を超えた宇宙全体を対象とする宇宙の研究です。宇宙は地球とは条件が異なるため、極限環境に分類されます。宇宙で生き残るためには、多くの要素を考慮し、予防策を講じる必要があります。科学者や研究者は、宇宙を探索し、あらゆるものの現状を理解することが、宇宙の仕組みを理解し、潜在的な環境危機に備えるのに役立つと信じています。

C++ の機械学習アルゴリズムが直面する一般的な課題には、メモリ管理、マルチスレッド、パフォーマンスの最適化、保守性などがあります。解決策には、スマート ポインター、最新のスレッド ライブラリ、SIMD 命令、サードパーティ ライブラリの使用、コーディング スタイル ガイドラインの遵守、自動化ツールの使用が含まれます。実践的な事例では、Eigen ライブラリを使用して線形回帰アルゴリズムを実装し、メモリを効果的に管理し、高性能の行列演算を使用する方法を示します。

翻訳者 | Li Rui によるレビュー | 今日、人工知能 (AI) および機械学習 (ML) モデルはますます複雑になっており、これらのモデルによって生成される出力はブラックボックスになっており、関係者に説明することができません。 Explainable AI (XAI) は、利害関係者がこれらのモデルがどのように機能するかを理解できるようにし、これらのモデルが実際に意思決定を行う方法を確実に理解できるようにし、AI システムの透明性、信頼性、およびこの問題を解決するための説明責任を確保することで、この問題を解決することを目指しています。この記事では、さまざまな説明可能な人工知能 (XAI) 手法を検討して、その基礎となる原理を説明します。説明可能な AI が重要であるいくつかの理由 信頼と透明性: AI システムが広く受け入れられ、信頼されるためには、ユーザーは意思決定がどのように行われるかを理解する必要があります

機械学習は人工知能の重要な分野であり、明示的にプログラムしなくてもコンピューターにデータから学習して能力を向上させる機能を提供します。機械学習は、画像認識や自然言語処理から、レコメンデーションシステムや不正行為検出に至るまで、さまざまな分野で幅広く応用されており、私たちの生活様式を変えつつあります。機械学習の分野にはさまざまな手法や理論があり、その中で最も影響力のある 5 つの手法は「機械学習の 5 つの流派」と呼ばれています。 5 つの主要な学派は、象徴学派、コネクショニスト学派、進化学派、ベイジアン学派、およびアナロジー学派です。 1. 象徴主義は、象徴主義とも呼ばれ、論理的推論と知識の表現のためのシンボルの使用を強調します。この学派は、学習は既存の既存の要素を介した逆演繹のプロセスであると信じています。

C++ パラメーターの型の安全性チェックでは、コンパイル時チェック、実行時チェック、静的アサーションを通じて関数が予期される型の値のみを受け入れるようにし、予期しない動作やプログラムのクラッシュを防ぎます。 コンパイル時の型チェック: コンパイラは型の互換性をチェックします。実行時の型チェック:dynamic_cast を使用して型の互換性をチェックし、一致しない場合は例外をスローします。静的アサーション: コンパイル時に型条件をアサートします。

MetaFAIR はハーバード大学と協力して、大規模な機械学習の実行時に生成されるデータの偏りを最適化するための新しい研究フレームワークを提供しました。大規模な言語モデルのトレーニングには数か月かかることが多く、数百、さらには数千の GPU を使用することが知られています。 LLaMA270B モデルを例にとると、そのトレーニングには合計 1,720,320 GPU 時間が必要です。大規模なモデルのトレーニングには、これらのワークロードの規模と複雑さにより、特有のシステム上の課題が生じます。最近、多くの機関が、SOTA 生成 AI モデルをトレーニングする際のトレーニング プロセスの不安定性を報告しています。これらは通常、損失スパイクの形で現れます。たとえば、Google の PaLM モデルでは、トレーニング プロセス中に最大 20 回の損失スパイクが発生しました。数値的なバイアスがこのトレーニングの不正確さの根本原因です。
