Di lab ini, Anda akan mempelajari ‘Halo Dunia' dasar machine learning. Anda akan membangun sistem yang dilatih berdasarkan data untuk menginferensikan aturan yang menentukan hubungan antar-angka, alih-alih memprogram aturan eksplisit dalam bahasa seperti Java atau C++.
Tujuan
Di lab ini, Anda akan mempelajari cara:
Menyiapkan lingkungan pengembangan di notebook Jupyter
Mendesain model machine learning
Melatih jaringan neural
Menguji model
Penyiapan dan persyaratan
Sebelum mengklik tombol Start Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.
Pengantar
Pertimbangkan masalah berikut: Anda sedang membangun sistem yang menjalankan pengenalan aktivitas untuk pelacakan kebugaran. Anda mungkin memiliki akses ke kecepatan gerak seseorang dan mencoba menginferensikan aktivitasnya berdasarkan kecepatan ini menggunakan kondisi:
if(speed<4){
status=WALKING;
}
Anda dapat memperluas ini hingga berlari dengan kondisi lain:
Sekarang, pertimbangkan apa yang terjadi jika Anda ingin menyertakan aktivitas seperti golf? Kini, cara membuat aturan untuk menentukan aktivitas tersebut menjadi kurang begitu jelas.
// Now what?
Sangatlah sulit menulis program (yang diekspresikan dalam kode) yang membantu Anda mendeteksi aktivitas bermain golf.
Jadi, apa yang akan Anda lakukan? Anda dapat menggunakan machine learning untuk menyelesaikan masalah ini.
Apa itu machine learning?
Pada bagian sebelumnya, Anda mengalami masalah saat mencoba menentukan aktivitas kebugaran pengguna. Anda terbentur pada batasan terkait apa yang bisa dicapai dengan menulis lebih banyak kode karena kondisi yang Anda tulis harus lebih kompleks untuk mendeteksi aktivitas seperti golf.
Pertimbangkan membangun aplikasi dengan cara tradisional seperti yang ditunjukkan dalam diagram berikut:
Anda mengekspresikan aturan dalam bahasa pemrograman. Aturan ini bertindak berdasarkan data dan program Anda menyediakan jawaban. Dalam kasus pendeteksian aktivitas ini, aturan (kode yang Anda tulis untuk menentukan jenis aktivitas) bertindak berdasarkan data (kecepatan gerak seseorang) untuk menemukan jawaban -- nilai hasil dari fungsi untuk menentukan status aktivitas pengguna (jalan kaki, lari, bersepeda, dll.).
Proses untuk mendeteksi aktivitas ini melalui machine learning sangat mirip -- sumbunya saja yang berbeda:
Alih-alih mencoba menentukan aturan dan mengekspresikannya dalam bahasa pemrograman, Anda memberikan jawaban (biasanya disebut label) beserta datanya. Selanjutnya, machine learning akan menginferensikan aturan yang menentukan hubungan antara jawaban dan data. Misalnya, dalam konteks machine learning, skenario pendeteksian aktivitas Anda mungkin akan terlihat seperti ini:
Anda mengumpulkan banyak data dan melabelinya untuk dapat mengatakan "Seperti inilah jalan kaki", "Seperti inilah lari", dst. Selanjutnya, dari data tersebut, komputer dapat menginferensikan aturan yang menentukan apa saja pola unik yang menunjukkan aktivitas tertentu.
Selain menjadi metode alternatif untuk memprogram skenario ini, cara ini juga memberi Anda kemampuan untuk membuka skenario baru, misalnya bermain golf, yang mungkin tidak dapat dilakukan menggunakan pendekatan pemrograman tradisional berbasis aturan.
Dalam pemrograman tradisional, kode Anda dikompilasi menjadi program biner yang biasanya disebut program. Dalam machine learning, item yang Anda buat dari data dan label disebut model.
Jadi, jika Anda kembali ke diagram ini:
Pertimbangkan hasil diagram di atas sebagai model, yang digunakan seperti berikut saat runtime:
Anda meneruskan data ke model ini, dan model tersebut menggunakan aturan yang diinferensikannya dari pelatihan untuk menghasilkan prediksi -- yakni "Data itu sepertinya jalan kaki", "Data itu sepertinya bersepeda", dll.
Di lab ini, Anda akan membangun model 'Halo Dunia' sangat sederhana yang terbuat dari elemen penyusun yang dapat digunakan dalam skenario machine learning apa pun.
Tugas 1. Membuka notebook di Vertex AI Workbench
Di Konsol Google Cloud, pada Navigation menu (), klik Vertex AI > Workbench.
Cari instance lalu klik tombol Open JupyterLab.
Antarmuka JupyterLab untuk instance Workbench Anda akan terbuka di tab browser baru.
Menginstal TensorFlow dan paket tambahan
Dari menu Launcher, di bagian Other, pilih Terminal.
Periksa apakah lingkungan Python Anda sudah dikonfigurasi. Salin dan tempel perintah berikut di terminal.
python --version
Contoh output:
Python 3.10.14
Jalankan perintah berikut untuk menginstal paket TensorFlow.
pip3 install tensorflow
Untuk mengupgrade pip3, jalankan perintah berikut di terminal.
pip3 install --upgrade pip
Pylint adalah alat yang memeriksa error dalam kode Python, serta menandai masalah sintaksis dan gaya dalam kode sumber Python Anda.
Jalankan perintah berikut untuk menginstal paket pylint.
pip install -U pylint --user
Instal paket yang diperlukan untuk lab ini dalam file requirements.txt:
pip install -r requirements.txt
Lingkungan Anda berhasil disiapkan.
Tugas 2. Membuat model machine learning pertama Anda
Pertimbangkan rangkaian angka berikut. Dapatkah Anda memahami hubungan antara angka-angka tersebut?
X:
-1
0
1
2
3
4
Y:
-2
1
4
7
10
13
Jika Anda membaca dari kiri ke kanan, perhatikan bahwa nilai X bertambah 1 dan nilai Y terkaitnya bertambah 3. Jadi, hubungannya adalah Y=3X plus atau minus suatu nilai.
Lalu, perhatikan 0 di X dan lihat bahwa nilai Y terkaitnya adalah 1.
Dari kedua pengamatan ini, Anda dapat menyimpulkan bahwa hubungan antara dua rangkaian angka tersebut adalah Y=3X+1.
Kurang lebih seperti itulah Anda akan menggunakan kode untuk melatih model (disebut jaringan neural) guna menemukan pola dalam data.
Anda menggunakan data untuk melatih jaringan neural. Dengan memberinya serangkaian X dan serangkaian Y, jaringan neural akan dapat mengetahui hubungan antara data tersebut.
Membuat notebook baru dan mengimpor library
Klik ikon + di sebelah kiri Workbench untuk membuka Launcher baru.
Dari menu Launcher, di bagian Notebook, pilih Python3.
Anda akan melihat notebook Jupyter baru. Untuk informasi selengkapnya tentang cara menggunakan notebook Jupyter, lihat dokumentasi Notebook Jupyter.
Impor dan konfigurasi logging serta google-cloud-logging untuk Cloud Logging. Pada sel pertama, tambahkan kode berikut:
import logging
import google.cloud.logging as cloud_logging
from google.cloud.logging.handlers import CloudLoggingHandler
from google.cloud.logging_v2.handlers import setup_logging
cloud_logger = logging.getLogger('cloudLogger')
cloud_logger.setLevel(logging.INFO)
cloud_logger.addHandler(CloudLoggingHandler(cloud_logging.Client()))
cloud_logger.addHandler(logging.StreamHandler())
Impor tensorflow untuk melatih dan mengevaluasi model. Namai sebagai tf untuk memudahkan. Tambahkan kode berikut ke sel pertama.
# Import TensorFlow
import tensorflow as tf
Impor numpy guna mengurai data untuk tujuan proses debug. Namai sebagai np untuk memudahkan. Tambahkan kode berikut ke sel pertama.
# Import numpy
import numpy as np
Untuk menjalankan sel ini, klik tombol Run atau tekan Shift + Enter.
Simpan notebook. Klik File -> Save. Namai filenya sebagai model.ipynb, lalu klik OK.
Catatan: Anda dapat mengabaikan peringatan apa pun yang mungkin muncul dalam output.
Menyiapkan data
Berikutnya, siapkan data yang akan digunakan melatih model Anda. Di lab ini, Anda menggunakan 6 X dan 6 Y yang digunakan sebelumnya:
X:
-1
0
1
2
3
4
Y:
-2
1
4
7
10
13
Seperti yang Anda lihat, hubungan antara X dan Y adalah Y=3x+1, jadi jika X=1, Y=4, dst.
Library python yang disebut numpy menyediakan beragam struktur data jenis array yang merupakan cara standar defacto untuk menyuplai data. Untuk menggunakan struktur ini, tentukan nilai sebagai array dalam numpy menggunakan np.array([])
Di bagian ini, Anda akan mendesain model menggunakan TensorFlow.
Anda akan menggunakan algoritma machine learning yang disebut jaringan neural untuk melatih model. Anda akan membuat jaringan neural yang paling sederhana. Jaringan ini memiliki 1 lapisan, dan lapisan tersebut memiliki 1 neuron. Input jaringan neural ini hanya satu nilai pada satu waktu. Oleh karena itu, bentuk inputnya harus [1].
Catatan: Anda akan mempelajari lebih lanjut jaringan neural di lab mendatang dalam Quest ini.
Pada sel kedua, tambahkan kode berikut:
model = tf.keras.Sequential([tf.keras.layers.Dense(units=1, input_shape=[1])])
Mengompilasi model
Selanjutnya, Anda akan menulis kode untuk mengompilasi jaringan neural. Saat melakukannya, Anda harus menentukan 2 fungsi: loss (kerugian) dan optimizer (pengoptimal).
Jika Anda telah melihat banyak perhitungan matematika untuk machine learning, di sinilah biasanya Anda akan menggunakannya, tetapi tf.keras mengenkapsulasinya dengan baik sebagai fungsi untuk memudahkan Anda.
Dari pengamatan sebelumnya, Anda mengetahui bahwa hubungan antara rangkaian angka tersebut adalah y=3x+1.
Saat mencoba mempelajari hubungan ini, komputer akan menebak...mungkin y=10x+10. Fungsi loss mengukur jawaban tebakan itu berdasarkan jawaban benar yang diketahui dan mengukur seberapa baik atau buruk kualitasnya.
Selanjutnya, model menggunakan fungsi pengoptimal untuk membuat tebakan lain. Berdasarkan hasil fungsi kerugian, model akan mencoba meminimalkan kerugian. Pada tahap ini, model tersebut mungkin akan memunculkan hasil seperti y=5x+5. Meskipun belum bisa disebut baik, hasil ini sudah mendekati hasil yang benar (artinya kerugiannya lebih rendah).
Dalam cuplikan kode di atas, Anda meminta model untuk menggunakan mean_squared_error untuk kerugian dan stochastic gradient descent (sgd) untuk pengoptimal. Anda belum perlu memahami matematika keduanya, tetapi Anda akan melihat bahwa fungsi tersebut efektif.
Catatan: Seiring waktu, Anda akan mempelajari fungsi kerugian dan pengoptimal yang tepat untuk berbagai skenario.
Melatih jaringan neural
Untuk melatih jaringan neural agar 'mempelajari' hubungan antara X dan Y, Anda akan menggunakan model.fit.
Fungsi ini akan melatih model secara terus-menerus di mana model akan membuat tebakan, mengukur seberapa baik atau buruk kualitasnya (alias kerugian), menggunakan pengoptimal untuk membuat tebakan lain, dll. Model akan mengulang proses ini untuk sejumlah epoch yang Anda tentukan, yang di lab ini berjumlah 500.
Tambahkan kode berikut ke sel kedua:
model.fit(xs, ys, epochs=500)
Dalam kode di atas, model.fit akan melatih model untuk sejumlah epoch yang sudah ditetapkan.
Kini, file Anda akan terlihat seperti ini (perhatikan bahwa kode akan ditampilkan dalam dua sel terpisah):
import logging
import google.cloud.logging as cloud_logging
from google.cloud.logging.handlers import CloudLoggingHandler
from google.cloud.logging_v2.handlers import setup_logging
cloud_logger = logging.getLogger('cloudLogger')
cloud_logger.setLevel(logging.INFO)
cloud_logger.addHandler(CloudLoggingHandler(cloud_logging.Client()))
cloud_logger.addHandler(logging.StreamHandler())
import tensorflow as tf
import numpy as np
xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)
ys = np.array([-2.0, 1.0, 4.0, 7.0, 10.0, 13.0], dtype=float)
model = tf.keras.Sequential([tf.keras.layers.Dense(units=1, input_shape=[1])])
model.compile(optimizer=tf.keras.optimizers.SGD(), loss=tf.keras.losses.MeanSquaredError())
model.fit(xs, ys, epochs=500)
Menjalankan kode
Skrip Anda sudah siap. Jalankan skrip tersebut untuk melihat hasilnya.
Klik tombol Run atau tekan Shift + Enter untuk menjalankan sel kedua di notebook.
Lihat output-nya. Perhatikan bahwa skrip mencetak kerugian untuk setiap epoch. Output Anda mungkin akan sedikit berbeda dengan yang diilustrasikan di sini.
Catatan: Angka dengan e- pada nilainya ditampilkan dalam notasi ilmiah dengan eksponen negatif.
Jika terus men-scroll epoch, Anda akan melihat bahwa nilai kerugian cukup besar untuk beberapa epoch awal, tetapi makin mengecil seiring berjalannya pelatihan. Contoh:
Dan pada saat pelatihan selesai, kerugiannya menjadi sangat kecil, yang menunjukkan bahwa model kita berperforma sangat baik dalam menginferensikan hubungan antar-angka:
Anda mungkin tidak memerlukan 500 epoch. Cobalah bereksperimen dengan jumlah berbeda. Dalam contoh ini, kerugian sudah sangat kecil setelah 50 epoch saja, jadi jumlah ini mungkin sudah cukup.
Klik Check my progress untuk memverifikasi tujuan. Membuat model machine learning
Menggunakan model
Kini, Anda memiliki model yang sudah dilatih untuk mempelajari hubungan antara X dan Y.
Anda dapat menggunakan metode model.predict guna mencari tahu Y untuk X yang sebelumnya tidak terlihat oleh model selama pelatihan. Jadi, misalnya, jika X=10, menurut Anda berapa Y-nya?
Tambahkan kode berikut ke sel ketiga untuk membuat prediksi:
cloud_logger.info(str(model.predict(np.array([10.0]))))
Catatan: Hasil prediksi Anda diteruskan ke cloud_logger untuk menghasilkan log cloud yang dapat diperiksa perkembangannya.
Tekan Ctrl+S atau klik File -> Save untuk menyimpan notebook.
Untuk menjalankan sel ketiga, klik tombol Run atau tekan Shift + Enter.
Nilai Y dicantumkan setelah log pelatihan (epoch).
Contoh output:
Anda mungkin mengira Y=31, kan? Tetapi ternyata sedikit lebih tinggi (31.005917). Kira-kira apa penyebabnya?
Jawaban: Jaringan neural menangani probabilitas. Berdasarkan perhitungannya, terdapat probabilitas yang sangat tinggi bahwa hubungan X dan Y adalah Y=3X+1. Namun, karena hanya ada 6 titik data, jaringan neural tidak dapat memastikannya. Akibatnya, hasil untuk 10 epoch sangat mendekati 31, tetapi tidak tepat 31.
Saat bekerja dengan jaringan neural, Anda akan melihat pola ini berulang. Hampir bisa dipastikan, Anda akan berurusan dengan probabilitas, bukan kepastian, dan perlu melakukan sedikit coding untuk mengetahui hasilnya berdasarkan probabilitas tersebut, khususnya jika berkaitan dengan klasifikasi.
Klik Check my progress untuk memverifikasi tujuan. Menggunakan model
Selamat!
Selamat! Di lab ini, Anda telah membuat, melatih, dan menguji Model Machine Learning Anda sendiri menggunakan TensorFlow.
Langkah berikutnya/pelajari lebih lanjut
Lihat semua hal yang perlu diketahui tentang Vertex AI.
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui 16 September 2024
Lab Terakhir Diuji 16 September 2024
Hak cipta 2025 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.
Lab membuat project dan resource Google Cloud untuk jangka waktu tertentu
Lab memiliki batas waktu dan tidak memiliki fitur jeda. Jika lab diakhiri, Anda harus memulainya lagi dari awal.
Di kiri atas layar, klik Start lab untuk memulai
Gunakan penjelajahan rahasia
Salin Nama Pengguna dan Sandi yang diberikan untuk lab tersebut
Klik Open console dalam mode pribadi
Login ke Konsol
Login menggunakan kredensial lab Anda. Menggunakan kredensial lain mungkin menyebabkan error atau dikenai biaya.
Setujui persyaratan, dan lewati halaman resource pemulihan
Jangan klik End lab kecuali jika Anda sudah menyelesaikan lab atau ingin mengulanginya, karena tindakan ini akan menghapus pekerjaan Anda dan menghapus project
Konten ini tidak tersedia untuk saat ini
Kami akan memberi tahu Anda melalui email saat konten tersedia
Bagus!
Kami akan menghubungi Anda melalui email saat konten tersedia
Satu lab dalam satu waktu
Konfirmasi untuk mengakhiri semua lab yang ada dan memulai lab ini
Gunakan penjelajahan rahasia untuk menjalankan lab
Gunakan jendela Samaran atau browser pribadi untuk menjalankan lab ini. Langkah ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
Di lab ini, Anda akan mempelajari ‘Halo Dunia' dasar machine learning. Alih-alih memprogram aturan eksplisit dalam bahasa seperti Java atau C++, Anda akan membangun sistem yang dilatih berdasarkan data untuk menginferensikan aturan yang menentukan hubungan antar-angka.