Pelatihan menggunakan algoritma pelajar linear bawaan

Pelatihan dengan algoritma bawaan di Pelatihan AI Platform memungkinkan Anda mengirim 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 pra-pemrosesan dan pelatihan:

  1. Pra-pemrosesan: Pelatihan AI Platform memproses campuran data kategoris dan numerik Anda menjadi semua set data numerik guna mempersiapkannya untuk pelatihan.
  2. Pelatihan: Dengan menggunakan set data dan parameter model yang Anda berikan, AI Platform Training menjalankan pelatihan menggunakan Linear Estimator TensorFlow.

Batasan

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

Jenis mesin yang didukung

Tingkat skala dan jenis mesin Pelatihan AI Platform 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 harus berupa file CSV dengan encoding UTF-8. Jika data pelatihan Anda hanya terdiri dari nilai kategoris dan numerik, Anda dapat menggunakan modul pra-pemrosesan kami untuk mengisi nilai numerik yang hilang, membagi 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 agar tidak mengirimkannya bersama 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 dalam kolom target adalah class atau kategori. Untuk algoritma regresi, semua nilai dalam kolom target adalah nilai numerik.

Menangani nilai bilangan bulat

Arti nilai bilangan bulat dapat ambigu, yang membuat kolom nilai bilangan bulat bermasalah dalam pra-pemrosesan otomatis. AI Platform Training secara otomatis menentukan cara menangani nilai bilangan bulat. Secara default:

  • Jika setiap nilai bilangan bulat 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, konversi semua nilai bilangan bulat dalam kolom menjadi floating point, mis. {101,0, 102,0, 103,0}
  • Jika data harus diperlakukan sebagai kategoris, tambahkan awalan non-numerik ke semua nilai bilangan bulat dalam kolom, misalnya {kode_101, kode_102, kode_103}

Memeriksa izin bucket Cloud Storage

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

Mengirim tugas pelatihan pembelajar linear

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

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

Konsol

  1. Buka halaman Tugas Pelatihan AI Platform di Konsol Google Cloud:

    Halaman Tugas Pelatihan AI Platform

  2. Klik tombol Tugas pelatihan baru. Dari opsi yang ditampilkan di bawah, klik Pelatihan algoritme 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 pelajar linear bawaan untuk mengetahui detail lebih lanjut.

gcloud

  1. Tetapkan variabel lingkungan untuk tugas Anda, dengan mengisi [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 untuk digunakan dengan {i>dataset<i} 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 menggunakan 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 pra-pemrosesan

Prapemrosesan otomatis bekerja untuk data kategoris dan numerik. Rutinitas pra-pemrosesan menganalisis terlebih dahulu, lalu mengubah data Anda.

Analisis

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

AI Platform Training menganalisis jenis kolom target untuk mengidentifikasi apakah set data tertentu ditujukan untuk regresi atau klasifikasi. Jika analisis ini bentrok dengan pilihan Anda untuk model_type, akan terjadi error. Jelaskan cara memperlakukan kolom target dengan memformat data secara jelas dalam kasus yang ambigu.

  • Jenis: Kolom dapat berupa numerik atau kategori.

  • Perlakuan: Pelatihan AI Platform mengidentifikasi cara memperlakukan setiap kolom sebagai berikut:

    • Jika kolom mencakup satu nilai di semua baris, kolom tersebut diperlakukan sebagai konstanta.
    • Jika kolom bersifat kategoris, dan menyertakan nilai unik di semua baris, kolom tersebut akan diperlakukan sebagai row_identifier.
    • Jika kolom berupa numerik dengan nilai float, atau jika berupa 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 yang cukup, kolom tersebut akan diperlakukan sebagai kolom kategoris dengan nilai bilangan bulat berupa identitas atau kosakata.
      • Kolom dianggap memiliki beberapa nilai unik jika jumlah nilai unik dalam kolom kurang dari 20% dari jumlah baris dalam set data input.
    • Jika kolom merupakan kategoris dengan kardinalitas tinggi, kolom tersebut akan ditangani 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 diperlakukan sebagai kolom kategoris normal dengan kosakata.
  • Statistik: Pelatihan AI Platform menghitung statistik berikut, berdasarkan jenis kolom dan perlakuan yang diidentifikasi, untuk digunakan untuk mengubah kolom di tahap berikutnya.

    • Jika kolom berupa angka, nilai {i>mean<i} dan varians akan dihitung.
    • Jika kolom bersifat kategoris, dan perlakuannya adalah identitas atau kosakata, nilai yang berbeda diekstrak dari kolom.
    • Jika kolom bersifat kategoris, dan perlakuannya adalah hashing, jumlah bucket hash dihitung berdasarkan kardinalitas kolom.

Transformasi

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

  1. Memisahkan set data pelatihan menjadi set data validasi dan pengujian jika Anda menentukan persentase pemisahan.
  2. Menghapus baris yang memiliki lebih dari 10% fitur yang hilang.
  3. Mengisi nilai numerik yang hilang menggunakan nilai {i>mean<i} pada kolom.

Contoh transformasi

Baris berisi 10% nilai yang tidak ada akan dihapus. Pada contoh berikut, anggaplah baris memiliki 10 nilai. Setiap contoh baris dipotong agar lebih praktis.

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

Kolom fitur

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

Jenis kolom Perawatan 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 pra-pemrosesan 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