MAKALAH REKAYASA PERANGKAT LUNAK MACHINE LEARNING
KELOMPOK 3 : 1. FARID
(2013142857)
2. HELMY ADAM
(2014143235)
3. HENDRI YULIANTO
(2014140927)
4. IMAN FIRMANSAH
(2014141051)
5. IRFAN FIRMANSYAH
(2014142962)
6. KHAERUNNISA
(2014142341)
KELAS
: 07TPLE004
PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS PAMULANG PAMULANG 2017
KATA PENGANTAR
Puji syukur kehadirat Allah SWT dengan segala kerahmatan nya kami masih diberikan kesehatan serta kesempatan dalam menyusun tugas makalah Machine Learning. Dalam hal ini kami sangat puas dengan hasil dan bahan yang sudah kami siapkan sebelumnya. Makalah ini membahas tentang materi Machine Learning Guna memenuhi tugas mata kuliah Rekayasa Perangkat Lunak. Kami ucapkan terima kasih Ibu Thoyyibah T M.kom, selaku dosen Mata kuliah Rekayasa Perangkat Lunak yang telah memberikan tema yang kami dapatkan. Kami menyadari bahwa makalah kami masih jauh dari sempurna, oleh karena itu kritik dan saran dari semua pihak yang bersifat membangun selalu kami harapkan demi kesempurnaan makalah ini. Akhir kata, kami sampaikan terima kasih atas semua rekan yang telah berperan serta dalam penyusunan makalah ini dari awal sampai akhir. Semoga Allah SWT selalu meridhoi segala usaha kita. Amin.
Tangerang, 5 Oktober 2017
Penulis
i
KATA PENGANTAR
Puji syukur kehadirat Allah SWT dengan segala kerahmatan nya kami masih diberikan kesehatan serta kesempatan dalam menyusun tugas makalah Machine Learning. Dalam hal ini kami sangat puas dengan hasil dan bahan yang sudah kami siapkan sebelumnya. Makalah ini membahas tentang materi Machine Learning Guna memenuhi tugas mata kuliah Rekayasa Perangkat Lunak. Kami ucapkan terima kasih Ibu Thoyyibah T M.kom, selaku dosen Mata kuliah Rekayasa Perangkat Lunak yang telah memberikan tema yang kami dapatkan. Kami menyadari bahwa makalah kami masih jauh dari sempurna, oleh karena itu kritik dan saran dari semua pihak yang bersifat membangun selalu kami harapkan demi kesempurnaan makalah ini. Akhir kata, kami sampaikan terima kasih atas semua rekan yang telah berperan serta dalam penyusunan makalah ini dari awal sampai akhir. Semoga Allah SWT selalu meridhoi segala usaha kita. Amin.
Tangerang, 5 Oktober 2017
Penulis
i
DAFTAR ISI
KATA PENGANTAR PENGANTAR .................................................. ........................................
i
DAFTAR ISI ............................................... ..................................................... .......................................................... .....
ii
BAB I PENDAHULUAN 1.1 Latar Belakang .................................................. ........................................
1
1.2 Rumusan Rumusan Masalah ...................................................... ..................................................................................... ...............................
2
1.3 Tujuan Penulisan Penulisan............................................... ........................................
3
1.4 Metode Penulisan ...................................................... ..................................................................................... ...............................
3
BAB II MACHINE LEARNING 2.1 Pengertian Pengertian Machine Learning .................................................... ................................................................. .............
4
2.2 Jenis-jenis Jenis-jenis Learning Technique Technique .................................................. .............
6
2.2.1 Rote Learning ...................................................... ..................................................................................... ...............................
6
2.2.2 Learning By Taking Advise ................................................. .............
7
2.2.3 Learning In Problem Solving ............................................... .............
7
2.2.4 Learning From Example ...................................................... ................................................................... .............
7
2.2.5 Explanation Explanation Based Learning................................................ .............
10
2.2.6 Empirical Empirical dan dan Analytica Analyticall Learning Learning ..................................................
11
2.2.7 Reinforcement Reinforcement Learning.............................................. ......................
13
2.2.8 Statistical Statistical Learning ...................................................... ............................................................................ ......................
13
2.3 Terminologi Terminologi Machine Learning .................................................. .............
14
2.4 Tugas Utama Machine Learning Learning ................................................ .............
15
ii
2.5 Metode di dalam Machine Learning ........................................................
15
2.6 Implementasi Machine Learning................................................. .............
18
2.6.1 Text Analysis ................................................ ........................................
18
2.6.2 Image Processing ................................................... ...............................
18
2.6.3 Finance .................................................. ................................................
19
2.6.4 Search and Recommendation Engine ...............................................
20
2.6.5 Speech Understanding ................................................... ......................
20
2.7 Langkah-langkah dalam mengembangkan aplikasi Machine Learning 21 2.8 Process Machine Learning .................................................. ......................
22
BAB III PENUTUP 3.1 Kesimpulan ................................................. ................................................
25
3.2 Saran .................................................. ..........................................................
25
DAFTAR PUSTAKA ................................................... ........................................
26
LAMPIRAN-LAMPIRAN
iii
BAB I PENDAHULUAN
1.1 Latar Belakang
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.
1
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 Machine learning saat ini menjadi cabang ilmu pengetahuan yang populer dibicarakan di media. Didapuk sebagai salah satu cabang dari ilmu kecerdasan buatan (artificial inteligence), hampir semua orang pernah berinteraksi, memakai ataupun mendengar sistem komputer yang dibangun memakai teknik machine learning. Mulai dari melihat tag-otomatis foto di Facebook, menggunakan rekomendasi pencarian di Google, meng-klik rekomendasi produk sejenis di online shopping, menikmati servis email tanpa spam, sampai dengan mendengar berita AlphaGo yang mengalahkan pemain profesional top di permainan Go.
1.2 Rumusan Masalah
Untuk mengkaji dan mengulas tentang Machine Learning, maka diperlukan sub-pokok bahasan yang saling berhubungan, sehingga penulis membuat rumusan masalah sebagai berikut : 1. Apakah Pengertian Machine Learning ? 2. Apa Jenis-jenis Learning Technique ? 3. Bagaimana Terminologi Machine Learning ? 4. Apakah Tugas Machine Learning ? 5. Apakah Metode yang terdapat pada Machine Learning ? 6. Bagaimana langkah – langkah mengembangkan machine Learning ?
2
7. Bagaimana Proses pada Machine Learning ?
1.3 Tujuan Penulisan
Tujuan disusunnya makalah ini adalah untuk memenuhi tugas mata kuliah Rekayasa Perangkat Lunak Tahun Ajaran Ganjil 2017 dan menjawab pertanyaan yang ada pada rumusan masalah. Manfaat dari penulisan makalah ini adalah untuk meningkatkan pengetahuan baik
baik penulis maupun bagi pembaca tentang
Machine Learning dan mampu menjelaskan serta sebisa mungkin mempraktekkan tentang Machine Learning dan hal-hal yang berhubungan dengan Machine Learning .
1.4 Metode Penulisan
Penulis memakai metode studi literatur dan kepustakaan dalam penulisan makalah ini. Referensi makalah ini Tidak hanya bersumber dari Jurnal dan buku, tetapi juga dari media media lain seperti web, blog, dan perangkat media massa yang diambil dari internet.
3
BAB II MACHINE LEARNING
2.1 Pengertian Machine Learning
Learning
mempunyai
arti
menambah
pengetahuan,
memahami
atau
menguasai dengan belajar, mengikuti instruksi atau melalui pengalaman. 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. Machine learning merupakan bagian dari kecerdasan buatan. Untuk menjadi cerdas, sistem yang berada dalam lingkungan yang berubah harus memiliki kemampuan untuk belajar. Jika sistem dapat belajar dan beradaptasi dengan perubahan tersebut, perancang sistem tidak perlu meramalkan danmemberikan solusi untuk semua kemungkinan situasi (Alpaydin, 2010).
4
Machine learning adalah salah satu disiplin ilmu dari computer science yang mempelajari bagaimana membuat komputer atau mesin mempunyai suatu kecerdasan. Agar mempunyai suatu kecerdasan, komputer atau mesin harus dapat belajar. Dengan kata lain machine learning adalah suatu bidang keilmuan yang berisi tentang pembelajaran komputer atau mesin untuk menjadi cerdas. 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. “ Machine Learning adalah cabang dari kecerdasan buatan, merupakan disiplin ilmu yang mencakup perancangan dan pengembangan algoritma yang memungkinkan komputer untuk mengembangkan perilaku yang didasarkan kepada data empiris, seperti dari sensor data pada basis data. Sistem pembelajaran dapat memanfaatkan contoh (data) untuk menangkap ciri yang diperlukan dari probabilitas yang mendasarinya (yang tidak diketahui). Data dapat dilihat sebagai contoh yang menggambarkan hubungan antara variabel yang diamati. Fokus besar penelitian Machine Learning adalah bagaimana mengenali secara otomatis pola kompleks dan membuat keputusan cerdas berdasarkan data. Kesukarannya terjadi karena himpunan semua perilaku yang mungkin, dari semua masukan yang dimungkinkan, terlalu besar untuk diliput oleh himpunan contoh pengamatan (data pelatihan). Karena itu Machine Learning harus merampatkan (generalisasi) perilaku dari contoh yang ada untuk menghasilkan keluaran yang berguna dalam kasus-kasus baru. Dalam kehidupan sehari- hari, dapat kita lihat learning machine pada kehidupan sehari- hari sangatlah berguna. Beberapa contoh yang terlihat sangat nyata
5
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. Machine learning juga membantu kita mencari solusi pada vision, speech recognition, dan robotika. Machine learning adalah program computer untuk mengoptimasi performa menggunakan data contoh atau pengalaman sebelumnya. Misalnya pengenalan wajah, tiap wajah memiliki bentuk /pattern terdiri dari kombinasi mata, hidung, mulut dan lokasi wajah tertentu. Dengan menganalisis sampel image wajah, program menangkap bentuk spesifik pada wajah orang tersebut dan mengenalnya dengan bentuk yang telah diberikan yang dikenal sebagi pattern recognition. Setelah pelatihan dengan data yang lampau, sebuah rule klasifikasi dapat berupa :
IF income > Ɵ1 AND savings > Ɵ2 then low-risk ELSE high-risk
Nilai Ɵ 1 dan Ɵ2 dikenal sebagi diskriminan yang memisahkan contoh dari kelas yang berbeda.
2.2 Jenis-jenis Learning Technique 2.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
6
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.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.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.2.4 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.
1. Mendefinisikan kelas dengan cara menghitung jumlah dari fiturnya. 2. Mendefiniskan kelas sebagai sebuah struktur yang terdiri dari fitur- fitur tersebut.
7
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. a) 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, ne gative instance.”
8
Langkah- langkah dalam candidate elimination algorithm. 1. Buat sebuah subset G yang hanya berisi variable 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. b) 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
9
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.2.5 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
10
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.
a) contoh latihan b) konseptujuan c) kriteria operasi d) 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.2.6 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
11
mempercepat
proses.
Dalam empirical learning dikenal metode supervised dan unsupervised. a.
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. b. 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
12
melakukan pembelajaran, tidak ada informasi dari contoh yang tersedia. Oleh karena itu, unsupervised learning menjadi esensial. 2.2.7 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.2.8 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, dan Neural Network. a.
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 :
13
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 b. 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 efekti f. Neural network memiliki berbagai kelebihan seperti dapat melakukan perhitungan terdistribusi, dapat mentoleransi noise dalam input, dan kemampuannya dalam belajar. 2.3 Terminologi Machine Learning
Sebelum masuk ke algoritma Machine Learning , maka harus diketahui terlebih dahulu mengenai beberapa terminologi dari Machine Learning . Misalkan akan membuat sebuah sistem klasifikasi yang merupakan sistem yang berhubungan dengan Machine Learning , disebut dengan Expert System. Pada sistem klasifikasi, pembuatan tabel dengan kolom yang terdiri dari data untuk pengukuran yang akan dilakukan. Nama-nama kolom yang diukur disebut dengan fitur, atau dapat juga disebut atribut. Baris-baris isi dari setiap kolom merupakan Instance dari fitur. Salah satu tugas dari Machine Learning adalah klasifikasi. Misalkan ingin menentukan suatu hal dengan sistem pakar, maka hal-hal yang bisa dilakukan, antara lain seperti menimbang dengan timbangan jika perlu tahu mengenai berat, atau menggunakan computer vision jika ingin mengenali suatu bentuk, dan hal-hal lainnya untuk mengumpulkan informasi. Jika semua informasi penting sudah terkumpul, hal terakhir yang akan dilakukan pastinya adalah proses klasifikasi, yang nantinya akan
14
menghasilkan output berupa jenis klasifikasi yang kita inginkan. Klasifikasi pada Machine Learning biasanya dilakukan dengan menggunakan algoritma yang sudah sangat baik untuk digunakan dalam proses tersebut. Jika telah menggunakan algoritma Machine Learning untuk klasifikasi, maka selanjutnya harus melatih algoritma yang digunakan tersebut, dan untuk melatih algoritma, maka hal yang ilakukan adalah dengan memberi algoritma tersebut data yang berkualitas (dikenal dengan istilah training set ). Setiap training mempunyai fitur dan variabel target. Target variabel adalah apa yang akan diprediksikan oleh algoritma Machine Learning, yang selanjutnya Machine Learning akan mempelajari hubungan antara fitur dan variabel target.
2.4 Tugas Utama Machine Learning
Pada bagian sebelumnya telah dijelaskan mengenai tugas dari klasifikasi. Pada bagian klafikasi proses yang terjadi adalah menentukan pada class apa sebuah instance itu berada. Tugas lain dari Machine Learning adalah regresi. Regresi adalah prediksi dari nilai numerik. Regresi ini termasuk ke dalam tipe algoritma pembelajaran terarah.
2.5 Metode di dalam Machine Learning
Secara umum, di dalam Machine Learning ada dua jenis metode yang paling populer yang dapat digunakan yaitu Supervised Learning dan Unsupervised Learning . Perbedaan utama antara keduanya terletak pada bagaimana cara kita
mengajari dan memandu sebuah program melalui algoritma yang kita buat. Saya berikan ilustrasi, jika ada sebuah anak kecil yang sedang dihadapkan pada suatu masalah dan kamu mengajari dan memandu anak tersebut untuk memecahkan masalah tersebut maka itu termasuk ke dalam supervised learning . Namun jika
15
kamu membiarkan anak tersebut belajar dan memecahkan sendiri masalah yang dihadapinya itu disebut dengan unsupervised learning. 1.Supervised Learning
Pada Supervised Learning , kita melatih mesin untuk memberikan output yang sudah kita tetapkan atau kita harapkan sebelumnya. Algoritma yang kita terapkan pada mesin tersebut ditujukan untuk membuat suatu input menjadi output yang kita harapkan. Supervised Learning merupakan metode yang paling populer dalam implementasi algoritma untuk Machine Learning . Namun kelemahan dari metode ini adalah kita harus menyediakan atau menetapkan sebuah output yang benar. Kita mengajari mesin untuk melakukan sesuatu yang benar, tentu kita harus memiliki contoh apa sesuatu yang benar tersebut. Sebagai contoh, jika kita ingin mengajari sebuah program untuk menentukan sebuah opini yang negatif, positif, atau netral tentu kita harus menyediakan sampel atau contoh opini yang negatif, positif, atau netral itu seperti apa. Contoh lainnya misalnya ilustrasikan kamu memiliki sebuah keranjang buah, dan di dalam nya terdapat 4 jenis buah yaitu anggur, apel, cherry dan pisang. Sekarang kamu ingin meminta mesin untuk menentukan yang mana anggur, apel, cherry atau pisang. Untuk melakukannya tentu kita harus memberikan kondisikondisi tertentu kepada mesin untuk dapat menentukan jenis buah dengan tepat. Tabel 1 Contoh Supervised Learning
16
Beberapa algoritma yang sering digunakan dalam metode supervised learning ini antara lain Logistic Regression, Decission Trees, K-Nearest Neighbors, Naive Bayes, Linear Regression, Random Forest dan masih banyak lagi. 2. Unsupervised Learning
Sebaliknya, pada Unsupervised Learning kita tidak mengajari mesin untuk menghasilkan suatu output tertentu. Kita hanya mengajarinya seperti apa input yang benar, dan output nya mereka sendiri yang akan menentukan, kita tidak memiliki ide sama sekali output seperti apa yang dihasilkan. Dengan ilustrasi yang sama, misalkan kamu memiliki sebuah keranjang buah yang berisi empat jenis buah yang berbeda. Kali ini mesin kamu tidak tahu sama sekali tentang buah tersebut, ini adalah pertama kali nya mesin kamu melihat buah tersebut. Jadi, bagaimana cara kita mengatur atau menyusun buah-buah tersebut ? Pertama-tama kamu harus meminta mesin untuk menyusun buah-buah tersebut berdasarkan ciri fisik mereka. Misalkan kamu menyusun mereka kedalam dua grup berdasarkan warna , maka: GRUP WARNA MERAH: apel dan cherry. GRUP WARNA HIJAU: pisang dan anggur. Sekarang kamu pertimbangkan ciri fisik lainnya untuk memecah grup tersebut menjadi lebih detail, misalnya ukuran , maka: WARNA MERAH DAN UKURAN BESAR: apel. WARNA MERAH DAN UKURAN KECIL: cherry. WARNA HIJAU DAN UKURAN BESAR: pisang. WARNA HIJAU DAN UKURAN KECIL: anggur.
17
2.6 Implementasi Machine Learning
Machine Learning dapat diaplikasikan pada segala bidang. Di era digital saat ini, segala sesuatu telah terkomputerisasi, dan hal tersebut memainkan peranan penting bagi Machine Learning untuk dapat terlibat di dalam nya. Dibawah ini adalah beberapa contoh implementasi dari Machine Learning . 2.6.1 Text Analysis
Machine Learning dapat diimplementasikan untuk menganalisa suatu teks guna mencari tau darimana sumber teks itu berasal, ataupun untuk menguji keakuratan atau kebenaran dari teks tersebut. Contoh nya :
a. Spam F iltering , disini Machine Learning berguna untuk menganalisa, menilai, dan menyaring email spam berdasarkan isi dan sumber dari pesan tersebut.
b. Sentiment Analysis, ini adalah sebuah aplikasi untuk mengklasifikasikan sebuah teks. Fungsi Machine Learning disini adalah untuk mengklasifikasikan opini yang ditulis dari pengguna, apakah opini pengguna tersebut bersifat positif, netral atau negatif.
c. I nformation E xtraction, menganalisa dan mengidentifikasi potongan potongan dari teks. Misalnya dari sebuah paragaraf, aplikasi Machine Learning ini bertugas untuk mengecek potongan-potongan informasi pada teks seperti alamat, identitas, tanggal, dsb. 2.6.2 Image Processing
Secara umum, image processing merupakan suatu tahapan dari pengolahan suatu gambar untuk mendapatkan data dari gambar tersebut untuk kemudian diolah atau ditransformasikan lebih lanjut. Beberapa contohnya:
18
a. I mage tagging/face detection, disini Machine Learning diterapkan untuk mengidentifikasi atau mendeteksi wajah dari user berdasarkan data-data dari gambar tersebut.
b. Optical Character Recognition (OCR) , mentransformasikan sebuah teks atau gambar pada sebuah kertas / manuskrip ke dalam bentuk digital. Setelah di transformasikan ke dalam bentuk digital, maka gambar tersebut dapat diolah lebih lanjut. Contoh paling umum misalnya seperti lembar jawaban yang di bulat hitamkan atau dokumen yang di scan menggunakan scanner.
c. Self Driving Cars , ini merupakan salah satu implementasi dari Machine Learning yang paling fenomenal. Sebuah mobil yang telah tertanam program Maching Learning di dalam nya berusaha belajar untuk mengenali ciri sebuah jalan, rambu lalu lintas dan objek disekitar jalan melalui video camera yang ditanam pada mobil tersebut. 2.6.3 Finance
Implementasi dari Machine Learning juga banyak diterapkan dalam bidang finansial untuk membantu memprediksi maupun mengambil keputusan. Beberapa contoh diantaranya:
a. Stock
Tr ading,
mengembangkan
sebuah
algoritma
yang
mampu
mengidentifikasi dan memprediksi saham-saham terbaik berdasarkan pola atau pattern pada historis perdagangan saham. Machine Learning memainkan peranan penting dalam hal ini, ia bertugas untuk mengekstrak pola-pola yang sebelumnya tidak memiliki arti apapun hingga menjadi informasi yang berguna dan bermanfaat dalam pengambilan keputusan.
b. F raud Detection, dengan bantuan Machine Learning , sistem dapat mendeteksi kecurangan atau penipuan dengan efektif dan efisien. Cara kerjanya adalah dengan menganalisis data transaksaksi historis untuk membangun model yang dapat mendeteksi pola penipuan.
19
2.6.4 Search and Recomendation Engine
Machine Learning juga diterapkan untuk memaksimalkan fungsi pencarian dan rekomendasi oleh situs pencari, e-commerce dan media sosial. Beberapa contoh penerapan nya sebagai berikut: a. Google, ketika kamu mengetik sebuah kata kunci pencarian di Google, biasanya Google akan menampilkan rekomendasi pencarian yang kamu cari. Misalnya, ketika kamu mengetik ‘cara menghilangkan’ , maka Google akan memunculkan beberapa rekomendasi atau autoteks nya seperti ‘cara menghilangkan
jerawat’,
‘cara
menghilangkan
bau
badan’,
‘cara
menghilangkan ketombe’ dan sebagainya. b. F acebook , hal yang sama juga diterapkan pada Facebook. Misalnya kamu melakukan pencarian nama ‘ Desi‘ di textbox pencarian, maka Facebook akan menampilkan beberapa rekomendasi nama user yang mungkin kamu kenali, misalnya ‘ Desi Fatmawati’, ‘Desi Susanti’, ‘Desi Karina’ dan Desi-Desi lainnya. c. Amazon, Lazada, Alibaba, dan lainnya, jika kamu jelih memperhatikan saat kamu melakukan aktivitas belanja pada salah satu e-commerce diatas, maka sebetulnya mereka sudah menerapkan fungsi dari Machine Learning . Saat kamu melihat sebuah produk sampai ke halaman detail nya, misalnya sebuah Handphone, maka biasanya dibawah dari deskripsi Handphone tersebut akan muncul rekomendasi Handphone lainnya dengan spesifikasi yang hampir sama untuk kamu telusuri. 2.6.5 Speech Understanding
Ini berhubungan dengan suara manusia dan cabang ilmu komputer lainnya yaitu Natural Language Processing (NLP). Berikut beberapa contoh penerapan nya:
20
a. Google Voice,Saat ini kita dapat melakukan pencarian pada Google tanpa harus memainkan jari-jemari pada keyboard atau layar handphone kita. Salah model pencarian baru yang diterapkan oleh Google adalah melalui suara. Disini Machine Learning memainkan peranan penting, suara yang diterima akan menjadi masukan bagi program untuk diidentifikasi dan dianalisa lebih lanjut untuk melakukan pencarian berdasarkan inputan (suara) yang diterima
2.7 Langkah-langkah Dalam Mengembangkan Aplikasi Machine Learning
1. Mengumpulkan Data Proses pengumpulan data dilakukan dengan mengambil contoh dari berbagai sumber informasi, seperti di Internet dan media cetak. Data yang dikumpulkan adalah data yang disebarkan secara bebas ke publik. 2. .Mempersiapkan Data Masukan Pada hal ini data masukan yang disiapkan adalah data masukan yang sesuai dengan format yang dibutuhkan untuk analisis. 3. Menganalisis Data Masukan Setelah proses pertama dan kedua dilakukan, maka hal selanjutnya yang harus dilakukan adalah menganalisis data masukan dan untuk menganalisis dapat dilakukan dengan melihat pola data dan juga dengan memisahkan data berdasarkan dimensi masing-masing data 4. Mengikutsertakan Keterlibatan Manusia 5. Melatih Algoritma Pada langkan ini pengguna “memberi makan” algoritma dengan data yang berkualitas, dan nantinya algoritma akan mengolah data tersebut menjadi informasi serta menyimpannya.
21
6. .Menguji Algoritma Pada langkah ini hal yang dilakukan adalah melihat seberapa baik kualitas algoritma yang telah dilatih pada tahap sebelumnya. 7. Menggunakannya Langkah ini merupakan langkah akhir untuk algoritma yang diterapkan dalam suatu program, sehingga dapat melakukan suatu hal. Kemudian dilakukan pengecekan ulang terhadap langkah-langkah sebelumn ya.
2.8 Proses Maching Learning
Proses machine learning adalah sama dengan data mining. Program machine learning mendeteksi pola dalam data dan menyesuaikan tindakan program yang sesuai. Sebagai contoh, Facebook News Feed berubah sesuai denga interaksi pribadi pengguna dengan pengguna lain. Jika pengguna serinf men-tag teman di foto, menulis di dindingnya atau “suka” linknya, News Feed akan menampilkan lebih banyak kegiatan di berita pengguna karena di anggap memiliki kedekatan. Machine learning terletak bersilangan antara computer science, teknik, dan statistic. Machine learning juga banyak diterapkan pada robot vision dan sering menggunakan statistic. Untuk kebanyakan orang, statistic adalah subjek estoric yang digunakan perusahaan misalnya untuk promosi tentang betapa hebatnya produk mereka. Machine learning bekerja dengan cara menemukan beberapa hubungan antara fitur dan variable target. Untuk menguji algoritma, biasanya dilakukan dengan satu set pelatihan data (training set) dan data set yang terpisah, yang disebut test set. Pada awalnya , program diberikan contoh-contoh training. Lalu test set diberikan ke program. Variabel target untuk contoh dari test set yang tidak dberikan ke program, dan program memutuskan tiap contoh masuk ke kelas mana yang sesuai. Variabel
22
target atau kelas dibandingkan dengan nilai yang di prediksi untuk memperoleh keakuratan program. Dalam
beberapa kasus kita tidak mungkin tertarik dalam
membangun sistem pakar, tetapi hanya tertarik pada representasi pengetahuan yang di peroleh dari pelatihan algoritma Machine contoh penerapannya adaah memberikan data pelatihan untuk pengklasifikasian jenis burung.
Tahap Machine Learning
Gambar 1 Metode Machine Learning
23
Tahapan-tahapan metode machine learning dalam indoor localization terdiri dari (Alpaydin, 2010): 1. Tahap Pre-Learning a. Tahap identifikasi data dan knowledge source merupakan tahapan spesifikasi parameter sistem pengukuran nilai RSS dari multiple CELL-ID yang ada di gedung POLITAMA. Proses pengukuran dilakukan dengan mengabaikan adanya efek multipath dan propagasi. b. Tahap acquire data dan knowledge merupakan tahapan penetapan lokasi fingerprint yang akan diukur dalam gedung dengan menetapkan grid atau titiktitik pengukuran ( predefined ) dalam bentuk koordinat ( x, y). c. Tahap preprocessing merupakan tahap pemrosesan data dari langkah (b). Preprocessing dilakukan dengan menghilangkan RSS cell.id yang berada di luar area penelitian meskipun sinyal tersebut tertangkap. Pada tahap prepocessing akan dibuat juga database fingerprint RSS cell-id. Database fingerprint ini kemudian diolah untuk menghasilkan visualisasi peta fingerprint .
2. Tahap Learning Merupakan tahapan proses pembelajaran pengenalan posisi yang dilakukan terhadap database fingerprint dengan menggunakan algoritma k-Nearest Neighborhood (k-NN) . 3. Tahap Post Learning Merupakan tahapan penggunaan sistem lokalisasi untuk pengujian RSS secara real time dalam menghitung estimasi lokasi.
24
BAB III PENUTUP
3.1 Kesimpulan
Machine Learning adalah salah satu cabang dari Ilmu Komputer yang erat kaitan nya dengan Artificial Intelligent (Kecerdasan Buatan). Secara sederhana dapat dikatakan bahwa fokus utama dalam bidang ini adalah membangun sebuah algoritma yang memungkinkan program komputer dapat belajar dan melakukan sendiri tugastugas nya tanpa adanya instruksi dari pengguna. Kemampuan suatu individu untuk belajar tentu meningkatkan kecerdasan individu tersebut, dan tidak terkecuali pada sebuah mesin. Mesin yang mampu belajar akan meningkatkan produktivitas manusia. Ia memiliki kekuatan tambahan yang tidak dimiliki mesin lainnya. Aplikasi Machine learning membutuhkan Data sebagai bahan belajar (training) sebelum mengeluarkan output. Aplikasi sejenis ini juga biasanya berada dalam domain spesifik alias tidak bisa diterapkan secara general untuk semua permasalahan. Machine Learning bukan apa-apa tanpa data. Artinya semua aplikasi Machine Learning membutuhkan Data sebagai bahan training dan untuk di analisa sehingga mampu mengeluarkan Output. Sebelum aplikasi machine learning bisa bekerja, maka ia membutuhkan Data untuk "latihan" (training), hasil training itu nanti akan di Uji atau di test dengan data yang sama atau bertolak belakang. 3.2 Saran
Adapun saran dalam pembuatan makalah ini semoga makalah dapat bermanfaat bagi semua pembaca. Dan jika ada kekurangan dalam makalah ini mohon diberikan saran dan masukan yang membangun guna meningkatkan selanjutnya.
25
karya tulis