Skip to content

Artificial Intelligence

Umpan balik

Mohon untuk mengisi formulir umpan balik perkuliahan di sini.

Pendahuluan

Kecerdasan buatan, inteligensi buatan, atau artificial intelligence (AI) sedang mengambil perhatian orang dalam beberapa tahun terakhir. Hal ini salah satunya disebabkan oleh peningkatan kemampuan komputasi yang berdampak pada berkembangnya penggunaan algoritma artificial neural networks (ANN atau NN) yang kini juga populer dengan nama deep learning. Namun, penggunaan algoritma pembelajaran mesin (machine learning) secara umum sejatinya telah mengubah pandangan klasik terhadap solusi untuk berbagai permasalahan. Kuliah ini dirancang untuk mengenalkan Anda pada berbagai algoritma AI secara umum dan kegunaannya dalam kasus yang dekat dengan keseharian Anda.

Referensi

Kuliah ini mengikuti alur penyampaian materi dari CS221: Artificial Intelligence: Principles and Techniques dari Stanford University. Karena kedekatan materi, beberapa materi juga diadaptasi dari CS154: Artificial Intelligence dari Caltech.

Kuliah ini akan menggunakan Python dan/atau Java sebagai bahasa pengantarnya. Jadi, bagi Anda yang masih belum familiar dengan Python, silakan cek tutorial singkat untuk Python dan Numpy. Sangat disarankan bagi Anda yang masih mengalami kesulitan dengan pendekatan matematis untuk menguatkan kemampuan pemrograman Anda agar dapat mengikuti kecepatan penyampaian materi di kelas.

Referensi

Anda yang telah familiar dengan Java mungkin juga bisa membuka materi kuliah Pemrograman Python.

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

Pengenalan Inteligensi Buatan

Salindia minggu ke-1: Pengenalan Inteligensi Buatan

Catatan minggu ke-1

"Apa itu Artificial Intelligence?" Meski banyak yang sudah mendengar namanya, tapi ternyata tidak banyak yang menyadari bahwa inteligensi buatan sudah menjadi bagian dari keseharian kita. Google yang Anda gunakan hampir setiap hari itu terdiri dari berbagai komponen cerdas yang dibangun oleh para insinyur di dalamnya. Ada beberapa pertanyaan filosofis tentang inteligensi buatan yang juga akan dicoba dijawab dalam pertemuan ini. Pertemuan ini akan menjelaskan lebih lengkap tentang alur penyampaian materi kuliah ini selama satu semester ke depan.

Regresi dan Optimasi

Salindia minggu ke-2: Regresi Linear

Catatan minggu ke-2

Inteligensi pada tingkatan paling rendah adalah model yang diberikan kemampuan refleks. Salah satu cara untuk membentuk model tersebut adalah dengan melihat tugas yang dihadapi sebagai masalah regresi. Materi ini membahas bagaimana kita bisa memprediksi suatu nilai numerik berdasarkan nilai-nilai lain yang diketahui, misalnya mencari nilai likes di Facebook berdasarkan jumlah share dan komentar suatu pos. Proses pencarian model yang optimal tersebut juga akan dibahas dalam pertemuan kali ini. Time to brush up your calculus and linear algebra skills!

Referensi

Untuk materi aljabar linear, Anda dapat membaca buku Deep Learning (Goodfellow et al., 2016) Chapter 2.

Salindia minggu ke-3: Klasifikasi: Regresi Logistik

Catatan minggu ke-3

Bagaimana kalau yang ingin kita prediksi nilainya berupa kategori? Misalnya, jika diberikan suatu teks, apakah teks tersebut spam atau bukan? Setelah berkutat dengan data numerik, kita akan mengeksplorasi penggunaan model linear lebih lanjut untuk melakukan klasifikasi. Berbeda dengan regresi linear, regresi logistik menggunakan metode optimasi yang berbeda, optimasi numerik. Oleh karena itu, kita akan belajar lebih lanjut tentang metode gradient descent.

Melatih Model Linear

Salindia minggu ke-4: Training vs Testing

Bagaimana cara mengukur bahwa model yang kita buat sebelumnya sudah baik? Apa pula yang dimaksud dengan hyperparameter tuning? Kita akan belajar cara untuk mengestimasi error general dengan membagi data menjadi data latih, validasi, dan uji. Anda juga akan dikenalkan dengan beberapa metrik yang dapat dipakai untuk mengevaluasi model yang dihasilkan.

Tugas 1

Notebook Tugas 1

Dalam tugas ini, Anda akan mengeksplorasi regresi linear dan logistik, serta menggunakan neural networks yang didasarkan pada kedua algoritma tersebut.

Tenggat

Selasa, 23 Oktober 2018, pukul 23.55 WIB

Nearest Neighbours

Salindia minggu ke-5: k-Nearest Neighbours

Catatan minggu ke-5

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.

Clustering: k-Means

Salindia minggu ke-6: k-Means

Catatan minggu ke-6

Pada pertemuan kali ini, kita akan beralih ke algoritma machine learning yang masuk ke dalam kategori unsupervised learning. Berbeda dengan beberapa algoritma yang telah kita bahas di pertemuan-pertemuan sebelumnya, algoritma ini tidak membutuhkan label sehingga cara mengevaluasinya juga lebih bervariasi. Untuk kebutuhan mata kuliah ini, kita hanya akan membahas tentang salah satu algoritma untuk melakukan pengelompokan data (clustering), yaitu k-Means.

Tugas 2

Notebook Tugas 2

Dalam tugas ini, Anda akan mengeksplorasi penggunaan k-NN untuk klasifikasi dan regresi, serta melakukan clustering dan klasifikasi dengan memanfaatkan algoritma k-Means untuk MNIST.

Tenggat

Selasa, 6 November 2018, pukul 23.55 WIB

Carian

Salindia minggu ke-8: Uninformed Search

Setingkat di atas refleks, agen cerdas juga perlu untuk memahami state dia berada sekarang dan menentukan sekumpulan aksi yang harus diambil agar mencapai tujuannya. Pertemuan ini membahas agen cerdas yang memanfaatkan informasi yang terbatas untuk mencari solusi optimal berupa urutan aksi.

Salindia minggu ke-9: Informed Search

Agen cerdas yang dibahas di minggu sebelumnya adalah agen yang "buta". Ini berarti bahwa agen cerdas tersebut tidak mengetahui bahwa terkadang alternatif jalur yang diambil malah menjauhi solusi optimalnya. Materi minggu ini membahas bagaimana kita dapat memperbaiki agen cerdas tersebut dengan memanfaatkan heuristik.

Salindia minggu ke-10: Genetic Algorithms

Salah satu masalah carian adalah bagaimana mencari titik optimal. Tipe carian jenis ini dikenal dengan nama carian lokal. Topik minggu ini adalah tentang Genetic Algorithms (GA) sebagai salah satu metode pencarian titik optimal tersebut.

Tugas 3

Deskripsi Tugas 3

Dalam tugas ini, Anda diminta untuk mengimplementasikan beberapa algoritma carian untuk menyelesaikan kasus-kasus terkait. Tugas ini harus Anda kumpulkan dalam format PDF. Anda hanya perlu membuat kode pada bagian 1. Cantumkan kode tersebut ke dalam file PDF Anda. Dengan kata lain, tidak ada file untuk source code yang perlu Anda cantumkan. Anda dapat menggunakan bahasa Java atau Python untuk kode pada bagian 1 tersebut.

Tenggat

Selasa, 11 Desember 2018, pukul 23.55 WIB

Reinforcement Learning

Salindia minggu ke-11: Markov Decision Processes

Salindia minggu ke-12: Reinforcement Learning

Untuk menjelaskan reinforcement learning, silakan merujuk pada salindia dari Stanford University yang tercantum pada tautan di atas. Agen cerdas tipe ini belajar dalam states dan ketidakpastian. Ketika suatu aksi yang diambil tidak pasti berujung pada yang diharapkan, kita harus mempertimbangkan kembali aksi yang harus kita ambil agar dapat mengoptimasi solusi yang diharapkan. Untuk materi yang lebih lanjut, Anda juga dapat menyimak video kuliah dari David Silver di sini.

Game Playing

Salindia minggu ke-13: Minimax, expectimax, evaluation functions, alpha-beta pruning

Salindia minggu ke-14: TD learning, game theory

Di materi sebelumnya, kita sudah membahas bagaimana proses pencarian dalam pohon maupun graf termasuk ketika ada elemen keacakan (stochasticity). Bagaimana jika yang dilawan bukan hanya lingkungan saja, tetapi juga lawan yang selalu berusaha meminimalkan keuntungan yang dapat kita raih? Untuk itu, kita perlu memodifikasi kasus yang telah kita pelajari menjadi pohon permainan (game trees) sehingga kita dapat menghasilkan solusi yang optimal bagi agen yang kita buat. Materi dalam dua minggu ini juga masih diadaptasi dari CS221 Stanford University.

Video Lectures

Untuk membantu pemahaman Anda, Anda bisa melihat contoh lain untuk penjelasan Alpha-Beta pruning dari MIT OpenCourseWare di sini.

Video untuk belajar Game Theory bisa dilihat di channel ini.

Tugas 4

Deskripsi Tugas 4

Secara umum, tugas ini berhubungan dengan game dan pengambilan strategi terbaik dari game menggunakan Markov Decision Processes dan strategi lainnya. Dalam tugas ini, Anda juga diminta untuk bermain sebuah game dan menjawab pertanyaan yang diberikan terkait dengan game tersebut. Tugas ini harus Anda kumpulkan dalam format PDF. Anda tidak perlu membuat kode sama sekali.

Tenggat

Jumat, 18 Januari 2019, pukul 23.55 WIB

Tugas Akhir

Semua materi terkait tugas akhir dapat dilihat di sini.