Rabu, 12 Februari 2020

Machine learning

SOFTSKILL

“MACHINE LEARNING”





Disusun Oleh :
  -  Adhi Sulistyo                     
  - Novadia Okta W.
  -  Arif Abdul          
  -  Putri Aggraini
  -  Dwieky Iskandar M.S    
  -  Raden Rahman A.
  -  LukyAdya                             
 – Wibhe Febriansyah
  -  M. Abdul Havidz





KELAS : 3KA10




FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS GUNADARMA
2020


Jobdesk :
-  Adhi Sulistyo  (MATERI) -  Novadia Okta W. (PPT)
-  Arif Abdul (MATERI) -  Putri Aggraini (MATERI)
-  Dwieky Iskandar M.S.  (PPT) -  Raden Rahman A.  (MATERI)
-  Luki Adya (MATERI) -  Wibhe Febriansyah  (VIDEO)
-  M. Abdul Havidz  (VIDEO)

LINK YOUTUBE : https://www.youtube.com/watch?v=cQ87y86eP1g&feature=youtu.be

BAB I
PENGENALAN
Sebagai permulaan, machine learning dan deep learning bukanlah kedua hal yang sangat berbeda Perlu diingat, deep learning adalah bagian dari machine learning. Machine learning sudah diaplikasikan pada banyak hal, baik untuk klasifikasi gambar, mobil tanpa pengemudi, klasifikasi berita, dsb. Bab ini menjelaskan konsep paling dasar dan utama machine learning.
Kecerdasan Buatan
Artificial Intelligence (AI) Kecerdasan Buatan adalah bagian dari ilmu komputer. Dengan penelitian dan pengembangan kecerdasan buatan, ia berusaha untuk tidak hanya mensimulasikan tetapi untuk melengkapi pemikiran manusia dengan program komputer belajar mandiri. AI sudah banyak digunakan dalam bisnis, misalnya, dalam algoritma RankBrain Google. Istilah “jaringan saraf” dan “pembelajaran mendalam” terkait erat dengan pengembangan kecerdasan buatan.
Pada bidang keilmuan kecerdasan buatan, kita ingin menciptakan agen yang mampu melakukan pekerjaan yang membutuhkan kecerdasan manusia. Perhatikan, disini disebut kecerdasan manusia; hewan pun cerdas, tapi kecerdasan manusia dan hewan berbeda; yang kita ingin aproksimasi adalah kecerdasan manusia. Akan tetapi, kecerdasan manusia susah didefinisikan karena memiliki banyak aspek misalnya nalar (logika), kemampuan berbahasa, seni, dsb. Karena kecerdasan manusia memiliki banyak dimensi, kita dapat mencoba menyelesaikan masalah pada sub bidang lebih kecil (divide and conquer ). Sampai saat ini pun, peneliti belum juga mengetahui secara pasti apa yang membuat manusia cerdas, apa itu sesungguhnya cerdas, dan bagaimana manusia dapat menjadi cerdas. Dengan demikian, keilmuan kecerdasan buatan adalah interdisiplin, memuat: psikologis, linguistik, ilmu komputer, biologi, dsb
Permasalahan utama bidang kecerdasan buatan terdiri dari (dari klasik sampai lebih modern), yaitu:
Planning. Diberikan start state dan goal state, agen harus merencanakan sekuens aksi untuk merubah start state menjadi goal state. Contoh permasalahan planning adalah merencanakan rute perjalanan dari kota A ke kota B. Bisa jadi, saat merencanakan sekuens aksi, ada kendala (constraints) yang harus dioptimisasi.
Representasi pengetahuan, yaitu merepresentasikan pengetahuan dalam bentuk formal. Dengan representasi formal tersebut, kita dapat melakukan inferensi dengan operasi logika berbentuk simbolik, misal logika preposisi, logika orde pertama (first-order logic), teori Fuzzy, abductive reasoning, ontologi, maupun jaringan semantik (semantic web).
Machine learning, yaitu teknik untuk melakukan inferensi terhadap data dengan pendekatan matematis. Inti machine learning adalah untuk membuat model (matematis) yang merefleksikan pola-pola data (seiring kamu membaca buku ini, kamu akan lebih mengerti). Ini adalah bahasan utama buku ini.
 Multi-agent system, yaitu sistem yang memiliki banyak agen berinteraksi satu sama lain untuk menyelesaikan permasalahan. Agen satu mengerjakan suatu hal tertentu, kemudian bekerja bersama untuk menyelesaikan masalah yang lebih besar (tidak dapat diselesaikan sendiri).
Dan lain sebagainya, silahkan mengacu pada topik konferensi Association for the Advancement of Artificial Intelligence (AAAI).

Intelligent Agent
Agen cerdas memiliki empat kategori berdasarkan kombinasi dimensi cara inferensi (reasoning) dan tipe kelakuan (behaviour). Kategori agen dapat dilihat pada Gambar 1.1 dengan penjelasan sebagai berikut:

Acting Humanly. Pada dimensi ini, agen mampu bertingkah dan berinteraksi layaknya seperti manusia. Contoh terkenal untuk hal ini adalah turing test. Tujuan dari turing test adalah untuk mengevaluasi apakah suatu sistem mampu “menipu” manusia. Disediakan seorang juri, kemudian juri berinteraksi dengan sesuatu di balik layar. Sesuatu di balik layar ini bisa jadi manusia atau program. Program dianggap mampu bertingkah (berinteraksi) seperti layaknya manusia apabila juri tidak dapat membedakan ia sedang berkomunikasi dengan manusia atau program.
Acting Rationally. Pada dimensi ini, agen mampu bertingkah dengan optimal. Tindakan optimal belum tentu menyerupai tindakan manusia, karena tindakan manusia belum tentu optimal. Misalnya, agen yang mampu memiliki rute terpendek dari suatu kota A ke kota B untuk mengoptimalkan penggunaan sumber daya. Sebagai manusia, bisa saja kita mencari jalan sesuka hati.
Thinking Humanly. Pada dimensi ini, agen mampu berpikir seperti manusia dalam segi kognitif (e.g. mampu mengerti apa itu kesedihan atau kesenangan). Dapat dibilang, meniru bagaima proses berpikir di otak terjadi (pemodelan otak).
Thinking Rationally. Pada dimensi ini, agen mampu berpikir secara rasional. Sederhananya sesuai dengan konsep logika matematika. Thinking Humanly lebih cenderung pada pemodelan kognitif secara umum, sementara dimensi thinking rationally cenderung pada pemodelan proses berpikir dengan prinsip optimisasi (apa yang harus dilakukan agar hasil optimal).


Statistical Learning Theory
Pada masa sekarang ini data bertebaran sangat banyak dimana-mana. Pemrosesan data secara manual tentu adalah hal yang kurang bijaksana. Beberapa pemrosesan data yang dilakukan seperti kategorisasi (kategorisasi teks berita), peringkasan dokumen, ekstraksi informasi (mencari subjek, objek, dan relasi diatara keduanya pada teks), rekomendasi produk berdasarkan catatan transaksi, dll. Tujuan machine learning minimal ada dua: memprediksi masa depan (unobserved event); dan/atau memperoleh ilmu pengetahuan (knowledge discovery/discovering unknown structure). Kedua hal ini berkaitan sangat erat. Sebagai contoh, manusia tahu bahwa cara menggunakan pensil dan pulpen sama, walaupun saat kita belum pernah menggunakan pulpen (penulis berasumsi kamu belajar menulis menggunakan pensil). Memprediksi masa depan berarti kita tahu bahwa pulpen adalah alat tulis. Knowledge discovery berarti kita tahu bahwa cara menggunakan pulpen dan pensil itu sama, walaupun belum pernah menggunakan pulpen sebelumnya. Untuk mencapai tujuan tersebut, kita menggunakan data (sampel), kemudian membuat model untuk menggeneralisasi “aturan” atau “pola” data sehingga kita dapat menggunakannya untuk mendapatkan informasi/membuat keputusan. Statistical learning theory (yang diaplikasikan pada machine learning) adalah teknik untuk memprediksi masa depan dan/atau menyimpulkan/mendapatkan pengetahuan dari data secara rasional dan nonparanormal

Training, Development, Testing Set
Terdapat dua istilah penting dalam pembangunan model machine learning yaitu: training dan testing. Training adalah proses membangun model dan testing adalah proses menguji kinerja model pembelajaran. Dataset adalah kumpulan data (sampel dalam statistik). Sampel ini adalah data yang kita gunakan untuk membuat model maupun mengevaluasi model machine learning. Umumnya, dataset dibagi menjadi tiga jenis yang tidak beririsan (satu sampel pada himpunan tertentu tidak muncul pada himpunan lainnya):
Training set adalah himpunan data yang digunakan untuk melatih atau membangun model. Pada buku ini, istilah training data(set) mengacu pada training set.
Development set atau validation set adalah himpunan data yang digunakan untuk mengoptimisasi saat melatih model. Model dilatih menggunakan training set dan pada umumnya kinerja saat latihan diuji dengan development set. Hal ini berguna untuk generalisasi (agar model mampu mengenali pola secara generik). Pada buku ini, istilah development/validation data(set) mengacu pada hal yang sama.
Testing set adalah himpunan data yang digunakan untuk menguji model setelah proses latihan selesai. Pada buku ini, istilah testing data(set) atau test set mengacu pada testing set. Perlu kami tekankan, testing set adalah unseen data. Artinya, model dan manusia tidak boleh melihat sampel ini saat proses latihan. Banyak orang yang tergoda untuk melihat testing set saat proses latihan walaupun itu adalah tingkah laku yang buruk karena menyebabkan bias.
Satu sampel pada himpunan data kita sebut sebagai data point atau instans (instance) yang merepresentasikan suatu kejadian statistik (event). Perlu diingat, training, development, dan testing data diambil (sampled) dari distribusi yang sama dan memiliki karakteristik yang sama (independently and identically distributed). Distribusi pada masing-masing dataset ini juga sebaiknya seimbang (balanced) dan memuat seluruh kasus. Misal, sebuah dataset binary classification sebaiknya memuat 50% kasus positif dan 50% kasus negatif.

Supervised Learning
Jika diterjemahkan secara literal, supervised learning adalah pembelajaran terarah/terawasi. Artinya, pada pembelajaran ini, ada guru yang mengajar (mengarahkan) dan siswa yang diajar. Kita disini berperan sebagai guru, kemudian mesin berperan sebagai siswa.

Regresi
Pada persoalan regresi, kita ingin memprediksi output berupa bilangan kontinu. Misalnya pada regresi suatu fungsi polinomial, kita ingin mencari tahu fungsi f(x) diberikan data {(x1, y1), · · · ,(xN , yN )}. Setelah itu, kita gunakan fungsi aproksimasi untuk mencari tahu nilai yN+1 dari data baru xN+1. Perbedaan regresi dan klasifikasi adalah pada tipe output. Untuk regresi, tipe output adalah nilai kontinu; sementara tipe output pada persoalan klasifikasi adalah suatu objek pada himpunan (i.e., memilih opsi pada himpunan jawaban). Tetapi, kita dapat mengkonversi fungsi regresi menjadi fungsi klasifikasi (dijelaskan pada bab 5).



Semi-supervised Learning
Semi-supervised learning mirip dengan supervised learning, bedanya pada proses pelabelan data. Pada supervised learning, ada “guru” yang harus membuat “kunci jawaban” input-output. Sedangkan pada semi-supervised learning tidak ada “kunci jawaban” eksplisit yang harus dibuat guru. Kunci jawaban ini dapat diperoleh secara otomatis (misal dari hasil clustering). Pada kategori pembelajaran ini, umumnya kita hanya memiliki sedikit data. Kita kemudian menciptakan data tambahan baik menggunakan supervised ataupun unsupervised learning, kemudian membuat model belajar dari data tambahan tersebut.

















BAB II
FONDASI MATEMATIS

Probabilitas
Di dunia ini, ada banyak hal yang tidak pasti (uncertain). Ssungguhnya, machine learning berurusan dengan ketidakpastian (uncertainty). Dengan hal itu, machine learning memiliki kaitan yang sangat erat dengan statistika. Probabilitas menyediakan framework untuk kuantifikasi dan manipulasi ketidakpastian. Mari kita lihat contoh sederhana. Terdapat dua buah kotak berwarna merah dan berwarna biru. Pada kotak merah terdapat 3 apel dan 1 jeruk. Pada kotak biru, terdapat 2 apel dan 4 jeruk, kita ingin mengambil buah dari salah satu kotak tersebut. Ilustrasi persoalan dapat dilihat pada Gambar 2.1. Dalam hal ini, kotak adalah random variable. Random variable k (melambangkan kotak) dapat bernilai merah atau biru. Begitu pula dengan buah, dilambangkan dengan variabel b, dapat bernilai apel atau jeruk

Saat kita mengambil buah dari kotak biru, peluang untuk memilih apel bernilai 2/6, sedangkan peluang untuk memilih jeruk bernilai 4/6; kita tulis probabilitas ini sebagai P(b = apel) = 2/6; dan P(b = jeruk) = 4/6. Artinya, jika kita mengambil buah dari kotak biru, kemungkinan lebih banyak kejadian saat kita mendapatkan jeruk. Nilai suatu probabilitas harus lebih besar sama dengan nol sampai kurang dari atau sama dengan satu (0 ≤ P ≤ 1). Nilai nol berarti suatu kejadian tidak mungkin muncul, sementara nilai satu berarti suatu kejadian pasti terjadi. Lalu sekarang ada pertanyaan baru; pada suatu percobaan, berapakah probabilitas mengambil sebuah apel dari kotak biru atau sebuah jeruk dari kotak merah. Hal ini dituliskan sebagai P((k = biru, b = apel) atau (k = merah, b = jeruk)). Nilai probabilitas tersebut dapat dihitung dengan:

P(k = biru, b = apel) disebut joint probability, yaitu probabilitas kejadian yang dipengaruhi oleh beberapa variabel (kondisi untuk kedua variabel terpenuhi). • P(k = biru, b = apel) + P(k = merah, b = jeruk) disebut aturan tambah. Penting untuk diingat bahwa hasil operasi apapun terhadap probabilitas (baik tambah, kurang, kali, atau bagi) haruslah lebih besar sama dengan nol sampai kurang dari atau sama dengan satu (0 ≤ P ≤ 1).
Penting untuk diingat bahwa hasil operasi apapun terhadap probabilitas (baik tambah, kurang, kali, atau bagi) haruslah lebih besar sama dengan nol sampai kurang dari atau sama dengan satu (0 ≤ P ≤ 1). Misalkan terdapat percobaan lain, kali ini kamu mengambil 1 buah. Kamu ingin mengetahui berapakah probabilitas untuk mengambil buah apel kotak mana saja. Hal ini dihitung dengan persamaan 2.2.

Aturan tambah seperti ini disebut marginal probability karena hasilnya didapat dengan menjumlahkan probabilitas seluruh kemungkinan nilai pada variabel tertentu (buah) dengan mengontrol variabel lainnya (kotak). Kemudian, kamu ingin melakukan percobaan lain. Kali ini kamu mengambil 2 buah sekaligus dari kedua kotak. Kamu ingin mengetahui berapakah probabilitas mengambil buah apel yang berasal dari kotak biru dan buah jeruk yang berasal dari kotak merah. Dalam kasus ini, kejadiannya adalah saling bebas, artinya mengambil buah dari kotak biru, pada saat yang bersamaan tidak akan mempengaruhi hasil pengambilan kotak merah. Apabila kedua random variable x dan y independent (tidak bergantung satu sama lain), maka P(x = X, y = Y ) = P(X) × P(Y ). Permasalahan mengambil buah dapat dihitung dengan persamaan 2.3.

Aturan ini disebut aturan kali. Untuk joint probability, secara umum dapat ditulis sebagai P(x, y). Apabila kedua variabel x dan y tidak saling bebas, maka keduanya disebut dependent. Artinya x dan y saling mempengaruhi. Apabila suatu variabel x dikondisikan (conditioned) oleh variabel lain (misal y). Maka probabilitas x adalah conditional probability function, ditulis P(x | y). Artinya probabilitas x yang dikondisikan oleh y. P(x | y) dapat dihitung dengan persamaan 2.4,

yaitu peluang kejadian x dan y muncul bersamaan dibagi dengan peluang kejadian y. Apabila x ternyata tidak dikondisikan oleh variabel y, maka P(x | y) = P(x).

Probability Density Function
 Probability density function dikenal juga dengan istilah distribusi, yaitu tentang persebaran nilai. Sebagai contoh, penulis menceritakan pelajaran di sekolah. Terdapat ujian mata pelajaran di kelas yang beranggotakan 10 siswa, diberikan pada Tabel 2.1. Terdapat 3 orang anak mendapatkan nilai 50, 2 orang anak mendapatkan nilai 75 dan 80, 1 orang anak mendapatkan nilai 100, 1 orang anak mendapat nilai 40, serta 1 orang anak mendapatkan nilai 10.

Guru ingin mengetahui persebaran (distribusi) nilai ujian untuk menentukan batas kelas nilai (misal nilai “A” adalah ≥ 85) jadi, ia mencari persebaran nilai siswa. Ia menghitung seberapa mungkin siswa tertentu mendapat nilai tertentu, dapat dilihat pada Gambar 2.2. Grafik itu disebut sebagai distribusi. Fungsi yang menghasilkan distribusi tersebut disebut probability density function. Apabila kita menjumlahkan probabilitas (probabilitas siswa mendapat nilai 0 - 100) nilainya adalah 1.

Ini adalah contoh untuk data diskrit, tetapi sering kali kita berurusan dengan data kontinu. Untuk mengetahui nilai probabilitas dari himpunan event/kejadian, kita dapat mengintegralkan kurva distribusi kejadian pada interval tertentu. Ciri probability density function, nilai dibawah kurva pada interval −∞ sampai ∞ adalah 1, i.e., p(x) ≥ 0; R ∞ −∞ p(x)dx = 1.

Expectation dan Variance
Salah satu operasi paling penting dalam probabilitas adalah menemukan nilai rata-rata (average) sebuah fungsi [8]. Hal ini disebut menghitung ekspektasi (expectation). Untuk sebuah fungsi f(x) dengan distribusi probabilitas random variable adalah p(x), nilai expectation diberikan pada persamaan 2.5.

Dalam kasus nyata, misalkan diberikan N buah sampel, random variable x dan fungsi f(x), dimana sampel tersebut diambil dengan distribusi tertentu yang kita tidak ketahui, maka fungsi untuk menghitung nilai expectation menjadi persamaan 2.6,

dimana xi merepresentasikan data ke-i (point). Perhatikan, persamaan tersebut sama dengan persamaan untuk menghitung rata-rata (mean atau µ) seperti yang sudah kamu pelajari di SMA. Untuk mengetahui seberapa variasi nilai f(x) di sekitar nilai rata-ratanya, kita menghitungnya mengunakan variance, disimbolkan dengan var(f) atau σ 2 (persamaan 2.7).

Bila nilai variance tinggi, secara umum banyak variabel yang nilainya jauh dari nilai rata-rata. Interpretasi secara “geometris” mata, berarti distribusinya semakin “lebar” seperti pada Gambar 2.3. Untuk fungsi dengan lebih dari satu variabel, kita menghitung covariance. Covariance adalah variance untuk kombinasi variabel.

Gaussian Distribution
Distribusi adalah fenomena acak atau deskripsi matematis suatu random variable. Kamu harusnya sudah mengetahui distribusi ini. Ini adalah distribusi yang sangat terkenal yaitu bell curve/distribusi normal. Distribusi normal adalah bentuk khusus dari Gaussian distribution. Ada beberapa macam distribusi yang akan dibahas pada bab ini, yaitu: Univariate Gaussian, Multivariate Gaussian, dan Gaussian Mixture Model. Pertama kita bahas Univariate Gaussian terlebih dahulu. Disebut univariate karena distribusinya bergantung pada satu input variabel, misalkan x. Distribusi univariate Gaussian dikarakteristikkan oleh variabel x, mean (µ) dan variance (σ 2 ) diberikan pada persamaan 2.10. µ dan σ 2 adalah rata-rata dan variance untuk kumpulan data. Karena nilai µ dan σ 2 bergantung pada x, maka kita dapat menyebutkan dengan aman bahwa univariate gaussian bergantung pada satu variabel saja yaitu x.

Perhatikan Gambar 2.3, x adalah absis dan nilai N untuk x tertentu (persamaan 2.10) adalah ordinat pada kurva ini. Bentuk distribusi berubah-ubah sesuai dengan nilai rata-rata (mean), serta variance. Semakin besar variancenya, maka kurva distribusi semakin lebar (seperti yang dijelaskan sebelumnya). Untuk menggeser-geser kurva ke kiri maupun ke kanan, dapat dilakukan dengan menggeser nilai mean. Untuk mencari nilai pada suatu interval tertentu, cukup mengintegralkan fungsi pada interval tersebut. Nilai integral fungsi dari −∞, hingga ∞ adalah satu. Sekarang bayangkan kita diberikan N buah data hasil observasi. Diasumsikan observasi dihasilkan oleh distribusi univariate Gaussian dengan rata-rata µ dan variance σ 2 . Setiap data diambil secara independen dari distribusi yang sama, disebut independent and identically distributed (iid).

Teori Keputusan
Diberikan himpunan pasangan data input-output (xi , yi); x = input, y = output/target; walaupun tidak pasti, kita ingin mengestimasi hubungan antara input dan output. Untuk itu kita melakukan estimasi p(y | x, w), dimana w adalah learning parameters. Pada bab pertama, kamu telah mempelajari bahwa kita mampu melakukan hal ini dengan teknik machine learning. Lebih jauh lagi, kita juga harus mampu untuk membuat keputusan berbasiskan perkiraan nilai y, aspek ini disebut decision theory [8]. Dalam machine learning kita dapat membangun model dengan tujuan untuk meminimalkan error atau meminimalkan loss; konsep meminimalkan error dijelaskan pada materi curve fitting (bab 5). Ibaratnya untuk sebuah robot, kita ingin robot tersebut tidak melakukan tindakan yang salah. Tetapi, kadang kala meminimalkan error belum tentu membuat model menjadi “bagus”. Kami ilustrasikan menggunakan contoh dari Bishop [8]. Misalkan kita diminta untuk membuat model klasifikasi kanker. Kita dapat mengklasifikasikan pasien menjadi dua kelas {kanker, normal}. Apabila kita ingin meminimalkan error saja maka kita ingin mengklasifikasikan secara tepat orang yang kanker dianggap memiliki kanker dan yang tidak dianggap sebagai tidak. Akan tetapi, terdapat tradeoff yang berbeda saat salah klasifikasi. Apabila kita mengklasifikasikan orang yang normal sebagai kanker, konsekuensi yang mungkin adalah membuat pasien menjadi stres atau perlu melakukan pemeriksaan ulang. Tetapi bayangkan, apabila kita mengklasifikasikan orang kanker sebagai normal, konsekuensinya adalah penanganan medis yang salah. Kedua kasus ini memiliki beban yang berbeda. Secara formal, kasus ini disebut loss. Secara sederhana, kesalahan klasifikasi memiliki bobot berbeda untuk tiap kelasnya. Pada buku ini, kita anggap kesalahan klasifikasi memiliki penalti yang sama. Dengan demikian, loss dan error akan mengacu pada hal yang sama di bab-bab berikutnya. Demi istilah yang lebih generik, loss akan lebih sering digunakan. Fungsi tujuan pembelajaran (secara umum untuk merepresentasikan error atau loss) dituangkan dalam utility function. Sekali lagi kami tekankan, tujuan machine learning adalah memaksimalkan kinerja. Kinerja diukur berdasarkan utility function. Loss adalah ukuran seberapa dekat/berbeda model yang dihasilkan dengan konsep asli, sementara error adalah salah satu cara untuk mengukur loss. Untuk mengukur nilai loss; dapat diekspresikan dengan loss function. Secara umum, ada dua macam loss, yaitu generalization loss/error dan training loss/error. Generalization loss/error adalah ukuran sejauh mana algoritma mampu memprediksi unobserved data dengan tepat (saat testing), karena kita hanya membangun model dengan data yang terbatas, tentunya bisa saja terdapat ketidakcocokan dengan data yang asli. Sedangkan training loss/error seperti namanya, ukuran loss saat training. Misalkan q(x) adalah distribusi data asli. Menggunakan sampel data dengan distribusi p(x), generalization loss dan training loss dihitung dengan persamaan 2.14 dan persamaan 2.15.


Tentunya sekarang kamu bertanya-tanya. Kita tidak mengetahui bagaimana q(x) aslinya, bagaimana cara menghitung generalization loss? Nah, untuk itulah ada teknik-teknik pendekatan distribusi populasi q(x), misalnya maximum likelihood method, maximum posterior method dan Bayesian method (silahkan dieksplorasi). Bentuk persamaan 2.15 memiliki kaitan dengan confidence.
Teori Informasi
Pada machine learning, kita ingin fitur pembelajaran yang digunakan mampu melambangkan information source properties. Artinya, kita ingin memilih fitur yang memuat informasi terbanyak (relatif terhadap information source). Karena hal tersebut, mengerti entropy menjadi penting. Ada sebuah strategi pemilihan fitur (feature selection) dengan membangun decision tree. Awalnya kita bentuk training data dengan semua kemungkinan fitur, kemudian mengambil beberapa fitur yang dekat dengan root. Hal tersebut dimaksudkan untuk mencari fitur yang memuat banyak informasi. Kemudian, fitur tersebut dapat dicoba pada algoritma learning lainnya. Detil akan dijelaskan pada bab yang memuat decision tree.
Matriks
Subbab ini adalah pengingat untuk operasi perjumlahan, pengurangan, perkalian, dan transpose matriks karena banyak digunakan di buku ini. Diberikan dua buah matriks U dan V. U dan V dapat dijumlahkan jika dan hanya jika dimensi kedua matriks itu sama. Perjumlahan matriks dinotasikan dengan U + V = C. Matriks C memiliki dimensi yang sama dengan U dan V. Nilai elemen baris ke-i dan kolom ke-j (Ci,j ) dihitung sebagai penjumlahan nilai elemen matriks U dan V pada baris dan kolom yang bersesuaian, seperti diilustrasikan pada persamaan 2.20. Pengurangan dua buah matriks dilakukan serupa.

Dua buah matriks U dan V dapat dikalikan jika U memiliki kolom sebanyak baris pada V. Misalkan matriks U berdimensi N × M dan V berdimensi M ×O, maka kedua matriks tersebut dapat dikalikan dan menghasilkan matriks C dengan dimensi N × O (dimensi baris U dan kolom V), dimana tiap elemen pada matriks C dihitung dengan persamaan 2.21 (operasi antara vektor baris dan vektor kolom).

Selain perkalian antar dua buah matriks, sebuah matriks juga dapat dikalikan dengan skalar, dinotasikan dengan aU. Hasil perkalian adalah sebuah matriks dengan dimensi yang sama dengan U, dimana tiap elemen dikalikan dengan nilai skalar.


Suatu matriks U berdimensi N × M apabila di transpose menghasilkan matriks UT berdimensi M×N, dimana elemen ke-i, j pada matriks UT adalah elemen ke-j, i pada matriks U, seperti diilustraiskan pada persamaan 2.21.


BAB III
DATA ANALYTICS

Pengenalan Data Analytics
Dalam berbagai hal masalah bisa saja terjadi. Disini, masalahnya terjadi seperti  ketika tujuan yang diinginkan tidak tercapai (current state bukanlah desired state). Agar current state menjadi desired state, kita melakukan kegiatan yang disebut penyelesaian masalah (problem solving). Tiap bidang (domain) mendefinisikan permasalahan secara berbeda. Oleh karena itu, mengetahui teknik machine learning tanpa mengetahui domain aplikasi adalah sesuatu yang kurang baik. Contohnya, bidang keilmuan pemrosesan bahasa alami (natural language processing) menggunakan machine learning untuk mengklasifikasikan teks; bidang keilmuan pemrosesan suara menggunakan machine learning untuk mentranskripsikan suara manusia menjadi teks. Tiap bidang merepresentasikan permasalahan ke dalam formulasi yang berbeda. Machine learning adalah inferensi berdasarkan data. Raw data atau data mentah adalah sekumpulan fakta (record, event) yang kemungkinan besar tidak memberikan penjelasan apapun. Sama halnya dengan kebanyakan data di dunia nyata, raw data bersifat tidak rapih, misalnya mengandung missing value atau ada data yang tidak memiliki label padahal data lainnya memiliki label. Agar mampu menganalisis raw data menggunakan teknik machine learning, pertama-tama yang harus dilakukan adalah merapikan data sesuai dengan format yang diinginkan (dataset). Setelah itu, gunakan Teknik-teknik yang ada untuk menemukan pola-pola yang ada di data. Dalam komunitas peneliti basis data, dipercaya bahwa data memiliki sangat banyak relasi yang mungkin tidak bisa dihitung. Teknik machine learning hanya mampu mengeksplorasi sebagian relasi yang banyak itu. Lalu, analisis informasi yang didapatkan menjadi pengetahuan yang digunakan untuk memecahkan permasalahan atau membuat keputusan. Setelah menganalisis data dan mendapatkan pengetahuan baru, kemudian dipresentasikan.



Nilai Atribut dan Transformasi
Perhatikan Tabel 3.1 yang merupakan contoh dataset pada machine learning. Dataset adalah kumpulan data. Seorang anak ingin bermain tenis, tetapi keputusannya untuk bermain tenis (play) tergantung pada empat variabel {outlook, temperature, humidity, windy}. Keempat variabel ini disebut fitur. Setiap fitur memiliki atribut nilai dengan tipe data dan range tertentu. Keputusan untuk bermain (play) disebut sebagai label atau kelas (class). Pada supervised learning, yang akan diklasifikasikan apakah seorang anak akan bermain atau tidak, diberikan fitur-fitur yang memuat kondisi observasi. Pada unsupervised learning, informasi kolom play tidak diberikan, harus terlebih dahulu mengelompokkan data tersebut sesuai dengan fitur-fiturnya. Dari segi data statistik, terdapat beberapa tipe atribut:
Nominal.
Nilai atribut bertipe nominal tersusun atas simbol-simbol yang berbeda, yaitu suatu himpunan terbatas. Sebagai contoh, fitur outlook pada Tabel 3.1 memiliki tipe data nominal yaitu nilainya tersusun oleh himpunan {sunny, overcast, rainy}. Pada tipe nominal, tidak ada urutan ataupun jarak antar atribut. Tipe ini sering juga disebut kategorial atau enumerasi. Secara umum, tipe output pada supervised learning adalah data nominal.
Ordinal.
Nilai ordinal memiliki urutan, sebagai contoh 4 > 2 > 1. Tetapi jarak antar suatu tipe dan nilai lainnya tidak harus selalu sama, seperti 4−2 6= 2−1. Atribut ordinal kadang disebut sebagai numerik atau kontinu.
Interval.
Tipe interval memiliki urutan dan range nilai yang sama. Sebagai contoh 1 − 5, 6 − 10, dst. Transformasikan nilai numerik menjadi nominal dengan cara merubahnya menjadi interval terlebih dahulu. Lalu, berikan nama (simbol) untuk masing-masing interval. Misalkan nilai numerik dengan range 1 − 100 dibagi menjadi 5 kategori dengan masing-masing interval adalah {1 − 20, 21 − 40, . . . , 81 − 100}. Setiap interval berikan nama, misal interval 81 − 100 diberi nama nilai A, interval 61 − 80 diberi nama nilai B.
Ratio.
Tipe ratio (rasio) didefinisikan sebagai perbandingan antara suatu nilai dengan nilai lainnya, misalkan massa jenis (fisika). Pada tipe ratio terdapat absolute zero (semacam ground truth) yang menjadi acuan, dan absolute zero ini memiliki makna tertentu.

Ruang Konsep
Dengan data yang diberikan, ingin dilakukan generalisasi aturan/konsep yang sesuai dengan data. Hal ini disebut sebagai inductive learning. Cara paling sederhana untuk inductive learning adalah mengenumerasi seluruh kemungkinan kombinasi nilai sebagai rule, kemudian mengeleminasi rule yang tidak cocok dengan contoh. Metode ini disebut list-then-eleminate. Sebagai contoh pada Tabel 3.1 himpunan nilai masing-masing atribut yaitu:
outlook = {sunny, overcast, rainy}
 temperature = {hot, mild, cold}
 humidity = {high, normal}
windy = {true, f alse}
play = {yes, no}
sehingga terdapat 3×3×2×2×2 = 72 kemungkinan kombinasi. Tentunya tidak mungkin mengenumerasi seluruh kemungkinan kombinasi nilai karena secara praktikal, atribut yang digunakan banyak. Terlebih lagi, apabila mengenumerasi kombinasi atribut bertipe numerik.

Linear Separability

Perhatikan Tabel 3.2. Data pada tabel disebut linearly separable. Sederhananya, untuk suatu nilai tertentu, fitur hanya berkorespondensi dengan kelas tertentu. Ambil contoh pada Tabel 3.2, saat humidity=high maka swim=yes. Secara “geometris”, bila feature vector diproyeksikan ke suatu ruang dimensi, memisahkan kelas satu dan kelas lainnya dapat diperoleh dengan cara menciptakan garis linier (linear line – secara lebih umum, menggunakan hyperplane3 ). Ilustrasi dapat dilihat pada Gambar 3.1. Sementara pada Tabel 3.1, bila hanya melihat fitur humidity saja, ketika humidity=high bisa jadi play=yes atau play=no. Kasus ini disebut non-linearly separable.

Seleksi Fitur
Pada subbab sebelumnya, telah dijelaskan bahwa dapat mentransformasikan data non-linearly separable menjadi linearly separable dengan cara menambah dimensi data. Pada bab ini, akan dilakukan kebalikannya. Pada permasalahan praktis, seringkali digunakan banyak fitur (computationally expensive). Lebih baik menyederhanakan fitur-fitur yang digunakan, misalkan dengan memilih subset fitur awal, atas dasar beberapa alasan:
Menyederhanakan data/model agar lebih mudah dianalisis.
Mengurangi waktu training (mengurangi kompleksitas).
Menghindari curse of dimensionality
Menghapus fitur yang tidak informatif.
Meningkatkan generalisasi dengan mengurangi overfitting.

Classification, Association, Clustering
Pada supervsied learning, prediksi kelas berdasarkan feature vector yang merepresentasikan suatu instans (data/observasi). Feature vector bisa diibaratkan sebagai sifat-sifat atau keadaan yang diasosiasikan dengan kelas. Pada supervised learning, setiap feature vector berkorespondisi dengan kelas tertentu. Mencari kelas yang berkorespondensi terhadap suatu input disebut klasifikasi (classification). Contoh klasifikasi adalah mengkategorikan gambar buah (e.g. apel, jeruk, dsb). Sementara itu, apabila ingin mencari hubungan antara satu atribut dan atribut lainnya, disebut association. Sebagai contoh pada Tabel 3.1, apabila outlook = sunny, maka sebagian besar humidity = high. Di lain pihak, pada unsupervised learning tidak ada kelas yang berkorespondensi; mengelompokkan data dengan sifat-sifat yang mirip, disebut clustering. Contoh clustering adalah pengelompokkan barang di supermarket. Perlu dicatat bahwa unsupervised learning 6= clustering. Clustering adalah salah satu task pada unsupervised learning.
Clustering adalah salah satu task pada unsupervised learning. Pada Tabel 3.1, hanya ada dua kelas, klasifikasi data ini disebut binary classification. Apabila kelas klasifikasi lebih dari dua (mutually exclusive), disebut multi-class classification. Apabila kelas-kelas tersebut tidak bersifat mutually exclusive, maka kita melakukan multi-label classification. Perlu dibedakan antara multi-label classification dan multilevel/hierarchical classification. Pada multi-level/hierarchical classification, pertama-tama kita melakukan klasifikasi untuk suatu kelas generik, lalu dilanjutkan mengklasifikan data ke kelas yang lebih spesifik. Contoh multilevel classification adalah kingdom (biologi), pertama diklasifikasikan ke kingdom animalia, lalu lebih spesifiknya ke phylum Vertebrata, dst. Multi-label classification hanya proses klasifikasi ke dalam banyak “kelas” tanpa tinjauan hirarkis. Multi-class classification yang telah dijelaskan sebelumnya disebut juga sebagai hard classification, artinya apabila data diklasifikasikan ke kelas tertentu, maka tidak mungkin data berada di kelas lainnya (ya atau tidak).
Multi-label classification bersifat lebih soft, karena dapat mengklasifikasikan ke beberapa kelas, misal data X memiliki 70% probabilitas sebagai kelas A dan 30% sebagai kelas B.

Mengukur Kinerja
Pada bab 1, sudah dijelaskan bahwa kita harus mengukur kinerja model dengan cara yang kuantitatif (utility function), seperti mengukur nilai error. Selain mengukur error, juga bisa membandingkan kinerja dengan menggunakan fungsi lainnya seperti akurasi, presisi, recall, F1-measure, BLEU [21], ROUGE [22], intra-cluster similarity, dsb. Masing-masing utility function mengukur hal yang berbeda. Perlu kamu ketahui bahwa memilih ukuran kinerja tergantung pada domain permasalahan. Misalkan pada translasi otomatis, peneliti menggunakan ukuran BLEU; pada peringkasan dokumen, menggunakan ROUGE. Sementara itu, pada information retrival/sistem temu balik informasi menggunaan presisi, recall, F1-measure, atau mean average precision (MAP). Pada domain klasifikasi gambar, menggunakan akurasi. Masing-masing utility function dapat memiliki cara mencapai titik optimal yang berbeda. Perlu dipahami domain permasalahan untuk mengerti cara mencapai titik optimal. Akurasi didefinisikan pada persamaan 3.1


Evaluasi Model
Ada beberapa hal yang perlu dipahamu tentang proses evaluasi suatu model pembelajaran mesin:
Data splitting.
Pada umumnya, ada training, validation/development, dan testing data. Mesin dilatih menggunakan training data, saat proses training, performance measure diukur berdasarkan kemampuan mengenali/ mengeneralisasi validation data. Perlu diketahui, performance measure diukur menggunakan validation data untuk menghindari overfitting dan underfitting. Setelah selesai dilatih, maka model hasil pembelajaran dievaluasi dengan testing data. Training, validation, dan testing data tersusun oleh data yang independen satu sama lain (tidak beririsan) untuk memastikan model yang dihasilkan memiliki generalisasi cukup baik.
Overfitting dan Underfitting.
Overfitting adalah keadaan ketika model memiliki kinerja baik hanya untuk training data/seen examples tetapi tidak memiliki kinerja baik untuk unseen examples. Underftting adalah keadaan ketika model memiliki kinerja buruk baik untuk training data dan unseen examples.
Cross validation.
Cross validation adalah teknik untuk menganalisis apakah suatu model memiliki generalisasi yang baik (mampu memiliki kinerja yang baik pada unseen examples). Data dapat dibagi menjadi training, validation, dan testing data. Saat proses training, latih model dengan training data serta dievaluasi menggunakan validation data. Teknik cross validation bekerja dengan prinsip yang sama, yaitu membagi sampel asli menjadi beberapa subsampel dengan partisi sebanyak K (K-fold). Ilustrasi diberikan oleh Gambar 3.2. Persegi panjang melambangkan suatu instans. Saat proses training, data dibagi menjadi training data dan test data (i.e., validation data). Hal ini diulang sebanyak K kali. Evaluasi kemampuan generalisasi model dengan merata-ratakan kinerja pada tiap iterasi. Setelah itu, model dengan kinerja terbaik (pada iterasi teretentu) digunakan lebih lanjut untuk proses testing atau dipakai secara praktis. Perlu diperhatikan, setiap subsampel sebaiknya memiliki distribusi yang sama dengan sampel aslinya (keseluruhan sampel); i.e., pada contoh, proporsi warna biru dan merah adalah sama tiap partisi tiap iterasi. Konsep tersebut lebih dikenal dengan stratified sampling 7 .

Kategori Jenis Algoritma
Algoritma pembelajaran mesin dapat dibagi menjadi beberapa kategori. Dari sudut pandang apakah algoritma memiliki parameter yang harus dioptimasi, dapat dibagi menjadi:
Parametrik.
Pada kelompok ini, kita mereduksi permasalahan sebagai optimisasi parameter. Asumsikan permasalahan dapat dilambangkan oleh fungsi dengan bentuk tertentu (e.g., linear, polinomial, dsb). Contoh kelompok ini adalah model linear.
Non parametrik.
Pada kelompok ini, Tidak dapat diasumsikan permasalahan dapat dilambangkan oleh fungsi dengan bentuk tertentu. Contoh kelompok ini adalah Naive Bayes, decision tree (ID3) dan K-Nearest Neighbors.
Dari sudut pandang lainnya, jenis algoritma dapat dibagi menjadi:
Model linear, contoh regresi linear, regresi logistik, support vector machine.
Model probabilistik, contoh Naive Bayes, hidden markov model.
Model non-linear, yaitu (typically) artificial neural network. Selain kedua skema pengkategorian ini, terdapat skema pengkategorian lain (silahkan eksplorasi sendiri).

Tahapan Analisis
Bagian ini adalah ringkasan bab ini. Untuk menganalisis data, terdapat langkah yang perlu kamu perhatikan
Memutuskan tujuan analisis data (defining goal)
Mendapatkan data
Merapihkan data
Merepresentasikan data sebagai feature vector
Melakukan transformasi dan/atau feature selection (mengurasi dimensi feature vector )
Melatih model (training)
Melakukan testing dan analisis model baik secara kuantitatif dan kualitatif
Menyajikan data (presentasi)












BAB IV
APLIKASI DAN TOPIK TAMBAHAN

Bab ini memuat contoh penggunaan machine learning untuk dua permasalahan praktis yaitu: (1) sistem rekomendasi dan (2) sistem peringkasan dokumen. Dua domain ini dipilih karena tidak asing (familiar ) bagi penulis. Seperti yang sudah dideskripsikan pada bab-bab sebelumnya, penerapan machine learning pada suatu domain membutuhkan pengetahuan/keahlian pada domain tersebut. Bab ini tidak akan membahas domain secara detail, tetapi secara abstrak (bertujuan memberikan gambaran/pengenalan). Untuk mengerti domain yang dibahas secara mendalam, silakan membaca sumber lainnya. Bab ini akan memuat secara sangat singkat, apa guna machine learning dan pada contoh kasus seperti apa teknik machine learning diterapkan pada suatu domain permasalahan. Tujuan bab ini adalah untuk memberikan gambaran, bahwa mengetahui machine learning saja mungkin tidak cukup. Sekali lagi kami ingin menekankan, pembaca harus mengerti domain aplikasi.
14.1 Sistem Rekomendasi
Secara umum, terdapat dua teknik untuk membangun sistem rekomendasi yaitu: (1) content-based filtering dan (2) collaborative filtering. Teknik pertama berfokus pada karakteristik pengguna secara spesifik. Teknik kedua berfokus pada selera terhadap suatu item. Dalam sistem rekomendasi, teknik machine learning dapat digunakan untuk memprediksi item yang disukai pengguna. Dua subbab berikutnya memuat aplikasi teknik machine learning untuk kedua teknik sistem rekomendasi(14.1.1 dan 14.1.2).
14.1.1 Content-based Filtering
Teknik membangun sistem rekomendasi berdasarkan content-based filtering memanfaatkan informasi mengenai profil seorang pengguna beserta uraian item yang sangat menarik bagi pengguna tersebut [97]. Profil pengguna diartikan sebagai karakteristik (atribut dan behavior ) yang dimiliki pengguna. Atribut pengguna misalnya gender, kewarganegaraan, umur, dan lain-lain. Informasi mengenai behavior mencakup karakteristik item yang seorang pengguna sukai. Misalkan item adalah film, karakteristik film dapat ditentukan dari aktor yang terlibat dalam film, pembuat film, tahun pembuatan film, dan genre dari film (misalnya action, horror, comedy). Dengan karateristik ini, kita dapat menentukan kemiripan antar-film. Kedua informasi ini dapat direpresentasikan sebagai vektor (ekuivalen dengan feature vector ) agar mudah untuk dilakukan operasi aritmatika, dikenal dengan istilah user embedding dan item embedding. Cara melakukan embedding untuk profil pengguna dan uraian item mirip dengan cara word embedding yang telah dijelaskan pada subbab , one-hot encoding.Rekomendasi item yang diberikan pada pengguna adalah item yang paling mungkin disukai pengguna berdasarkan karakteristiknya. Agar mendapat gambaran lebih jelas, penulis mengajak pembaca untuk mengikuti tutorialpembuatan sistem rekomendasi film sangat sederhana menggunakan dataset MovieLens 1 berukuran kecil (100K). Dataset ini memuat berbagai informasisebagai berikut:

1. Informasi rating pengguna untuk masing-masing film.
2. Informasi film, misalkan berupa genre dan tanggal release.
3. Demografik pengguna, misal usia, gender, pekerjaan, dan lain lain
Teknik content-based filtering memiliki keunggulan dimana kita tidak memerlukan banyak informasi tentang pengguna lain. Kita hanya memerlukan informasi uraian item dan informasi karakteristik suatu pengguna. Hal ini mengakibatkan rekomendasi yang diberikan sangat bergantung pada kepribadian pengguna. Apabila pengguna tidak konsisten, sistem rekomendasi juga bingung.
14.1.2 Collaborative Filtering
Teknik ini diperkenalkan oleh Paul Resnick dan Hal Varian pada 1997 [98]. Prinsip collaborative filtering adalah asumsi bahwa selera penggunaan terhadap suatu item cenderung sama dari waktu ke waktu [99]. Pada contoh kasus sederhana untuk sistem rekomendasi film, teknik ini memanfaatkan informasi rating dari banyak pengguna. Kita dapat merepresentasikan tingkah laku (behaviour ) semua pengguna menggunakan matriks utilitas dimana baris merepresentasikan profil pengguna dan kolom merepresentasikan item.Ada dua metode varian collaborative filtering yaitu: (1) neighborhood-based collaborative filtering (memory-based method) dan (2) model-based collabora-tive filtering. Metode neighborhood-based collaborative filtering bekerja dengan fakta bahwa pengguna yang “mirip” memiliki pola yang “mirip” dalam memberikan rating untuk item [100]  Selain itu, item yang memiliki kemiripan, akan memiliki pola rating yang mirip. Dengan itu, kita dapat menggunakan perhitungan kemiripan vektor untuk menghitung pengguna mana yang mirip dengan suatu pengguna p. Saat memberikan rekomendasi film bagi pengguna p, kita tunjukkan film-film yang pernah ditonton pengguna yang mirip dengannya, atau kita tunjukkan film-film yang mirip dengan film-film yang pernah ditonton oleh pengguna p. Untuk model-based collaborative filtering, prediksi dibangun dengan menggunakan teknik machine learning [100]. Kita dapat memanfaatkan teknik-tenik seperti matrix factorization/principal component analysis dan autoencoder untuk mengurangi ukuran matriks.
14.2 Peringkasan Dokumen
Meringkas dokumen berarti mengerti keseluruhan isi teks/dokumen, kemudian mampu menyampaikan kembali sebanyak/seakurat mungkin maksud dokumen asli, ke dalam bentuk yang lebih singkat [101, 102, 53]. Suatu ringkasan harus lebih pendek dibanding dokumen asli. Dengan demikian, sulit untuk dikatakan bahwa suatu ringkasan dapat memuat keseluruhan isi dokumen. Karena itu, ringkasan hanya memuat sebanyak/seakurat mungkin maksud dokumen asli, diberikan constraint jumlah kata maksimum pada ringkasan..
14.3 Konklusi
Teknik machine learning sangatlah berguna untuk berbagai macam permasalahan. Tetapi perlu dipahami bahwa teknik yang ada belum mampu memodelkan proses berpikir manusia dengan benar. Proses berpikir manusia sangatlah kompleks, dan model yang ada sekarang ini adalah bentuk simplifikasi. Sebagai contoh, seorang bayi sekali melihat anjing mungkin akan mengetahui anjing lainnya walaupun tidak memiliki rupa yang sama persis. Sementara itu, model machine learning harus diberikan banyak sampel. Manusia memiliki otak yang luar biasa hebat karena mampu belajar dengan sedikit contoh. Persoalan-persoalan yang diberikan pada buku ini secara umum mencakup supervised dan unsupervised learning saja. Terdapat satu pemodelan masalah penting lainnya yaitu reinforcement learning dimana kita ingin memaksimalkan hasil untuk sekuens aksi (sekuens keputusan). Setiap keputusan dapat diberikan bobot yang berbeda. Kemudian, agen memaksimalkan nilai untuk sekuens keputusan (cummulative reward) 2. Pada supervised learning, kita hanya perlu membuat satu keputusan saja (menggolongkan data ke kelas mana). Pada konferensi-konferensi, para master banyak menyebutkan masa depan machine learning berada pada unsupervised atau reinforcement learning. Aplikasi mutakhir yang ada sekarang ini didominasi oleh supervised learning. Pada kenyataannya, sebagian besar (hampir semua) data yang ada di dunia ini tidak berlabel. Karena itu, representasi data secara unsupervised menjadi topik riset hangat (representation learning).
Buku ini telah menjelaskan berbagai macam teknik, tetapi perlu diketahui bahwa materi yang diberikan adalah simplifikasi agar mampu dipahami secara intuitif. Selain itu, buku ini di desain sebagai materi pengantar saja. Untuk memahami teknik machine learning secara lebih jauh dan sempurna, penulis menyarankan untuk membaca buku referensi [8, 11]. Materi yang disajikan pada buku ini adalah persoalan-persoalan machine learning dari sudut pandang optimisasi. Yaitu mencari himpunan (set of ) parameter agar model pembelajaran yang dibangun mampu memberi keputusan yang optimal. Kami menyarankan pembaca untuk mencari referensi lebih jauh tentang machine learning dari sudut pandang eksplorasi, yaitu mencari concept space dimana model dapat bekerja dengan “baik”. Sebagai contoh, kita memiliki sebuah mesin (fisik) dengan berbagai macam konfigurasi (parameter). Apabila kita menjalankan mesin dengan konfigurasi parameter tertentu, mesin akan rusak. Tugas kita adalah mencari parameters space dimana mesin dapat berjalan dengan optimal dan tidak rusak. Sedangkan, pada persoalan optimisasi, kita mencari satu konfigurasi terbaik. Machine learning adalah bidang yang sangat luas (lebih luas dari apa yang diceritakan pada buku ini) dan berkembang pesat. Penulis menyarankan pembaca untuk membaca makalah dari konferensi3 top-tier untuk mengetahui perkembangan terkini. Sebagai contoh (diurutkan berdasarkan abjad):
• AAAI. AAAI Conference on Artificial Intelligence
• ACL. Annual Meeting of Association for Computational Linguistics
• CVPR. IEEE Conference on Computer Vision and Pattern Recognition
• EMNLP. Empirical Methods in Natural Language Processing
• ICCV. IEEE International Conference on Computer Vision
• ICLR. International Conference on Learning Representation
• ICML. International Conference on Machine Learning
• IJCAI. International Conference on Artificial Intelligence
• INTERSPEECH. Conference of the International Speech Association
• NeurIPS (dahulu disebut NIPS). Neural Information Processing System
• SIGIR. ACM Special Interest Group in Information Retrieval
• SIGKDD. ACM Special Interest Group in Knowledge Discovery and Data Mining







































PPT

Kecerdasan buatan (ai)

Artificial Intelligence (AI) Kecerdasan Buatan adalah bagian dari ilmu komputer. Dengan penelitian dan pengembangan kecerdasan buatan, ia berusaha untuk tidak hanya mensimulasikan tetapi untuk melengkapi pemikiran manusia dengan program komputer belajar mandiri. AI sudah banyak digunakan dalam bisnis, misalnya, dalam algoritma RankBrain Google. Istilah “jaringan saraf” dan “pembelajaran mendalam” terkait erat dengan pengembangan kecerdasan buatan.

IntelligentAgent

Agen cerdas memiliki empat kategori berdasarkan kombinasi dimensi cara inferensi (reasoning) dan tipe kelakuan (behaviour).
Acting Humanly. Pada dimensi ini, agen mampu bertingkah dan berinteraksi layaknya seperti manusia. Contoh terkenal untuk hal ini adalah turing test.
Acting Rationally. Pada dimensi ini, agen mampu bertingkah dengan optimal. Tindakan optimal belum tentu menyerupai tindakan manusia, karena tindakan manusia belum tentu optimal.
Thinking Humanly. Pada dimensi ini, agen mampu berpikir seperti manusia dalam segi kognitif (e.g. mampu mengerti apa itu kesedihan atau kesenangan).
Thinking Rationally. Pada dimensi ini, agen mampu berpikir secara rasional. Sederhananya sesuai dengan konsep logika matematika.

StatisticalLearningTheory

Pada masa sekarang ini data bertebaran sangat banyak dimana-mana. Pemrosesan data secara manual tentu adalah hal yang kurang bijaksana. Beberapa pemrosesan data yang dilakukan seperti kategorisasi (kategorisasi teks berita), peringkasan dokumen, ekstraksi informasi (mencari subjek, objek, dan relasi diatara keduanya pada teks), rekomendasi produk berdasarkan catatan transaksi, dll. Tujuan machine learning minimal ada dua: memprediksi masa depan (unobserved event); dan/atau memperoleh ilmu pengetahuan (knowledge discovery/discovering unknown structure).
Kedua hal ini berkaitan sangat erat. Sebagai contoh, manusia tahu bahwa cara menggunakan pensil dan pulpen sama, walaupun saat kita belum pernah menggunakan pulpen (penulis berasumsi kamu belajar menulis menggunakan pensil). Memprediksi masa depan berarti kita tahu bahwa pulpen adalah alat tulis.









Training,Development,Testing,Set

Terdapat dua istilah penting dalam pembangunan model machine learning yaitu: training dan testing. Training adalah proses membangun model dan testing adalah proses menguji kinerja model pembelajaran.
Training set adalah himpunan data yang digunakan untuk melatih atau membangun model.
Development set atau validation set adalah himpunan data yang digunakan untuk mengoptimisasi saat melatih model.
Testing set adalah himpunan data yang digunakan untuk menguji model setelah proses latihan selesai.

SupervisedLearning

Jika diterjemahkan secara literal, supervised learning adalah pembelajaran terarah/terawasi. Artinya, pada pembelajaran ini, ada guru yang mengajar (mengarahkan) dan siswa yang diajar. Kita disini berperan sebagai guru, kemudian mesin berperan sebagai siswa.
Regresi
Pada persoalan regresi, kita ingin memprediksi output berupa bilangan kontinu. Misalnya pada regresi suatu fungsi polinomial, kita ingin mencari tahu fungsi f(x) diberikan data {(x1, y1), · · · ,(xN , yN )}. Setelah itu, kita gunakan fungsi aproksimasi untuk mencari tahu nilai yN+1 dari data baru xN+1. Perbedaan regresi dan klasifikasi adalah pada tipe output. Untuk regresi, tipe output adalah nilai kontinu; sementara tipe output pada persoalan klasifikasi adalah suatu objek pada himpunan (i.e., memilih opsi pada himpunan jawaban).

Semi-supervisedLearning

Semi-supervised learning mirip dengan supervised learning, bedanya pada proses pelabelan data. Pada supervised learning, ada “guru” yang harus membuat “kunci jawaban” input-output. Sedangkan pada semi-supervised learning tidak ada “kunci jawaban” eksplisit yang harus dibuat guru. Kunci jawaban ini dapat diperoleh secara otomatis (misal dari hasil clustering). Pada kategori pembelajaran ini, umumnya kita hanya memiliki sedikit data. Kita kemudian menciptakan data tambahan baik menggunakan supervised ataupun unsupervised learning, kemudian membuat model belajar dari data tambahan tersebut.






FONDASIMATEMATIS

Probabilitas

Di dunia ini, ada banyak hal yang tidak pasti (uncertain). Ssungguhnya, machine learning berurusan dengan ketidakpastian (uncertainty). Dengan hal itu, machine learning memiliki kaitan yang sangat erat dengan statistika. Probabilitas menyediakan framework untuk kuantifikasi dan manipulasi ketidakpastian.

Mari kita lihat contoh sederhana. Terdapat dua buah kotak berwarna merah dan berwarna biru. Pada kotak merah terdapat 3 apel dan 1 jeruk. Pada kotak biru, terdapat 2 apel dan 4 jeruk, kita ingin mengambil buah dari salah satu kotak tersebut. Ilustrasi persoalan dapat dilihat pada gambar berikut Dalam hal ini, kotak adalah random variable. Random variable k (melambangkan kotak) dapat bernilai merah atau biru. Begitu pula dengan buah, dilambangkan dengan variabel b, dapat bernilai apel atau jeruk

Probabilitas Density Function

Probability density function dikenal juga dengan istilah distribusi, yaitu tentang persebaran nilai. Sebagai contoh, penulis menceritakan pelajaran di sekolah. Terdapat ujian mata pelajaran di kelas yang beranggotakan 10 siswa, diberikan pada Tabel 2.1. Terdapat 3 orang anak mendapatkan nilai 50, 2 orang anak mendapatkan nilai 75 dan 80, 1 orang anak mendapatkan nilai 100, 1 orang anak mendapat nilai 40, serta 1 orang anak mendapatkan nilai 10.

Guru ingin mengetahui persebaran (distribusi) nilai ujian untuk menentukan batas kelas nilai (misal nilai “A” adalah ≥ 85) jadi, ia mencari persebaran nilai siswa. Ia menghitung seberapa mungkin siswa tertentu mendapat nilai tertentu, dapat dilihat pada Gambar 2.2. Grafik itu disebut sebagai distribusi. Fungsi yang menghasilkan distribusi tersebut disebut probability density function. Apabila kita menjumlahkan probabilitas (probabilitas siswa mendapat nilai 0 - 100) nilainya adalah 1.

Expectation dan Variance

Salah satu operasi paling penting dalam probabilitas adalah menemukan nilai rata-rata (average) sebuah fungsi [8]. Hal ini disebut menghitung ekspektasi (expectation). Untuk sebuah fungsi f(x) dengan distribusi probabilitas random variable adalah p(x), nilai expectation diberikan pada persamaan berikut.

Gaussian Distribution

Distribusi adalah fenomena acak atau deskripsi matematis suatu random variable. Kamu harusnya sudah mengetahui distribusi ini. Ini adalah distribusi yang sangat terkenal yaitu bell curve/distribusi normal. Distribusi normal adalah bentuk khusus dari Gaussian distribution. Ada beberapa macam distribusi yang akan dibahas pada bab ini, yaitu: Univariate Gaussian, Multivariate Gaussian, dan Gaussian Mixture Model


- Univariate Gaussian

Disebut univariate karena distribusinya bergantung pada satu input variabel, misalkan x. Distribusi univariate Gaussian dikarakteristikkan oleh variabel x, mean (µ) dan variance (σ 2 ) diberikan pada persamaan 2.10. µ dan σ 2 adalah rata-rata dan variance untuk kumpulan data. Karena nilai µ dan σ 2 bergantung pada x, maka kita dapat menyebutkan dengan aman bahwa univariate gaussian bergantung pada satu variabel saja yaitu x.
Teori Keputusan

Diberikan himpunan pasangan data input-output (xi , yi); x = input, y = output/target; walaupun tidak pasti, kita ingin mengestimasi hubungan antara input dan output. Untuk itu kita melakukan estimasi p(y | x, w), dimana w adalah learning parameters. Pada bab pertama, kamu telah mempelajari bahwa kita mampu melakukan hal ini dengan teknik machine learning. Lebih jauh lagi, kita juga harus mampu untuk membuat keputusan berbasiskan perkiraan nilai y, aspek ini disebut decision theory. Dalam machine learning kita dapat membangun model dengan tujuan untuk meminimalkan error atau meminimalkan loss; konsep meminimalkan error dijelaskan pada materi curve fitting (bab 5). Ibaratnya untuk sebuah robot, kita ingin robot tersebut tidak melakukan tindakan yang salah. Tetapi, kadang kala meminimalkan error belum tentu membuat model menjadi “bagus”.
Teori Informasi

Pada machine learning, kita ingin fitur pembelajaran yang digunakan mampu melambangkan information source properties. Artinya, kita ingin memilih fitur yang memuat informasi terbanyak (relatif terhadap information source). Karena hal tersebut, mengerti entropy menjadi penting. Ada sebuah strategi pemilihan fitur (feature selection) dengan membangun decision tree. Awalnya kita bentuk training data dengan semua kemungkinan fitur, kemudian mengambil beberapa fitur yang dekat dengan root. Hal tersebut dimaksudkan untuk mencari fitur yang memuat banyak informasi. Kemudian, fitur tersebut dapat dicoba pada algoritma learning lainnya.

Matriks

Subbab ini adalah pengingat untuk operasi perjumlahan, pengurangan, perkalian, dan transpose matriks karena banyak digunakan di buku ini. Diberikan dua buah matriks U dan V. U dan V dapat dijumlahkan jika dan hanya jika dimensi kedua matriks itu sama. Perjumlahan matriks dinotasikan dengan U + V = C. Matriks C memiliki dimensi yang sama dengan U dan V. Nilai elemen baris ke-i dan kolom ke-j (Ci,j ) dihitung sebagai penjumlahan nilai elemen matriks U dan V pada baris dan kolom yang bersesuaian, seperti diilustrasikan pada persamaan berikut. Pengurangan dua buah matriks dilakukan serupa.
Dua buah matriks U dan V dapat dikalikan jika U memiliki kolom sebanyak baris pada V. Misalkan matriks U berdimensi N × M dan V berdimensi M ×O, maka kedua matriks tersebut dapat dikalikan dan menghasilkan matriks C dengan dimensi N × O (dimensi baris U dan kolom V), dimana tiap elemen pada matriks C dihitung dengan persamaan berikut (operasi antara vektor baris dan vektor kolom).
Selain perkalian antar dua buah matriks, sebuah matriks juga dapat dikalikan dengan skalar, dinotasikan dengan aU. Hasil perkalian adalah sebuah matriks dengan dimensi yang sama dengan U, dimana tiap elemen dikalikan dengan nilai skalar.
Suatu matriks U berdimensi N × M apabila di transpose menghasilkan matriks UT berdimensi M×N, dimana elemen ke-i, j pada matriks UT adalah elemen ke-j, i pada matriks U, seperti diilustraiskan pada persamaan berikut.

DATAANALYTICS

Pengenalan Data Analytics

Dalam berbagai hal masalah bisa saja terjadi. Disini, masalahnya terjadi seperti  ketika tujuan yang diinginkan tidak tercapai (current state bukanlah desired state). Agar current state menjadi desired state, kita melakukan kegiatan yang disebut penyelesaian masalah (problem solving). Tiap bidang (domain) mendefinisikan permasalahan secara berbeda. Oleh karena itu, mengetahui teknik machine learning tanpa mengetahui domain aplikasi adalah sesuatu yang kurang baik. Contohnya, bidang keilmuan pemrosesan bahasa alami (natural language processing) menggunakan machine learning untuk mengklasifikasikan teks; bidang keilmuan pemrosesan suara menggunakan machine learning untuk mentranskripsikan suara manusia menjadi teks.
Tiap bidang merepresentasikan permasalahan ke dalam formulasi yang berbeda. Machine learning adalah inferensi berdasarkan data. Raw data atau data mentah adalah sekumpulan fakta (record, event) yang kemungkinan besar tidak memberikan penjelasan apapun. Sama halnya dengan kebanyakan data di dunia nyata, raw data bersifat tidak rapih, misalnya mengandung missing value atau ada data yang tidak memiliki label padahal data lainnya memiliki label. Agar mampu menganalisis raw data menggunakan teknik machine learning, pertama-tama yang harus dilakukan adalah merapikan data sesuai dengan format yang diinginkan (dataset). Setelah itu, gunakan Teknik-teknik yang ada untuk menemukan pola-pola yang ada di data. Dalam komunitas peneliti basis data, dipercaya bahwa data memiliki sangat banyak relasi yang mungkin tidak bisa dihitung.

Nilai Atribut dan Transformasi

Perhatikan Tabel diatas yang merupakan contoh dataset pada machine learning. Dataset adalah kumpulan data. Seorang anak ingin bermain tenis, tetapi keputusannya untuk bermain tenis (play) tergantung pada empat variabel {outlook, temperature, humidity, windy}. Keempat variabel ini disebut fitur. Setiap fitur memiliki atribut nilai dengan tipe data dan range tertentu. Keputusan untuk bermain (play) disebut sebagai label atau kelas (class). Pada supervised learning, yang akan diklasifikasikan apakah seorang anak akan bermain atau tidak, diberikan fitur-fitur yang memuat kondisi observasi. Pada unsupervised learning, informasi kolom play tidak diberikan, harus terlebih dahulu mengelompokkan data tersebut sesuai dengan fitur-fiturnya.
- Nilai Atribut dan Transformasi
Nilai atribut bertipe nominal tersusun atas simbol-simbol yang berbeda, yaitu suatu himpunan terbatas. Sebagai contoh, fitur outlook pada Tabel 3.1 memiliki tipe data nominal yaitu nilainya tersusun oleh himpunan {sunny, overcast, rainy}. Pada tipe nominal, tidak ada urutan ataupun jarak antar atribut. Tipe ini sering juga disebut kategorial atau enumerasi. Secara umum, tipe output pada supervised learning adalah data nominal.

Ruang Konsep

Dengan data yang diberikan, ingin dilakukan generalisasi aturan/konsep yang sesuai dengan data. Hal ini disebut sebagai inductive learning. Cara paling sederhana untuk inductive learning adalah mengenumerasi seluruh kemungkinan kombinasi nilai sebagai rule, kemudian mengeleminasi rule yang tidak cocok dengan contoh. Metode ini disebut list-then-eleminate. Sebagai contoh pada tabel sebelumnya himpunan nilai masing-masing atribut yaitu:

Linear Separability

Data pada tabel di atas disebut linearly separable. Sederhananya, untuk suatu nilai tertentu, fitur hanya berkorespondensi dengan kelas tertentu. Ambil contoh pada Tabel 3.2, saat humidity=high maka swim=yes. Secara “geometris”, bila feature vector diproyeksikan ke suatu ruang dimensi, memisahkan kelas satu dan kelas lainnya dapat diperoleh dengan cara menciptakan garis linier (linear line – secara lebih umum, menggunakan hyperplane3 ).

Seleksi Fitur

Pada subbab sebelumnya, telah dijelaskan bahwa dapat mentransformasikan data non-linearly separable menjadi linearly separable dengan cara menambah dimensi data. Pada bab ini, akan dilakukan kebalikannya. Pada permasalahan praktis, seringkali digunakan banyak fitur (computationally expensive). Lebih baik menyederhanakan fitur-fitur yang digunakan, misalkan dengan memilih subset fitur awal, atas dasar beberapa alasan:

Classification, Association, Clustrering

Pada supervsied learning, prediksi kelas berdasarkan feature vector yang merepresentasikan suatu instans (data/observasi). Feature vector bisa diibaratkan sebagai sifat-sifat atau keadaan yang diasosiasikan dengan kelas. Pada supervised learning, setiap feature vector berkorespondisi dengan kelas tertentu. Mencari kelas yang berkorespondensi terhadap suatu input disebut klasifikasi (classification). Sementara itu, apabila ingin mencari hubungan antara satu atribut dan atribut lainnya, disebut association. Clustering adalah salah satu task pada unsupervised learning.

Mengukur Kinerja

membandingkan kinerja dengan menggunakan fungsi lainnya seperti akurasi, presisi, recall, F1-measure, BLEU [21], ROUGE [22], intra-cluster similarity, dsb. Perlu dipahami domain permasalahan untuk mengerti cara mencapai titik optimal.








Evaluasi Model

Pada umumnya, ada training, validation/development, dan testing data. Mesin dilatih menggunakan training data, saat proses training, performance measure diukur berdasarkan kemampuan mengenali/ mengeneralisasi validation data. Perlu diketahui, performance measure diukur menggunakan validation data untuk menghindari overfitting dan underfitting. Setelah selesai dilatih, maka model hasil pembelajaran dievaluasi dengan testing data. Training, validation, dan testing data tersusun oleh data yang independen satu sama lain (tidak beririsan) untuk memastikan model yang dihasilkan memiliki generalisasi cukup baik.

Kategori Jenis Algoritma

Pada kelompok ini, kita mereduksi permasalahan sebagai optimisasi parameter. Asumsikan permasalahan dapat dilambangkan oleh fungsi dengan bentuk tertentu (e.g., linear, polinomial, dsb). Contoh kelompok ini adalah model linear.
Dari sudut pandang lainnya, jenis algoritma dapat dibagi menjadi:

Tahapan Analisis

Bagian ini adalah ringkasan bab ini. Untuk menganalisis data, terdapat langkah yang perlu kamu perhatikan
Memutuskan tujuan analisis data (defining goal)
Mendapatkan data
Merapihkan data
Merepresentasikan data sebagai feature vector
Melakukan transformasi dan/atau feature selection (mengurasi dimensi feature vector )
Melatih model (training)
Melakukan testing dan analisis model baik secara kuantitatif dan kualitatif
Menyajikan data (presentasi)

Penggunaan Machine Learning

Sistem Rekomendasi
Secara umum, terdapat dua teknik untuk membangun sistem rekomendasi yaitu: (1) content-based filtering dan (2) collaborative filtering.
 Teknik pertama berfokus pada karakteristik pengguna secara spesifik. Teknik kedua berfokus pada selera terhadap suatu item. Dalam sistem rekomendasi, teknik machine learning dapat digunakan untuk memprediksi item yang disukai pengguna.
Content-based Filtering
Teknik membangun sistem rekomendasi berdasarkan content-based filtering memanfaatkan informasi mengenai profil seorang pengguna beserta uraian item yang sangat menarik bagi pengguna tersebut. Profil pengguna diartikan sebagai karakteristik (atribut dan behavior ) yang dimiliki pengguna. Atribut pengguna misalnya gender, kewarganegaraan, umur, dan lain-lain.
Informasi mengenai behavior mencakup karakteristik item yang seorang pengguna sukai. Misalkan item adalah film, karakteristik film dapat ditentukan dari aktor yang terlibat dalam film, pembuat film, tahun pembuatan film, dan genre dari film (misalnya action, horror, comedy).
Informasi rating pengguna untuk masing-masing film.
Informasi film, misalkan berupa genre dan tanggal release.
Demografik pengguna, misal usia, gender, pekerjaan, dan lain lain

Collaborative Filtering

Teknik ini diperkenalkan oleh Paul Resnick dan Hal Varian pada 1997. Prinsip collaborative filtering adalah asumsi bahwa selera penggunaan terhadap suatu item cenderung sama dari waktu ke waktu. Pada contoh kasus sederhana untuk sistem rekomendasi film, teknik ini memanfaatkan informasi rating dari banyak pengguna. Kita dapat merepresentasikan tingkah laku (behaviour ) semua pengguna menggunakan matriks utilitas dimana baris merepresentasikan profil pengguna dan kolom merepresentasikan item.

Peringkasan Dokumen

Meringkas dokumen berarti mengerti keseluruhan isi teks/dokumen, kemudian mampu menyampaikan kembali sebanyak/seakurat mungkin maksud dokumen asli, ke dalam bentuk yang lebih singkat. Suatu ringkasan harus lebih pendek dibanding dokumen asli. Dengan demikian, sulit untuk dikatakan bahwa suatu ringkasan dapat memuat keseluruhan isi dokumen. Karena itu, ringkasan hanya memuat sebanyak/seakurat mungkin maksud dokumen asli, diberikan constraint jumlah kata maksimum pada ringkasan.

Konklusi

Teknik machine learning sangatlah berguna untuk berbagai macam permasalahan. Tetapi perlu dipahami bahwa teknik yang ada belum mampu memodelkan proses berpikir manusia dengan benar. Proses berpikir manusia sangatlah kompleks, dan model yang ada sekarang ini adalah bentuk simplifikasi. Sebagai contoh, seorang bayi sekali melihat anjing mungkin akan mengetahui anjing lainnya walaupun tidak memiliki rupa yang sama persis. Sementara itu, model machine learning harus diberikan banyak sampel. Manusia memiliki otak yang luar biasa hebat karena mampu belajar dengan sedikit contoh. Persoalan-persoalan yang diberikan pada buku ini secara umum mencakup supervised dan unsupervised learning saja.

TERIMA KASIH.

Tidak ada komentar:

Posting Komentar