REKAYASA PERANGKAT LUNAK LANJUT



Penjelasan algoritma - algoritma Machine Learning:

1. Supervised Learning
Decision Tree(ID3 C4.5)
Algoritma ID3 merupakan algoritma yang dipergunakan untuk membangun sebuah decision tree atau pohon keputusan. Algoritma ini ditemukan oleh J. Ross Quinlan (1979), dengan memanfaatkan Teori Informasi atau Information Theory milik Shanon. ID3 sendiri merupakan singkatan dari Iterative Dichotomiser 3. Proses dari decision tree dimulai dari root node hingga leaf node yang dilakukan secara rekursif. Decision tree menggunakan struktur hierarki untuk pembelajaran supervised. Proses dalam decision tree yaitu mengubah bentuk data (tabel) menjadi model pohon (tree) kemudian mengubah model pohon tersebut menjadi aturan (rule). Dengan pendekatan ini, salah satu kelemahan algoritma dari decision tree, adalah faktor skalabilitas dimana algoritma tersebut hanya dapat digunakan untuk menangani sampel-sampel yang dapat disimpan secara keseluruhan dan pada waktu yang bersamaan di memori. Algoritma pada metode ini menggunakan konsep dari entropi. Konsep Entropi yang digunakan untuk mengukur “seberapa informatifnya” sebuah node (yang biasanya disebut seberapa baiknya).
Entropi(S) = 0, jika semua contoh pada S berada dalam kelas yang sama.
Entroiy(S) = 1, jika jumlah contoh positif dan jumlah contoh negatif dalam S adalah sama.
0 < Entropi(S) < 1, jika jumlah contoh positif dan negatif dalam S tidak sama.


Dimana:
• S adalah himpunan (dataset) kasus
• k adalah banyaknya partisi S
• pj adalah probabilitas yang di dapat dari Sum(Ya) dibagi Total Kasus.

Setelah mendapat nilai entropi, pemilihan atribut dilakukan dengan nilai information gain terbesar.


Dimana:
S = ruang (data) sample yang digunakan untuk training.
A = atribut.
|Si| = jumlah sample untuk nilai V.
|S| = jumlah seluruh sample data.
Entropi(Si) = entropy untuk sample-sample yang memiliki nilai i


➤ Kelebihan Pohon Keputusan atau Decision Tree
➯Daerah pengambilan keputusan yang sebelumnya kompleks dan sangat global, dapat diubah menjadi simple dan spesifik.
➯Eliminasi perhitungan-perhitungan yang tidak diperlukan, karena ketika menggunakan metode pohon keputusan maka contoh diuji hanya berdasarkan kriteria atau kelas-kelas tertentu.
➯Fleksibel untuk memilih fitur dari internal node yang berbeda, fitur yang terpilih akan membedakan suatu kriteria dibandingkan kriteria yang lain dalam node yang sama.
➯Metode pohon keputusan dapat menghindari munculnya permasalahan ini dengan menggunakan kriteria yang jumlahnya lebih sedikit pada setiap node internal tanpa banyak mengurangi kualitas keputusan yang dihasilkan.

➤Kekurangan Pohon Keputusan atau Decision Tree
➯Terjadi overlap terutama ketika kelas-kelas dan kriteria yang digunakan jumlahnya sangat banyak. Hal tersebut juga dapat menyebabkan meningkatnya waktu pengambilan keputusan dan jumlah memori yang diperlukan.
➯Pengakumulasian jumlah eror dari setiap tingkat dalam sebuah pohon keputusan yang besar.
➯Kesulitan dalam mendesain pohon keputusan yang optimal.
➯Hasil kualitas keputusan yang didapatkan dari metode pohon keputusan sangat tergantung pada bagaimana pohon tersebut didesain.


Naive Beyes Classifier 
Merupakan sebuah metoda klasifikasi yang berakar pada teorema Bayes . Metode pengklasifikasian dg menggunakan metode probabilitas dan statistik yg dikemukakan oleh ilmuwan Inggris Thomas Bayes , yaitu memprediksi peluang di masa depan berdasarkan pengalaman di masa sebelumnya sehingga dikenal sebagai Teorema Bayes . Ciri utama dr Naïve Bayes Classifier ini adalah asumsi yg sangat kuat (naïf) akan independensi dari masing-masing kondisi / kejadian.

Menurut Olson Delen (2008) menjelaskan Naïve Bayes unt setiap kelas keputusan, menghitung probabilitas dg syarat bahwa kelas keputusan adalah benar, mengingat vektor informasi obyek. Algoritma ini mengasumsikan bahwa atribut obyek adalah independen. Probabilitas yang terlibat dalam memproduksi perkiraan akhir dihitung sebagai jumlah frekuensi dr " master " tabel keputusan.

Keuntungan penggunan adalah bahwa metoda ini hanya membutuhkan jumlah data pelatihan (training data) yg kecil unt menentukan estimasi parameter yg diperlukan dalam proses pengklasifikasian. Karena yg diasumsikan sebagai variable independent, maka hanya varians dr suatu variable dalam sebuah kelas yg dibutuhkan unt menentukan klasifikasi, bukan keseluruhan dr matriks kovarians.

Tahapan proses Naive Bayes

1. Menghitung jumlah kelas / label

2. Menghitung Jumlah Kasus Per Kelas

3. Kalikan Semua Variable Kelas

4. Bandingkan Hasil Per Kelas

Persamaan Teorema Bayes

Keterangan :
x : Data dengan class yang belum diketahui
c : Hipotesis data merupakan suatu class spesifik
P(c|x) : Probabilitas hipotesis berdasar kondisi (posteriori probability)
P(c) : Probabilitas hipotesis (prior probability)
P(x|c) : Probabilitas berdasarkan kondisi pada hipotesis
P(x) : Probabilitas c

Rumus diatas menjelaskan bahwa peluang masuknya sampel karakteristik tertentu dalam kelas C (Posterior) adalah peluang munculnya kelas C (sebelum masuknya sampel tersebut, seringkali disebut prior), dikali dengan peluang kemunculan karakteristik karakteristik sampel pada kelas C (disebut juga likelihood), dibagi dengan peluang kemunculan karakteristik sampel secara global ( disebut juga evidence). 

➤Kelebihan  Naive Bayes
➯Mudah untuk dibuat
➯Hasil bagus

➤Kekurangan Naive Bayes
Asumsi independence antar atribut membuat akurasi berkurang (karena biasanya ada keterkaitan)


Artificial Neural Network
Merupakan sebuah teknik atau pendekatan pengolahan informasi yang terinspirasi oleh cara kerja sistem saraf biologis, khususnya pada sel otak manusia dalam memproses informasi. Elemen kunci dari teknik ini adalah struktur sistem pengolahan informasi yang bersifat unik dan beragam untuk tiap aplikasi. Neural Network terdiri dari sejumlah besar elemen pemrosesan informasi (neuron) yang saling terhubung dan bekerja bersama-sama untuk menyelesaikan sebuah masalah tertentu, yang pada umumnya dalah masalah klasifikasi ataupun prediksi.Cara kerja Neural Network dapat dianalogikan sebagaiman halnya manusia belajar dengan mengunakan contoh atau yang disebut sebagai supervised learning. Sebuah Neural Network dikonfigurasi untuk aplikasi tertentu, seperti pengenalan pola atau klasifikasi data, dan kemudian disempurnakan melalui proses pembelajaran. Proses belajar yang terjadi dalam sistem biologis melibatkan penyesuaian koneksi sinaptik yang ada antara neuron, dalam halnya pada Neural Network penyesuaian koneksi sinaptik antar neuron dilakukan dengan menyesuaikan nilai bobot yang ada pada tiap konektivitas baik dari input, neuron maupun output.

Fungsi Neural Network yaitu:
➯Dapat digunakan untuk memperoleh pengetahuan dari data yang rumit atau tidak tepat.
➯Dapat digunakan untuk mengekstrak pola dan mendeteksi tren yang terlalu kompleks untuk diperhatikan baik oleh manusia atau teknik komputer lainnya. 

Neural Network dan algoritma komputer konvensional tidaklah saling bersaing tetapi saling melengkapi. Beberapa tugas atau masalah lebih cocok diselesaikan dengan pendekatan algoritmik seperti halnya operasi aritmatika, di sisi lain ada tugas-tugas yang lebih cocok untuk jaringan saraf, misalnya prediksi pergerakan data time-series. Bahkan, sejumlah besar tugas lainnya memerlukan sistem yang menggunakan kombinasi dari keddua pendekatan tersebut, dimana biasanya komputer konvensional digunakan untuk mengawasi Neural Network agar dapat memberikan kinerja maksimum.

➤Kelebihan Neural Network 
Kemampuan untuk belajar dalam melakukan tugas-tugas berdasarkan data yang diberikan.
Sebuah Neural Network dapat membangun representasi dari informasi yang diterimanya selama proses pembelajaran secara mandiri.
Penghitungan Neural Network dapat dilakukan secara paralel, sehingga proses komputasi menjadi lebih cepat.

➤Kekurangan Neural Network
➯Kurang mampu untuk melakukan operasi-operasi numerik dengan presisi tinggi
➯Kurang mampu melakuka operasi algoritma aritmatik,operasi logika dan simbolis
➯Lamanya proses training yang mungkin terjaadi dalam waktu yang sangat lama untuk jumlah data yang besar.


Linear Regression
Suatu metode yang digunakan untuk melihat bentuk hubungan antar satu variabel independent (bebas) dan mempunyai hubungan garis lurus dengan variabel dependennya (terikat). Sebuah teknik klasik di statistika untuk mempelajari hubungan antar-variabel dan memprediksi masa depan. Walaupun tidak seakurat teknik yang lebih modern, kelebihan linear regression adalah mudah dimengerti dan tidak mensyaratkan data harus dalam bentuk tertentu.
Rumus algoritma Simple Linear Regression


Keterangan :
y : atau dependent variable, adalah akibat dari suatu sebab, misalnya: kenaikan gaji karyawan (terhadap lama pengalaman kerja), atau tinggi/rendah ranking murid (terhadap lama waktu belajarnya).
x : atau independent variable, adalah hal yang diasumsikan menjadi sebab atas suatu hal, yang nantinya bisa mengakibatkan “y”.
Dalam simple linear regression hanya akan ada satu “x”, sehingga Anda boleh menyebutnya “x” saja, bukan “x1".
b1 : atau coefficient, adalah suatu unit / proporsi yang dapat mengubah nilai “x”
b0 : atau constant, adalah nilai awal “x” pada suatu kejadian

Berikut ini adalah Langkah-langkah dalam melakukan Regresi Linear  :
Tentukan Tujuan dari melakukan Analisis Regresi Linear Sederhana
Identifikasikan Variabel Faktor Penyebab (Predictor) dan Variabel Akibat (Response)
Lakukan Pengumpulan Data
Hitung X², Y², XY dan total dari masing-masingnya
Hitung a dan b berdasarkan rumus diatas.
Buatkan Model Persamaan Regresi Linear Sederhana.
Lakukan Prediksi atau Peramalan terhadap Variabel Faktor Penyebab atau Variabel Akibat


KKN (K-Nearest Neighbor)
Algoritma yang berfungsi untuk melakukan klasifikasi suatu data berdasarkan data pembelajaran (train data sets), yang diambil dari k tetangga terdekatnya (nearest neighbors). Dengan k merupakan banyaknya tetangga terdekat. 

Tahapan Langkah Algoritma K-NN

1. Menentukan parameter k (jumlah tetangga paling dekat).
2. Menghitung kuadrat jarak eucliden objek terhadap data training yang diberikan.
3. Mengurutkan hasil no 2 secara ascending (berurutan dari nilai tinggi ke rendah)
4. Mengumpulkan kategori Y (Klasifikasi nearest neighbor berdasarkan nilai k)
5. Dengan menggunakan kategori nearest neighbor yang paling mayoritas maka dapat dipredisikan kategori objek.

➤Kelebihan Algoritma K-NN
➯Sangat nonlinear
➯Mudah dipahami dan diimplementasikan

➤Kekurangan Algoritma K-NN
➯Perlu menunjukkan parameter K (jumlah tetangga terdekat)
➯Tidak menangani nilai hilang (missing value) secara implisit
➯Sensitif terhadap data pencilan (outlier)
➯Rentan terhadap variabel yang non-informatif
➯Rentan terhadap dimensionalitas yang tinggi
➯Rentan terhadap perbedaan rentang variabel
➯Nilai komputasi yang tinggi.


2. Unservised Learning
K-Means
K-Means Clustering adalah suatu metode penganalisaan data atau metode Data Mining yang melakukan proses pemodelan tanpa supervisi (unsupervised) dan merupakan salah satu metode yang melakukan pengelompokan data dengan sistem partisi.
Metode K-Means Clustering berusaha mengelompokkan data yang ada ke dalam beberapa kelompok, dimana data dalam satu kelompok mempunyai karakteristik yang sama satu sama lainnya dan mempunyai karakteristik yang berbeda dengan data yang ada di dalam kelompok yang lain.

Data clustering menggunakan metode K-Means Clustering ini secara umum dilakukan dengan algoritma dasar sebagai berikut:

1. Tentukan jumlah cluster
2. Alokasikan data ke dalam cluster secara random
3. Hitung centroid/rata-rata dari data yang ada di masing-masing cluster
4. Alokasikan masing-masing data ke centroid/rata-rata terdekat
5. Kembali ke Step 3, apabila masih ada data yang berpindah cluster atau apabila perubahan nilai centroid, ada yang di atas nilai threshold yang ditentukan atau apabila perubahan nilai pada objective function yang digunakan di atas nilai threshold yang ditentukan.


Karakteristik K-Means
  1. K-Means sangat cepat dalam proses clustering
  2. K-Means sangat sensitif pada pembangkitan centroid awal secara random
  3. Memungkinkan suatu cluster tidak mempunyai anggota
  4. Hasil clustering dengan K-Means bersifat tidak unik (selalu berubah-ubah) – terkadang baik, terkadang jelek
  5. K-means sangat sulit untuk mencapai global optimum
  6. Memperhatikan input dalam algoritma K-Means, dapat dikatakan bahwa algoritma ini hanya mengolah data kuantitatif atau numerik. 
  7. Sebuah basis data tidak mungkin hanya berisi satu macam tipe data saja, akan tetapi beragam tipe. 
  8. Sebuah basis data dapat berisi data-data dengan tipe sebagai berikut: binary, nominal, ordinal, interval dan ratio.
  9. Berbagai macam atribut dalam basis data yang berbeda tipe disebut sebagai data multivariate.
  10. Tipe data seperti nominal dan ordinal harus diolah terlebih dahulu menjadi data numerik (bisa dilakukan dengan cara diskritisasi), sehingga dapat diberlakukan algoritma K-Means dalam pembentukan clusternya.

Hierarchical Clustering
Hierarchical Clustering adalah metode analisis kelompok yang berusaha untuk membangun sebuah hirarki kelompok data. Strategi pengelompokannya umumnya ada 2 jenis yaitu Agglomerative (Bottom-Up) dan Devisive (Top-Down).

Langkah Algoritma Agglomerative Hierarchical Clustering :

1. Hitung Matrik Jarak antar data
2. Gabungkan dua kelompok terdekat berdasarkan parameter kedekatan yang ditentukan.
3. Perbarui Matrik Jarak antar data untuk merepresentasikan kedekatan diantara kelompok baru dan kelompok yang masih tersisa.
4. Ulangi langkah 2 dan 3 higga hanya satu kelompok yang tersisa.

Fuzzy C-Means
Fuzzy clustering adalah proses menentukan derajat keanggotaan, dan kemudian menggunakannya dengan memasukkannya kedalam elemen data kedalam satu kelompok cluster atau lebih.

Hal ini akan memberikan informasi kesamaan dari setiap objek. Satu dari sekian banyaknya algoritma fuzzy clustering yang digunakan adalah algoritma fuzzy clustering c means. Vektor dari fuzzy clustering, V={v1, v2, v3,…, vc}, merupakan sebuah fungsi objektif yang di defenisikan dengan derajat keanggotaan dari data Xj dan pusat cluster Vj.
Algoritma fuzzy clustering c means membagi data yang tersedia dari setiap elemen data berhingga lalu memasukkannya kedalam bagian dari koleksi cluster yang dipengaruhi oleh beberapa kriteria yang diberikan. Berikan satu kumpulan data berhingga. X= {x1,…, xn } dan pusat data.

Dimana μ ij adalah derajat keanggotaan dari Xj dan pusat cluster adalah sebuah bagian dari keanggotaan matriks [μ ij]. d2 adalahakar dari Euclidean distance dan m adalah parameter fuzzy yang rata-rata derajat kekaburan dari setiap data derajat keanggotaan tidak lebih besar dari 1,0 Ravichandran (2009).

Output dari Fuzzy C-Means merupakan deretan pusat cluster dan beberapa derajat keanggotaan untuk tiap-tiap titik data. Informasi ini dapat digunakan untuk membangun suatu fuzzy inference system.


3. Reinforcement Learning
Genetic Algorithm
Genetic Algorithm (GA) adalah bagian dari Evolutionary Algorithm yaitu suatu algoritma yang mencontoh proses evolusi alami dimana konsep utamanya adalah individu-individu yang paling unggul akan bertahan hidup, sedangkan individu-individu yang lemah akan punah. Keunggulan individu-individu ini diuji melalui suatu fungsi yang dikenal sebagai fitness function. Fitness dalam GA didefinisikan sebagai gambaran kelayakan suatu solusi terhadap suatu permasalahan. Fitness Function akan menghasilkan suatu nilai fitness value yang akan menjadi referensi untuk proses GA selanjutnya.


Proses GA dimulai dengan menentukan populasi awal initial population yang terdiri dari beberapa kromosom yang disusun oleh beberpa gen yang merupakan representasi dari kandidat-kandidat solusi dari suatu masalah. Kandidat-kandidat terbaik akan dipilih melalui proses selection, berdasarkan fitness value yang telah dihitung untuk setiap kromosom dalam populasi. Kandidat – kandidat terpilih dari proses ini adalah individu-individu yang akan mengisi mating pool yaiu suatu set dimana dua parents akan dibentuk dari sini. Dalam Evolutionary Algorithm prinsip bertahan muncul karena adanya proses reproduksi. Turunan offspring yang dihasilkan akan membawa sifat gen orangtuanya (parents) , oleh sebab itu parents dipilih dari mating pool yang merupakan kumpulan kandidat-kandidat terbaik dari suatu populasi. Dengan demikian turunan yang dihasilkan adalah turunan yang memiliki sifat unggul dari kedua orang tuanya.

GA adalah salah satu algoritma yang digunakan untuk proses optimisasi. Dalam optimisasi, kondisi optimal solusi-solusi yang diperoleh adalah target utama yang akan dicapai. Namun dalam algoritma optimisasi, kondisi optimum lokal local optimum sering terjadi. Optimum lokal adalah suatu kondisi dimana algoritma mencapai nilai tertinggi atau terendah pada beberapa nilai kandidat solusi. Hal ini berlawanan dengan kondisi optimum global (global optimum) yaitu algoritma mencapai niai teringgi atau terendah untuk seluruh kandidat solusi dalam suatu masalah tertentu. Optimum lokal dapat terjadi salah satunya diakibatkan oleh populasi mencapai format konvergensi terlalu dini premature convergence. Menurut Rajeev dan Krisnamoorthy kriteria tercapainya konvergensi adalah apabila sekitar 80% atau 85 % dari jumlah kromosom memiliki nilai gen yang sama. Salah satu cara untuk mencegah masalah prematur dini ini adalah dengan mempertahankan keragaman kromosom dari suatu populasi. Dalam GA, keragaman kromosom dari suatu populasi dapat dipertahankan dengan mengimplementasikan operator crossover dan mutasi (mutation).

Crossover adalah suatu operator rekombinasi yang bertujun untuk memperloleh individu yang lebih baik. Operator crossover melakukan rekombinasi dari set parents yang akan dipilih secara acak dari mating pool yang telah terbentuk dari proses seleksi. Crossover akan menghasilkan satu set turunan offspring yang keragamannya akan tetap dipertahankan dengan proses selanjutnya yaitu mutasi. Pada operator mutasi, keragaman akan dipertahankan dengan menukar salah satu atau lebih gen dalam kromosom dengan nilai kebalikannya. Sebagai contoh, jika kromosom kita memiliki nilai biner 0 dan 1 maka jika secara acak titik mutasi yang terpilih memiliki nilai 1, nilai ini akan ditukar menjadi nilai 0 atau sebaliknya. Hasil dari operator mutasi ini adalah turunan baru yang selanjutnya akan kembali diuji pada funsi fitness untuk melihat kelayakan populasi baru dari hasil proses GA ini sebagai kandidat solusi dari masalah yang diberikan. Proses pengujian fitness, seleksi,crossover dan mutasi akan dilakukan secara berulang sedemikian hingga telah dipenuhi salah satu kontrol perulangan proses GA berikut yaitu iterasi, konvergensi atau nilai fitness.


Dynamic Programming
Pemrograman dinamis (dynamic programming) adalah metode pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah (step) atau tahapan (stage) sedemikian rupa sehingga solusi dari permasalahan ini dapat dipandang dari serangkaian keputusan-keputusan kecil yang saling berkaitan satu dengan yang lain. Penyelesaian persoalan dengan pemrograman dinamis ini akan menghasilkan sejumlah berhingga pilihan yang mungkin dipilih, lalu solusi pada setiap tahap-tahap yang dibangun dari solusi pada tahap sebelumnya, dan dengan metode ini kita menggunakan persyaratan optimasi dan kendala untuk membatasi sejumlah pilihan yang harus dipertimbangkan pada suatu tahap.
Langkah-langkah Pengembangan Algoritma Program Dinamis sebagai berikut :
Karakteristikkan struktur solusi optimal.
Definisikan secara rekursif nilai solusi optimal.
Hitung nilai solusi optimal secara maju atau mundur.
Konstruksi solusi optimal.

➤Kelebihan Dynamic Programming.
➯Mengoptimalkan penyelesaian suatu masalah tertentu yang diuraikan menjadi sub-submasalah yang lebih kecil yang terkait satu sama lain dengan tetap memperhatikan kondisi dan batasan permasalahan tersebut.

➯Proses pemecahan suatu masalah yang kompleks menjadi sub-sub masalah yang lebih kecil membuat sumber permasalahan dalam rangkaian proses masalah tersebut menjadi lebih jelas untuk diketahui.

➯Pendekatan dynamic programming dapat diaplikasikan untuk berbagai macam masalah pemrograman matematik, karena dynamic programming cenderung lebih fleksibel daripada teknik optimasi lain.

➯Prosedur perhitungan dynamic programming juga memperkenankan bentuk analisissensitivitas terdapat pada setiap variabel status (state) maupun pada variabel yang ada di masing-masing tahap keputusan (stage).

➯Dynamic programming dapat menyesuaikan sistematika perhitungannya menurut ukuran masalah yang tidak selalu tetap dengan tetap melakukan perhitungan satu persatu secara lengkap dan menyeluruh.

Kekurangan Dynamic Programming:
Penggunaan dynamic programming jika tidak dilakukan secara tepat, akan mengakibatkan ketidakefisienan biaya maupun waktu. Karena dalam menggunakan dynamic programming diperlukan keahlian, pengetahuan, dan seni untuk merumuskansuatu masalah yang kompleks, terutama yang berkaitan dengan penetapan fungsi transformasi dari permasalahan tersebut.


Generalized Policy Iteration
Policy Iteration terdiri dari dua proses yang simultan dan saling berinteraksi, satu membuat fungsi nilai konsisten dengan kebijakan saat ini (evaluasi kebijakan), dan lainnya membuat kebijakan serakah sehubungan dengan fungsi nilai saat ini (perbaikan kebijakan). Dalam iterasi kebijakan, kedua proses ini bergantian, masing-masing diselesaikan sebelum yang lain dimulai, tetapi ini tidak benar-benar diperlukan. Dalam iterasi nilai, misalnya, hanya satu iterasi evaluasi kebijakan yang dilakukan di antara setiap peningkatan kebijakan. Dalam metode DP asinkron, proses evaluasi dan peningkatan disisipkan pada butir yang lebih halus. Dalam beberapa kasus satu negara diperbarui dalam satu proses sebelum kembali ke yang lain. Selama kedua proses terus memperbarui semua negara, hasil akhirnya biasanya sama - konvergensi ke fungsi nilai optimal dan kebijakan optimal. Kami menggunakan istilah iteration kebijakan umum (GPI) untuk merujuk pada gagasan umum untuk membiarkan evaluasi kebijakan dan proses peningkatan kebijakan berinteraksi, terlepas dari rincian dan rincian lainnya dari kedua proses. Hampir semua metode pembelajaran penguatan digambarkan dengan baik sebagai GPI. Artinya, semua memiliki kebijakan dan fungsi nilai yang dapat diidentifikasi, dengan kebijakan selalu ditingkatkan sehubungan dengan fungsi nilai dan fungsi nilai selalu didorong ke arah fungsi nilai untuk kebijakan tersebut.


Mudah untuk melihat bahwa jika proses evaluasi dan proses perbaikan stabil, yaitu, tidak lagi menghasilkan perubahan, maka fungsi dan kebijakan nilai harus optimal. Fungsi nilai stabil hanya jika konsisten dengan kebijakan saat ini, dan kebijakan stabil hanya jika itu serakah sehubungan dengan fungsi nilai saat ini. Dengan demikian, kedua proses stabil hanya ketika kebijakan telah ditemukan yang serakah sehubungan dengan fungsi evaluasinya sendiri. Ini menyiratkan bahwa persamaan optimalitas Bellman berlaku, dan dengan demikian bahwa fungsi kebijakan dan nilai optimal.
Proses evaluasi dan peningkatan dalam GPI dapat dipandang sebagai saling bersaing dan bekerja sama. Mereka bersaing dalam arti bahwa mereka menarik arah yang berlawanan. Membuat kebijakan serakah sehubungan dengan fungsi nilai biasanya membuat fungsi nilai salah untuk kebijakan yang diubah, dan membuat fungsi nilai konsisten dengan kebijakan biasanya menyebabkan kebijakan tidak lagi serakah. Namun, dalam jangka panjang, kedua proses ini berinteraksi untuk menemukan solusi bersama tunggal: fungsi nilai optimal dan kebijakan optimal.


4. Deep Learning
Convolutional Networks adalah salah satu jenis neural network yang biasa digunakan pada data image.  bisa digunakan untuk mendeteksi dan mengenali object pada sebuah image.
Secara garis besar CN tidak jauh beda dengan neural network biasanya. terdiri dari neuron yang memiliki weight, bias dan activation function.
Cara Kerja Convolutional Network
Sebuah CN dapat memiliki puluhan atau ratusan lapisan yang masing-masing lapisannya belajar untuk mendeteksi fitur-fitur yang berbeda dari suatu gambar. Convolutional Network akan memfilter ke setiap gambar pelatihan yang diterapkan pada resolusi yang berbeda-beda, dan output dari setiap gambar yang dikonvolusi akan digunakan sebagai input ke lapisan berikutnya. Filter ini dapat dimulai dari yang sederhana, seperti kecerahan (brightness) dan tepian (edges), dan peningkatan dalam kerumitan ke fitur secara unik dalam mendefinisikan suatu objek. Sehingga CN ini dapat mengidentifikasi dan mengklasifikasi gambar, teks, suara, dan video.

Alasan mengapa algoritma Convolutional Neural Network menjadi populer di dalam teknik Deep Learning karena memiliki tiga faktor penting. Yaitu:
  1. CNN dapat menghilangkan kebutuhan untuk ekstraksi fitur secara manual. Fitur-fitur tersebut dipelajari langsung oleh algoritma ini.
  2. CNN juga dapat menghasilkan pengenalan state-of-the-art.
  3. Algoritma CNN dapat dilatih kembali untuk tugas-tugas dalam pengenalan suatu objek yang baru, yang memungkinkan kalian untuk membangun di jaringan yang sudah ada sebelumnya.

Deep Believe Networks 

Dalam pembelajaran mesin, Deep Believe Networks (DBN) adalah model grafis generatif, atau alternatifnya kelas jaringan saraf dalam, terdiri dari beberapa lapisan variabel laten ("unit tersembunyi"), dengan koneksi antar lapisan tetapi tidak antara unit dalam setiap lapisan.  Ketika dilatih tentang serangkaian contoh tanpa pengawasan, DBN dapat belajar untuk merekonstruksi inputnya secara probabilistik. Lapisan-lapisan tersebut kemudian bertindak sebagai pendeteksi fitur.  Setelah langkah pembelajaran ini, DBN dapat dilatih lebih lanjut dengan pengawasan untuk melakukan klasifikasi.  
DBNs dapat dilihat sebagai komposisi jaringan sederhana tanpa pengawasan seperti mesin Boltzmann terbatas (RBM)  atau autoencoder,  di mana setiap lapisan tersembunyi sub-jaringan berfungsi sebagai lapisan yang terlihat untuk selanjutnya. RBM adalah model berbasis energi generatif yang tidak diarahkan dengan lapisan input "terlihat" dan lapisan tersembunyi serta koneksi di antara tetapi tidak di dalam lapisan. 
Komposisi ini mengarah pada prosedur pelatihan cepat, lapis demi lapis tanpa pengawasan, di mana perbedaan kontras diterapkan pada masing-masing sub-jaringan secara bergantian, mulai dari pasangan lapisan "terendah" (lapisan terendah yang terlihat adalah rangkaian pelatihan). Pengamatan bahwa DBN dapat dilatih dengan rakus, satu lapis pada satu waktu, mengarah ke salah satu algoritma pembelajaran mendalam yang efektif pertama. Secara keseluruhan, ada banyak implementasi dan penggunaan DBN yang menarik dalam aplikasi kehidupan nyata. dan skenario.


Bagian kemahasiswaan UMMI setiap tahunnya selalu menyeleksi mahasiswa penerima beasiswa. Keputusan mahasiswa menerima beasiswa atau tidaknya ditentukan berdasarkan pada IP dan jumlah sks. Bantulah bagian kemahasiswwaan UMMI untuk memprediksi penerima beasiswa menggunakan Algoritma Naive Bayes. Sebagai data pembanding maka disediakan data training yang berisi data pendaftar dan hasil seleksi penerima beasiswa di tahun sebelumnya.



Algoritma naive bayes untuk memprediksi penerimaan tersebut

Hasil Prediksi: