

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Tentukan Rentang Hyperparameter
<a name="automatic-model-tuning-define-ranges"></a>

Panduan ini menunjukkan cara menggunakan SageMaker API untuk menentukan rentang hyperparameter. Ini juga menyediakan daftar jenis penskalaan hyperparameter yang dapat Anda gunakan.

Memilih hyperparameter dan rentang secara signifikan mempengaruhi kinerja pekerjaan tuning Anda. Penyetelan hyperparameter menemukan nilai hyperparameter terbaik untuk model Anda dengan mencari rent [ ang ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-HyperParameterRanges) nilai yang Anda tentukan untuk setiap hyperparameter yang dapat disetel. Anda juga dapat menentukan hingga 100 hyperparameter [ statis ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-StaticHyperParameters) yang tidak berubah selama pekerjaan penyetelan. Anda dapat menggunakan hingga 100 hyperparameter secara total (statis \+ dapat disetel). Untuk panduan memilih hyperparameter dan rentang, lihat[Praktik Terbaik untuk Penyetelan Hyperparameter](automatic-model-tuning-considerations.md). Anda juga dapat menggunakan autotune untuk menemukan pengaturan pekerjaan penyetelan yang optimal. Untuk informasi selengkapnya, lihat bagian ** Autotune ** berikut.

**catatan**  
SageMaker AI Automatic Model Tuning (AMT) dapat menambahkan hyperparameter tambahan yang berkontribusi pada batas total 100 hyperparameter. Saat ini, untuk meneruskan metrik tujuan Anda ke pekerjaan penyetelan untuk digunakan selama pelatihan, SageMaker AI menambahkan `_tuning_objective_metric` secara otomatis.

## Hyperparameter statis
<a name="automatic-model-tuning-define-ranges-static"></a>

Gunakan hyperparameter statis untuk kasus berikut:    Jika Anda memiliki pengetahuan latar belakang yang memandu Anda untuk memilih nilai konstan.   Jika Anda tidak ingin menjelajahi rentang nilai untuk hyperparameter.   Misalnya, Anda dapat menggunakan AMT untuk menyetel model Anda menggunakan `param1` (parameter yang dapat disetel) dan `param2` (parameter statis). Jika Anda melakukannya, maka gunakan ruang pencarian `param1` yang terletak di antara dua nilai, dan berikan `param2` sebagai hyperparameter statis, sebagai berikut.

```
param1: ["range_min","range_max"]
param2: "static_value"
```

Hyperparameter statis memiliki struktur sebagai berikut:

```
"StaticHyperParameters": {
    "objective" : "reg:squarederror",
    "dropout_rate": "0.3"
}
```

Anda dapat menggunakan Amazon SageMaker API untuk menentukan pasangan nilai kunci di [ StaticHyperParameters ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-StaticHyperParameters) bidang `HyperParameterTrainingJobDefinition` parameter yang Anda berikan ke [ CreateHyperParameterTuningJob ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html) operasi.

## Hyperparameter dinamis
<a name="automatic-model-tuning-define-ranges-dynamic"></a>

Anda dapat menggunakan SageMaker API untuk menentukan rentang [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-HyperParameterRanges](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-HyperParameterRanges) hyperparameter. Tentukan nama hyperparameter dan rentang nilai di `ParameterRanges` bidang `HyperParameterTuningJobConfig` parameter yang Anda berikan ke [`CreateHyperParameterTuningJob`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateHyperParameterTuningJob.html) operasi. 

`ParameterRanges`Bidang ini memiliki tiga subbidang: kategoris, integer, dan kontinu. Anda dapat menentukan hingga 30 total (kategoris \+ integer \+ kontinu) hyperparameter yang dapat disetel untuk dicari. 

**catatan**  
Setiap hyperparameter kategoris dapat memiliki paling banyak 30 nilai yang berbeda.

Hyperparameter dinamis memiliki struktur sebagai berikut:

```
"ParameterRanges": {
    "CategoricalParameterRanges": [
        {
            "Name": "tree_method",
            "Values": ["auto", "exact", "approx", "hist"]
        }
    ],
    "ContinuousParameterRanges": [
        {
            "Name": "eta",
            "MaxValue" : "0.5",
            "MinValue": "0",
            "ScalingType": "Auto"
        }
    ],
    "IntegerParameterRanges": [
        {
            "Name": "max_depth",
            "MaxValue": "10",
            "MinValue": "1",
            "ScalingType": "Auto"
        }
    ]
}
```

Jika Anda membuat pekerjaan penyetelan dengan `Grid` strategi, Anda hanya dapat menentukan nilai kategoris. Anda tidak perlu menyediakan`MaxNumberofTrainingJobs`. Nilai ini disimpulkan dari jumlah total konfigurasi yang dapat dihasilkan dari parameter kategoris Anda. Jika ditentukan, nilai `MaxNumberOfTrainingJobs` harus sama dengan jumlah total kombinasi kategoris yang berbeda yang mungkin.

## Tuning Otomatis
<a name="automatic-model-tuning-define-ranges-autotune"></a>

Untuk menghemat waktu dan sumber daya mencari rentang hyperparameter, sumber daya atau metrik objektif, autotune dapat secara otomatis menebak nilai optimal untuk beberapa bidang hyperparameter. Gunakan autotune untuk menemukan nilai optimal untuk bidang berikut:
+ **[ParameterRanges](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-ParameterRanges)**— Nama dan rentang hyperparameter yang dapat dioptimalkan oleh pekerjaan penyetelan.
+ **[ResourceLimits](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ResourceLimits.html)**— Sumber daya maksimum yang akan digunakan dalam pekerjaan penyetelan. Sumber daya ini dapat mencakup jumlah maksimum pekerjaan pelatihan, runtime maksimum pekerjaan penyetelan, dan jumlah maksimum pekerjaan pelatihan yang dapat dijalankan pada saat yang bersamaan.
+ **[TrainingJobEarlyStoppingType](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-TrainingJobEarlyStoppingType)**Bendera yang menghentikan pekerjaan pelatihan jika pekerjaan tidak meningkat secara signifikan terhadap metrik objektif. Defaultnya diaktifkan. Untuk informasi selengkapnya, lihat [Hentikan Pekerjaan Pelatihan Lebih Awal](automatic-model-tuning-early-stopping.md).
+ **[RetryStrategy](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTrainingJobDefinition.html#sagemaker-Type-HyperParameterTrainingJobDefinition-RetryStrategy)**— Jumlah kali untuk mencoba kembali pekerjaan pelatihan. Non-zero nilai untuk `RetryStrategy` dapat meningkatkan kemungkinan bahwa pekerjaan Anda akan selesai dengan sukses.
+ **[Strategi ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HyperParameterTuningJobConfig.html#sagemaker-Type-HyperParameterTuningJobConfig-Strategy) ** — Menentukan bagaimana penyetelan hyperparameter memilih kombinasi nilai hyperparameter yang akan digunakan untuk pekerjaan pelatihan yang diluncurkan.
+ **[ConvergenceDetected](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ConvergenceDetected.html)**- Bendera untuk menunjukkan bahwa Automatic Model Tuning (AMT) telah mendeteksi konvergensi model.

Untuk menggunakan autotune, lakukan hal berikut:

1. Tentukan hyperparameter dan nilai contoh di `AutoParameters` bidang [ ParameterRanges ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ParameterRanges.html) API.

1. Aktifkan autotune.

AMT akan menentukan apakah hyperparameter dan nilai contoh Anda memenuhi syarat untuk autotune. Hyperparameter yang dapat digunakan dalam autotune secara otomatis ditetapkan ke jenis rentang parameter yang sesuai. Kemudian, AMT menggunakan `ValueHint` untuk memilih rentang optimal untuk Anda. Anda dapat menggunakan `DescribeHyperParameterTrainingJob` API untuk melihat rentang ini.

Contoh berikut menunjukkan cara mengonfigurasi pekerjaan penyetelan yang menggunakan autotune. Dalam contoh konfigurasi, hyper `max_depth` parameter `ValueHint` mengandung nilai contoh`4`.

```
config = {
    'Autotune': {'Mode': 'Enabled'},
    'HyperParameterTuningJobName':'my-autotune-job',
    'HyperParameterTuningJobConfig': {
        'HyperParameterTuningJobObjective': {'Type': 'Minimize', 'MetricName': 'validation:rmse'},
        'ResourceLimits': {'MaxNumberOfTrainingJobs': 5, 'MaxParallelTrainingJobs': 1},
        'ParameterRanges': {       
            'AutoParameters': [
                {'Name': 'max_depth', 'ValueHint': '4'}
            ]
        }
    },
    'TrainingJobDefinition': {
    .... }
```

Melanjutkan contoh sebelumnya, pekerjaan penyetelan dibuat setelah konfigurasi sebelumnya disertakan dalam panggilan ke `CreateHyperParameterTuningJob` API. Kemudian, autotune mengubah hyperparameter max\_deep menjadi hyperparameter. AutoParameters `IntegerParameterRanges` Respons berikut dari `DescribeHyperParameterTrainingJob` API menunjukkan bahwa yang `IntegerParameterRanges` optimal `max_depth` adalah antara `2` dan`8`.

```
{
    'HyperParameterTuningJobName':'my_job',
    'HyperParameterTuningJobConfig': {
        'ParameterRanges': {
            'IntegerParameterRanges': [
                {'Name': 'max_depth', 'MinValue': '2', 'MaxValue': '8'},
            ],
        }
    },
    'TrainingJobDefinition': {
        ...
    },
    'Autotune': {'Mode': 'Enabled'}
    
}
```

## Jenis penskalaan hyperparameter
<a name="scaling-type"></a>

Untuk rentang hyperparameter integer dan kontinu, Anda dapat memilih skala yang ingin Anda gunakan penyetelan hyperparameter. Misalnya, untuk mencari rentang nilai, Anda dapat menentukan nilai untuk `ScalingType` bidang rentang hyperparameter. Anda dapat memilih dari jenis penskalaan hyperparameter berikut:

Otomatis  
SageMaker Penyetelan hyperparameter AI memilih skala terbaik untuk hyperparameter.

Linear  
Penyetelan hyperparameter mencari nilai-nilai dalam rentang hyperparameter dengan menggunakan skala linier. Biasanya, Anda memilih ini jika kisaran semua nilai dari yang terendah ke yang tertinggi relatif kecil (dalam satu urutan besarnya). Penelusuran nilai secara seragam dari rentang memberikan eksplorasi yang masuk akal dari seluruh rentang.

Logaritmik  
Penyetelan hyperparameter mencari nilai-nilai dalam rentang hyperparameter dengan menggunakan skala logaritmik.  
Penskalaan logaritmik hanya berfungsi untuk rentang yang memiliki nilai lebih besar dari 0.  
Pilih penskalaan logaritmik saat Anda mencari rentang yang mencakup beberapa urutan besarnya.   
Misalnya, jika Anda menyetel [Menyetel model pembelajar linier](linear-learner.md) model, dan Anda menentukan rentang nilai antara .0001 dan 1.0 untuk `learning_rate` hyperparameter, pertimbangkan hal berikut: Mencari secara seragam pada skala logaritmik memberi Anda sampel yang lebih baik dari seluruh rentang daripada mencari pada skala linier. Ini karena pencarian pada skala linier, rata-rata, akan mencurahkan 90 persen dari anggaran pelatihan Anda hanya untuk nilai antara .1 dan 1,0. Akibatnya, itu hanya menyisakan 10 persen dari anggaran pelatihan Anda untuk nilai antara .0001 dan .1.

`ReverseLogarithmic`  
Penyetelan hyperparameter mencari nilai-nilai dalam rentang hyperparameter dengan menggunakan skala logaritmik terbalik. Penskalaan logaritmik terbalik hanya didukung untuk rentang hiperparameter kontinu. Ini tidak didukung untuk rentang hyperparameter integer.  
Pilih penskalaan logaritmik terbalik saat Anda mencari rentang yang sangat sensitif terhadap perubahan kecil yang sangat dekat dengan 1.  
Penskalaan logaritmik terbalik hanya berfungsi untuk rentang yang seluruhnya berada dalam kisaran 0<=x<1.0.

Untuk contoh notebook yang menggunakan penskalaan hyperparameter, lihat contoh hyperparameter [ Amazon SageMaker AI ini di. GitHub ](https://github.com/awslabs/amazon-sagemaker-examples/blob/master/hyperparameter_tuning)