Sebelumnya kita telah membahas tentang Supervised Learning, sekarang kita akan belajar lebih jauh tentang apa itu Unsupervised Learning atau bisa juga disebut pembelajaran yang tidak diawasi.
Unsupervised learning merupakan kebalikan dari Supervised Learning. Jika supervised learning bekerja dengan data berlabel, maka unsupervised learning bekerja dengan data tanpa label. Dengan kata lain, tujuan dari model machine learning ini adalah untuk mengekstrak informasi sebanyak mungkin dari himpunan data yang tidak memiliki label atau target untuk diprediksi. Oleh sebab itu, unsupervised learning lebih sering digunakan sebagai langkah prapemrosesan.
Lalu, apa saja yang dapat kita lakukan menggunakan dataset yang tidak berlabel? Implementasi Unsupervised learning tentu tidak sebanyak supervised learning karena kita tidak memiliki label untuk diprediksi. Kendati demikian, kita masih dapat mengekstrak banyak informasi dari himpunan data yang tidak berlabel. Algoritma unsupervised learning dapat mengelompokkan data berdasarkan kesamaan bahkan tanpa mengetahui apa yang direpresentasikan oleh masing-masing kelompok.
- Clustering Algorithm: Algoritma yang mengelompokkan data ke dalam cluster yang berbeda berdasarkan kesamaan.
- Dimensionality Reduction Algorithm: Algoritma yang menyederhanakan data dan mendeskripsikannya secara akurat dengan fitur yang lebih sedikit.
- Generative Algorithm: Algoritma untuk menghasilkan titik data baru menyerupai data yang ada.
Clustering Algorithm: Membagi himpunan data menjadi grup serupa
Untuk mengilustrasikan ini, mari kita kembali himpunan data email spam yang sempat kita bahas di postingan sebelumnya, tetapi bayangkan mereka tidak memiliki label. Dengan demikian, himpunan data email tidak memiliki informasi apakah termasuk spam atau non-spam.
Apa yang dapat kita lakukan dengan himpunan data ini? Karena himpunan data tidak berlabel, kita tidak tahu apakah setiap email adalah spam atau non-spam. Namun entah bagaimana algoritma kita dapat mengelompokkan email-email berdasarkan kesamaan. Misalnya, kita dapat mengelompokkannya berdasarkan kata-kata dalam pesan, pengirim, ukuran lampiran, jenis tautan di dalam email, atau kombinasi dari fitur-fitur tersebut. Proses ini disebut clustering. Clustering adalah cabang dari unsupervised learning yang bertugas mengelompokkan semua titik data yang serupa dalam himpunan data ke dalam kluster. Setelah mengelompokkan himpunan data, manusia (atau kombinasi manusia dan algoritma supervised learning) dapat memberi label pada kluster berdasarkan kategori seperti "Personal", "Sosial", dan "Promosi".
Sebagai contoh, mari kita lihat himpunan data pada tabel di bawah ini. Tabel ini berisi 9 email yang akan kita kelompokkan. Fitur yang tersedia adalah ukuran email dan jumlah penerima.
Email |
Ukuran Email (dalam KB) |
Penerima |
1 |
8 |
1 |
2 |
12 |
1 |
3 |
43 |
1 |
4 |
10 |
2 |
5 |
40 |
2 |
6 |
25 |
5 |
7 |
23 |
6 |
8 |
28 |
6 |
9 |
26 |
7 |
Dengan mata telanjang, sepertinya kita bisa mengelompokkan email berdasarkan jumlah penerimanya. Himpunan data ini dapat kita pecah menjadi dua kluster: kluster pertama berisi email yang memiliki dua penerima atau kurang, dan kluster kedua berisi email yang memiliki lima penerima atau lebih. Kita juga bisa mencoba mengelompokkannya menjadi tiga kluster berdasarkan ukuran. Atau kalian ingin membaginya menjadi beberapa kluster yang lebih banyak lagi? Tentu bisa. Namun, semakin banyak kluster dan semakin banyak data email yang ada, tentu mata kita akan kewalahan menganalisisnya. Untuk itu, mari kita plot email ke dalam bentuk grafik, di mana sumbu horizontal (x) adalah ukuran email dan sumbu vertikal (y) adalah jumlah penerima. Dengan demikian himpunan data tersebut akan tampak seperti pada gambar di bawah:
Pada gambar di atas, kita dapat melihat kluster yang terdefinisi dengan baik, seperti gambar di bawah.
Langkah terakhir inilah yang dimaksud dengan Clustering. Bagi kita, manusia, tentu saja mudah untuk melihat ketiga kelompok saat melihat plot. Tetapi untuk komputer, ini bukanlah hal yang mudah. Selanjutnya, bayangkan jika data kita berisi jutaan titik data, dengan ratusan atau ribuan fitur. Dengan lebih dari tiga fitur, tidak mungkin bagi manusia untuk melihat cluster, karena mereka akan berada dalam dimensi yang tidak dapat kita visualisasikan. Untungnya, komputer dapat melakukan pengelompokan jenis ini untuk kumpulan data besar dengan banyak baris dan kolom.
Adapun contoh implementasi dari clustering antara lain:
- Segmentasi Pasar: Membagi pelanggan menjadi beberapa kelompok berdasarkan demografi dan perilaku pembelian sebelumnya untuk menciptakan strategi pemasaran yang berbeda antar kelompok.
- Genetika: Mengelompokkan spesies ke dalam suatu kelompok berdasarkan kesamaan gen.
- Pencitraan Medis: Membagi gambar menjadi beberapa bagian untuk mempelajari berbagai jenis jaringan.
- Rekomendasi Video: Membagi pengguna ke dalam grup berdasarkan demografi dan video yang ditonton sebelumnya, lalu video yang telah ditonton akan direkomendasikan kepada pengguna lain dalam grup mereka.
Dimensionality Reduction: Membagi himpunan data menjadi grup serupa
Dimensionality Reduction atau pengurangan dimensi adalah langkah prampemrosesan yang berguna untuk menyederhanakan data sebelum menerapkan teknik lain. Sebagai contoh, kita memiliki himpunan data perumahan dengan fitur-fitur sebagai berikut:
- Ukuran
- Jumlah kamar tidur
- Jumlah kamar mandi
- Tingkat kejahatan di lingkungan sekitar
- Jarak ke sekolah terdekat
Himpunan data ini memiliki lima kolom data. Bagaimana jika kita ingin mengubah himpunan data menjadi lebih sederhana dengan kolom yang lebih sedikit tanpa kehilangan banyak informasi?
Lihatlah kelima fitur tadi dengan seksama. Dapatkah kalian melihat cara apa pun untuk menyederhanakannya?
Setelah dicermati, kita dapat melihat bahwa tiga fitur pertama serupa, karena semuanya terkait dengan ukuran rumah. Demikian pula, fitur keempat dan kelima mirip satu sama lain, karena mereka terkait dengan kualitas lingkungan. Kita bisa menyingkat tiga fitur pertama menjadi fitur "Ukuran" secara general, serta yang keempat dan kelima menjadi fitur "Kualitas Lingkungan".
Bagaimana kita menyederhanakan fitur ukuran? Kita bisa melupakan kamar mandi serta kamar tidur, dan hanya mempertimbangkan ukurannya, kita bisa menambahkan jumlah kamar tidur dan kamar mandi, atau mungkin mengambil kombinasi lain dari ketiga fitur tersebut. Kita juga dapat memadatkan fitur kualitas area dengan cara yang sama. Algoritma Dimensionality Reduction akan menemukan cara yang baik untuk menyingkat fitur-fitur ini.
Mengapa disebut pengurangan dimensi jika yang dilakukan hanyalah mengurangi jumlah kolom dalam data kita? Kata mewah untuk jumlah kolom dalam himpunan data adalah dimensi.
Dengan penyederhanaan ini, data kita akan lebih mudah untuk diolah. Bayangkan jika data kita memiliki satu kolom, maka setiap titik data adalah satu angka. Kumpulan angka dapat diplot sebagai kumpulan titik dalam satu garis, yang memiliki tepat satu dimensi. Jika data kita memiliki dua kolom, maka setiap titik data dibentuk oleh dua angka. Apa yang terjadi jika data kita memiliki tiga kolom? Dalam hal ini, maka setiap titik data dibentuk oleh tiga angka. Dan seterusnya. Bagaimana dengan 100 kolom? tentu saja setiap titik data akan dibentuk oleh 100 angka. Akan semakin rumit, bukan? Inilah sebabnya mengapa perlu dilakukan pengurangan dimensi.
Cara lain untuk menyederhanakan data: Faktorisasi matriks dan dekomposisi nilai tunggal
Clustering dan dimensionality reduction dapat digunakan untuk menyederhanakan data. Jika Clustering menyederhanakan data dengan mengurangi jumlah baris, maka Dimensionality Reduction menyederhanakan data dengan mengurangi kolom. Dapatkah kita mengurangi baris dan kolom secara bersamaan? Yap! Itu adalah hal yang mungkin untuk dilakukan. Dua cara umum yang dapat dilakukan adalah Faktorisasi Matriks dan Dekomposisi Nilai Tunggal. Kedua algoritma ini mengekspresikan matriks data yang besar menjadi produk matriks yang lebih kecil.
Platform besar seperti Netflix menggunakan faktorisasi matriks secara ekstensif untuk membuat sistem rekomendasi. Bayangkan sebuah tabel besar di mana setiap baris berisi data pengguna pengguna, setiap kolom ke film, dan setiap entri dalam matriks adalah peringkat yang diberikan pengguna untuk sebuah film. Dengan faktorisasi matriks, seseorang dapat mengekstrak fitur tertentu, seperti jenis film, aktor yang muncul dalam film, serta dapat memprediksi peringkat yang diberikan pengguna film berdasarkan fitur-fitur tadi.
Dekomposisi nilai tunggal digunakan dalam kompresi gambar. Misalnya, gambar hitam-putih dapat dilihat sebagai tabel data yang besar, di mana setiap entri berisi intensitas piksel yang sesuai. Dekomposisi nilai tunggal menggunakan teknik aljabar linier untuk menyederhanakan tabel data ini, sehingga memungkinkan kita untuk menyederhanakan gambar dan menyimpan versi yang lebih sederhana menggunakan lebih sedikit entri
Generative Algorithm
Generative Algorithm adalah salah satu bidang machine learning yang paling mencengangkan. Kalian mungkin pernah menemukan tools AI yang dapat membuat gambar, musik atau video ultra-realistis. Yap, itulah contoh produk dari generative algorithm.
Algoritma ini dapat menghasilkan titik data baru yang terlihat seperti sampel dari himpunan data asli. Misalnya, jika dataset berisi gambar wajah, maka algoritma akan menghasilkan wajah yang tampak realistis. Algoritma ini telah mampu membuat gambar, lukisan, dan sebagainya yang sangat realistis. Bahkan juga telah menghasilkan video, musik, cerita, puisi, dan banyak hal indah lainnya. Generative algorithm yang paling populer adalah Generative Adversarial Networks (GANs), yang dikembangkan oleh Ian Goodfellow dan rekan penulisnya. Generative algorithm lain yang berguna dan populer adalah Variational Autoencoders yang dikembangkan oleh Kingma dan Welling, dan Restricted Boltzmann Machines (RBMs) yang dikembangkan oleh Geoffrey Hinton.
Seperti yang dapat dibayangkan, pembelajaran generatif cukup sulit, bahkan bagi manusia. Tugas ini sama sulitnya untuk komputer. Algoritma ini juga membutuhkan banyak data serta daya komputasi yang besar untuk membuatnya bekerja dengan baik.
See you~