III. METODOLOGI PENELITIAN
3.5 Pengembangan Model Jaringan Syaraf Tiruan untuk Pendugaan Total Padatan
Padatan Terlarut dan Kekerasan Buah Mangga
3.5.1 Persiapan Data
Data spektra NIR sampel buah mangga digunakan sebagai data masukan Jaringan Syaraf Tiruan. Data tersebut dinyatakan sebagai nilai reflektan. Dalam analisis digunakan nilai absorban yang
Refraktometer
aquades
30
diperoleh dari transformasi log(1/R) nilai reflektan NIR buah mangga. Tahap selanjutnya dilakukan normalisasi (0-1) data absorban dan analisis komponen utama (Principal Component analysis) analisis tersebut dilakukan dengan program MINITAB R-15.Principal Component analysis (PCA) menghasilkan variabel baru dengan jumlah yang lebih sedikit namun tidak menghilangkan informasi yang ada pada variabel awal. Dalam model JST, data spektra akan digunakan sebagai variabel input berjumlah 1500 data setiap sampelnya. Jumlah data yang sangat banyak dapat menyulitkan kinerja JST sehingga diperlukan variabel baru hasil PCA yang mewakili variabel sebelumnya.
Pelatihan yang dilakukan dalam penelitian ini, dilakukan secara berkelompok (batch training). Dalam pelatian berkelompok ini, semua data masukan (PC) dan target (TPT dan kekerasan) harus disusun sebagai matriks. Dalam jaringan syaraf tiruan semua data untuk pendugaan dikelompokkan menjadi 2 set data, yaitu data pelatihan dan data pengujian. Kedua set data tersebut disusun dalam dua buah matriks yang berbeda. Diagram alir persiapan data dapat dillihat pada Lampiran 12.
3.5.2 Inisialisasi Jaringan
Arsitektur yang digunakan adalah jaringan syaraf tiruan lapis jamak dengan satu hidden layer. Siang (2009), menyatakan bahwa jaringan dengan sebuah hidden layer sudah cukup bagi jaringan untuk mengenali sembarang perkawanan antara masukan dan target. Jumlah neuron pada lapisan input adalah jumlah PC, dengan jumlah minimal neuron pada lapisan tersembunyi dihitung menggunakan Persamaan 39 (Cheng-Lin, Y. et al. 2001) di dalam Mastur et al. (2005). Jumlah neuron pada lapisan output adalah satu, dimana neuron tersebut mewakili TPT atau kekerasan. Skematik jaringan syaraf tiruan yang digunakan dalam penelitian ini dapat dilihat pada Gambar 18.
Algoritma pembelajaran yang digunakan adalah resilient backpropagation yang merupakan modifikasi dari backpropagation. Dalam melakukan pelatihan, jaringan syaraf tiruan diberikan data masukan dan data target atau supervised learning.
Gambar 18. Skematik jaringan syaraf tiruan untuk menduga TPT dan kekerasan
Pengembangan jaringan syaraf tiruan tersebut dilakukan dengan menggunakan program MATLAB version 7.7.0.471 (R2008b). Langkah pertama pembangunan sebuah jaringan syaraf tiruan backpropagation dengan menggunakan Matlab adalah membuat inisiasi jaringan. Perintah yang digunakan untuk membentuk jaringan backpropagationadalah “newff” dengan sebagai berikut:
net = newff(PR,[S1 S2...Si],{TF1 TF2...Tfi},BTF,BLF,PF);
I1 I2 In H1 H2 Hn O
TPT atau Kekerasan
Hidden Layer
Input Layer Output Layer
PC
31
dimana :net = jaringan backpropagation yang terdiri dari n lapisan
PR = matriks ordo Rx2 yang berisi nilai minimum dan maksimum R buah elemen masukan
Si (1,2,...,n) = jumlah unit pada lapisan ke-I (I = 1,2,...n)
Tfi (I = 1,2,...n) = fungsi aktivasi yang dipakai pada lapisan ke-i. Default = tansig BTF = fungsi pelatihan jaringan. Default = traingdx
BLF = fungsi perubahan bobot/bias. Default = learngdm PF = fungsi perhitungan error. Default = mse
Dengan menggunakan perintah tersebut maka terbentuk jaringan dengan nama “net”. Fungsi
aktivasi yang dipakai adalah sigmoid bipolar (dalam Matlab dinyatakan sebagai “tansig”), sigmoid
biner (dalam Matlab dinyatakan sebagai “logsig”), dan identitas (dalam Matlab dinyatakan sebagai
“pureline”).
Pelatihan yang dilakukan dalam Matlab dapat menggunakan berbagai fungsi, semuanya
bertujuan untuk mempercepat pelatihan. Fungsi default yang dipakai Matlab adalah “traingdx”. Dalam
penelitian ini digunakan fungsi resilient backpropagation (dalam Matlab dinyatakan sebagai
“trainrp”). Hal ini dilakukan karena pada metode standar backpropagation seringkali terlalu lambat
dalam pelatihannya. Dalam backpropagation, perhitungan ujuk kerja dilakukan berdasarkan kuadrat rata-rata kesalahan (MSE).
3.5.3 Inisialisasi Bobot
Dalam algoritma backpropagation diperlukan inisiasi pembobot awal. Bobot awal akan mempengaruhi pencapaian titik minimum lokal atau global, dan kecepatan konvergensinya.
Setiap kali membentuk jaringan backpropagation, Matlab akan merubah nilai bobot dan bias awal dengan bilangan acak kecil. Nguyen dan Widrow (1990) dalam Siang (2009) mengusulkan cara membuat inisiasi bobot dan bias ke unit tersembunyi sehingga menghasilkan iterasi lebih cepat. Perintah yang digunakan adalah sebagai berikut :
net = initnw(net, 1);
Dengan perintah tersebut, Matlab secara otomatis akan menginisialisasi bobot berdasarkan algoritma inisialisasi bobot Nguyen dan Widrow. Dalam perintah tersebut angka “1” menunjukkan bobot yang
menuju lapisan tersembunyi akan diinisiasi dengan bobot hasil algoritmma Nguyen dan Widrow. Untuk yang dari lapisan tersembunyi ke lapisan output, tambahkan lagi perintah tersebut namun angka
“1” dirubah menjadi angka “2” (untuk kasus dalam penelitian ini, karena hanya menggunakan satu
hidden layer).
3.5.4 Pelatihan Jaringan
Jika jaringan sudah diinisiasi bobot dan bias awalnya, maka jaringan tersebut dapat dilatih. Dengan menggunakan Matlab, pelatihan jaringan dapat dilakukan dengan mudah yaitu dengan menggunakan perintah “train”. Ada beberapa parameter pelatihan yang dapat diatur sebelum pelatihan dilakukan agar memperoleh hasil yang lebih optimal. Pengaturan parameter dengan fungsi pelatihan resilient backpropagation dapat dilakukan dengan mudah menggunakan MATLAB, seperti ditunjukkan pada Tabel 4.
32
Nilai pada parameter delt_inc, delt_dec, delta0, dan deltamax merupakan default dalam Matlabketika membuat jaringan dengan fungsi pelatihan “trainrp”. Nilai pada paremeter tersebut juga
merupakan nilai yang memberikan hasil yang optimum (Febrianty et al. 2007).
Kondisi pemberhentian dari jaringan tersebut berdasarkan nilai Mean Square Error (MSE), dimana Mean Square Error (MSE) lebih kecil dari toleransi (net.trainParam.goal) yang telah ditentukan atau jumlah epoch pelatihan sudah mencapai epoch maksimum. Diagram alir untuk mendapatkan jaringan yang optimal dapat dilihat pada Lampiran 13.
Tabel 4. Parameter yang digunakan dalam fungsi pelatihan resilient backpropagation
Parameter Nilai net.trainParam.epochs 100000 net.trainParam.show 25 net.trainParam.showCommandLine 0 net.trainParam.showWindow 1 net.trainParam.goal 0.0001 net.trainParam.min_grad 1.00E-06 net.trainParam.lr 0.1 net.trainParam.delt_inc 1.2 net.trainParam.delt_dec 0.5 net.trainParam.delta0 0.07 net.trainParam.deltamax 50
3.5.5 Simulasi Jaringan (Pengujian jaringan)
Hasil percobaan menunjukkan bahwa backpropagation yang sudah dilatih dengan baik akan menghasilkan keluaran yang masuk akal jika diberi masukan yang serupa (tidak harus sama) dengan pola yang dipakai dalam pelatihan.
Seperti halnya pelatihan pada jaringan backpropagation, pengujian juga memiliki tahapan yang terstruktur. Setelah pelatihan selesai, jaringan dapat digunakan untuk pengenalan pola. Dalam hal ini, hanya propagasi maju saja yang dipakai untuk menentukan keluaran jaringan (Siang 2009). Karena tujuan dari proses pengujian hanya untuk mencari keluaran bukan untuk melakukan perubahan bobot dan minimasi error. Perintah “sim” dalam Matlab digunakan untuk pengujian jaringan yang sudah di latih dengan menggunakan set data pengujian (validasi).
3.5.6 Validasi dan Perhitungan Error
Validasi dan perhitungan error bertujuan untuk pengukuran akurasi dari model jaringan syaraf tiruan yang sudah disusun. Terdapat dua macam perhitungan error yang dapat dipakai, yaitu mean square error (MSE) untuk membandingkan hasil target jaringan dan mean absolute percentage error (MAPE) untuk menghitung persentase tingkat akurasi jaringan. Dalam penelitian yang digunakan adalah MSE.
Jenis validasi yang digunakan pada penelitian ini adalah validasi silang (cross validation). Validasi silang merupakan suatu metode statistik yang digunakan menganalisa dan mengukur keakuratan hasil percobaan pada data independen. Metode ini membagi sebuah data menjadi beberapa subdata yang selanjutnya subdata satu digunakan untuk mengkonfirmasi kebenaran sub data yang lainnya.
33
MSE merupakan salah satu dari beberapa macam perhitungan error yang sering dipakai. MSE merupakan rata-rata kuadrat dari selisih antara output jaringan dengan target output. Tujuan utama dari pembuatan jaringan syaraf tiruan adalah memperoleh nilai error sekecil-kecilnya dengan secara iteratif mengganti nilai bobot yang terhubung pada semua neuron yang ada di jaringan syaraf tiruan. Rumus dari MSE yang digunakan pada metode jaringan syaraf tiruan dapat dilihat pada Persamaan 41.�= ( − )2 ... (41) dimana m adalah jumlah pola yang akan dihitung, nc adalah nilai sebenarnya, dan nd adalah nilai duga JST.
Selain MSE parameter untuk menentukan kecocokan model JST yang sudah terbentuk adalah StandardError (SE) dan Coefficient of Variation (CV). StandardError (SE) merupakan selisih antara nilai hasil dugaan dengan nilai sebenarnya. Model dengan nilai SE yang mendekati nol menunjukkan model tersebut mampu memprediksi dengan baik. Coefficient of Variation (CV) menunjukkan besarnya error sebanding dengan rata-rata hasil pengukuran data aktual. Mattjik et al. (2006) menyatakan, nilai CV bergantung pada bidang studi yang digeluti, misal untuk bidang pertanian nilai CV yang dianggap wajar adalah 20-25 %, namun jika percobaan dilakukan di laboratorium nilai CV diharapkan jauh lebih kecil karena sebagian kondisi lingkungan dalam keadaan terkontrol. Standard Error (SE) dan Coefficient of Variation (CV) dihitung dengan persamaan berikut:
�= − 2 =1 ... (42) � = � Ȳ × 100% ... (43) Dimana YNIR adalah TPT atau kekerasan duga NIR, Y merupakan TPT dan kekerasan aktual, SE merupakan standart error, CV merupakan Coefficient of Variation, dan Ȳ merupakan rata-rata TPT dan kekerasan aktual.
Dengan perintah “sim”, jika dalam set data pengujian terdapat nilai targetnya maka nilai error
dan unjuk kerjanya dapat di hitung. Contoh keseluruhan perintah proses pelatihan dan pengujian suatu model jaringan syaraf tiruan dengan Matlab sebagai berikut ini :
net = newff(minmax(input(:, 1:11)‟), [8 1], {„logsig‟, „purelin‟}, „trainrp‟, „learngdm‟, „mse‟); net.trainParam.show = 25; net.trainParam.epochs = 100000; net.trainParam.goal = 0.0001; net.trainParam.lr = 0.1; net.trainParam.showCommandLine = 0; net.trainParam.showWindow = 1; net.trainParam.min_grad = 1e-6; net.trainParam.delt_inc = 1.2; net.trainParam.delt_dec = 0.5; net.trainParam.delta0 = 0.07; net.trainParam.deltamax = 50.0; net = initnw(net, 1); net = initnw(net, 2); p = input(:, 1:11); t = input(:, 12); [net, tr] = train(net, p‟, t‟); save netnet;