KATEGORI: MACHINE LEARNING

Pembelajaran Minggu Ke-1: Machine Learning bersama Andrew Ng

Sekilas rangkuman dalam bahasa Indonesia untuk materi minggu ke-1 dalam kelas online Machine Learning oleh Andrew Ng.

Do Exploit
machinelearningid

--

Machine Learning minggu ke-1 kursus Andrew Ng
Icon Robot by Pixabay.

Andrew Ng adalah salah satu pendiri Coursera. Platform pembelajaran yang hampir dikenal oleh mayoritas tenaga IT di dunia. Dalam Coursera, dia juga mendirikan salah satu kursus online tentang Machine Learning. Kursus tersebut berhasil menjadi suguhan mainstream kepada pemula oleh kebanyakan para pengajar/pakar Machine Learning Engineer.

Saya sering kali bertanya pada para speaker webinar tentang Data Science maupun spesifik Machine Learning;

Me: Kak, boleh berikan rekomendasi kursus online terbaik untuk di pelajari oleh saya sebagai pemula yang baru terjun di bidang ini?

Jawaban rata-rata para speaker tidak jauh dari kursus oleh Andrew Ng. Sehingga itulah yang memutuskan saya untuk coba belajar kursus ini. Awalnya, saya ber-asumsi kursus ini ilmunya sudah usang karena saya lihat juga trailer videonya seperti video lama. Namun, asumsi saya terpatahkan setelah 1 minggu belajar disini.

Sebenarnya, banyak yang sudah membahas rangkuman materi ini dengan bahasa Inggris umumnya. Jadi saya juga ingin menambah sumber daya tulisannya dalam bahasa Indonesia juga khususnya di buat untuk rakyat RI.

Persyaratan matematika untuk dapat membaca dan mengikuti kelas ini adalah:

  • Fungsi
  • Matriks
  • Aljabar Linear
  • Vektor

Semua materi tersebut bisa kalian dapatkan secara gratis di aplikasi Bisa AI Academy, saya juga belajar di sana.

Apa itu Machine Learning?

Dalam bahasa Indonesia, machine learning memiliki arti Pembelajaran Mesin. Namun mulai dari sini kita sepakat, tetap menggunakan kata Machine Learning dan istilah asing lainnya juga.

Machine Learning adalah keilmuan yang berfokus pada teknik pembangunan aplikasi prediktif. Dia belajar membuat prediksi melalui data numerik dan kategorikal, lalu keakurasian prediksinya dapat meningkat seiring waktu.

Dalam Machine Learning, algoritmanya dilatih untuk dapat menemukan pola dari sejumlah data yang besar sehingga bisa membuat keputusan dan prediksi sendiri. Algoritma dalam Machine Learning sangat banyak, dan menurut saya tidak dapat diurutkan berdasarkan peringkat, karena berbagai masalah membutuhkan penanganan algoritma prediksi yang berbeda-beda.

Banyak aplikasi Machine Learning yang sering kita temui tetapi jarang disadari. Contohnya:

  • Medis: Membantu dokter untuk mendeteksi tumor, kanker dkk.
  • Email: Pengelompokkan email dalam bentuk promosi, spam dan utama.
  • Spotify: Membuat playlist sesuai dengan tipe lagu yang sering kita dengarkan.

Definisi Machine Learning sendiri sudah sangat banyak sampai sekarang, bahkan sejak tahun 1959 juga sudah ada. Menurut Arthur Samuel (1959); Machine Learning adalah bagian studi yang memberikan komputer kemampuan untuk BELAJAR tanpa di program secara eksplisit (Hasil Terjemahan).

Tangkapan saya maksud dari ‘program secara eksplisit’ adalah seperti program if elif else yang sangat panjang dan bercabang untuk dapat menyamai Machine Learning.

Namun ada definisi yang lebih mudah dipahami. Oleh Tom Mitchell (1998); Sebuah komputer dikatakan untuk belajar dari pengalaman (E) yang ada hubungannya dengan tugas (T) dan setelah itu di ukur performa (P) aplikasinya (Hasil Terjemahan).

Kita ambil contoh Machine Learning dalam mendeteksi spam pada email masuk.

  • T = Klasifikasikan email yang spam dan tidak!
  • E = Memerhatikan sifat-sifat email yang dilabeli spam oleh pengguna.
  • P = Memastikan jumlah email yang berhasil di klasifikasi oleh program. Apakah sudah benar?

🚨 Sebelum kita mulai, saya mau tegaskan, data yang digunakan pada blog ini hanya data untuk latihan saja, tidak berdasarkan kasus nyatanya.

Supervised Learning

Sumber: Twitter @athena_schools

Dalam bahasa Indonesia, artinya Pembelajaran yang diawasi. Supervised Learning adalah proses algoritma menemukan pola dan fitur-fitur penting dari data aktual sebelumnya. Data aktual itu seperti data yang telah kita labeli dan kita sendiri ketahui jawabannya. Dari data tersebut, kita ajari lagi pada mesin sehingga diharapkan algoritmanya dapat membuat prediksi dan memutuskan jawabannya sendiri. Hubungannya seperti guru (kamu) dan murid (si bot).

Regresi

Regresi adalah metode statistik untuk prediksi nilai (Y) yang berkelanjutan. Langsung aja ke contoh kasusnya; anggaplah kita memiliki data harga rumah yang telah dikumpulkan beberapa hari lalu.

+----------------+------------------------+
| Luas Rumah (X) | Harga Dalam Miliar (Y) |
+----------------+------------------------+
| 500 | 1,4 |
+----------------+------------------------+
| 1000 | 2,8 |
+----------------+------------------------+
| 1500 | 4,2 |
+----------------+------------------------+
| 2000 | 5,6 |
+----------------+------------------------+
| 2500 | 7 |
+----------------+------------------------+

Kita visualisasikan untuk menemukan pola yang terbentuk pada data diatas.

Contoh Data Harga Rumah untuk Regresi

Terlihat, titik-titik yang terbentuk jika dihubungkan akan jadi garis lurus.

Contoh Regresi Linear pada Data Harga Rumah

Dengan begitu, apabila kita ingin prediksi nilai harga rumah yang luasnya 750, berapakah harganya? Tepat 2.2 miliar. Begitulah prediksi pada Regresi Linear — Garis Lurus.

Cara Regresi Linear memprediksi data yang baru

Ada 2 cabang pembelajaran pada regresi linear:

  1. Quadratic Polynomial Regression.
  2. Straight Linear Regression < yang baru kita pelajari barusan.

Nilai-nilai numerik diatas disebut nilai kontinu.

Klasifikasi

Klasifikasi adalah proses pengkategorian dari sejumlah data menjadi beberapa kategori. Langsung aja ke contoh kasusnya; anggaplah kita sedang kolaborasi dengan dokter untuk membuat aplikasi prediksi antara tumor ganas dan tidak.

Namun masalahnya adalah, komputer hanya dapat mengerti angka-angka numerik. Bagaimana caranya komputer dapat membedakan 2 kategori tumor ganas dan tidak? Kita bisa mewakili 2 kategori tersebut dengan angka numerik;

  • Tidak ganas = 0
  • Tumor ganas = 1

Ini disebut Binary Classification; klasifikasinya yang hanya terdiri dari 2 angka yaitu 0 dan 1. Tentunya tidak terbatas hanya 2 kategori saja, bisa juga beberapa kategori diwakili dengan beberapa nilai numerik. Yang itu disebut Multi-Class Classification.

Anggaplah kita sudah punya data aktual tumor yang memiliki kolom umur dan ukuran tumor. Bayangin aja yaa, soalnya saya bingung cari data aktual buat latihan. Jadi sekarang tinggal kita visualisasikan saja.

  • 0 = O = Tumor tidak ganas.
  • X = 1 = Tumor ganas.
Contoh Data 2D untuk Klasifikasi

Jika kalian lihat, datanya seperti terbagi menjadi 2 kubu. Kubu tumor ganas dan kubu tumor yang tidak ganas. Kita buat lagi visualisasi yang memisahkan 2 kubu tersebut.

Garis yang terbentuk dalam klasifikasi Linear

Dengan begitu, kita coba ambil Random Variable. Jangan pusing dulu maksudnya random variable atau variabel acak, yaitu seperti angka acak yang kita ambil untuk percobaan. Maka dapat disimpulkan, tumor tersebut tidak ganas karena berada pada kubu 🟢.

Titik data acak yang diambil untuk percobaan hasil Klasifikasi Linear yang terbentuk

Walaupun dalam kubu tersebut memiliki beberapa data aktual yang berbeda dari kawan-kawan lainnya. Tapi prediksinya tetap menyimpulkan tumor tersebut tidak ganas. Jika mau tau alasannya, mungkin kalian bisa baca blog tentang Outlier.

UnSupervised Learning

Sumber: Twitter @athena_schools

Artian bahasa Indonesianya adalah Pembelajaran yang tidak diawasi. Unsupervised Learning adalah proses algoritma yang belajar sendiri untuk menemukan pola dari data yang sebelumnya tidak dilabeli.

Seperti yang terlihat pada gambar, dimana bot berusaha melingkar-lingkari 2 buah yang berbeda. Dia mencari kemiripan antar buah, sehingga akhirnya bisa di kelompokkan menjadi 2 kelompok; yaitu apel dan pisang.

Tapi sebenarnya dia tidak mengerti apa itu apel dan pisang, jadi dia menggunakan angka untuk mengkategorikan buah-buahnya.

0: Warna kuning, melengkung, lunak jika ditekan, kulitnya dapat dibuka langsung oleh tangan. < Pisang

1: Warna hijau muda, hampir menyerupai lingkaran, agak keras, kulitnya mungkin tidak dapat dibuka langsung oleh tangan. < Apel

Representasi Model

Model adalah suatu sistem yang telah dilatih untuk menemukan pola pada data. Seperti robot yang telah latihan dengan sejumlah data aktual, menggunakan algoritma khusus sehingga dapat membuatnya bernalar dan belajar dari data yang ada.

Masih bingung maksudnya model? Saya sarankan kalian nonton webinar ini dulu sebelum lanjut. Saya lumayan paham banyak kosakata asing setelah nonton webinar tersebut.

Ini yang sedang kita bicarakan adalah model dalam Supervised Learning. Jika digambarkan, beginilah prosesnya.

Proses prediksi pada Machine Learning
Sumber: Machine Learning Coursera by Andrew Ng

Keterangan:

  • Training set, sekumpulan data besar dan aktual yang telah dikumpulkan sebelumnya.
  • Learning Algorithm, algoritma yang digunakan untuk model dapat bernalar dan belajar dari data tersebut.
  • X, luas rumah.
  • h, atau hipotesis. Setelah dilatih sebegitu kompleksnya, muncullah hipotesis-hipotesis yang digunakan untuk memprediksi harga rumah menggunakan nilai X atau luas rumah. Baca lagi bagian regresi linear, kalau sedikit bingung.
  • y, dari proses pengumpulan data aktual > menggunakan algoritma untuk melatih model > muncul hipotesis. Sehingga di dapatkanlah nilai y atau prediksi harga rumah.

Sebenarnya apa itu hipotesis atau huruf h itu? Kita bakal bahas pada bagian selanjutnya.

Fungsi Cost

Dalam proses melatih model, ada kalanya kita tes keakurasian model dalam memprediksi nilainya. Sekarang, bagaimana cara model mengetahui ‘Seberapa ngawur prediksi yang dibuatnya?’ Disinilah cost function berperan.

Hipotesis

Sebelum itu, seperti yang saya bilang sebelumnya kita akan pelajari fungsi hipotesis pada bagian ini. Kenapa disini? Karena fungsi hipotesis dan fungsi cost saling berkaitan.

Fungsi hipotesis sangat penting untuk mengatur tingkat kemiringan dari garis linear. Dengan begitu, akurasi prediksi juga akan terpengaruhi seiring kita mengatur parameter theta (θ0 dan θ1) dari fungsi hipotesis.

Fungsi Hipotesis: hθ(X) = θ0 + θ1 * X

Keterangan:

  • θ0, merupakan penentu dimana letak titik Y untuk membentuk garis lurus.
  • θ1, merupakan penentu perubahan kemiringan seiring nilai X berubah.
Sumber: Machine Learning Coursera by Andrew Ng

Seperti yang saya bilang sebelumnya, θ0 sangat berpengaruh menentukan letak titik Y untuk memulai garis linear. Dalam contoh ini, θ0nya 1.5. Lalu θ1nya 0, sehingga apa yang menyebabkan garis yang terbentuk hanya lurus datar? Perhatikan fungsi hipotesis dan bagaimana perhitungannya dibawah ini.

  • 1.5 + (0 * 1) = 1.5 + 0 = 1.5
  • 1.5 + (0 * 2) = 1.5 + 0 = 1.5
  • 1.5 + (0 * 3) = 1.5 + 0 = 1.5

Nilai Y yang dihasilkan 1.5 semua. Sehingga itulah yang menyebabkan, garis linearnya hanya lurus datar.

Sumber: Machine Learning Coursera by Andrew Ng

Langsung ke perhitungannya saja, saya asumsikan kalian telah paham fungsi hipotesis ini bekerja.

  • 1 + (0.5 * 1) = 1 + 0.5 = 1.5
  • 1 + (0.5 * 2) = 1 + 1= 2
  • 1 + (0.5 * 3) = 1 + 1.5= 2.5

Nilai Y nya terus meningkat dari waktu ke waktu. Lalu seperti yang saya bilang sebelumnya, titik awal Y ditentukan oleh θ0. Dimana dalam hipotesis ini, nilainya 1.

Intuisi I

Kenapa dinamakan intuisi. Ini berdasarkan pemikiran saya saja ya, mungkin Andrew Ng menamakan materi lanjutan ini dengan intuisi karena dia berharap kita sebagai pelajar di kursus tersebut dapat lebih mengandalkan intuisi kita saat melihat sebuah data.

Seperti; apa algoritma pembelajaran yang tepat? apa yang harus kita lakukan dengan data ini? Dalam materi ini (fungsi cost), pertanyaannya yaitu; berapa θ0 dan θ1 yang harus digunakan agar sesuai dengan data aktualnya? Oke lanjut yaa.

Anggaplah kita memiliki data yang biasa aja, hanya untuk latihan.

+---+---+
| X | Y |
+---+---+
| 1 | 1 |
+---+---+
| 2 | 2 |
+---+---+
| 3 | 3 |
+---+---+

Kita coba visualisasikan untuk melihat, berapa θ0 dan θ1 yang cocok mendekati data aktual diatas?

Contoh Data 2D untuk regresi linear

Tapi masalahnya kurang kerjaan banget kan kalo kita harus ngitung fungsi hipotesis dan ngeliat apakah nilai Ynya udah sesuai dengan titik data diatas?

Disinilah fungsi cost hadir, ada banyak fungsi cost yang dapat kalian gunakan. Pada pembelajaran hari ini, kita gunakan yang namanya Squared Error Function.

Keterangan:

  • hθ(x), fungsi hipotesis.
  • y, nilai aktual data yang sedang menjadi objek latihan.
  • n, banyak data yang ada. Dalam contoh ini ada 3 baris data.
  • i, anggaplah seperti kalian melakukan perulangan dari angka 1 sampai angka n. Jika pernah menggunakan for loop python seharusnya paham.

for i in range(1, n+1)

  • Σ, artinya untuk melakukan perulangan i sampai n dan menjumlahkan perhitungan dari setiap operasi setelah Σ.

Percobaan 1

Error yang dihasilkan masih lumayan besar. Tujuan kita adalah mengecilkan error sampai sekecil mungkin. Lalu yang jadi pertanyaan kalian adalah, nilai error yang 0.5833 — itu nilai darimana? Nilai tersebut berasal dari garis merah pada gambar dibawah.

Garis regresi linear yang buruk

Terlihat juga garis yang terbentuk dari fungsi hipotesis memiliki jarak yang jauh dengan nilai aktualnya. Sekarang apa yang harus kita lakukan?

Percobaan 2

Jika kita lihat disini, kita perlu tingkatkan sedikit lagi kemiringan dari garisnya, dengan menambah nilai θ1. Jadinya seperti ini;

Wah! Error yang dihasilkan 0. Dalam data di dunia nyata jarang dapat ditemukan error dengan nilai 0 sempurna, tapi karena ini latihan, jadi saya sengaja menggunakan data yang mudah dipelajari.

Kenapa bisa 0?

Garis regresi linear yang optimal

Karena data yang menjadi objek latihan benar-benar tertutupi oleh 1 garis lurus dengan θ1 = 1. Tidak ada ruang yang tersisa untuk menggambar garis merah/garis yang menunjukkan error.

Intuisi II

Saya belum pelajari lagi. Masih timbul pertanyaan demi pertanyaan di materi ini.

Aljabar Linear: Matriks dan Vektor

Thank you m4th-lab!

Akhir Kata

Kursus Machine Learning dari Andrew Ng sangat membantu banget buat kalian yang bener-bener belum banyak tau bidang ini (Machine Learning). Walaupun kursus ini terbilang ‘kuno’, tapi ilmu yang dibagikan memang daging semua, menurut saya cukup banget buat memperkuat pemahaman mendasar.

Buat yang bertanya-tanya — mana pembahasan Algoritma Gradient Descent? Saya sebenarnya sudah lumayan paham bagaimana algoritma tersebut bekerja, tapi saya rasa masih agak menggantung ilmunya kalau dibagikan sekarang, tunggu sampai cukup dulu ya! 😉 biar lebih jelas.

Referensi

⚠️ Semua tulisan ini berdasarkan ilmu yang saya dapatkan dari berbagai sumber juga, tidak tok hanya di kursus Andrew Ng. Jadi saya juga meminta tolong, jika kalian melihat ada salah-salah kata/pengertian, mohon info ke saya melalui E-Mail, Instagram atau Facebook.

--

--

Do Exploit
machinelearningid

I share stories about what I've learned in the past and now. Let's connect to Instagram! @do.exploit