Kelompok 4 Machine Learning [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

RESUME ALGORITMA GRADIENT DESCENT



Disusun oleh: Diffa Al Farrisztqi



1900618



Dwiki Fajar Kurniawan



1903761



M. Rifky Maulana R



1904051



PROGRAM STUDI ILMU KOMPUTER DEPARTEMEN PENDIDIKAN ILMU KOMPUTER FAKULTAS PENDIDIKAN MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS PENDIDIKAN INDONESIA 2021



1. Author : Galih Praja Wijaya, Dendi Handian, Imam Fachmi Nasrulloh, Lala Septem Riza, Rani Megasari, Enjun Junaeti 2. Deskripsi Package : GradDescent adalah algoritma yang digunakan untuk membuat model prediksi pada kegiatan regresi.Gradient Descent juga digambarkan sebagai iterasi yang digunakan untuk menemukan nilai optimal dari parameter dengan menggunakan kalkulus untuk menemukan nilai minimum. Gradient Descent memiliki berbagai macam algoritma pembelajaran yang dapat diimplementasikan. Diantaranya: ● ADADELTA, fungsi ini didasarkan pada Stochastic Gradient Descent (SGD) yang sudah dioptimasi untuk membuat tingkat pembelajaran adaptif dengan pendekatan hessian approximation correction. Fungsi ini memiliki hasil koreksi dan beban komputasi yang lebih sedikit daripada ADAGRAD. Metode ini membuat tingkat pembelajaran eksklusif, dan tidak menggunakan parameter alpha, tetapi menggunakan parameter momentum, sama seperti MGD dan AGD. ● ADAGRAD, fungsi ini didasarkan pada Stochastic Gradient Descent (SGD) yang sudah dioptimasi untuk menciptakan tingkat pembelajaran adaptif dengan pendekatan yang mengakumulasikan cost sebelumnya di setiap iterasi. ● ADAM, fungsi ini didasarkan pada Stochastic Gradient Descent (SGD) yang sudah dioptimasi untuk membuat tingkat pembelajaran adaptif dengan dua momen estimasi yang disebut mean dan varians. ● Accelerated Gradient Descent (AGD), fungsi ini didasarkan pada Stochastic Gradient Descent (SGD) dan Momentum Gradient Descent (MGD) yang sudah dioptimasi untuk mempercepat pembelajaran dengan momentum konstan di setiap iterasi. ● Gradient Descent (GD), fungsi ini digunakan untuk menemukan local minimum dari fungsi tujuan dengan mencari di sepanjang arah turunan paling curam. Dalam Macchine Learning, biasanya digunakan untuk supervised learning (Regression Task). ● gradDescentR.learn, fungsi yang membuat semua metode pembelajaran yang diterapkan dalam paket ini dapat diakses. Semua metode menggunakan fungsi ini sebagai antarmuka untuk tahap pembelajaran, sehingga pengguna tidak perlu memanggil fungsi yang lain saat fase pembelajaran. Untuk mendapatkan hasil yang baik, pengguna perlu menyesuaikan beberapa parameter seperti jumlah label, jenis dari bentuk fungsi keanggotaan, jumlah maksimal iterasi, ukuran langkah gradient descent, atau metode lainnya tergantung parameter yang dikumpulkan dalam parameter kontrol. Setelah membuat model menggunakan fungsi ini, dapat digunakan untuk memprediksi data baru dengan prediksi. ● gradDescentRData, dataset yang dikumpulkan secara eksperimental oleh Kennedy pada tahun 1954 untuk mendapatkan nilai densitas CO2. Parameter yang digunakan dalam percobaan adalah suhu dan tekanan, yang dapat menjadi parameter untuk mendapatkan nilai faktor kompresibilitas CO2.



1











● ●































Mini-Batch Gradient Descent (MBGD), fungsi ini didasarkan pada Gradient Descent (GD) yang sudah dioptimasi untuk menggunakan data training secara parsial.MBGD memiliki parameter yang dinamakan batchRate yang mewakili contoh persentase dari data training. Momentum Gradient Descent (MGD), fungsi ini didasarkan pada Stochastic Gradient Descent (SGD) yang sudah dioptimasi untuk mempercepat pembelajaran dengan menambahkan momentum constant. minmaxDescaling, Fungsi ini mengubah nilai dataset dari skala min-max yang dihasilkan oleh fungsi varianceScaling dan direpresentasikan oleh objek data.frame. minmaxScaling, Fungsi ini mengubah nilai dataset yang direpresentasikan oleh objek data.frame menjadi nilai skala min-max yang memiliki interval antara 0 sampai 1. predict.gradDescentRObject, ini adalah fungsi utama untuk mendapatkan hasil akhir sebagai nilai prediksi untuk semua metode dalam package ini. Untuk mendapatkan nilai prediksi, fungsi ini dijalankan menggunakan gradDescentRObject, yang biasanya dibuat menggunakan gradDescentR.learn. prediction, fungsi ini digunakan untuk memprediksi data pengujian dengan hanya variabel input bernama dataTestInput. Parameter model adalah koefisien yang dihasilkan oleh learning function berbasis gradient-descent. Hasil dari fungsi ini adalah dataset yang berisi data Test Input yang digabungkan dengan data prediksi sebagai kolom terakhir dari dataset. RMSE, fungsi ini digunakan untuk menghitung error antara dua variabel. outputData adalah parameter pertama dari fungsi ini yang mewakili nilai output sebenarnya. prediksi adalah parameter kedua dari fungsi ini yang mewakili nilai prediksi. RMSPROP, fungsi ini didasarkan pada SGD dengan optimasi untuk membuat learning rate adaptif dengan RMS cost dan pendekatan hessian approximation correction. Dengan kata lain, metode ini menggabungkan pendekatan ADAGRAD dan ADADELTA. SAGD, fungsi ini didasarkan pada SGD yang hanya menghitung satu contoh data pelatihan secara stokastik. Tetapi SAGD memiliki optimasi kontrol rata-rata untuk memutuskan antara melakukan pembaruan koefisien atau tidak secara acak. Optimalisasi ini akan mempercepat pembelajaran, jika tidak melakukan komputasi dan memperbarui koefisien. SARAH, fungsi ini Sama halnya dengan SVRG, iterasi SARAH dibagi menjadi outer loop di mana gradien penuh dihitung dan inner loop di mana hanya gradien stokastik yang dihitung. Berbeda dengan kasus SVRG, langkah-langkah inner loop SARAH didasarkan pada akumulasi informasi stokastik. SARAHPlus, fungsi ini adalah varian praktis dari SARAH, SARAHPlus memberikan kemungkinan penghentian lebih awal dan pilihan hati-hati yang tidak perlu dari ukuran loop dalam maksimum, dan juga mencakup penurunan gradien klasik ketika kita mengatur gammaS = 1 (karena loop while tidak dilanjutkan). 2















● ●







SGD, fungsi ini berdasarkan metode GD dengan optimasi untuk menggunakan hanya satu contoh data latih secara stokastik. Jadi, SGD akan melakukan komputasi dan pembelajaran yang cepat. Namun, pembelajaran untuk mencapai biaya minimum akan menjadi lebih tidak stabil. splitData, fungsi ini membagi dataset menjadi data train dan data test. Secara default, fungsi ini membagi dataset menjadi 50 data Test. Anda dapat menentukan kecepatan data pelatihan dengan mengubah nilai data Train Rate. Contoh, jika Anda ingin menyetel kecepatan data pelatihan sebesar 80 Sebagai sisa nilai dataTrainRate, yaitu 0,2, akan ditetapkan sebagai kecepatan data Test. SSGD, fungsi ini menggabungkan elemen dari GD dan SGD. SSGD dimulai dengan menghitung gradien penuh sekali dan kemudian melanjutkan dengan pembaruan stokastik dengan memilih salah satu gradien pada suatu waktu. SVRG, fungsi ini berdasarkan SGD dengan optimasi yang mempercepat proses menuju konvergen dengan mengurangi gradien di SGD. varianceDescaling, adalah fungsi untuk mengembalikan nilai yang telah dilakukan dengan metode variance/standardization scaling method. Fungsi ini mengubah nilai dataset skala varians yang dihasilkan oleh fungsi varianceScaling dan diwakili oleh objek data frame. varianceScaling, adalah fungsi untuk melakukan penskalaan fitur ke dataset dengan metode variance/standardization scaling method. Fungsi ini mengubah nilai dataset yang direpresentasikan oleh objek data frame menjadi nilai skala varians yang memiliki nilai interval mendekati -1 hingga 1.



3. Pseudocode : 1) Menginialisasikan bobot (a dan b) secara random 2) For i to n : SSE = 1/2Σ(Y-Y prediksi)2 θSSE/θa = - Σ(Y −Yprediksi ) θSSE/θa = - Σ(Y − y prediksi)x 3) Return θ₀ dan θ₁ 4. Penjelasan pseudocode menggunakan model Matematika:



Untuk penjelasan pseudocode diatas, kita menggunakan model matematika dengan contoh data harga rumah berdasarkan jumlah kamar yang tersedia. Kamar



2



3



4



5



Harga



335000



313000



550000



1200000



Kita misalkan kamar menjadi X, dan harga menjadi Y, setelah itu kita harus konversi data diatas ke dalam min-max standardization dengan rumus:



3



Dengan menggunakan rumus diatas didapatkan hasil konversi data sebagai berikut: X



Y



0



0.025



0.333



0



0.667



0.267



1



1



● Langkah pertama kita inisialisasi nilai bobot secara random, disini kami mengambil nilai bobot θ₀ = 0.5 dan θ1 = 0.5 ● Langkah kedua, hitung Sum Of Squared Errors (SSE) dengan rumus:



Dengan menggunakan rumus diatas diperoleh hasil data sebagai berikut: θ₀



θ1



X



Y



Y prediksi



SSE



0.5



0.5



0



0.025



0.5



0.112



0.333



0



0.666



0.221



4



0.667



0.267



0.834



0.321



1



1



1



0



Total SSE



0.654



● Langkah ketiga, cari gradient error dari data tersebut dengan menggunakan rumus:



Dari rumus tersebut didapatkan hasil: a



b



X



Y



Y prediksi



SSE



θSSE/θa



θSSE/θb



0.5



0.5



0



0.025



0.5



0.112



0.475



0



0.333



0



0.666



0.221



0.666



0.221



0.667



0.267



0.834



0.321



0.567



0.378



1



1



1



0



0



0



0.654



1.708



0.599



Total SSE



● Langkah ke 4, update bobot sebelumnya dengan menggunakan rumus:



5



Sebelumnya, kita atur learning rate(η) dengan nilai 0,01 sebagai proses penyesuaian bobot. Sehingga akan didapat nilai bobot baru, yaitu : a = 0.5 - 0.01(1.708) b = 0.5 - 0.01(0.599) a = 0.483 b = 0.494 Setelah itu kita hitung kembali SSE dan gradient error dengan menggunakan nilai bobot yang baru, sehingga didapatkan hasil sebagai berikut: a



b



0.483 0.494



X



Y



Y prediksi



SSE



θSSE/θa



θSSE/θb



0



0.025



0.483



0.104



0.458



0



0.333



0



0.647



0.209



0.647



0.215



0.667



0.267



0.812



0.272



0.545



0.363



1



1



0.977



0



Total SSE ●



0.585



- 0.023 -0.023 1.627



0.555



Ulangi langkah 2 - 4 sebanyak “n” kali hingga ditemukan hasil yang optimal (SSE mendekati nilai 0)



5. Cara menggunakan R package GradDescent pada RStudio 1) Membuka aplikasi R Studio terlebih dahulu 2) Lalu ke bagian “Tools” di navbar, dan pilih “Install Packages..”



3) Setelah di klik, akan muncul tampilan seperti berikut, Lalu di bagian Packages(separate multiple with space or comma):. Cari :gradDecent



6



4) Setelah dicari, centang Install dependencies, lalu Install



5) Setelah itu, lihat menu console di bagian bawah kiri, jika sudah terinstall tampilannya akan seperti ini



6) Lalu lihat menu Packages, dan centang library gradDescent



7



7) Setelah instalasi package selesai, kita dapat mencobanya dengan menggunakan example code yang sudah disediakan di https://cran.rproject.org/web/packages/gradDescent/gradDescent.pdf. Sebagai contoh kita mengambil example code dari algoritma Gradient Descent (GD)



Hasil yang didapatkan:



8



6. Studi Kasus Dataset: House Price Prediction Sumber: https://www.kaggle.com/shree1992/housedata Deskripsi Data: Dataset ini berisi tentang catatan penjualan real estate di Sydney dan Melbourne yang diambil mulai dari tanggal 2 mei 2014 sampai 10 july 2014. Dataset ini memiliki 18 kolom dengan 4600 baris data yang tersimpan di dalamnya. Berikut sebagian data yang dapat ditampilkan:



Gambar 1.1 Dataset house price prediction



9



Tetapi kami hanya menggunakan dua kolom saja untuk regresi sederhana, yaitu: bedrooms dan price. Tujuan: Machine Learning ini bertujuan untuk memprediksi harga rumah dari data yang diambil data kaggle dengan menggunakan metode Stochastic Recursive Gradient Algorithm (SARAH). Langkah-langkah & Hasil:



Gambar Koding 1 Package yang kita gunakan disini adalah gradDescent untuk membuat model gradient descent dan csv untuk membaca dataset yang berformat csv. Lalu kita melakukan pembacaan data dari dataset dan melakukan preprocessing sehingga menghasilkan contoh data seperti gambar dibawah ini.



Gambar dataset teratas setelah preprocessing



10



Gambar Koding 2 Lalu untuk membuat model, kita lakukan scaling pada dataset kita dengan menggunakan metode minmax. Setelah itu split dataset menjadi data train dan data test. Setelah melakukan splitting kita dapat membuat model kita dengan data train tadi.



Gambar Koding 3 Untuk melakukan prediksi kita membutuhkan data test input. Setelah melakukan prediction dapat dilihat hasil prediksi berikut



11



Gambar hasil prediksi dalam bentuk minmax Karena hasil dari prediksi data diatas masih berbentuk minmax scaling, maka kita melakukan descaling untuk mengembalikan nilai menjadi bukan minmax agar mempermudah melihat hasil prediksi.



Gambar hasil prediksi setelah descaling



12



Untuk memeriksa seberapa bagusnya model, kami menggunakan RMSE untuk mengkalkulasikan error dari model



Gambar Hasil error value dari RMSE



Penjelasan: MANTAP



Daftar Pustaka Salim, A. (2020, April 29). Perhitungan Manual Optimasi Menggunakan Gradient Descent | bisa Ai. Perhitungan Manual Optimasi Menggunakan Gradient Descent. Retrieved November 2, 2021, from https://medium.com/bisaai/perhitungan-manual-optimasi-menggunakan-gradient-descenta5f2f28db81b Shree. (2018, Agustus 26). House price prediction | Kaggle. House price prediction Predicting the house price. Retrieved Oktober 25, 2021, from https://www.kaggle.com/shree1992/housedata?select=output.csv



Wijaya, G. P., Handian, D., Nasrulloh, I. F., Riza, L. S., Megasari, R., & Junaeti, E. (2018, Januari 25). CRAN - Package gradDescent. gradDescent: Gradient Descent for Regression Tasks. Retrieved Oktober 25, 2021, from https://cran.rproject.org/web/packages/gradDescent/



13