Saya ingin anda membuat program klasifikasi dengan metode Multilayer Perceptron (MLP) yang dioptimasi oleh Gentetic Algorithm (GA). Dengan bahasa pemrograman Python. Boleh menggunakan library ataupun tidak.
Optimasi yang dilakukan oleh GA mencakup Pemilihan Arsitektur terbaik dan Melakukan update bobot dari MLP.
Untuk GA optimasi update bobot:
- Populasi terdiri dari 10 individu/kromosom, yang nilainya adalah bilangan riil/float dengan range 0-1. Dan kromosom ini merepresentasikan bobot dan bias pada setiap layer. Dengan jumlah neuron pada hidden-layer dan jumlah hidden-layer yang disesuaikan dengan GA optimasi pemilihan arsitektur.
- Fitness adalah nilai MSE (Mean Squared Error) dari MLP, dengan bertujuan untuk meminimalkan MSE. Dalam hal ini dilakukan pembelajaran MLP (feedforward) guna mendapatkan MSE.
- Seleksi individu dengan menggunakan roullete wheele.
- Crossover dengan memperhatikan probabilitas crossover. Crossover dilakukan dengan membagi 2 kromosom atau dengan memilih titik crossover dengan random dan melakukan crossover dari titik crossover hingga akhir kromosom. (mohon dijelaskan pilihnya yang seperti apa, atau diskusikan yang terbaiknya seperti apa).
- Mutasi dilakukan dengan merubah nilai menjadi random float number, atau dengan menggeser sejumlah nilai. Dengan jumlah mutasi berdasarkan probabilitas mutasi, dan kromosom terpilih untuk mutasi dilakukan secara random (diskusikan yang terbaiknya seperti apa).
- Elitism.
Output dari optimasi update bobot adalah kromosom yang merepresentasikan bobot dan bias pada network/jaringan MLP, yang selanjutnya bobot dan bias tersebut digunakan dalam pembelajaran untuk menghitung akurasi dari arsitektur tersebut pada GA optimasi pemilihan arsitektur terbaik.
Untuk GA optimasi pencarian arsitektur terbaik:
- Populasi terdiri dari 8 individu/kromosom, yang nilainya adalah bilangan binner (0/1). Dan kromosom ini merepresentasikan jumlah hidden-layer dan jumlah neuron pada masing-masing hidden-layer. Dengan jumlah hidden-layer min. 1 dan maks. 3 (atau 2-bit), dan jumlah neuron pada masing-masing hidden-layer min. 7 dan maks. 15 (atau 4-bit).
- Fitness adalah nilai Akurasi dari MLP, dengan tujuan untuk memaksimalkan akurasi. Dalam hal ini dilakukan klasifikasi dengan MLP guna mendapatkan akurasi. Dimana bobot MLP yang digunakan adalah hasil dari GA optimasi update bobot.
- Seleksi individu dengan menggunakan roullete wheele.
- Crossover dengan memperhatikan probabilitas crossover. Crossover dilakukan dengan membagi 2 kromosom atau dengan memilih titik crossover dengan random dan melakukan crossover dari titik crossover hingga akhir kromosom. (mohon dijelaskan pilihnya yang seperti apa, atau diskusikan yang terbaiknya seperti apa).
- Mutasi dilakukan dengan merubah nilai binner dari 0 menjadi 1 atau dari 1 menjadi 0. Dengan jumlah mutasi berdasarkan probabilitas mutasi, dan kromosom terpilih untuk mutasi dilakukan secara random (diskusikan yang terbaiknya seperti apa).
- Elitism.
Output dari optimasi pemilihan arsitektur terbaik adalah Akurasi terbaik dari MLP, serta arsitektur terbaik dari MLP dengan jumlah hidden-layer dan jumlah neuron pada masing-masing hidden-layer.
Secara general, implementasinya yaitu GA optimasi arsitektur yang kemudian didalam perhitungan fitnessnya dibutuhkan GA optimasi update bobot.
Dalam kasus ini, datasets menggunakan iris data.