Disusun oleh:
Diffa Al Farrisztqi 1900618
Dwiki Fajar Kurniawan 1903761
M. Rifky Maulana R 1904051
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
θ₀ θ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:
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 X Y Y SSE θSSE/θa θSSE/θb
prediksi
0.483 0.494 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 - 0.023 -0.023
Total SSE 0.585 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..”
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
7
7) Setelah instalasi package selesai, kita dapat mencobanya dengan menggunakan
example code yang sudah disediakan di https://cran.r-
project.org/web/packages/gradDescent/gradDescent.pdf. Sebagai contoh kita
mengambil example code dari algoritma Gradient Descent (GD)
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:
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).
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.
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.
12
Untuk memeriksa seberapa bagusnya model, kami menggunakan RMSE untuk
mengkalkulasikan error dari model
Penjelasan: MANTAP
Daftar Pustaka
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.r-
project.org/web/packages/gradDescent/
13