正則化(Regularization)
- 機械学習モデルの過学習(オーバーフィッティング)を防ぎ、モデルの汎化性能を向上させるための手法
- 正則化を強化することで、モデルが過剰に複雑になることを防ぎ、より一般化された結果を得ることができる
- 過学習の抑制
- トレーニングサンプルを増やす:元データの偏りを解消してより一般化する
- 正規化パラメータを増やす:モデルを簡潔でより汎化可能な形に制御する
- 使用する機能セットを小さくする:入力となる特徴量を減らすことで計算量を軽減する
L1 正則化(Lasso 正則化)
- 重みの絶対値の合計 を損失関数に加算
$$
J(w) = \text{Loss} + \lambda \sum_{i} |w_i|
$$
$J(w)$: 正則化された損失関数 , $\lambda$: 正則化の強さを制御するハイパパラメータ , $w_i$: モデルの各パラメータ(重み)
- スパース性の促進
- 一部の重みをゼロにする傾向があり、不要な特徴量を自動的に無視する
- モデルの解釈性が向上する
-
特徴選択
- 重要な特徴量のみを選択
- 高次元データセットで有効
L2 正則化(Ridge 正則化)
- 重みの二乗和 を損失関数に加算
$$
J(w) = \text{Loss} + \lambda \sum_{i} w_i^2
$$
$J(w)$: 正則化された損失関数 , $\lambda$: 正則化の強さを制御するハイパパラメータ , $w_i$: モデルの各パラメータ(重み)
- 重みの縮小
- 重みをゼロに近づけますが、完全にゼロにはしない
- すべての特徴量がモデルに影響を与える
-
過学習の抑制
- パラメータの大きな値を抑え、モデルの複雑さを管理
線形回帰(Linear Regression)
- 説明変数(独立変数)と目的変数(従属変数)の間に線形関係があると仮定し、その関係をモデル化することで、予測やデータ分析を行う手法
- 与えられたデータに基づき、線形方程式(直線または多次元での平面)を用いて、説明変数から目的変数を予測する
$$
y = w_1x_1 + w_2x_2 + \cdots + w_nx_n + b
$$
$y$: 目的変数(予測値), $x_1$, $x_2$, $\ldots$, $x_n$: 説明変数 , $w_1$, $w_2$, $\ldots$, $w_n$: 各説明変数の係数(重み), $b$: 切片(バイアス項)
Bigtable
Garbage Collection
- Bigtable が各列ファミリのルールをチェックし、それに応じて期限切れのデータや古いデータを削除する継続的なプロセス
BigQuery
マテリアライズド ビュー
- 基本クエリの結果を事前に計算して保存することで、複雑なクエリのデータ取得を高速化できる
-
max_staleness:データの古さを指定できるため、視覚化が〇〇時間以上前のデータに基づくことが保証される -
enable_refresh:マテリアライズド ビューが定期的に更新される -
allow_non_incremental_definition:増分更新できないマテリアライズド ビューの作成を有効化する
外部テーブルクエリ
- Cloud Storage 等、BigQuery 外で管理されているテーブル(ORC:Optimized Row Columnar 形式等)を直接クエリできる
ワンホットエンコード
- 変数をモデルで利用可能な数値データに変換するエンコード方式
スナップショット
- 特定の時点でのテーブルの状態をキャプチャできる機能
- 増分型 となっているため変更されたデータのみが保存され、テーブル全体のコピーよりもコスト効率が向上する
タイムトラベル
- 履歴データにアクセス
- デフォルトで 過去 7 日間 のポイントインタイム(PIT:Point-In-Time)リカバリが提供される
FastExport
ローカルストレージを必要とせずに Teradata から BigQuery にデータが直接ストリーミングされるためストレージの制限に対処できる
Omni
- BigLake テーブルも活用することで、Azure や AWS のファイルを直接クエリできる
BigLake
- Cloud Storage 上にテーブル定義ができるため、データレイクストレージと BigQuery の分析機能の橋渡しができる
- Cloud Storage に保存されているデータレイクのクエリを効率的に実行可能
Analytics Hub
- 組織内のデータ共有とアクセスを管理するための集中型プラットフォーム
- データへのアクセス制御、データ共有の監視、データ共有のコスト最適化を提供する
Dataflow
- ストリームおよびバッチデータ処理用のフルマネージドサービス
- ロングテールや外れ値のデータポイントの特定等のリアルタイムデータ処理タスクに適する
PCollection(オブジェクト)
- 分散データセットを表すデータ構造
- バッチデータでもストリームデータでも使用される
- データの各ステップ間での 中間結果を保持
PTransform(クラス)
- PCollection に対して適用される変換操作を定義するためのクラス
- データのフィルタリングや変換、集計 等の処理を行う
- CoGroupByKey 変換 を使用すると、任意のキーに基づいて PCollection をグループ化できる
- Flatten 変換 を使用すると、複数の PCollection を 1 つの PCollection に結合できる
DoFn(関数)
- PTransform 内で要素毎に 処理を定義するための関数
- 例:各レコードを変換する処理を
DoFn関数内で記述
ParDo(関数)
- 各要素を検証して、破損した要素をフィルタリングおよび破棄する
- カスタムロジックを適用して破損データを処理する標準的な方法
ウィンドウ
- データ(イベント)を時間的な粒度(期間)に基づいて分割する仕組み
- データの一部に対して処理や集計を行うことができる
タンブリング
|----ウィンドウ1----|----ウィンドウ2----|----ウィンドウ3----|
0分 10分 20分
- 固定サイズの時間ウィンドウ
- 各ウィンドウは連続して発生し、重なりが無いように 分ける
- 定期的な時間間隔でデータを集計するのに適している
スライディング
|----ウィンドウ1----|
|----ウィンドウ2----|
|----ウィンドウ3----|
0分 5分 10分 15分 20分
- 固定サイズの時間ウィンドウ
- 一定の間隔で開始され、重なりを許容して 分ける
- データの重複を許容し、より頻繁に集計結果を取得する場合に適している
ホッピング
|----ウィンドウ1----|
|----ウィンドウ2----|
|----ウィンドウ3----|
0秒 30秒 60秒 90秒 120秒
- 固定サイズの時間ウィンドウ
- 一定の間隔で開始され、重なりを許容して 分けるが、開始間隔(ピリオド)はスライディングウィンドウよりも短く設定される
- スライディングウィンドウと比較して、ウィンドウが重なる部分が多くなり、複数のウィンドウで同じデータが処理されることがある
セッション
|---セッション1---| |---セッション2---|
0分 5分 10分 15分
- アクティビティが一定のアイドル期間(ギャップ)を超えない限り続く、可変長のウィンドウ
- ユーザのセッションやアクティビティのグループ化に適している
- 指定時間間隔以上に データが途切れた場合 に分ける
ウォーターマーク
- Dataflow において、データの到着時点予測を指定する機能
Reshuffle / Reshuze
- Dataflow パイプラインで融合を解除して要素を再分配する
- 並列化を改善し、ボトルネックを特定する際に使用される
Dataproc
- Apache Hadoop、Apache Spark 等を実行するための、拡張性に優れたフルマネージドバッチ処理向けサービス
- Dataproc Serverless を使用すると、クラスタを管理することなく、マネージド Spark サービス等を利用できる
Metastore
- Dataproc においてメタデータを管理する機能で、Hadoop エコシステムの構造情報を保持するために利用できる
Dataprep
- サーバレスでコード不要のデータ準備ツール
- Trifacta を利用すると、ユーザは視覚的に(GUI ベースで)データを探索、クレンジング、分析用に準備できる
- Cloud Storage のデータに直接アクセスして変換できるため、ローコードでユーザフレンドリなソリューションを好むチームに適する
Datastream
- リアルタイムのデータレプリケーションを行うフルマネージドのサーバーレスサービス
- 変更データキャプチャ(CDC:Change Data Capture)およびデータベースレプリケーションの実行ができる
- Cloud SQL を含むさまざまなソースから BigQuery にデータをストリーミングできる
Dataform
- SQL パイプラインを構築、管理、スケジュールするための ELT アプローチ
アサーション
- テーブル内の一意性や null 値のチェック等、データ品質チェックを実行するための組み込み機能
Dataplex
- データ管理、リネージ、品質検証を統合的にサポートする
- 自動検出機能を有効にすると、ゾーン内のデータ資産を自動的に検出してカタログ化する
Cloud Data Fusion
- フルマネージド(コード不要)な GUI ベースのデータ統合サービスであり、様々なソースとシンク間でデータを視覚的に接続、変換、移動ができる
- データ正規化タスクを定期的に実行するようにスケジュール設定できる
- データを書き込むバケットに顧客管理の暗号化キー (CMEK:Customer-Managed Encryption Key) を使用するように構成できる
Wrangler
- データ変換タスク用のコード不要のインターフェースを提供
Cloud Data Loss Prevention
- データの匿名化、マスキング変換 等のジョブを実行する
-
STREET_ADDRESS等の infoType 用の定義済み検出器を含む、機密データに対する強力な検査機能を提供する
Record Transformations
- DLP パイプラインにおいて、形式保持暗号化規格(FFX:Flexible Format-preserving Encryption)を使用したフォーマット保持暗号化(FPE:Format Preserving Encryption)を使用することで、メールアドレス等の個人情報(PII:Personally Identifiable Information)を匿名化できる
Cloud Composer
- Apache Airflow をベースとしたフルマネージドのワークフローオーケストレーションサービス
- 有向非巡回グラフ(DAG:Directed Acyclic Graph)を使用することでジョブの依存関係とスケジュールを管理する
- 例:相互に複数の依存関係を持つ Dataproc ジョブと Dataflow ジョブを含むパイプラインのオーケストレーション
- ジョブを順次または並行して自動的に実行できる
自然言語処理(NLP:Natural Language Processing)
Document AI
- シート画像の情報をキャプチャしてデータベースに追加
Cloud Natural Language API
- テキストの感情分析やエンティティ抽出などの自然言語処理機能を提供
Speech-to-Text API
- 音声をテキスト文書に変換
AutoML Natural Language
- 音声コマンドを解釈してバックエンドシステムと統合する
Dialogflow
- 音声解析ができる
AutoML Vision
- 画像認識モデルを簡単に作成でき、API を通じてリアルタイムで利用できる