Checkpoint
Create machine learning models
/ 50
Use the model
/ 50
TensorFlow: Qwik Start
GSP637
Ringkasan
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 Mulai 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 praktik ini dapat Anda gunakan untuk melakukan sendiri 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).
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
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:
- Anda dapat memperluas ini hingga berlari dengan kondisi lain:
- Dengan cara yang sama, Anda dapat mendeteksi bersepeda 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.
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.
Contoh output:
- Jalankan perintah berikut untuk menginstal paket TensorFlow.
- Untuk mengupgrade
pip3
, jalankan perintah berikut di terminal.
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
.
- Instal paket yang diperlukan untuk lab ini dalam file
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
sertagoogle-cloud-logging
untuk Cloud Logging. Pada sel pertama, tambahkan kode berikut:
- Impor
tensorflow
untuk melatih dan mengevaluasi model. Namai sebagaitf
untuk memudahkan. Tambahkan kode berikut ke sel pertama.
- Impor
numpy
guna mengurai data untuk tujuan proses debug. Namai sebagainp
untuk memudahkan. Tambahkan kode berikut ke sel pertama.
-
Untuk menjalankan sel ini, klik tombol Run atau tekan Shift + Enter.
-
Simpan notebook. Klik File -> Save. Namai filenya sebagai
model.ipynb
, lalu klik OK.
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([])
- Pada sel kedua, tambahkan kode berikut:
Mendesain model
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].
- Pada sel kedua, tambahkan kode berikut:
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
. Fungsiloss
mengukur jawaban tebakan itu berdasarkan jawaban benar yang diketahui dan mengukur seberapa baik atau buruk kualitasnya.
tf.keras
dalam Modul: dokumentasi tf.keras.losses.- 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).
tf.keras
dalam Modul: dokumentasi tf.keras.optimizers.- Model akan mengulang proses ini untuk sejumlah epoch yang Anda tentukan.
- Tambahkan kode berikut ke sel kedua:
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.
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:
Dalam kode di atas, model.fit
akan melatih model untuk sejumlah epoch yang sudah ditetapkan.
model.fit
dari bagian fit dalam dokumentasi tf.keras.Model.Kini, file Anda akan terlihat seperti ini (perhatikan bahwa kode akan ditampilkan dalam dua sel terpisah):
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.
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:
Seiring berjalannya pelatihan, kerugian makin mengecil:
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.
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
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.
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.
- Hal-hal menarik terkait AI. Lihat Eksperimen dengan Google.
- Pelajari lebih lanjut TensorFlow.
- Metode Prediksi Bracket Turnamen dengan Machine Learning Google
- Mulai Menggunakan BQML
- Memprediksi Tarif Taksi dengan Model Perkiraan BigQuery ML
Sertifikasi dan pelatihan Google Cloud
...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 2024 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.