Pelatihan menggunakan algoritma pembelajar linear bawaan

Pelatihan dengan algoritma bawaan di AI Platform Training memungkinkan Anda mengirimkan set data dan melatih model tanpa menulis kode pelatihan apa pun. Halaman ini menjelaskan cara kerja algoritma pembelajar linear bawaan, dan cara menggunakannya.

Ringkasan

Algoritma bawaan ini melakukan prapemrosesan dan pelatihan:

  1. Pemrosesan pra-pelatihan: AI Platform Training memproses campuran data kategoris dan numerik Anda menjadi set data yang semuanya numerik untuk menyiapkannya untuk pelatihan.
  2. Pelatihan: Dengan menggunakan set data dan parameter model yang Anda berikan, Pelatihan AI Platform menjalankan pelatihan menggunakan Estimator Linear TensorFlow.

Batasan

Fitur berikut tidak didukung untuk pelatihan dengan algoritma pembelajar linear bawaan:

Jenis mesin yang didukung

Tingkat skala dan jenis mesin AI Platform Training berikut didukung:

Memformat data input

Setiap baris set data mewakili satu instance, dan setiap kolom set data mewakili nilai fitur. Kolom target mewakili nilai yang ingin Anda prediksi.

Menyiapkan file CSV

Data input Anda harus berupa file CSV dengan encoding UTF-8. Jika data pelatihan Anda hanya terdiri dari nilai kategoris dan numerik, Anda dapat menggunakan modul prapemrosesan kami untuk mengisi nilai numerik yang hilang, memisahkan set data, dan menghapus baris dengan lebih dari 10% nilai yang hilang. Jika tidak, Anda dapat menjalankan pelatihan tanpa mengaktifkan pra-pemrosesan otomatis.

Anda harus menyiapkan file CSV input untuk memenuhi persyaratan berikut:

  • Hapus baris header. Baris header berisi label untuk setiap kolom. Hapus baris header untuk menghindari pengirimannya bersama dengan instance data lainnya sebagai bagian dari data pelatihan.
  • Pastikan kolom target adalah kolom pertama. Kolom target berisi nilai yang Anda coba prediksi. Untuk algoritma klasifikasi, semua nilai di kolom target adalah class atau kategori. Untuk algoritma regresi, semua nilai dalam kolom target adalah nilai numerik.

Menangani nilai bilangan bulat

Makna nilai bilangan bulat dapat ambigu, yang membuat kolom nilai bilangan bulat bermasalah dalam prapemrosesan otomatis. Pelatihan AI Platform otomatis menentukan cara menangani nilai bilangan bulat. Secara default:

  • Jika setiap nilai bilangan bulat bersifat unik, kolom akan diperlakukan sebagai kunci instance.
  • Jika hanya ada beberapa nilai bilangan bulat unik, kolom akan diperlakukan sebagai kategoris.
  • Jika tidak, nilai dalam kolom akan dikonversi menjadi float dan diperlakukan sebagai numerik.

Untuk mengganti penentuan default ini:

  • Jika data harus diperlakukan sebagai numerik, konversikan semua nilai bilangan bulat di kolom ke floating point, misalnya. {101.0, 102.0, 103.0}
  • Jika data harus diperlakukan sebagai kategoris, tambahkan awalan non-numerik ke semua nilai bilangan bulat dalam kolom, misalnya. {code_101, code_102, code_103}

Memeriksa izin bucket Cloud Storage

Untuk menyimpan data, gunakan bucket Cloud Storage di project Google Cloud yang sama dengan yang Anda gunakan untuk menjalankan tugas AI Platform Training. Jika tidak, berikan akses Pelatihan AI Platform ke bucket Cloud Storage tempat data Anda disimpan.

Mengirim tugas pelatihan linear learner

Bagian ini menjelaskan cara mengirimkan tugas pelatihan menggunakan algoritma pemelajar linear bawaan.

Anda dapat menemukan penjelasan singkat tentang setiap hyperparameter dalam konsol Google Cloud, dan penjelasan yang lebih komprehensif di referensi untuk algoritma pembelajar linear bawaan.

Konsol

  1. Buka halaman AI Platform Training Jobs di konsol Google Cloud:

    Halaman Lowongan AI Platform Training

  2. Klik tombol Tugas pelatihan baru. Dari opsi yang ditampilkan di bawah, klik Pelatihan algoritma bawaan.

  3. Di halaman Create a new training job, pilih linear learner, lalu klik Next.

  4. Untuk mempelajari lebih lanjut semua parameter yang tersedia, ikuti link di konsol Google Cloud dan lihat referensi pembelajaran linear bawaan untuk mengetahui detail selengkapnya.

gcloud

  1. Tetapkan variabel lingkungan untuk tugas Anda, isi [VALUES-IN-BRACKETS] dengan nilai Anda sendiri:

       # Specify the name of the Cloud Storage bucket where you want your
       # training outputs to be stored, and the Docker container for
       # your built-in algorithm selection.
       BUCKET_NAME='BUCKET_NAME'
       IMAGE_URI='gcr.io/cloud-ml-algos/linear_learner_cpu:latest'
    
       # Specify the Cloud Storage path to your training input data.
       TRAINING_DATA='gs://$BUCKET_NAME/YOUR_FILE_NAME.csv'
    
       DATE="$(date '+%Y%m%d_%H%M%S')"
       MODEL_NAME='MODEL_NAME'
       JOB_ID="${MODEL_NAME}_${DATE}"
    
       JOB_DIR="gs://${BUCKET_NAME}/algorithm_training/${MODEL_NAME}/${DATE}"
    
  2. Kirim tugas pelatihan menggunakan gcloud ai-platform jobs training submit. Sesuaikan contoh umum ini agar berfungsi dengan set data Anda:

       gcloud ai-platform jobs submit training $JOB_ID \
          --master-image-uri=$IMAGE_URI --scale-tier=BASIC --job-dir=$JOB_DIR \
          -- \
          --preprocess --model_type=$MODEL_TYPE --batch_size=250 \
          --learning_rate=0.1 --max_steps=1000 \
          --training_data_path=$TRAINING_DATA
    
  3. Pantau status tugas pelatihan Anda dengan melihat log dengan gcloud. Lihat gcloud ai-platform jobs describe dan gcloud ai-platform jobs stream-logs.

       gcloud ai-platform jobs describe ${JOB_ID}
       gcloud ai-platform jobs stream-logs ${JOB_ID}
    

Cara kerja prapemrosesan

Pra-pemrosesan otomatis berfungsi untuk data kategoris dan numerik. Rutinitas prapemrosesan terlebih dahulu menganalisis, lalu mengubah data Anda.

Analisis

Pertama, AI Platform Training secara otomatis mendeteksi jenis data setiap kolom, mengidentifikasi cara setiap kolom harus diperlakukan, dan menghitung beberapa statistik data dalam kolom. Informasi ini diambil dalam file metadata.json.

AI Platform Training menganalisis jenis kolom target untuk mengidentifikasi apakah set data yang diberikan untuk regresi atau klasifikasi. Jika analisis ini bertentangan dengan pilihan Anda untuk model_type, hal ini akan menghasilkan error. Jelaskan secara eksplisit cara kolom target harus diperlakukan dengan memformat data Anda dengan jelas dalam kasus yang ambigu.

  • Jenis: Kolom dapat berupa numerik atau kategoris.

  • Penanganan: Pelatihan AI Platform mengidentifikasi cara menangani setiap kolom sebagai berikut:

    • Jika kolom menyertakan satu nilai di semua baris, kolom tersebut akan diperlakukan sebagai konstanta.
    • Jika kolom bersifat kategoris, dan menyertakan nilai unik di semua baris, kolom tersebut akan diperlakukan sebagai row_identifier.
    • Jika kolom bersifat numerik dengan nilai float, atau jika bersifat numerik dengan nilai bilangan bulat dan berisi banyak nilai unik, kolom tersebut akan diperlakukan sebagai numerik.
    • Jika kolom bersifat numerik dengan nilai bilangan bulat, dan berisi sedikit nilai unik, kolom tersebut akan diperlakukan sebagai kolom kategoris dengan nilai bilangan bulat sebagai identitas atau kosakata.
      • Kolom dianggap memiliki sedikit nilai unik jika jumlah nilai unik dalam kolom kurang dari 20% jumlah baris dalam set data input.
    • Jika kolom bersifat kategoris dengan kardinalitas tinggi, kolom tersebut akan diperlakukan dengan hashing, dengan jumlah bucket hash sama dengan akar kuadrat dari jumlah nilai unik dalam kolom.
      • Kolom kategoris dianggap memiliki kardinalitas tinggi jika jumlah nilai unik lebih besar dari akar kuadrat jumlah baris dalam set data.
    • Jika kolom bersifat kategoris, dan jumlah nilai unik kurang dari atau sama dengan akar kuadrat jumlah baris dalam set data, kolom tersebut akan diperlakukan sebagai kolom kategoris normal dengan kosakata.
  • Statistik: AI Platform Training menghitung statistik berikut, berdasarkan jenis kolom dan perlakuan yang diidentifikasi, untuk digunakan dalam transformasi kolom pada tahap selanjutnya.

    • Jika kolom bersifat numerik, nilai rata-rata dan varians akan dihitung.
    • Jika kolom bersifat kategoris, dan perlakuannya adalah identitas atau kosakata, nilai yang berbeda akan diekstrak dari kolom.
    • Jika kolom bersifat kategoris, dan perlakuannya adalah hashing, jumlah bucket hash dihitung sehubungan dengan kardinalitas kolom.

Transformasi

Setelah analisis awal set data selesai, AI Platform Training akan mengubah data Anda berdasarkan jenis, perlakuan, dan statistik yang diterapkan ke set data Anda. AI Platform Training melakukan transformasi dalam urutan berikut:

  1. Membagi set data pelatihan menjadi set data validasi dan pengujian jika Anda menentukan persentase pemisahan.
  2. Menghapus baris yang memiliki lebih dari 10% fitur yang tidak ada.
  3. Mengisi nilai numerik yang tidak ada menggunakan nilai rata-rata kolom.

Contoh transformasi

Baris dengan 10% nilai yang hilang akan dihapus. Dalam contoh berikut, asumsikan baris memiliki 10 nilai. Setiap contoh baris dipotong untuk memudahkan.

Masalah baris Nilai asli Nilai yang diubah Penjelasan
Contoh baris tanpa nilai yang hilang [3, 0,45, ...,
'buah', 0, 1]
[3, 0,45, ...,
1, 0, 0, 0, 1]
String 'buah' diubah menjadi nilai "1, 0, 0" dalam encoding one-hot. Hal ini terjadi nanti di grafik TensorFlow.
Terlalu banyak nilai yang tidak ada [3, 0,45, ...,
'buah', __, __]
Baris dihapus Lebih dari 10% nilai dalam baris tidak ada.
Nilai numerik tidak ada [3, 0,45, ...,
'buah', 0, __]
[3, 0,45, ...,
1, 0, 0, 0, 0,54]
  • Nilai rata-rata untuk kolom akan menggantikan nilai numerik yang tidak ada. Dalam contoh ini, nilai rata-ratanya adalah 0,54.
  • String 'buah' diubah menjadi nilai "1, 0, 0" dalam encoding one-hot. Hal ini terjadi nanti di grafik TensorFlow.
Nilai kategoris tidak ada [3, 0,45, ...,
__, 0, 1]
[3, 0,45, ...,
0, 0, 0, 0, 1]
  • Nilai kategoris yang tidak ada diubah menjadi nilai "0, 0, 0" dalam encoding one-hot. Hal ini terjadi nanti dalam grafik TensorFlow.

Kolom fitur

Selama transformasi, kolom tidak diproses. Sebagai gantinya, metadata yang dihasilkan selama analisis akan diteruskan ke AI Platform Training untuk membuat kolom fitur yang sesuai:

Jenis kolom Perlakuan kolom Kolom fitur yang dihasilkan
Numerik (Semua jenis perlakuan kolom) tf.feature_column.numeric_column

Nilai rata-rata dan varian digunakan untuk menstandarkan nilai:
new_value = (input_value - mean) / sqrt(variance)

Kategoris Identitas tf.feature_column.categorical_column_with_identity
Kategoris Kosakata tf.feature_column.categorical_column_with_vocabulary_list
Kategoris Hashing tf.feature_column.categorical_column_with_hash_bucket
Kategoris ID Konstanta atau Baris Diabaikan. Tidak ada kolom fitur yang dibuat.

Setelah prapemrosesan otomatis selesai, AI Platform Training akan mengupload set data yang telah diproses kembali ke bucket Cloud Storage di direktori yang Anda tentukan dalam permintaan tugas.

Referensi pembelajaran lebih lanjut