この記事は、https://www.oneapi.io/spec/ で 2023年9月14日に公開された『oneAPI 1.3 Provisional Specification Rev. 1』 (HTML、PDF) をベースにしています。原文は2000 ページ近くあり、翻訳の時間とリソースも限られるため、全文翻訳ではなく、記事形式で区切った仕様とその解説を提供することにしました。
この回では、『oneAPI 1.3 Provisional Specification Rev. 1』の「oneDAL」の「Glossary」の節を取り上げています。
用語集
マシンラーニング用語
カテゴリー特徴
個別のドメインを持つ特徴。基準 (nominal) または順序 (ordinal) に分けられます。
同義語: 離散特徴、定性特徴
例: 写真に撮影されているオブジェクトの種類 (犬や猫) を予測、電子メールがスパムであるかどうかを予測
クラスタリング
特徴ベクトルをグループ化する教師なし学習の問題。グループは通常、基準値としてエンコードされます。
例: 宇宙空間のイメージから大規模な星団を検出
連続特徴
実数のドメイン内の値を持つ特徴。区間または比率にすることができます。
同義語: 量的特徴、数値的特徴
例: 身長や家の価格
CSV ファイル
カンマで区切られた値のファイル (csv) は、テキストファイルです。CSV ファイルの各行は、区切り文字で区切られたフィールドを含むレコードです。フィールドは、数値形式またはテキスト形式にすることができます。テキストは、通常カテゴリー値を指します。デフォルトでは、区切り文字はカンマですが、任意の文字にすることもできます。詳細はこちら (英語) をご覧ください。
データセット
観測のコレクション。
次元リダクション
オリジナルの特徴ベクトルの意味のあるプロパティーを保持しながら、特徴ベクトルのセットを高次元空間から低次元空間に変換します。
特徴
実際のオブジェクトまたはイベントの特定のプロパティーまたは品質。タイプとドメインが定義されます。マシンラーニングの問題では、特徴は互いに独立した入力変数と見なされます。
同義語: 属性、変数、入力変数
特徴ベクトル
実際のオブジェクト、イベント、またはオブジェクトやイベントのグループに関する情報をエンコードするベクトル。1 つ以上の特徴を含みます。
例: 長方形を特徴付ける幅と高さ
推論
入力特徴ベクトルに基づいて応答値を予測するため、トレーニング済みモデルをデータセットに適用するプロセス。
同義語: 予測
推論セット
推論ステージで使用されるデータセット。通常、応答はありません。
区間特徴
比較、加算、または減算は可能ですが、乗算や除算はできない値を持つ連続特徴。
例: 時間枠のスケール、摂氏または華氏の温度
ラベル
カテゴリーまたは順序値による応答。これは、分類とクラスタリング問題の出力です。
例: スパム検出では、電子メールがスパムであるかどうかを示すバイナリーラベルがある
モデル
新しいデータセットで推論を行うために必要な情報を格納するエンティティー。通常、トレーニング・プロセスの結果です。
例: 線形回帰アルゴリズムでは、モデルにそれぞれの入力特徴の重み値と単一のバイアス値が含まれる
基準特徴
値の間で順序付けされていないカテゴリー特徴。基準特徴に対しては、等式演算のみが定義されています。
例: 人の性別、車の色
同義語: インスタンス、サンプル
順序特徴
値の間の同等性と順序付け操作が定義されたカテゴリー特徴。
例: 生徒の成績
異常値
他の観測とは大きく異なる観測。
比率特徴
等式、比較、加算、減算、乗算、除算が定義された連続特徴。ゼロ値の要素は値が無いことを意味します。
例: 塔の高さ
回帰
特徴ベクトルに連続応答を割り当てる教師あり学習の問題。
例: 気象条件に基づく気温の予測
応答
教師あり学習問題で特徴ベクトルから依存関係を定義する必要がある実際のオブジェクトまたはイベントのプロパティー。特徴は、マシンラーニング問題の入力であり、応答は推論ステージのモデルで作成される出力の 1 つです。
同義語: 従属変数
教師あり学習
特徴と応答間の依存関係に関連する情報を含むデータセットを使用するトレーニング・プロセス。目標は、入力特徴ベクトルと応答の間の依存関係モデルを得ることです。
トレーニング
トレーニング・セットから抽出された情報を基にモデルを作成するプロセス。結果として得られるモデルは、いくつかの品質基準に基づいて選択されます。
トレーニング・セット
モデルを作成するためトレーニング・ステージで使用するデータセット。
教師なし学習
応答のないトレーニング・セットを使用するトレーニング・プロセス。目的は、特徴ベクトルの隠されたパターンとそれらの間の依存関係を検出することです。
oneDAL 用語
アクセサー
特別なデータ形式によって別のオブジェクトへのデータアクセスを提供するオブジェクトに対する oneDAL の概念。オブジェクトのインターフェイスからデータアクセスを抽象化し、さまざまなタイプのオブジェクトに格納されているデータへの均一なアクセスを提供します。
バッチモード
oneDAL アルゴリズムの計算モードであり、計算に必要なすべてのデータが開始時に利用可能で、計算が実行されるデバイスのメモリーに収まります。
ビルダー
別のオブジェクトの作成をカプセル化し、反復的に作成を可能にする oneDAL の概念。
連続データ
1 つの連続したメモリーブロックに保存されるデータ。データ形式の特徴の 1 つ。
データ形式
データの内部構造表現。
例: データは、構造体配列または圧縮された疎行形式で保存できる
データレイアウト
連続するデータブロック内の要素の順序を表現するデータ形式。
例: 行優先形式 (要素は行ごとに格納される)
データタイプ
コンパイラーが格納およびアクセスする際に使用するデータ属性。バイト単位のサイズ、エンコード原則、および利用可能な操作 (プログラミング言語の観点から) が含まれます。
例: int32_t
、float
、double
ゲッター
プライベート・メンバー変数の値を返すメソッド。
例:
std::int64_t get_row_count() const;
異種データ
異なるデータタイプまたは、それらに定義される異なる操作セットのどちらかの値を含むデータ。データ形式の特徴の 1 つ。
例: 3 つの区間特徴の 100 個の観測値を含むデータセット。最初の 2 つの特徴は、float32 データタイプであり、3 番目の特徴は float64 データタイプです。
同種データ
単一のデータタイプとそれらに定義された同じセットの操作を含むデータ。データ形式の特徴の 1 つ。
例: 3 つの区間特徴の 100 個の観測値を含むデータセット (それぞれ float32 タイプ)。
不変性
作成後に状態を変更できない場合、オブジェクトは不変です。
メタデータ
オブジェクトの論理的および物理的な構造に関する情報。メタデータ値のすべての組み合わせは、特定のタイプのオブジェクトの完全なセットを示します。メタデータは、タイプ定義に含まれない情報 (例: 実装の詳細) は示しません。
例: テーブル・オブジェクトには、100 個以上の観測値 (メタデータの論理部分) を持つ 3 つの基準特徴を含めることができます。このオブジェクトは、データを疎 CSR 配列として格納でき、それら (物理部分) への直接アクセスを提供します。
オンラインモード
oneDAL アルゴリズムの計算モードの 1 つであり、計算に必要なデータは、時間経過とともに部分的に利用可能になります。
参照カウント・オブジェクト
一意な実装での参照カウントを格納する、コピー構築および割り当て可能な oneDAL オブジェクト。このオブジェクトに対して定義される両方のコピー操作は軽量です。新しいオブジェクトが作成されるたびに参照カウントだけが増加します。参照カウントがゼロになると、実装は自然にオブジェクトを解放します。
セッター
パラメーターのみを受け入れて、その値をプライベート・メンバー変数に割り当てるメソッド。
例:
void set_row_count(std::int64_t row_count);
テーブル
カテゴリーまたは連続する数値データのみを含むデータセットに対する oneDAL の概念。ユーザー・アプリケーションと oneDAL 内の計算間のデータ転送として機能します。データ形式の詳細を隠匿し、データへのアクセスを一般化します。
ワークロード
oneDAL アルゴリズムをデータセットに適用する際の問題。
oneAPI の一般用語
API
アプリケーション・プログラミング・インターフェイス。
DPC++
データ並列 C++ (DPC++) は、データ並列プログラミングの生産性向けに設計された高レベル言語です。DPC++ は Khronos Group の SYCL* を基にしており、データ並列とヘテロジニアス・プログラミングをサポートします。
ホスト/デバイス
OpenCL* [OpenCLSpec] (英語) では、接続された GPU 実行カーネルを制御する CPU を指します。
JIT
ジャスト・インタイム・コンパイル (Just in Time Compilation) – プログラム実行中のコンパイル。
カーネル
OpenCL* [OpenCLSpec] (英語) または SYCL* で記述され、GPU デバイスで実行されるコード。
SPIR-V*
SPIR-V* (Standard Portable Intermediate Representation – V) は、計算カーネルを中間表現する言語です。
SYCL*
SYCL* [SYCLSpec] (英語) – OpenCL* の高水準プログラミング・モデル。標準の C++ 言語を使用して、異種プログラミング・コードを「単一ソース」で記述できます。
法務上の注意書き
The content of this oneAPI Specification is licensed under the Creative Commons Attribution 4.0 International License (英語). Unless stated otherwise, the sample code examples in this document are released to you under the MIT license (英語).
This specification is a continuation of Intel’s decades-long history of working with standards groups and industry/academia initiatives such as The Khronos Group*, to create and define specifications in an open and fair process to achieve interoperability and interchangeability. oneAPI is intended to be an open specification and we encourage you to help us make it better. Your feedback is optional, but to enable Intel to incorporate any feedback you may provide to this specification, and to further upstream your feedback to other standards bodies, including The Khronos Group SYCL* specification, please submit your feedback under the terms and conditions below. Any contribution of your feedback to the oneAPI Specification does not prohibit you from also contributing your feedback directly to other standard bodies, including The Khronos Group under their respective submission policies.
By opening an issue, providing feedback, or otherwise contributing to the specification, you agree that Intel will be free to use, disclose, reproduce, modify, license, or otherwise distribute your feedback at its sole discretion without any obligations or restrictions of any kind, including without limitation, intellectual property rights or licensing obligations.
This document contains information on products, services and/or processes in development. All information provided here is subject to change without notice.
© Intel Corporation. Intel、インテル、Intel ロゴ、その他のインテルの名称やロゴは、Intel Corporation またはその子会社の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。