Anda di halaman 1dari 14

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 SSE θSSE/θa θSSE/θb


prediksi
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
Total SSE 0.654 1.708 0.599
● 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 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..”

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.r-
project.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/bisa-
ai/perhitungan-manual-optimasi-menggunakan-gradient-descent-
a5f2f28db81b

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

Anda mungkin juga menyukai