bab 2 landasan teori 2.1 machine learningthesis.binus.ac.id/doc/bab2/2007-3-00373-mtif bab 2.pdf ·...

14
6 BAB 2 LANDASAN TEORI 2.1 Machine Learning Sejak komputer ditemukan, para peneliti telah berpikir adakah kemungkinan agar komputer dapat belajar. Jika kita mengerti bagaimana cara memprogram komputer agar mereka dapat belajar, dan berkembang dari pengalaman secara otomatis, hasilnya akan luar biasa dramatis. Bayangkan komputer belajar dari data-data medical untuk menemukan cara baru menangani suatu penyakit, belajar dari pengalaman untuk mengoptimumkan energi yang dibutuhkan untuk melakukan pekerjaan rumah tangga, dan lain-lain. Sejak tahun 1980-an, bidang ilmu soft computing mulai muncul dan berkembang berdampingan dengan bidang ilmu konvensional hard computing. Adapun yang membedakan antara kedua ilmu ini adalah setelah diprogram, hard computing akan memberikan hasil yang sama untuk input yang sama, sementara soft computing akan belajar dari input-input yang diberikan sebelumnya untuk memberikan hasil yang lebih akurat di masa depan. Dalam cabang machine learning, terdapat tiga bidang ilmu besar yang dikembangkan terus menerus untuk mencapai tujuan di atas: Neural Network (NN) Support Vector Machines (SVM) Fuzzy Logic System Pada penulisan ini tidak akan dibahas lebih lanjut mengenai neural network maupun fuzzy logic system. Pada pembahasan selanjutnya, akan difokuskan pada support vector machines-viola jones.

Upload: vudang

Post on 10-Mar-2019

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB 2 LANDASAN TEORI 2.1 Machine Learningthesis.binus.ac.id/doc/Bab2/2007-3-00373-MTIF Bab 2.pdf · konvergen apabila memang terdapat hyperplane yang dapat mengklasifikasi contoh

6

BAB 2

LANDASAN TEORI

2.1 Machine Learning

Sejak komputer ditemukan, para peneliti telah berpikir adakah kemungkinan agar

komputer dapat belajar. Jika kita mengerti bagaimana cara memprogram komputer agar mereka

dapat belajar, dan berkembang dari pengalaman secara otomatis, hasilnya akan luar biasa

dramatis. Bayangkan komputer belajar dari data-data medical untuk menemukan cara baru

menangani suatu penyakit, belajar dari pengalaman untuk mengoptimumkan energi yang

dibutuhkan untuk melakukan pekerjaan rumah tangga, dan lain-lain.

Sejak tahun 1980-an, bidang ilmu soft computing mulai muncul dan berkembang

berdampingan dengan bidang ilmu konvensional hard computing. Adapun yang membedakan

antara kedua ilmu ini adalah setelah diprogram, hard computing akan memberikan hasil yang

sama untuk input yang sama, sementara soft computing akan belajar dari input-input yang

diberikan sebelumnya untuk memberikan hasil yang lebih akurat di masa depan. Dalam cabang

machine learning, terdapat tiga bidang ilmu besar yang dikembangkan terus menerus untuk

mencapai tujuan di atas:

• Neural Network (NN)

• Support Vector Machines (SVM)

• Fuzzy Logic System

Pada penulisan ini tidak akan dibahas lebih lanjut mengenai neural network maupun fuzzy

logic system. Pada pembahasan selanjutnya, akan difokuskan pada support vector machines-viola

jones.

Page 2: BAB 2 LANDASAN TEORI 2.1 Machine Learningthesis.binus.ac.id/doc/Bab2/2007-3-00373-MTIF Bab 2.pdf · konvergen apabila memang terdapat hyperplane yang dapat mengklasifikasi contoh

7

2.2 Supervised Learning

Supervised learning adalah teknik pembelajaran mesin dengan membuat suatu fungsi dari

data latihan. Data latihan terdiri dari pasangan nilai input (biasa dalam bentuk vektor), dan output

yang diharapkan untuk input yang bersangkutan. Tugas dari mesin supervised learning adalah

memprediksi nilai fungsi untuk semua nilai input yang mungkin, setelah mengalami sejumlah

data latihan.

Untuk mencapai tujuan ini, mesin harus dapat melakukan proses generalisasi dari data

latihan yang diberikan, untuk memprediksikan nilai output dari input yang belum pernah

diberikan sebelumnya dengan cara yang masuk akal.

2.3 Linear Learning Machines

Dalam proses supervised learning, mesin diberikan kumpulan contoh data (disebut juga

input), dan label yang terasosiasi (disebut juga output), dan contoh input dalam bentuk vektor

sehingga domain input merupakan subset . Setelah contoh data dan label nya tersedia,

sejumlah metode dapat dipilih untuk melakukan proses generalisasi pada masalah tersebut. Salah

satu metode yang paling dimengerti dan paling sederhana adalah menggunakan metode fungsi

linier.

Linear learning biasa digunakan untuk klasifikasi biner, yaitu kasus di mana domain

outputnya hanya terdiri dari 2 kemungkinan saja (kelas positif dan kelas negatif). Klasifikasi ini

biasanya dilakukan menggunakan fungsi dengan aturan untuk sembarang

input x, akan diberikan label kelas +, apabila , dan sebaliknya kelas –, apabila

. Karena adalah fungsi linear, maka dapat lebih lanjut ditulis sebagai:

Page 3: BAB 2 LANDASAN TEORI 2.1 Machine Learningthesis.binus.ac.id/doc/Bab2/2007-3-00373-MTIF Bab 2.pdf · konvergen apabila memang terdapat hyperplane yang dapat mengklasifikasi contoh

8

bxwxwxwxw nn +++++= )(...)()()( 332211

Di sini, merupakan vektor di ruang dimensi n, sehingga wi (w1 sampai wn) merupakan

komponen-komponen nilai penyusun vektor w di ruang dimensi n, dan nilai dari vektor w di

sinilah yang akan menjadi classifier bagi support vector machines.

Gambar 2.1 Sebuah vektor memisahkan bidang menjadi 2 daerah

di mana dan merupakan parameter fungsi yang akan ditentukan dari proses pembelajaran

dari contoh-contoh data yang diberikan ke linear machine yang bersangkutan, dan hasilnya akan

diberikan oleh .

Para peneliti statistik dan neural network sangat sering menggunakan sistem

pengklasifikasi yang sederhana seperti ini, yang sering dikenal juga dengan nama linear

discriminants dan perceptrons. Teori linear discriminants dikembangkan oleh Fisher pada tahun

1936, sementara peneliti neural network mulai mengkaji perceptrons pada awal 1960.

2.3.1 Rosenblatt’s Perceptron

x x

x x

x

o

o

o o o

Page 4: BAB 2 LANDASAN TEORI 2.1 Machine Learningthesis.binus.ac.id/doc/Bab2/2007-3-00373-MTIF Bab 2.pdf · konvergen apabila memang terdapat hyperplane yang dapat mengklasifikasi contoh

9

Algoritma iteratif pertama untuk klasifikasi linier dikembangkan oleh Frank Rosenblatt

pada tahun 1956 yang mengundang banyak perhatian pada saat pertama kali dikenalkan.

Algoritma ini dimulai dengan vektor awal , dan mengubahnya setiap kali terjadi

kesalahan klasifikasi. Algoritma ini (yang dideskripsikan pada tabel 2.1) mengubah nilai vektor

dan bias secara langsung, yang disebut sebagai bentuk primal. Algoritma ini dijamin akan

konvergen apabila memang terdapat hyperplane yang dapat mengklasifikasi contoh data yang

diberikan dengan benar (contoh data dapat dipisahkan secara linier).

Tabel 2.1 Algoritma perceptron (bentuk primal)

Diberikan contoh data input , label , jumlah contoh data , dan kecepatan belajar η

Repeat for i = 1 to if then end if end for until no mistakes made within the for loop return , ( ) di mana adalah jumlah kesalahan yang terjadi.

2.3.2 Dual dari Linear Machines

Berdasarkan algoritma pada tabel 2.1, baris akan dijalankan

berulang-ulang karena efek perulangan, sehingga hasil akhir dari vektor (yang dinotasikan

dengan ) merupakan penjumlahan dari semua pengubahan yang dilakukan pada vektor ,

dan hasil akhir vektor dapat dituliskan sebagai:

Page 5: BAB 2 LANDASAN TEORI 2.1 Machine Learningthesis.binus.ac.id/doc/Bab2/2007-3-00373-MTIF Bab 2.pdf · konvergen apabila memang terdapat hyperplane yang dapat mengklasifikasi contoh

10

di mana merupakan jumlah kesalahan saat mengklasifikasikan , dan fungsi penentu

yang merupakan dual dari dapat dituliskan sebagai berikut:

Tabel 2.2 Algoritma perceptron (bentuk dual)

Diberikan contoh data input , label , jumlah contoh data

Repeat for i = 1 to if then end if end for until no mistakes made within the for loop return ( ) untuk menentukan fungsi

2.4 Trik Kernel

Batas kemampuan komputasi fungsi linier dibahas pada tahun 1960an oleh Minsky dan

Papert. Secara umum, pada kasus dunia nyata, pengklasifikasian domain permasalahan

Page 6: BAB 2 LANDASAN TEORI 2.1 Machine Learningthesis.binus.ac.id/doc/Bab2/2007-3-00373-MTIF Bab 2.pdf · konvergen apabila memang terdapat hyperplane yang dapat mengklasifikasi contoh

11

memerlukan ekspresi yang lebih kompleks dibanding fungsi linier (misalnya fungsi polynomial,

eksponensial, dan atau atau fungsi periodik). Trik kernel menawarkan solusi dengan

memproyeksikan data ke dalam ruang dimensi yang lebih tinggi (disebut juga dengan feature

space) untuk meningkatkan kemampuan komputasi fungsi linier. Yang dimaksud dengan

dimensi di sini merupakan ruang dimensi vektor w berada, yang akan mempengaruhi besar nilai

n atau N pada rumus. Adapun pemetaan ke ruang dimensi yang lebih tinggi dilakukan untuk

memetakan input ke ruang dimensi yang baru, di mana diharapkan bahwa pada ruang dimensi

yang baru, domain input dapat dipisahkan oleh suatu vektor sederhana, yang tidak dapat

dilakukan sebelumnya pada ruang dimensi awal. Adapun salah satu pemetaan ulang data, dapat

dicapai dengan memetakan , sehingga

fungsi penentu berubah menjadi:

Page 7: BAB 2 LANDASAN TEORI 2.1 Machine Learningthesis.binus.ac.id/doc/Bab2/2007-3-00373-MTIF Bab 2.pdf · konvergen apabila memang terdapat hyperplane yang dapat mengklasifikasi contoh

12

Gambar 2.2 Ilustrasi fungsi kernel dalam menyederhanakan klasifikasi

2.5 Support Vector Machines

Tujuan dari support vector machines adalah menemukan suatu cara yang efisien dalam

mengkalkulasi vektor pemisah dalam ruang dimensi tinggi. Dalam support vector machines

sendiri memiliki beberapa teori generalisasi, di mana teori y ang berbeda akan berakhir dengan

hasil yang berbeda pula. Misalnya terdapat teori yang mengutamakan margin maksimal,

distribusi margin, jumlah vektor, dan lain sebagainya.

2.5.1 Sejarah Support Vector Machines

Walau saat pertama kali diperkenalkan ke dunia sejak akhir tahun 1970-an (Vapnik,

1979), support vector machines tidak mendapat banyak perhatian oleh para peneliti. Hanya

setelah Vladimir Vapnik kembali menerbitkan bukunya pada tahun 1990-an (Vapnik, 1995;

Vapnik, 1998) dan dapat menunjukkan aplikasi nyata, support vector machines kemudian

berkembang pesat. Salah satu yang menjadi penyebab adalah tersimpan teori matematika yang

x

x

x

x

o

o o

Φ(x) Φ(x)

Φ(x)

Φ(x)

Φ(o)

Φ(o) Φ(o)

Φ X F

Page 8: BAB 2 LANDASAN TEORI 2.1 Machine Learningthesis.binus.ac.id/doc/Bab2/2007-3-00373-MTIF Bab 2.pdf · konvergen apabila memang terdapat hyperplane yang dapat mengklasifikasi contoh

13

mendalam di balik support vector machines di banding kedua kerabatnya di bidang soft

computing: neural network dan fuzzy logic.

2.5.2 Maximal Margin Classifier

Maximal margin classifier adalah model support vector machines yang paling sederhana,

yang juga merupakan model pertama yang dikenalkan pada dunia. Model ini hanya bekerja

untuk data yang dapat dipisahkan secara linier pada feature space, dan oleh karena itu, tidak

dapat digunakan pada kebanyakan kasus nyata. Namun bagaimana pun juga, model ini memiliki

algoritma yang paling mudah dimengerti, dan juga membentuk dasar teori model-model lain

yang lebih kompleks.

Strategi maximal margin classifier adalah dengan mencari vektor yang akan memisahkan

feature space dengan margin yang paling besar. Hal ini dilakukan dengan mengubah masalah

model ini menjadi convex optimization problem: mencari fungsi kuadratik minimal dengan

kondisi dari fungsi pertidaksamaan linier.

2.5.3 Soft Margin Optimisation

Maximal margin classifier merupakan konsep yang penting, sebagai titik awal

perkembangan teori support vector machines yang lebih lanjut, namun tidak dapat digunakan

pada kebanyakan kasus nyata. Hal ini dikarenakan maximal margin classifier berangkat dari

hipotesis tanpa kesalahan pembelajaran. Mengingat bahwa pada banyak kasus nyata, feature

space tidak dapat dipisahkan oleh vektor dengan sempurna, soft margin optimization

memasukkan sebuah peubah slack dalam perhitungan margin.

Page 9: BAB 2 LANDASAN TEORI 2.1 Machine Learningthesis.binus.ac.id/doc/Bab2/2007-3-00373-MTIF Bab 2.pdf · konvergen apabila memang terdapat hyperplane yang dapat mengklasifikasi contoh

14

2.6 Meta-Algoritma

Meta-algoritma adalah algoritma yang menggunakan algoritma lain sebagai perwakilan,

dan juga merupakan algoritma yang memiliki sub-algoritma sebagai peubah dan parameter yang

dapat diganti. Contoh-contoh yang termasuk meta-algoritma adalah boosting, simulated

annealing, bootstrap aggregating, AdaBoost, dan random-restart hill climbing.

2.7 Algoritma Boosting

Boosting merupakan meta-algoritma dalam machine learning untuk melakukan

supervised learning. Teori boosting dikenalkan berdasarkan pertanyaan yang diajukan Kearns

(1988): Dapatkah sekumpulan weak learner menciptakan satu kesatuan strong learner? Weak

learner adalah classifier yang hanya memiliki sedikit korelasi dengan klasifikasi yang

sebenarnya, sementara strong learner adalah classifier yang memiliki korelasi kuat dengan

klasifikasi yang sebenarnya.

Kebanyakan algoritma boosting mengikuti sebuah rancangan. Secara umum boosting

terjadi dalam iterasi, secara incremental menambahkan weak learner ke dalam satu strong

learner. Pada setiap iterasi, satu weak learner belajar dari suatu data latihan. Kemudian, weak

learner itu ditambahkan ke dalam strong learner. Setelah weak learner ditambahkan, data-data

kemudian diubah masing-masing bobotnya. Data-data yang mengalami kesalahan klasifikasi

akan mengalami penambahan bobot, dan data-data yang terklasifikasi dengan benar akan

mengalami pengurangan bobot. Oleh karena itu, weak learner pada iterasi selanjutnya akan lebih

terfokus pada data-data yang mengalami kesalahan klasifikasi oleh weak learner yang

sebelumnya.

Page 10: BAB 2 LANDASAN TEORI 2.1 Machine Learningthesis.binus.ac.id/doc/Bab2/2007-3-00373-MTIF Bab 2.pdf · konvergen apabila memang terdapat hyperplane yang dapat mengklasifikasi contoh

15

Dari banyak variasi algoritma boosting, AdaBoost merupakan yang paling terkenal dan

dalam sejarah perkembangannya, merupakan algoritma pertama yang dapat beradaptasi dengan

weak learner. Namun, terdapat beberapa contoh algoritma boosting lain seperti LPBoost,

TotalBoost, BrownBoost, MadaBoost, LogitBoost, dan lain-lain. Kebanyakan algoritma boosting

dapat dimasukkan ke dalam framework AnyBoost.

2.7.1 AdaBoost

AdaBoost, singkatan dari Adaptive Boost, diformulasikan oleh Yoav Freund dan Robert

Schapire. AdaBoost merupakan meta-algoritma, yang bisa diterapkan ke dalam learning

algorithm lain untuk meningkatkan performa.

2.8 Perancangan Software

Di era informasi, jutaan software telah beredar di dunia, dan jutaan lainnya sedang dalam

pengembangan. Masing-masing pengembang, memiliki metode masing-masing dalam membuat

softwarenya, dan masing-masing metode memiliki dampak secara langsung maupun tidak

langsung terhadap proses pengembangan software itu sendiri. Proses tersebut dinamakan

rekayasa piranti lunak atau software engineering. Beberapa definisi yang diberikan Pressman

(2001) mengenai rekayasa piranti lunak tercantum di bawah:

• Penggunaan dan pemanfaatan prinsip-prinsip teknik, dalam upaya untuk memperoleh

software yang ekonomis namun dapat diandalkan dan bekerja secara efisien pada mesin

nyata.

• Pendekatan secara sistematis, disiplin, dan bertanggung jawab atas proses

pengembangan, operasi, dan pemeliharaan dari sebuah software.

Page 11: BAB 2 LANDASAN TEORI 2.1 Machine Learningthesis.binus.ac.id/doc/Bab2/2007-3-00373-MTIF Bab 2.pdf · konvergen apabila memang terdapat hyperplane yang dapat mengklasifikasi contoh

16

Langkah-langkah yang perlu dilakukan dalam mengembangkan software, beserta dengan prinsip-

prinsip tekniknya tertuang dalam topik system development life cycle.

2.8.1 System Development Life Cycle

SDLC, atau System Development Life Cycle, adalah sekumpulan langkah-langkah,

prosedur, dan dokumen secara spesifik yang membimbing suatu proyek melalui pengembangan

secara teknis. Fase-fase yang biasa terdapat dalam SDLC antara lain: initiation phase, planning

phase, functional design phase, system design phase, development phase, integration and testing

phase, installation and acceptance phase, dan maintenance phase.

Dalam penerapannya, banyak model telah dibuat untuk mendukung SDLC, yaitu:

waterfall, fountain, spiral, build and fix, rapid prototyping, incremental, synchronize and

stabilize. Metode yang paling awal dikembangkan, dan yang paling terkenal, adalah waterfall:

sekumpulan urutan tahap-tahap pengerjaan, di mana output dari satu tahap, menjadi input bagi

tahap berikutnya. Tahap-tahap ini dibagi menjadi berikut:

1. Analisis

Analisis problem domain, teknologi yang akan diterapkan, logika bisnis yang akan

diimplementasi, dan lain-lain.

2. Requirements specification

Pada tahap ini, disiapkan dokumen-dokumen mendetil mengenai kebutuhan software

yang akan dibuat, seperti gambaran umum mengenai software, dan modul-modul yang

akan dibuat.

Page 12: BAB 2 LANDASAN TEORI 2.1 Machine Learningthesis.binus.ac.id/doc/Bab2/2007-3-00373-MTIF Bab 2.pdf · konvergen apabila memang terdapat hyperplane yang dapat mengklasifikasi contoh

17

3. Design

Pada tahap ini, disediakan dokumen-dokumen seperti functional specification, yang

berisikan analisis dari masing-masing modul dari tahap pertama, apa yang harus dibuat

dalam masing-masing modul, rancangan layar, cara mengoperasikannya, serta output

yang diharapkan dari masing-masing modul.

Pada tahap ini juga, dibuat arsitektur dari software yang akan dibuat. Masalah-masalah

mengenai arsitektur meliputi teknologi yang digunakan dalam membuat software

(bahasa, komponen, dll), class diagram, ERD (apabila software melibatkan database),

dan lain-lain.

4. Implementasi

Pada tahap ini, program ditulis dalam bahasa pemrograman yang telah ditentukan, dan

mengikuti rancangan yang telah disediakan pada tahap design. Penulisan program

diharapkan menyertakan dokumentasi program (bila diperlukan).

5. Testing dan Integration

Pada tahap ini, sistem yang telah diintegrasikan, diuji coba fungsionalitasnya, dan

diperbaiki bila ada kesalahan. Dalam SDLC, dikenal dua jenis testing, yaitu black box

testing dan white box testing. Black box testing mengamati karakteristik input dan output

dari setiap proses yang ada. White box testing mengamati program internal, komponen-

komponen yang digunakan, dan mencoba mendeteksi adanya kemungkinan cacat dari

segi keamanan, atau yang lainnya. Kemudian potongan-potongan program dari tahap

sebelumnya, digabungkan dan diintegrasikan dengan sistem lain (bila ada). Hasil akhir

dari tahap ini diharapkan sistem utuh yang sudah siap dijalankan.

Page 13: BAB 2 LANDASAN TEORI 2.1 Machine Learningthesis.binus.ac.id/doc/Bab2/2007-3-00373-MTIF Bab 2.pdf · konvergen apabila memang terdapat hyperplane yang dapat mengklasifikasi contoh

18

6. Operation dan Maintainance

Setelah software selesai dibuat, software akan dipantau selama jangka waktu tertentu,

dievaluasi secara berkala, dan diperbaiki bila ditemukan kesalahan.

Gambar 2.3 Waterfall Model (Sumber: [Anonim 1])

Dalam mengikuti model waterfall, pengembang software memulai SDLC dari tahap satu

ke tahap yang lain murni secara berurutan. Oleh karena itu model waterfall menjaga agar proses

pengembangan software bergerak ke tahap berikutnya hanya apabila tahap-tahap sebelumnya

Page 14: BAB 2 LANDASAN TEORI 2.1 Machine Learningthesis.binus.ac.id/doc/Bab2/2007-3-00373-MTIF Bab 2.pdf · konvergen apabila memang terdapat hyperplane yang dapat mengklasifikasi contoh

19

telah diselesaikan secara sempurna. Tahapan-tahapan itu pun harus diselesaikan secara

berurutan, tidak boleh melompati urutan tahapan yang ada.

2.9 Simulasi Komputer

Yang dimaksud dengan simulasi komputer, model komputer, atau model komputasi,

adalah program komputer yang mencoba meniru proses dari suatu model abstrak dari suatu

sistem. Simulasi komputer telah menjadi bagian penting dari pemodelan matematika dari banyak

sistem alam di fisika, kimia, dan biologi, sistem buatan di ekonomi, psikologi, dan ilmu sosial.

Biasanya, sistem pemodelan umumnya melalui model matematika, yang mencoba untuk mencari

solusi analitik dari suatu masalah, yang memungkinkan peneliti untuk memprediksi cara kerja

suatu sistem berdasarkan parameter-parameter dan suatu kondisi awal. Simulasi komputer

berkembang terus dan menjadi sangat berguna di bidang ilmu pengetahuan, teknologi, dan

hiburan.

Simulasi komputer berkembang seiiring dengan pertumbuhan yang pesat di bidang

komputer. Implementasi berskala besar yang pertama berlangsung saat perang dunia II, yang

bernama Manhattan Project, yang bertujuan untuk memodelkan proses detonasi nuklir

menggunakan algoritma Monte Carlo. Simulasi komputer sering digunakan sebagai pengganti

model sistem, di mana tidak terdapat solusi analitik tertutup sederhana.

Berdasarkan kriteria, model komputer dapat dikategorikan menjadi:

• Stokastik atau deterministik

• Steady-state atau dinamis

• Kontinu atau diskrit

• Lokal atau terdistribusi