Oleh: denysutani | Desember 18, 2008

Machine Learning

Artikel berikut merupakan paper yang pernah saya buat untuk pelajaran AI. Artikel ini membahas mengenai machine learning, terutama bagaimana sebuah mesin dapat “diajari” melalui berbagai teknik. Semoga bermanfaat bagi semuanya yang membutuhkannya.

Kata Pengantar

Learning mempunyai arti menambah pengetahuan, memahami atau menguasai dengan belajar, mengikuti instruksi atau melalui pengalaman.

Machine learning adalah sebuah studi yang mempelajari cara untuk memprogram sebuah komputer untuk belajar. Ada 4 kategori besar dimana sebuah aplikasi sulit untuk dibuat. Pertama, bila tidak ada manusia yang menguasai bidang tersebut. Kedua, bila ada manusia yang menguasai hal tersebut namun ia tidak mampu untuk menjelaskannya. Ketiga, adalah saat keadaan dapat berubah dengan cepat. Keempat, bila aplikasi harus dibuat berbeda untuk masing- masing pengguna.

Seorang manusia selama hidupnya tidak pernah henti- hentinya melakukan learning. Hal ini terjadi tanpa kita sadari dan alamiah. Namun untuk membuat sebuah mesin dapat berpikir tentu bukanlah hal yang mudah. Manusia belajar melalui pengalaman yang dia alami sehari- hari. Dari pengalaman tersebut, manusia akan mendapatkan knowledge.

Untuk mendapatkan knowledge dapat melalui berbagai cara. Cara yang paling sederhana adalah rote learning atau menyimpan informasi yang sudah dikalkulasi. Cara lainnya adalah dengan mendapatkan pengetahuan dari orang lain yang sudah ahli. Manusia juga dapat belajar melalui pengalaman pemecahan masalah yang ia lakukan. Setelah berhasil mengatasi sebuah masalah, manusia akan mengingat struktur dan cara mengatasi masalah tersebut. Apabila manusia mengalami sebuah masalah yang hampir serupa, maka manusia dapat mengatasi masalah tersebut secara lebih efisien. Ada banyak cara lain untuk mendapatkan knowledge dan kita akan membahasnya lebih lanjut di bab- bab selanjutnya.

Dalam kehidupan sehari- hari, dapat kita lihat learning machine pada kehidupan sehari- hari sangatlah berguna. Beberapa contoh yang terlihat sangat nyata adalah speech recognition, fingerprint recognition atau handwriting recognition. Perkembangan machine learning sekarang ini sangat pesat. Banyak sekali riset dilakukan untuk menciptakan mesin yang lebih cerdas. Contoh yang paling mutakhir yang dapat kita lihat adalah Asimo, sebuah robot cerdas buatan Honda, yang dapat mengenali pemiliknya dan mengenal emosi.

Agar dapat membuat sebuah robot secerdas Asimo, maka beberapa teknik AI diaplikasikan kedalamnya, seperti speech recognition untuk dapat berinteraksi, image recognition untuk dapat mengenali wajah pemiliknya dan mengenali ruangan dan banyak lagi.

Learning Technique

2.1 Rote Learning

Seperti yang telah dibahas sebelumnya, rote learning adalah sebuah cara memperoleh knowledge yang paling sederhana. Dengan cara ini komputer menyimpan data hasil perhitungan kedalam cache. Setelah itu, komputer tidak perlu melakukan kalkulasi kembali karena hasil perhitungan telah tersimpan. Cara ini sangat efektif untuk mempersingkat waktu proses karena komputer tinggal mengambil data. Namun sebagai trade-off, cara ini akan membutuhkan media penyimpanan yang besar.

2.2 Learning by Taking Advice

Pada awalnya manusia tidak memiliki pengetahuan apapun. Namun seiring berjalannya waktu, kita selalu mendapatkan knowledge dari orang tua dan guru. Demikian juga sebuah komputer. Komputer tidak memiliki kemampuan apabila tidak diprogram terlebih dahulu.

2.3 Learning in Problem Solving

Cara ini dapat digunakan sebagai alternatif dari 2 cara yang telah dibahas diatas. Dengan cara ini tidak diperlukan seorang ahli untuk memberikan knowledgennya. Komputer dapat menambah pengetahuannya dengan cara menggeneralisasi pengalaman yang telah dia dapatkan.

2.3.1 Learning from Example
Teknik belajar melalui contoh merupakan salah 1 cara dari learning in problem solving. Dalam menggunakan cara ini dibutuhkan contoh- contoh. Contoh yang tersedia akan diproses dan diklasifikasikan.
Klasifikasi adalah sebuah proses memasukkan sebuah input ke dalam kelas yang sesuai. Klasifikasi adalah sebuah komponen yang penting dalam banyak pekerjaan problem solving. Biasanya klasifikasi ini dimasukkan ke dalam operasi yang lain.
Sebelum memulai klasifikasi, maka kelas- kelas harus dibentuk terlebih dahulu. Ada beberapa cara yang dapat dilakukan untuk membentuk kelas- kelas tersebut.
• Mendefinisikan kelas dengan cara menghitung jumlah dari fiturnya.
• Mendefiniskan kelas sebagai sebuah struktur yang terdiri dari fitur- fitur tersebut.

Cara pertama lebih efisien namun cara kedua lebih fleksibel dan mudah untuk diperluas.
Dalam kenyataannya, mendefinisikan sebuah kelas bukannya pekerjaan yang mudah. Apalagi jika contoh- contoh yang ada tidak mudah untuk dideskripsikan atau dapat berubah- ubah secara cepat. Jika kita ingin mendefinisikan kelas secara struktural, ada banyak cara yang dapat dipakai, misalnya Winston’s learning program, version spaces dan decision trees. Disini kita akan membahas beberapa teknik tersebut.

2.3.1.1 Version Space

Dalam teknik ini, tujuan yang ingin kita capai adalah menghasilkan sebuah deskripsi yang konsisten dengan semua contoh yang positif tetapi tidak dengan contoh yang bernilai negatif dari contoh- contoh yang disediakan.
Dalam teknik ini kita akan membuat 2 buah subset, yang umum dan spesifik. Tujuan kita adalah membuat kedua subset tersebut memiliki nilai yang sama pada akhirnya.
Untuk membuat hal tersebut terjadi maka kita harus membuat subset yang umum menjadi lebih spesifik dan subset yang spesifik menjadi lebih umum. Untuk melakukan hal tersebut maka dibutuhkan sebuah algoritma bernama candidate elimination algorithm.
Candidate elimination adalah sebuah metode untuk menghitung batas dari set. Mengutip dari [Hirsh,1994,halaman 6] :

”The candidate-elimination algorithm manipulates the boundary-set representation of a version space to create boundary sets that represent a new version space consistent with all the previous instances plus the new one. For a positive example the algorithm generalizes the elements of the [sbs] as little as possible so that they cover the new instance yet remain consistent with past data, and removes those element of the [gbs] that do not cover the new instance. For a negative instance the algorithm specializes elements of the [gbs] so that they no longer cover the new instance yet remain consistent with past data, and removes form the [sbs] those elements that mistakenly cover the new, negative instance.”

Langkah- langkah dalam candidate elimination algorithm.
1. Buat sebuah subset G yang hanya berisi variabel
2. Buat sebuah subset S yang berisi elemen dari contoh positif yang pertama
3. Jika contoh bernilai positif, hapus dari G apabila deskripsi tidak sama dengan contoh dan masukkan ke G apabila deskripsi berbeda dengan contoh. Sedangkan S tetap.
Jika contoh bernilai negatif, hapus dari S apabilai deskripsi sama dengan contoh. Kemudian hapus dari G apabila deskripsi sama dengan contoh.
4. Apabila G dan S hanya 1 subset dan bernilai sama, maka proses berhenti. Jika G
dan S hanya 1 subset dan berbeda nilai, berarti contoh yang ada tidak konsisten
hentikan proses.

Ada beberapa hal yang penting untuk diperhatikan dalam Candidate elimination algorithm. Pertama teknik ini merupakan least-comminent algorithm. Dalam setiap langkah, version space yang ada akan semakin mengerucut seminimal mungkin dalam setiap langkahnya. Oleh karena itu, apabila semua sample positif bernilai sama, algoritma ini tidak akan menganggap bahwa nilai lain adalah salah, sehingga apabila contoh yang diberikan tidak konsisten, maka S dan G tidak akan bertemu. Jadi kesimpulan yang dihasilkan sistem hanya partial. Kedua, teknik ini menggunakan breadth first search untuk mencari jawaban yang diinginkan.
Candidate elimination memiliki beberapa kekurangan. Pertama, karena teknik ini menggunakan breadth first search, maka kita harus menyediakan storage yang cukup. Kedua adalah terjadinya inkonsistensi data. Seperti yang telah disebut diatas, hal ini akan menyebabkan tidak ditemukannya jawaban yang singleton.

2.3.1.2 Decision Trees

Decision tree merepresentasikan sebuah tree dimana internal nodenya mengetes sebuah atribut, masing- masing cabangnya berhubungan dengan nilai dari atribut dan masing- masing lead nodenya berisi sebuah klasifikasi. Algoritma ini merupakan salah satu dari teknik yang paling efisien dan populer dalam machine learning.
Kelebihan dari decision tree adalah apabila ukurannya tidak terlalu besar, tree ini akan dapat dengan mudah dimengerti oleh manusia. Hal ini akan sangat berguna karena manusia dapat memahami cara kerjanya. Sebagai tambahan, apabila data yang ada sangat besar, maka decision tree akan bekerja lebih cepat daripada version space.

2.4 Explanation- Based Learning

Explanation based learning adalah sebuah proses mengubah pengetahuan yang implisit menjadi pengetahuan yang eksplisit. Dalam teknik ini, kita membuat sebuah komponen dari domain menjadi spesifik untuk menjabarkan komponen lainnya, kemudian kita menggeneralisasi kesimpulannya agar dapat digunakan apabila kita menemukan komponen yang hampir sama.
Sebagai contoh misalnya dalam permainan catur. Komputer dapat mempelajari sebuah teknik hanya dari satu contoh saja, misalnya posisi mat. Dari contoh tersebut, komputer dapat melakukan perhitungan agar posisi itu tidak terjadi padanya dan sebaliknya berusaha melakukan itu kepada lawannya. Komputer tidak memerlukan banyak contoh seperti yang dilakukan oleh version space atau decision tree, karena komputer cukup mengetahui bahwa posisi dimana raja tidak dapat bergerak ke tempat lain bearti posisi mat.
Explanation based learning merupakan sebuah metode lain dari berbagai teknik learning. Pada teknik- teknik sebelumnya, contoh- contoh yang disediakan tidaklah sangat banyak sehingga memberatkan proses perhitungan. Dengan teknik explanation based learning ini, kita akan memperbaiki kecepatan proses sebuah learning.
Dalam teknik ini, kita akan menggunakan proses induktif. Proses ini akan membuat sebuah kesimpulan dari sekumpulan fakta- fakta yang ada. Kemudian hasil kesimpulan dan juga fakta- fakta tersebut disimpan dalam memory, sehingga apabila pada suatu saat dibutuhkan, kita tidak perlu melakukan perhitungan ulang. Hal inilah yang menyebabkan peningkatan kecepatan proses learning. Oleh karena itu, teknik ini disebut juga speed-up learning.
Speed-up learning dapat membuat sistem mendapatkan hasil / keputusan lebih cepat. Namun untuk dapat melakukan itu, kita perlu untuk memberikan banyak contoh- contoh latihan.
Dalam teknik explanation based learning, kita dapat mengambil input dari empat hal.
• contoh latihan
• konsep tujuan
• kriteria operasi
• teori domain

Explanation-based generalization adalah sebuah algoritma yang dipakai dalam
explanation based learning. Dalam teknik ini kita akan melakukan 2 langkah. Yang pertama adalah kita membuang semua aspek yang tidak penting dalam mencapai konsep tujuan. Langkah berikutnya adalah melakukan generalisasi penjelasan sejauh mungkin selama masih memenuhi konsep.

2.5 Empirical dan Analytical Learning

Empirical learning adalah metode belajar dengan mengandalkan pengalaman eksternal, sedangkan analytical learning tidak membutuhkan input eksternal. Perbedaan antara empirical dan analytical sangat tipis. Hampir semua masalah dapat diselesaikan dengan menggunakan analytical learning, namun dalam beberapa kasus dimana dibutuhkan kecepatan dan data yang sangat banyak seperti dalam permainan catur, maka analytical tidak bisa dipakai sendirian. Empirical learning dapat digunakan bersamaan dengan analytical sehingga dapat mempercepat proses.
Dalam empirical learning dikenal metode supervised dan unsupervised.

2.5.1 Supervised Learning

Dalam teknik supervised learning, maka sebuah program harus dapat membuat klasifikasi – klasifikasi dari contoh- contoh yang telah diberikan. Misalnya sebuah program diberikan benda berupa bangku dan meja, maka setelah beberapa contoh, program tersebut harus dapat memilah- milah objek ke dalam klasifikasi yang cocok.
Kesulitan dari supervised learning adalah kita tidak dapat membuat klasifikasi yang benar. Dapat dimungkinkan program akan salah dalam mengklasifikasi sebuah objek setelah dilatih. Oleh karena itu, selain menggunakan training set kita juga memberikan test set. Dari situ kita akan mengukur persentase keberhasilannya. Semakin tinggi berarti semakin baik program tersebut.
Persentase tersebut dapat ditingkatkan dengan diketahuinya temporal dependence dari sebuah data. Misalnya diketahui bahwa 70% mahasiswa dari jurusan Teknik Informatika adalah laki- laki dan 80% mahasiswa dari jurusan Sastra adalah wanita. Maka program tersebut akan dapat mengklasifikasi dengan lebih baik.

2.5.2 Unsupervised Learning

Teknik ini menggunakan prosedur yang berusaha untuk mencari partisi dari sebuah pola. Unsupervised learning mempelajari bagaimana sebuah sistem dapat belajar untuk merepresentasikan pola input dalam cara yang menggambarkan struktur statistikal dari keseluruhan pola input.
Berbeda dari supervised learning, unsupervised learning tidak memiliki target output yang eksplisit atau tidak ada pengklasifikasian input.
Dalam machine learning, teknik unsupervised sangat penting. Hal ini dikarenakan cara bekerjanya mirip dengan cara bekerja otak manusia. Dalam melakukan pembelajaran, tidak ada informasi dari contoh yang tersedia. Oleh karena itu, unsupervised learning menjadi esensial.

2.6 Reinforcement Learning

Reinforcement learning adalah sebuah teknik learning yang mempelajari aturan kontrol dengan cara berinteraksi dengan lingkungan yang masih asing. Ada 2 cara dalam teknik ini, teknik model-based dan teknik model-free.
Dalam teknik model-based, kita akan membuat sebuah subset berisi 4 tuple yang menggambarkan aksi, kondisi, hasil dan kondisi selanjutnya. Setelah mendapatkan subset yang cukup banyak maka kita dapat menghasilkan probability transition function dan reward function. Setelah mendapatkan kedua fungsi tersebut, kita dapat menggunakan dynamic programming untuk menghasilkan aturan yang paling optimal.
Dalam teknik model-free, kita tidak menyimpan subset yang berisi 4 tuple. Kita langsung menerapkan sebuah algoritma yang dapat langsung mengubah aturan kontrol menjadi lebih efisien.

2.7. Statistical Learning

Dalam machine learning, statistik dapat digunakan untuk mempercepat proses pembelajaran. Ada beberapa metode yang dapat kita gunakan dalam statistical learning. Metode tersebut adalah Bayesian, Instance Based dan Neural Network.

2.7.1 Bayesian Learning

Dalam Artificial Intelligence, teknik Bayesian dapat digunakan untuk mempercepat proses memperoleh hasil perhitungan. Untuk memperoleh hasil yang optimal, kita dapat menggunakan probabilitas agar sehingga komputer tidak perlu melakukan perhitungan yang tidak diperlukan.

Teorema Bayes
P (h | D) = P (D | h) * P (h) / P (D)

dimana :
P (h) = kemungkinan dari hipotesis h
P (D) = kemungkinan dari sample D
P (h | D) = kemungkinan dari h jika diberikan sample D
P (D | h) = kemungkinan dari sample D jika ada hipotesis h

2.7.2 Neural Network

Dalam teknik ini, kita membuat sebuah neural network buatan yang bertujuan untuk mensimulasikan cara kerja neuron yang berada di dalam sel manusia. Neuron sendiri berfungsi sangat penting dalam tubuh manusia karena berperan penting dalam menerima dan memproses sinyal.
Pada zaman modern sekarang ini, teknik dengan neural network merupakan teknik learning yang paling populer dan efektif. Neural network memiliki berbagai kelebihan seperti dapat melakukan perhitungan terdistribusi, dapat mentoleransi noise dalam input, dan kemampuannya dalam belajar.

Kesimpulan

Setelah mempelajari berbagai macam teknik learning. Kita dapat mengambil kesimpulan bahwa bidang pengetahuan ini sangatlah luas. Apa yang telah dibahas disini hanya mencakup sebagian kecil karena masih banyak teknik learning lainnya.

Learning juga saling berkaitan dengan topik lainnya di AI seperti planning, understanding dan game playing.Topik ini merupakan bagian yang sangat penting dan tidak dapat terpisahkan.
Perkembangan AI di dunia yang modern ini sangatlah pesat. Hal ini disebabkan oleh masih banyaknya cabang AI yang belum dieksplorasi secara mendalam. Semoga dengan adanya paper ini, pembaca menjadi semakin tertarik dengan AI.

Daftar Pustaka

Dietterich, Thomas G. (1990). Machine Learning. Oregon State University

Mitchell, T. M. (1997). Machine Learning. McGraw-Hill.

Nilsson, Nils J. (1996). Introduction to Machine Learning, Stanford University

Rich, E dan Knight, K. (1991). Artificial Intelligence (second edition). McGraw-Hill

Russel, Stuart and Norvig, Peter. (1995). Artificial Intelligence A Modern Approach.

Prentice Hall.


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Kategori

%d blogger menyukai ini: