Pengenalan Pola

Umpan balik

Mohon untuk mengisi formulir umpan balik perkuliahan di sini dan kuliah tamu dari Arie Pratama Sutiono di sini

Pendahuluan

Ada baiknya untuk sedikit mengulas materi aljabar linear, kalkulus, dan statistika Anda sebelum memulai kuliah ini. Beberapa orang merekomendasikan untuk belajar dari bagian pertama buku Deep Learning yang ditulis oleh Ian Goodfellow dkk. Alternatif lain, Anda bisa melihat buku Mathematics for Machine Learning. Untuk pemahaman lebih lanjut, Anda juga bisa melihat materi probabilitas untuk ilmu komputer yang sangat menarik di kuliah Stanford CS109: Probability for Computer Scientists.

Referensi

Kuliah ini banyak mengadaptasi materi dari Introductory Applied Machine Learning dan Machine Learning & Pattern Recognition dari the University of Edinburgh, serta CS229: Machine Learning dari Stanford University.

Beberapa materi kuliah ini juga diadaptasi dari kuliah Data Mining. Namun, alur penyampaian kuliah akan sedikit diubah. Selain itu, contoh-contoh kasusnya akan lebih banyak berkaitan dengan masalah-masalah dalam computer vision.

Anda dapat membuat clone dari repositori mata kuliah ini di sini.

Pre-test

Coba soal latihan ini untuk mengetahui apakah Anda punya cukup pengetahuan untuk mengikuti kelas ini atau tidak.

Playlist untuk kuliah ini dapat dilihat di YouTube.

Konsep Probabilistik dalam Pengenalan Pola

Salindia minggu ke-1: Pendahuluan

Apa hubungannya data mining, machine learning, dan pengenalan pola? Uraian singkat mengenai materi yang akan dipelajari selama kuliah ini akan disampaikan pada pertemuan pertama perkuliahan. Anda diminta proaktif dalam mencari materi tambahan untuk belajar lebih banyak lagi.

Salindia minggu ke-2: Probabilitas

Di minggu ini, kita akan membahas tentang konsep peluang, peubah acak, dan beberapa materi lainnya yang berkaitan dengan ketidakpastian yang akan membantu untuk memahami materi-materi di beberapa pertemuan berikutnya. Sangat disarankan bagi Anda untuk melihat kuliah Stanford CS109 dan Harvard Stats 110.

Salindia minggu ke-3: Distribusi Diskrit

Salindia minggu ke-4: Distribusi Kontinu

Sebagi dasar untuk masuk ke materi berikutnya tentang Naive Bayes, di minggu ini kita akan membahas beberapa jenis distribusi yang akan sering dijumpai untuk pemodelan data. Anda akan belajar untuk mengestimasi nilai parameter dari suatu distribusi yang dapat menjelaskan data dengan baik (Maximum Likelihood Estimation). Gunakan SciPy untuk melakukan pemodelan probabilistik dari contoh-contoh data yang tersedia, misalnya data menu McDonald's.

Soal Latihan Probabilitas dan Statistika

Silakan coba kerjakan soal yang telah saya kurasi di sini. Kunci jawaban dapat diminta setelah Anda menunjukkan hasil pekerjaan Anda. Beberapa bahasan bisa dilihat di YouTube.

Tugas 1

Notebook Tugas 1

Dalam tugas ini, Anda akan melakukan eksplorasi data dan pemilihan model dari data konsumsi bensin mobil.

Tenggat

Kamis, 19 Maret 2020, pukul 23.55 WIB

Salindia minggu ke-5: Naive Bayes

Praktikum 1: Distribusi Gaussian dan Naive Bayes

Memanfaatkan konsep yang sudah dipelajari minggu lalu, minggu ini kita akan melihat bagaimana berbagai distribusi tersebut dapat digunakan untuk melakukan klasifikasi. Pelajari multivariate Gaussian dan Bernoulli distribution secara lebih intensif untuk bisa memahami materi ini.

Dimensionality Reduction

Salindia minggu ke-6: Dimensionality Reduction

Dalam multivariate Gaussian, Anda menghitung matriks kovariansi yang menggambarkan variansi dari tiap variabel dan hubungan antarvariabel. Ingat bahwa dalam kasus MNIST, selalu ada variabel yang tidak pernah berubah nilainya. Jadi, apakah kita masih membutuhkan variabel tersebut? Metode yang akan Anda pelajari di minggu ini akan membantu Anda dalam mereduksi dimensi yang tinggi menjadi beberapa dimensi yang bermakna saja. Untuk melakukan hal tersebut, Anda memerlukan kovariansi matriks yang dihitung tadi.

Tugas 2

Notebook Tugas 2

Dalam tugas ini, Anda akan mengulas materi tentang Naive Bayes dan PCA dengan menerapkannya pada dataset wajah.

Tenggat

Sabtu, 4 April 2020, pukul 23.55 WIB

Model Linear

Salindia minggu ke-7: Model Linear

Model linear secara umum sudah pernah dibahas di mata kuliah Kecerdasan Buatan. Kali ini, kita akan melihat bagaimana prosesnya untuk bisa mendapatkan solusi dari regresi linear dengan asumsi Gaussian noise. Untuk itu, pelajari kembali materi distribusi Gaussian dan MLE-nya. Selain itu, materi tambahan kali ini adalah regularisasi dan dampaknya ke model yang dihasilkan.

Evaluasi Model

Salindia minggu ke-8: Evaluasi Model

Apakah model machine learning selalu hanya berupa trial and error? Pada minggu ini, topik yang akan dibahas adalah bagaimana kita dapat mengevaluasi model dan menentukan perbaikan seperti apa yang dapat dilakukan terhadap model tersebut. Beberapa konsep penting yang akan dibahas antara lain bias-variance trade-off, underfitting, overfitting, dan beberapa metrik yang dapat digunakan untuk mengevaluasi model dalam kasus klasifikasi maupun regresi.

Model Linear untuk Klasifikasi

Salindia minggu ke-9: Regresi Logistik

Praktikum 2: Gradient Descent

Apa yang terjadi jika kita hanya ingin membedakan apakah suatu objek termasuk ke kelas A atau B? Faktanya, kita dapat mengekstensi regresi linear yang dipelajari di minggu ketujuh untuk melakukan klasifikasi dengan bantuan fungsi logistik/sigmoid. Materi minggu ini juga akan menjadi dasar dari materi pekan depan tentang jaringan saraf tiruan (neural networks) - yang saat ini lebih populer dengan nama deep learning.

Neural Networks

Salindia minggu ke-10: Neural Networks

Model regresi logistik ternyata tidak bisa menyelesaikan kasus klasifikasi sederhana seperti XOR. Meminjam ide dari jaringan saraf, kita dapat menumpuk beberapa model regresi logistik dan menjadikannya jaringan saraf tiruan (artificial neural networks). Model jaringan saraf tiruan ini dapat menjadi hampiran yang universal (universal approximator) untuk fungsi kontinu bahkan hanya dengan satu hidden layer saja! Materi yang dijelaskan di minggu ini hanya berupa pengenalan umum. Lebih lanjut tentang neural networks akan dibahas di kuliah Soft Computing.

Nearest Neighbours

Salindia minggu ke-11: k-Nearest Neighbours

Salah satu cara paling alamiah untuk mengambil keputusan bagi kita sebagai manusia adalah dengan bertanya kepada "tetangga". Orang-orang terdekat di sekeliling kita, bagaimana pun cara pengukuran kedekatannya, sering kita jadikan referensi sebelum menggunakan keputusan mayoritas mereka sebagai keputusan pribadi. Ide itu yang juga digunakan dalam algoritma Nearest Neighbours. Pada pertemuan kali ini, Anda akan belajar bagaimana metode ini dapat digunakan dalam kasus regresi maupun klasifikasi.

Tugas 3

Notebook Tugas 3

Dalam tugas ini, Anda akan mencoba membuat model regresi logistik dari awal dengan menggunakan JAX dan membandingkannya dengan implementasi scikit-learn. Anda juga akan belajar menggunakan TensorFlow untuk membuat model regresi logistik.

Tenggat

Jumat, 22 Mei 2020, pukul 23.55 WIB

Clustering: k-Means

Salindia minggu ke-12: k-Means

Sebelum UTS, kita sudah membahas salah satu algoritma unsupervised learning, yaitu PCA. Kali ini kita akan membahas algoritma unsupervised learning lainnya untuk clustering. Algoritma ini tidak membutuhkan label sehingga cara mengevaluasinya juga lebih bervariasi. Di materi ini juga dibahas tentang expectation maximization algorithm yang menjadi dasar dari k-Means dan Gaussian Mixture Models di pekan depan.

Gaussian Mixture Models

Salindia minggu ke-13: Gaussian Mixture Models

Praktikum 3: Gaussian Mixture Models

Setelah mendapat materi tentang k-Means di beberapa pertemuan sebelumnya, kali ini yang dibahas adalah Gaussian Mixture Models yang dapat melakukan soft clustering. Materi ini akan berkaitan dengan materi konsep probabilitas dan distribusi Gaussian yang disampaikan di beberapa pertemuan awal.

Tugas 4

Notebook Tugas 4

Dataset Tugas 4

Dalam tugas ini, Anda akan mencoba melakukan clustering dengan menggunakan k-Means dan Gaussian Mixture Models pada dataset artikel berita dari BBC.

Tenggat

Rabu, 17 Juni 2020, pukul 23.55 WIB