

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 進階訓練組態
<a name="adv-training-configs"></a>

## 取樣率組態
<a name="sample-rate-configuration"></a>

**取樣率**會定義記錄感應器讀數的頻率 （例如，每秒一次，或每分鐘一次）。此設定會直接影響訓練資料的**精細程度**，並影響模型擷取感應器行為中短期變化的能力。

請造訪 [對訓練和推論之間的高頻率資料和一致性進行抽樣](ano-best-practices.md#apply-sampling-high-frequency-data) 以了解最佳實務。

### 設定目標取樣率
<a name="configuring-target-sampling-rate"></a>

您可以選擇性地在訓練組態`TargetSamplingRate`中指定 ，以控制資料取樣的頻率。支援的值如下：

```
PT1S | PT5S | PT10S | PT15S | PT30S | PT1M | PT5M | PT10M | PT15M | PT30M | PT1H
```

這些是 ISO 8601 持續時間格式，代表下列時間格式：
+ `PT1S` = 1 秒
+ `PT1M` = 1 分鐘
+ `PT1H` = 1 小時

選擇在**資料解析**和**訓練效率**之間取得適當平衡的取樣率。提供下列費率：
+ **較高的取樣率** (`PT1S`) 提供更精細的詳細資訊，但可能會增加資料量和訓練時間。
+ **較低的取樣率** (`PT10M`、`PT1H`) 可減少資料大小和成本，但可能會錯過短期異常。

### 處理時間戳記不一致
<a name="handling-timestamp-misalignment"></a>

AWS IoT SiteWise 在訓練期間， 會自動補償多個資料串流之間的**時間戳記不一致**。即使輸入訊號未及時完全對齊，這可確保一致的模型行為。

請造訪 [對訓練和推論之間的高頻率資料和一致性進行抽樣](ano-best-practices.md#apply-sampling-high-frequency-data) 以了解最佳實務。

### 啟用取樣
<a name="enable-sampling"></a>

將下列程式碼新增至 `anomaly-detection-training-payload.json`。

透過在訓練動作承載`TargetSamplingRate`中新增 來設定取樣，並使用資料的取樣率。允許的值為：`PT1S | PT5S | PT10S | PT15S | PT30S | PT1M | PT5M | PT10M | PT15M | PT30M | PT1H`。

```
{
    "exportDataStartTime": StartTime,
    "exportDataEndTime": EndTime,
    "targetSamplingRate": "TargetSamplingRate"
}
```

**Example 取樣率組態的 ：**  

```
{
    "exportDataStartTime": 1717225200,
    "exportDataEndTime": 1722789360,
    "targetSamplingRate": "PT1M"
}
```

## 標記您的資料
<a name="ano-labeling-data"></a>

標記資料時，您必須定義代表異常設備行為期間的時間間隔。此標記資訊會以 `CSV` 檔案的形式提供，其中每一列都會指定設備未正常運作的時間範圍。

每一列包含兩個時間戳記：
+ **開始時間**，指出認為異常行為何時開始。
+ **結束時間**，代表第一次觀察到失敗或問題的時間。

此 CSV 檔案存放在 Amazon S3 儲存貯體中，並在模型訓練期間使用，以協助系統從已知的異常行為範例學習。下列範例顯示標籤資料應如何顯示為 `.csv` 檔案。檔案沒有標頭。

**Example CSV 檔案的 ：**  

```
2024-06-21T00:00:00.000000,2024-06-21T12:00:00.000000
2024-07-11T00:00:00.000000,2024-07-11T12:00:00.000000
2024-07-31T00:00:00.000000,2024-07-31T12:00:00.000000
```

第 **1 列**代表 **2024 年 6 月 21** 日的維護事件，有 **12 小時的時段** （從 `2024-06-21T00:00:00.000000Z`到 `2024-06-21T12:00:00.000000Z`) AWS IoT SiteWise 供 尋找異常行為。

第 **2 列**代表 **2024 年 7 月 11** 日的維護事件，有 **12 小時的時段** （從 `2024-07-11T00:00:00.000000Z`到 `2024-07-11T12:00:00.000000Z`) AWS IoT SiteWise 供 尋找異常行為。

第 **3 列**代表 **2024 年 7 月 31** 日的維護事件，有 **12 小時的時段** （從 `2024-07-31T00:00:00.000000Z`到 `2024-07-31T12:00:00.000000Z`) AWS IoT SiteWise 供 尋找異常行為。

AWS IoT SiteWise 會使用所有這些時段來訓練和評估模型，以識別這些事件的異常行為。請注意，並非所有事件都是可偵測的，而且結果高度取決於基礎資料的品質和特性。

如需抽樣最佳實務的詳細資訊，請參閱 [最佳實務](ano-best-practices.md)。

### 資料標記步驟
<a name="label-data-steps"></a>
+ 根據標記資料先決條件中的[標記先決條件](anomaly-prerequisites.md#label-data)來設定 Amazon S3 儲存貯體。
+ 將檔案上傳至您的標籤儲存貯體。
+ 將下列項目新增至 `anomaly-detection-training-payload.json`。
  + 在 檔案的 `labelInputConfiguration`區段中提供位置。`labels-bucket` 將 取代為儲存貯體名稱，並將 取代`files-prefix`為 file(s) 路徑或字首的任何部分。位置中的所有檔案都會進行剖析，並 （成功時） 用作標籤檔案。

```
{
    "exportDataStartTime": StartTime,
    "exportDataEndTime": EndTime,
    "labelInputConfiguration": 
      {
       "bucketName": "label-bucket",
       "prefix": "files-prefix"
      }
}
```

**Example 標籤組態的 ：**  

```
{
    "exportDataStartTime": 1717225200,
    "exportDataEndTime": 1722789360,
    "labelInputConfiguration": {
      "bucketName": "anomaly-detection-customer-data-278129555252-iad",
      "prefix": "Labels/model=b2d8ab3e-73af-48d8-9b8f-a290bef931b4/asset[d3347728-4796-4c5c-afdb-ea2f551ffe7a]/Lables.csv"
    }
}
```

## 評估模型
<a name="evaluating-model"></a>

 AWS IoT SiteWise 訓練模型的指標模型診斷是在個別事件中評估模型效能。在訓練期間， 會為輸入資料集中的每一列 AWS IoT SiteWise 產生異常分數和感應器貢獻診斷。較高的異常分數表示發生異常事件的可能性較高。

當您使用 [ExecuteAction](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_ExecuteAction.html) API 和`AWS/ANOMALY_DETECTION_TRAINING`動作類型訓練模型時，可以使用 Pointwise 診斷。

若要設定模型評估，
+ 根據標記[資料先決條件中的標記先決條件](anomaly-prerequisites.md#label-data)來設定 Amazon S3 儲存貯體。
+ 將下列項目新增至 `anomaly-detection-training-payload.json`。
  + 針對用於評估模型效能的視窗中的資料，提供 `evaluationStartTime`和 `evaluationEndTime`（兩者皆以 epoch 秒為單位）。
  + 提供 Amazon S3 儲存貯體位置 (`resultDestination`)，以便將評估診斷寫入其中。

**注意**  
模型評估間隔 (`dataStartTime` 到 `dataEndtime`) 必須重疊或連續於訓練間隔。不允許任何差距。

```
{
  "exportDataStartTime": StartTime,
  "exportDataEndTime": EndTime,
  "modelEvaluationConfiguration": {
    "dataStartTime": evaluationStartTime,
    "dataEndTime": evaluationEndTime
    "resultDestination": {
      "bucketName": "s3BucketName",
      "prefix": "bucketPrefix"
    }
  }
}
```

**Example 模型評估組態的 ：**  

```
{
  "exportDataStartTime": 1717225200,
  "exportDataEndTime": 1722789360,
  "modelEvaluationConfiguration": {
    "dataStartTime": 1722789360,
    "dataEndTime": 1725174000,
    "resultDestination": {
      "bucketName": "anomaly-detection-customer-data-278129555252-iad",
      "prefix": "Evaluation/asset[d3347728-4796-4c5c-afdb-ea2f551ffe7a]/1747681026-evaluation_results.jsonl"
    }
  }
}
```

## 產生模型指標
<a name="generating-model-metrics"></a>

模型指標可讓您全面了解訓練過的異常偵測模型的效能和品質。訓練程序會自動產生這些指標，並將其發佈到您指定的 Amazon S3 儲存貯體，使其在重新訓練工作流程中可輕鬆進行分析、模型比較和提升決策。

### 了解模型指標
<a name="understanding-model-metrics"></a>

訓練程序會自動產生模型指標，並提供下列詳細資訊：
+ **模型效能**：有標籤資料可用時的精確度、召回率和 AUC 等量化測量
+ **資料品質**：所使用訓練資料的相關資訊和涵蓋的期間
+ **事件偵測**：已識別異常和已標記事件的統計資料
+ **模型比較**：重新訓練期間不同模型版本之間的比較指標

### 設定模型指標目的地
<a name="configuring-model-metrics-destination"></a>

若要啟用模型指標產生，請設定發佈指標的 Amazon S3 目的地。

1. 根據 設定 Amazon S3 儲存貯體[模型評估先決條件](anomaly-prerequisites.md#prerequisites-model-evaluation)。

1. 將以下內容新增至您的訓練動作承載，以指定應存放模型指標的位置：

   ```
   {
       "trainingMode": "TRAIN_MODEL",
       "exportDataStartTime": StartTime,
       "exportDataEndTime": EndTime,
       "modelMetricsDestination": {
           "bucketName": "bucket-name",
           "prefix": "prefix"
       }
   }
   ```  
**Example 模型指標組態範例**  

   ```
   {
       "exportDataStartTime": 1717225200,
       "exportDataEndTime": 1722789360,
       "modelMetricsDestination": {
           "bucketName": "anomaly-detection-metrics-bucket-123456789012-iad",
           "prefix": "ModelMetrics/computation-model-id/asset-id/training-metrics.json"
       }
   }
   ```

### 設定模型指標以重新訓練
<a name="configuring-model-metrics-retraining"></a>

當您設定重新訓練排程時，需要模型指標目的地，才能啟用全面的模型效能追蹤和比較：

```
{
    "trainingMode": "START_RETRAINING_SCHEDULER",
    "modelMetricsDestination": {
        "bucketName": "bucket-name",
        "prefix": "prefix"
    },
    "retrainingConfiguration": {
        "lookbackWindow": "P180D",
        "promotion": "SERVICE_MANAGED",
        "retrainingFrequency": "P30D",
        "retrainingStartDate": "StartDate"
    }
}
```Parameters

`bucketName`  
存放模型指標的 Amazon S3 儲存貯體

`prefix`  
用於組織模型指標檔案的 Amazon S3 字首/路徑

### 模型指標結構
<a name="model-metrics-structure"></a>

模型指標會以 JSON 檔案的形式儲存在 Amazon S3 儲存貯體中，結構如下：

```
{
    "labeled_ranges": [],
    "labeled_event_metrics": {
        "num_labeled": 0,
        "num_identified": 0,
        "total_warning_time_in_seconds": 0
    },
    "predicted_ranges": [],
    "unknown_event_metrics": {
        "num_identified": 0,
        "total_duration_in_seconds": 0
    },
    "data_start_time": "2023-11-01",
    "data_end_time": "2023-12-31",
    "labels_present": false,
    "model_version_metrics": {
        "precision": 1.0,
        "recall": 1.0,
        "mean_fractional_lead_time": 0.7760964912280702,
        "auc": 0.5971207364893062
    }
}
```關鍵指標

`labeled_ranges`  
在訓練期間提供標記異常的時間範圍

`labeled_event_metrics`  
有關模型識別已知標記事件的程度的統計資料

`num_labeled`  
訓練資料中標記的事件總數

`num_identified`  
模型正確識別的標記事件數量

`total_warning_time_in_seconds`  
模型為標記的事件花費在警告狀態的總時間

`predicted_ranges`  
模型在評估期間預測異常的時間範圍

`unknown_event_metrics`  
有關未標記資料中偵測到異常的統計資料

`data_start_time / data_end_time`  
訓練資料涵蓋的時間範圍

`labels_present`  
布林值，指出訓練期間是否使用已標記的資料

`model_version_metrics`  
用於模型比較的其他版本特定指標

### 標記模型的進階指標
<a name="advanced-metrics-labeled-models"></a>

當您在訓練期間提供標記的資料時，Amazon S3 檔案中會包含其他效能指標：
+ **召回**：與您在相同期間標記的事件 AWS IoT SiteWise 正確識別的事件比例。例如，您可能已標記 10 個事件，但 AWS IoT SiteWise 只識別其中 9 個。在這種情況下，召回率為 90%。
+ **精確度**：真陽性與已識別事件總數的比例。例如，如果 AWS IoT SiteWise 識別 10 個事件，但其中只有 7 個事件對應至您標記的事件，則精確度為 70%。
+ **MeanFractionalLeadTime**：測量平均 AWS IoT SiteWise 偵測每個事件的速度 （相對於事件的長度）。例如，您設施的典型事件可能持續 10 小時。平均而言，模型可能需要 3 小時才能識別事件。在此情況下，平均分數前置時間為 0.7。
+ **AUC**：曲線下面積 (AUC) 測量機器學習模型預測正面範例比負面範例更高分數的能力。介於 0 和 1 之間的值，表示模型在資料集中分隔類別的能力有多好。值 1 表示它能夠完美地分隔類別。

### 模型提升和指標
<a name="model-promotion-metrics"></a>

在重新訓練工作流程期間，存放在 Amazon S3 中的指標可實現明智的模型提升決策：

#### 受管模式 （自動提升）
<a name="managed-mode-promotion"></a>
+ 系統會使用 Amazon S3 儲存的資料，在新舊模型版本之間自動比較指標
+ 根據改善的效能指標提升模型
+ 提升決策包括與指標一起存放的特定原因代碼：
  + `AUTO_PROMOTION_SUCCESSFUL`：新的模型指標優於目前的版本
  + `MODEL_METRICS_DIDNT_IMPROVE`：新模型效能未改善
  + `POOR_MODEL_QUALITY_DETECTED`：新模型的品質評估不佳

#### 手動模式 （客戶控制提升）
<a name="manual-mode-promotion"></a>
+ 您可以從 Amazon S3 下載和分析詳細指標，以做出提升決策
+ 所有歷史模型版本及其指標仍可在 Amazon S3 中存取
+ 您可以使用 Amazon S3 儲存的指標建置自訂儀表板和分析工具