Jumat, 16 September 2022

, ,

Perhitungan Manual Optimasi Menggunakan Gradient Descent


Optimasi
pada Neural Network merupakan algoritma yang dapat mencari nilai optimal, baik itu dengan meminimalkan ataupun memaksimalkan fungsi objektif (fungsi kesalahan). Sederhananya, output dari semua proses perhitungan dalam Neural Network dipelajari dan diperbarui kearah solusi yang optimal, yaitu dengan meminimalkan kerugian dengan proses Training.

Pada umumnya, optimasi dibagi menjadi 2 kategori yaitu algoritma optimasi orde pertama yaitu menggunakan nilai Gradient dan algoritma optimasi orde selanjutnya yang menggunakan Hessian.

Perbandingan dari kedua jenis tersebut adalah pada teknik optimasi orde pertama mudah untuk dihitung, lebih sedikit memakan waktu dan cukup cepat dalam memproses dataset yang besar. Sedangkan pada teknik optimasi orde kedua lebih cepat hanya jika derifativ parsial kedua diketahui, namun teknik ini selalu lebih lambat dan mahal untuk diproses dalam hal waktu dan memori.

Pada tulisan ini, saya hanya akan membahas algoritma optimasi yang menggunakan nilai Gradient.

Gradient Descent

Gradient merupakan nilai kemiringan atau kecondongan suatu garis yang membandingkan antara komponen y (ordinat) dengan komponen x (absis). Gradient disini merupakan nilai kemiringan suatu fungsi, yaitu tingkat perubahan parameter terhadap jumlah parameter lain. Secara matematis, gradient dapat digambarkan sebagai turunan parsial dari serangkaian parameter terhadap inputnya. Semakin banyak gradient maka semakin curam lerengnya.

Gradient Descent juga digambarkan sebagai iterasi yang digunakan untuk menemukan nilai optimal dari parameter dengan menggunakan kalkulus untuk menemukan nilai minimum. Gradient Descent digunakan untuk pembaruan bobot dalam Neural Network dengan cara meminimalkan loss function. Proses Gradient Descent ini terjadi pada fase backpropagation.

"Gradient Descent adalah proses yang terjadi pada fase backpropagation di mana tujuannya adalah untuk secara terus-menerus mengubah gradien parameter model dalam arah yang berlawanan berdasarkan bobot w, memperbarui secara konsisten hingga kami mencapai fungsi global minimum J (w)".

 Ilustrasi Proses Gradient Descent

Dari ilustrasi di atas, dapat dilihat bahwa terdapat proses pembaruan bobot dalam proses balik dari Gradient pada bobot. Kurva berbentuk U merupakan Gradient. Seperti dalam ilustrasi, jika bobot terlalu besar ataupun terlalu kecil maka model akan memiliki nilai error yang besar. Jadi, untuk mendapatkan kesalahan minimum maka harus terus dihitung update parameter sampai mendapatkan error yang minimum.

Berikut merupakan formula dari update parameter menggunakan Gradient Descent:

Update Bobot Menggunakan Gradient 

Dimana θ merupakan bobot (weight) yang dibawa dari Neural Network. η merupakan learning rate yang telah diset sebelumnya. ∇𝔦 merupakan Gradient Descent terhadap bobot.

Contoh Perhitungan

Agar kita lebih memahami proses update bobot menggunakan Gradient Descent. Saya akan menjelaskannya melalui sebuah contoh. Anggaplah kita mempunyai dataset berupa harga ikan louhan dilihat dari ukuran tonjolan pada dahinya (jenongnya). Tugas dari model yang akan kita buat adalah untuk memprediksi harga berdasarkan ukuran jenong dari ikan louhan.

    Dataset

 Inisialisasi ukuran sebagai X, dan harga sebagai Y. Selanjutnya, konversi dataset ke dalam min-max standardization dengan rumus:

Min-Max Standardization

Berikut merupakan hasil konversi dari dataset menjadi Min-Max Standardization.

Hasil Konversi ke Nilai Min-Max Standardization

Selanjutnya, untuk memulai proses perhitungan, kita awali dengan bobot random (a, b) dan hitung kesalahan prediksi, pada tulisan ini kita coba menggunakan Sum Of Squared Errors (SSE) dengan rumus:

Persamaan SSE

 Adapun hasil perhitungan dapat dilihat pada tabel berikut:

Langkah selanjutnya adalah dengan menghitung error Gradient pada bobot dengan menggunakan persamaan :

Persamaan Gradient
 

Kedua persamaan diatas adalah Gradient yang memberikan arah pergerakan bobot (a, b) ke kesalahan prediksi (SSE). Adapun hasil dari perhitungannya adalah sebagai berikut:

Tabel Hasil Perhitungan Gradient
 
Selanjutnya update bobot awal yang sebelumnya kita atur secara random menggunakan rumus yang telah disebutkan di atas. Sehingga persamaanya akan menjadi seperti berikut:
 

Pada tulisan ini, kita atur learning rate(η) dengan nilai 0,01 sebagai proses penyesuaian bobot. Selanjutnya prediksi kembali dan hitung juga total errornya menggunakan nilai bobot yang baru. Sehingga didapat hasil sebagai berikut:
Hasil Prediksi dan Total Error Menggunakan Bobot Baru

Dari tabel di atas, dapat dilihat penurunan nilai error dari 0,331 pada bobot sebelumnya menjadi 0,295 dengan bobot baru. Dengan demikian akurasi prediksi mengalami peningkatan. Terus ulangi langkah di atas hingga tidak ada penurunan nilai error yang signifikan. Saat tidak ada penurunan error yang signifikan berarti bobot telah mencapai nilai optimalnya dengan akurasi prediksi yang tertinggi.

Demikian algoritma Gradient Descent untuk update bobot dengan cara meminimalkan fungsi error. Perlu diketahui bahwa terdapat banyak algoritma lain yang dapat digunakan untuk optimasi Neural Network, Gradient Descent hanyalah salah satunya. Gradient Descent pun mempunyai beberapa tipe seperti Batch Gradient Descent, Stochastic Gradien Descent, Mini Batch Gradient Descent dan lain sebagainya. Mungkin itu semua akan dibahas pada tulisan saya selanjutnya.

Sekian pembahasan mengenai perhitungan manual optimasi menggunakan gradient descent. Dengan tulisan ini diharapkan kita dapat lebih mengerti lagi mengenai proses optimasi. Semoga bermanfaat.

Referensi :

[1] https://towardsdatascience.com/types-of-optimization-algorithms-used-in-neural-networks-and-ways-to-optimize-gradient-95ae5d39529f

[2] https://www.geeksforgeeks.org/ml-stochastic-gradient-descent-sgd/

[3] https://www.kdnuggets.com/2017/04/simple-understand-gradient-descent-algorithm.html

[4] https://towardsdatascience.com/gradient-descent-3a7db7520711


 

 

Continue reading Perhitungan Manual Optimasi Menggunakan Gradient Descent

Rabu, 14 September 2022

Metriks Evaluasi Model Menggunakan Confusion Matrix

 

Mengukur kinerja suatu model yang telah dibuat merupakan langkah penting dalam bidang Machine Learning dan Natural Language Processing. Hasil pengukuran yang dilakukan dapat menjadi pertimbangan dalam memilih model terbaik.

Salah satu teknik yang dapat digunakan untuk mengukur kinerja suatu model khususnya sistem klasifikasi (misalnya: analisis sentimen) adalah Confusion Matrix.

Pengertian Confusion Matrix

Confusion Matrix merupakan metode evaluasi yang dapat digunakan untuk menghitung kinerja atau tingkat kebenaran dari proses klasifikasi.

Confusion Matrix adalah tabel dengan 4 kombinasi berbeda dari nilai prediksi dan nilai aktual.

Ada empat istilah yang merupakan representasi hasil proses klasifikasi pada Confusion Matrix yaitu True Positive (TP), True Negative (TN), False Positive (FP), dan False Negative (FN).

Confusion Matrix dapat dilihat pada tabel di bawah


Prediksi
Positif Negatif
Aktual
Positif TP FN
Negatif FP TN

 Keterangan :

  • TP (True Positive) ialah jumlah data yang kelas aktual dan prediksinya merupakan kelas positif
  • FN (False Negative) ialah total data yang kelas aktualnya merupakan kelas positif sedangkan kelas prediksinya merupakan kelas negatif.
  • FP (False Positive) ialah banyaknya data yang kelas aktualnya merupakan kelas negatif sedangkan kelas prediksinya merupakan kelas positif.
  • TN (True Negative) ialah banyaknya data yang kelas aktualnya merupakan kelas negatif sedangkan elas prediksinya merupakan kelas negatif
Untuk evaluasi pada sistem klasifikasi dengan multiclass, confusion matrix juga bisa digunakan, namun dengan beberapa ketentuan tambahan.

Tidak jauh berbeda dengan klasifikasi biner, multiclass confusion matrix juga memiliki elemen TP (True Positive), FN (False Negative), FP (False Positive), dan TN (True Negative).


Prediksi
Positif Negatif Netral
Aktual
Positif TPos FPosNeg FPosNet
Negatif FNegPos TNeg FNegNet
Netral FNetPos FNetNeg TNet

Berikut adalah ketentuan dalam menetapkan nilai elemen tersebut:

  • TP (True Positive) merupakan banyaknya data yang kelas aktualnya sama dengan kelas prediksinya.
  • FN (False Negative) merupakan total dari seluruh baris yang ditunjuk kecuali TP yang dicari.
  • FP (False Positive) merupakan total dari seluruh kolom yang ditunjuk kecuali TP yang dicari.
  • TN (True Negative) merupakan total dari seluruh kolom dan baris selain yang ditunjuk.

 

Evaluasi Sistem Menggunakan Confusion Matrix

Dengan dasar tabel Confusion Matrix kemudian dapat dilakukan penghitungan nilai akurasi, presicion, dan recall.

Ketiga metriks tersebut sangat bermanfaat untuk mengukur performa dari classifier atau algoritma yang digunakan untuk melakukan prediksi.

Akurasi

Akurasi merupakan metode pengujian berdasarkan tingkat kedekatan antara nilai prediksi dengan nilai aktual. Dengan mengetahui jumlah data yang diklasifikasikan secara benar maka dapat diketahui akurasi hasil prediksi.

Persamaan akurasi ditunjukkan pada persamaan berikut.

Precision

Presisi merupakan metode pengujian dengan melakukan perbandingan jumlah informasi relevan yang didapatkan sistem dengan jumlah seluruh informasi yang terambil oleh sistem baik yang relevan maupun tidak. 

Persamaan precision ditunjukkan pada persamaan berikut.

Recall

Recall merupakan metode pengujian yang membandingkan jumlah informasi relevan yang didapatkan sistem dengan jumlah seluruh informasi relevan yang ada dalam koleksi informasi (baik yang terambil atau tidak terambil oleh sistem).

Persamaan recall ditunjukkan pada persamaan berikut.

 

Demikianlah penjelasan singkat mengenai metrik untuk evaluasi sistem menggunakan confusion matrix.

Continue reading Metriks Evaluasi Model Menggunakan Confusion Matrix
,

Definisi dan Pengertian Algoritma Backpropagation

 

Backpropagation atau backward propagation merupakan metode matematis yang cukup penting dalam meningkatkan akurasi prediksi pada data mining dan machine learning.

Pengertian Algoritma Backpropagation

Pada dasarnya, backpropagation ini adalah sebuah algoritma yang bisa digunakan untuk menghitung derivatif atau turunan secara cepat. Tujuan dilakukannya penurunan gradien. yaitu untuk menemukan bobot optimal dalam jaringan saraf tiruan (artificial neural network).

Algoritma backpropagation dikembangkan oleh Rumelhart, Hinton dan Williams sekitar tahun 1986.

Algoritma ini digunakan untuk melatih jaringan saraf secara efektif melalui metode yang disebut aturan rantai (chain rules). Secara sederhana, setelah setiap forward pass melalui jaringan, backpropagation melakukan back pass sambil menyesuaikan parameter model (bobot dan bias).

Artificial Neural Network menggunakan backpropagation sebagai algoritma untuk menghitung turunan gradien dengan memperhatikan bobot. 

Keluaran yang diinginkan akan dibandingkan dengan keluaran yang dihasilkan sistem. Kemudian sistem akan di-tuning dengan cara menyesuaikan bobot koneksi. Tujuannya agar mempersempit perbedaan antara kedua output tersebut.

Karena bobot diupdate secara backward (mundur) dari output ke input, algoritma ini kemudian dinamakan backpropagation.

Algoritma ini diklasifikasikan sebagai algoritma supervised learning, alasannya karena memerlukan output target untuk setiap nilai input. Nantinya akan dipakai untuk menghitung gradien “loss function”. 

Sederhananya loss function ialah metrik yang digunakan untuk mengukur seberapa bagus performa dari neural network kita dalam melakukan prediksi terhadap target.

Ada berbagai macam loss function, namun yang paling sering digunakan adalah Squared Error (L2 Loss) untuk regresi. Sedangkan untuk klasifikasi yang biasa digunakan adalah Cross Entropy.

Karena termasuk sebagai supervised-learning, backpropagation sejajar dengan algoritma klasifikasi lain, seperti Naïve Bayes dan Decision tree. Algoritma ini memegang bagian penting pada aplikasi mesin learning yang melibatkan analisis prediktif.

Saat ini, pemanfaatan algoritma backpropagation telah banyak diterapkan pada beberapa area di bidang kecerdasan buatan (AI), misalnya teknologi Optical Character Recognition (OCR), Natural Language Processing (NLP), dan image processing.

Jenis-jenis Algoritma Backpropagation

Ada 2 jenis algoritma backpropagation, yaitu:

  • Static Backpropagation
  • Recurrent Backpropagation

Static Backpropagation

Static backpropagatopn adalah salah satu jenis jaringan backpropagation yang menghasilkan pemetaan input statis untuk output statis. Hal ini berguna untuk memecahkan masalah klasifikasi statis seperti Optical Character Recognition (OCR).

Recurrent Backpropagation

Salah satu jenis jaringan backpropagation yang menerapkan feed forward hingga menemukan nilai tetap. Kemudian, nilai error dihitung dan disebarkan secara backward (berjalan mundur).

Perbedaan dari kedua jenis backpropagation tersebut yaitu untuk pemetaan statis akan lebih cepat menggunakan static backpropagation, dan untuk nonstatis akan lebih cocok menggunakan recurrent backpropagation.

Keunggulan Algoritma Backpropagation

Keunggulan paling menonjol dari algoritma Backpropagation adalah:

  1. Cepat, sederhana dan mudah diprogram
  2. Tidak memiliki parameter tuning selain dari jumlah input
  3. Fleksibel karena tidak memerlukan pengetahuan mengenai nework sebelumnya
  4. Metode standar yang umumnya bekerja dengan baik
  5. Tidak perlu fitur khusus dari fungsi yang akan dipelajari.

Continue reading Definisi dan Pengertian Algoritma Backpropagation
,

Metode-Metode dalam Feature Selection

Feature selection atau seleksi fitur adalah salah satu teknik penting dan sering digunakan dalam tahap pre-processing. Teknik ini mengurangi jumlah fitur yang terlibat dalam menentukan suatu nilai kelas target. Fitur yang diabaikan biasanya berupa fitur yang tidak relevan dan data berlebih. Tujuan utama dari seleksi fitur ialah memilih fitur terbaik dari suatu kumpulan data fitur.

Metode-Metode Feature Selection

Secara umum, metode feature selection dapat dibagi menjadi tiga kelompok, yakni filter, wrapper, dan embedded selector.

Berikut adalah penjelasan dari masing-masing metode seleksi fitur tersebut.

1. Metode Filter 

Metode filter mengevaluasi setiap fitur secara bebas dari classifier kemudian memberikan peringkat pada fitur setelah mengevaluasi dan mengambil yang unggul. 

Metode filter menerapkan ukuran statistik untuk menetapkan skor untuk setiap fitur. Fitur-fitur tersebut diberi peringkat berdasarkan skor dan dipilih untuk disimpan atau dihapus dari dataset. Metode ini sering bersifat univariat dan mempertimbangkan fitur secara mandiri, atau berkaitan dengan variabel dependen.

 


Metode filter bergantung pada keunikan umum dari data yang akan dievaluasi dan memilih subset fitur. Metode filter menggunakan kriteria penilaian yang mencakup jarak, informasi, ketergantungan, dan konsistensi. Metode filter menggunakan kriteria utama teknik pemeringkatan dan menggunakan urutan peringkat untuk pemilihan variabel.

Alasan untuk menggunakan metode pemeringkatan adalah kesederhanaan, menghasilkan fitur yang sangat baik dan relevan. Metode pemeringkatan akan menyaring fitur yang tidak relevan sebelum proses klasifikasi dimulai.

Metode filter umumnya digunakan sebagai langkah preprocessing data. Penentuan dan pemilihan fitur tidak tergantung pada algoritma Machine Learning apa pun. Fitur memberi peringkat berdasarkan skor statistik yang cenderung menentukan korelasi fitur dengan variabel hasil. Korelasi adalah istilah yang sangat kontekstual, dan bervariasi dari satu tugas ke tugas lainnya.

2. Metode Wrapper

Metode wrapper membutuhkan satu jenis algoritma Machine Learning dan menggunakan kinerjanya sebagai kriteria evaluasi. Metode ini mencari fitur yang paling cocok untuk algoritma Machine Learning dan bertujuan untuk meningkatkan kinerja algoritma. Untuk mengevaluasi fitur, akurasi prediktif digunakan pada tugas klasifikasi.

Alur dari metode wrapper dapat dilihat pada gambar berikut:

 


Metode wrapper didasarkan pada algoritma pencarian greedy karena metode ini mengevaluasi semua kemungkinan kombinasi fitur dan memilih kombinasi yang menghasilkan hasil terbaik. Kelemahan dari pendekatan ini adalah pengujian semua kemungkinan kombinasi fitur dapat menjadi sangat mahal secara komputasi, terutama jika himpunan fitur sangat besar.

Metode wrapper untuk pemilihan fitur dapat dibagi menjadi tiga kategori: Forward selection, Backward elimination dan Recursive Feature elimination:

  • Forward Selection: Metode seleksi berulang yang dimulai dengan fitur kosong pada model. Dalam setiap iterasi atau perulangan, kita menambahkan fitur yang memiliki pengaruh paling signifikan dalam meningkatkan model yang kita miliki. Kemudian dilanjutkan dengan penambahan variabel baru yang tidak meningkatkan kinerja model.
  • Backward Elimination: Berkebalikan dengan metode forward selection, pada metode ini model berisi semua fitur. Kemudian pada setiap iterasi atau perulangan dilakukan penghapusan fitur yang tidak meningkatkan kinerja model secara signifikan. Kita mengulangi proses ini sampai model berisi fitur yang ideal, ditandai dengan tidak ada perubahan yang ditemukan ketika dilakukan penghapusan fitur.
  • Recursive Feature elimination: Metode ini adalah optimasi algoritma greedy yang bertujuan untuk menemukan subset fitur berkinerja terbaik. Pada setiap iterasi, metode ini membangun model yang dimulai dari fitur paling kiri sampai semua fitur selesai dijelajahi. Metode ini mengabaikan fitur berkinerja terbaik atau terburuk di setiap iterasi. Sebaliknya metode ini memberi peringkat fitur berdasarkan urutan eliminasinya.
 

3. Metode Embedded Selector

Metode embedded selector adalah metode seleksi fitur yang menggabungkan keunggulan metode filter dan metode wrapper. Metode ini diimplementasikan oleh algoritma yang memiliki metode pemilihan fitur bawaannya sendiri.

 

Beberapa contoh paling populer dari metode ini adalah regresi Lasso dan ridge yang memiliki fungsi utama untuk mengurangi overfitting.

  • Regresi Lasso melakukan regularisasi L1 yang menambahkan penalti ekuivalen dengan nilai absolut dari besaran koefisien.
  • Regresi Ridge melakukan regularisasi L2 yang menambahkan penalti yang setara dengan kuadrat dari besarnya koefisien.

 Perbedaan Metode Filter dan Wrapper

Dalam seleksi fitur, berikut adalah perbedaan antara metode filter dan wrapper:

  • Metode filter mengukur relevansi fitur beserta korelasinya dengan variabel dependen sementara metode wrapper mengukur kegunaan subset fitur dengan melatih model di dalamnya.
  • Metode filter jauh lebih cepat dibandingkan dengan metode wrapper karena tidak melibatkan pelatihan model. Di sisi lain, metode wrapper juga cenderung sangat ‘mahal’ secara komputasi.
  • Metode filter menggunakan metode statistik untuk evaluasi subset fitur sementara metode wrapper menggunakan validasi silang (cross validation).
  • Metode filter dapat terjadi kegagalan dalam menemukan subset fitur terbaik. Sebaliknya metode wrapper selalu dapat memberikan subset fitur terbaik.
  • Menggunakan subset fitur dari metode wrapper membuat model lebih rentan terhadap overfitting dibandingkan dengan menggunakan subset fitur dari metode filter.

Sebagai kesimpulan, seleksi fitur adalah upaya pada tahap preprocessing untuk mengurangi fitur yang tidak revelan dan tidak memberikan pengaruh signifikan dalam meningkatkan kinerja model machine learning. Adapun metode yang digunakan secara umum diantaranya metode filter, wrapper, dan embedded selector.

Continue reading Metode-Metode dalam Feature Selection
,

Data Splitting: Pengertian, Metode, dan Kegunaannya


Data splitting atau pemisahan data adalah metode membagi data menjadi dua bagian atau lebih yang membentuk subhimpunan data. Umumnya, data splitting memisahkan dua bagian, bagian pertama digunakan untuk mengevaluasi atau uji data dan data lainnya digunakan untuk melatih model.

Data splitting merupakan aspek penting dari data science, terutama untuk membuat model berbasis data. Teknik ini membantu memastikan model data yang dibuat sudah akurat dan model dapat digunakan pada proses lanjutan, misalnya machine learning.

Metode yang Digunakan pada Data Splitting

Pada dasarnya data splitting dibagi menjadi dua bagian, yakni data training dan data testing.

Data training atau data latih digunakan untuk melatih dan mengembangkan model. Kumpulan data training biasanya digunakan untuk mengestimasikan parameter yang berbeda atau untuk membandingkan kinerja model yang berbeda.

Data testing atau data uji digunakan setelah proses training selesai. Data training dan testing dibandingkan untuk memeriksa apakah model akhir yang digunakan bekerja dengan benar.

Pada machine learning, data biasanya dibagi menjadi tiga bagian atau lebih. Bagian yang ditambah adalah set dev, yang digunakan untuk mengubah parameter proses pembelajaran.

Dalam data splitting, tidak ada pedoman atau metrik yang tetap mengenai bagaimana data harus dibagi. Proses data splitting bisa saja bergantung pada ukuran dataset asli atau jumlah prediktor dalam model prediktif.

Kita dapat memilih untuk memisahkan data secara terpisah berdasarkan metode pengambilan sampel data, seperti tiga metode berikut:

1. Random sampling

Random sampling atau pengambilan sampel secara acak merupakan metode pengambilan sampel data yang menjaga proses pemodelan data dari bias terhadap kemungkinan karakteristik data yang berbeda. Namun, pemisahan secara acak bisa saja terjadi masalah jika terdapat distribusi data yang tidak merata.

2. Stratified random sampling

Stratified random sampling atau pengambilan sampel acak berstrata adalah teknik pengambilan sampel dengan terlebih dahulu membuat populasi menjadi beberapa subpopulasi (lapisan, strata) dan kemudian mengambil sampel dari setiap subpopulasi tersebut.

Metode ini memilih sampel data secara acak dalam parameter tertentu. Hal ini untuk memastikan data didistribusikan dengan benar dalam himpunan data training dan testing.

3. Nonrandom sampling

Non-random sampling adalah metode pengambilan data yang berdasar pada pemilihan suatu karakteristik atau ciri-ciri untuk mendapatkan sampel relevan agar tujuan dari sebuah penelitian dapat tercapai. Pendekatan ini biasanya digunakan ketika kita menginginkan data terbaru sebagai himpunan data uji.

Dengan data splitting, kita tidak harus memilih antara menggunakan data untuk analitik dengan analisis statistik, karena data yang sama dapat digunakan pada proses yang berbeda.

Gambar di bawah ini merupakan contoh pengambilan sampel data yang menggunakan metode random, berbasis probabilitas atau pendekatan non-random.

Fungsi dan Kegunaan Data Splitting

Data splitting banyak diterapkan pada tugas-tugas berikut:

  • Data modelling menggunakan data splitting untuk melatih model. Sebagai contoh pada pengujian regresi, sebuah model dipakai untuk memprediksi respond sistem ketika dioperasikan dengan nilai yang dibuat. Menggunakan sekumpulan nilai, developer perlu memilih sebagian data tersebut untuk bertindak sebagai data latih. Kemudian, membandingkan kembali hasil tersebut dari data uji yang dimasukkan melalui model regresi.
  • Machine learning menggunakan data splitting untuk melatih model. Data latih ditambahkan ke model untuk memperbarui parameter pada fase training. Setelah fase training selesai, data dari sekumpulan data uji diukur terhadap cara model dalam menangani observasi baru.
  • Data splitting juga dipakai pada cryptographic splitting, namun dengan proses yang agak berbeda dari penggunaan data splitting yang disebutkan di atas. Teknik ini digunakan untuk mengamankan data yang melintasi jaringan komputer. Cryptographic splitting dimaksudkan untuk melindungi sistem dari pelanggaran keamanan dengan melibatkan enkripsi data. Adapun cara yang dilakukan adalah dengan membagi data terenkripsi menjadi potongan-potongan yang lebih kecil dan menyimpannya ke lokasi penyimpanan yang berbeda.

Data Splitting pada Machine Learning

Pada machine learning, data splitting biasanya dilakukan untuk menghindari overfitting. Overfitting adalah keadaan dimana model machine learning terlalu cocok dengan data pelatihannya dan gagal untuk menyesuaikan data tambahan dengan andal.

Data asli pada model machine learning biasanya diambil dan dibagi menjadi tiga atau empat bagian. Tiga diantaranya adalah training set, dev set, dan testing set.

  • Training set adalah bagian data yang digunakan untuk melatih model. Model harus mengamati dan belajar dari training set, mengoptimalkan salah satu parameternya.
  • Dev set adalah kumpulan data contoh yang digunakan untuk mengubah parameter proses pembelajaran. Dataset ini juga disebut sebagai cross-validation atau validasi model. Himpunan data ini bertujuan untuk menentukan akurasi model dan membantu dalam pemilihan model.
  • Testing set adalah bagian dari data yang diuji pada model akhir dan dibandingkan pada kumpulan data sebelumnya. Testing set bertindak sebagai evaluasi model dan algoritma akhir.

Data splitting memisahkan dataset dengan jumlah rasio data tertinggi dipakai untuk training. Sebagai contoh, data bisa dipisah menjadi rasio 80-20 atau 70-30 masing-masing untuk training dan testing.

Rasio yang tepat tergantung pada data, namun secara umum rasio training-dev-test 70-20-10 merupakan rasio paling optimal untuk dataset berukuran kecil.


 Referensi: https://www.techtarget.com/searchenterpriseai/definition/data-splitting

 

 

Continue reading Data Splitting: Pengertian, Metode, dan Kegunaannya

Konsep Tentang Predictive Modelling

Predictive modelling adalah metode untuk memprediksi hasil masa depan dengan menggunakan pemodelan data. Metode ini merupakan salah satu cara utama yang dapat dipakai oleh bisnis agar dapat melihat jalannya ke depan dan membuat rencana yang sesuai. Meskipun tidak mudah, metode ini cenderung memiliki tingkat akurasi yang tinggi, itulah sebabnya metode ini sangat umum digunakan.

Di artikel ini kita akan membahas lebih lengkap mengenai predictive modelling, jenis, dan metodenya.

Pengertian Predictive Modelling

Predictive modeling adalah proses perhitungan matematis yang digunakan untuk memprediksi kejadian atau hasil di masa depan dengan menganalisis pola dalam satu set data input yang diberikan.

Predictive modelling merupakan komponen penting dari analisis prediktif, salah satu jenis big data analytics yang menggunakan data terkini dan historis untuk memperkirakan aktivitas, perilaku, dan tren.

Proses predictive modelling dimulai dengan pengumpulan data, kemudian model statistik dirumuskan, prediksi dibuat, dan model direvisi ketika data baru tersedia.

Contoh predictive modeling misalnya memperkirakan kualitas prospek penjualan, deteksi spam, atau kemungkinan seseorang akan mengeklik tautan atau membeli produk. Selain digunakan sebagai metode forecasting, predictive modelling bisa juga digunakan untuk memprediksi hasil, misalnya memprediksi kemungkinan sebuah transaksi adalah penipuan.

Dalam kasus ini, kita anggap peristiwa transaksi penipuan (fraud) telah terjadi. Kita ingin agar di kemudian hari sistem bisa menganalisis apakah sebuah transaksi itu fraud atau tidak, maka kita dapat gunakan predictive modelling.

Jenis-jenis Predictive Modelling

 Predictive modelling dapat kita klasifikasikan menjadi 2 jenis, yaitu:

  • Unsupervised model. yaitu predictive modelling yang menggunakan statistik konvensional untuk mengklasifikasikan data secara langsung, menggunakan metode seperti logistic regression, time series analysis, dan decision tree.
  • Supervised model, adalah predictive modelling yang menggunakan metode machine learning seperti jaringan saraf tiruan untuk mengidentifikasi pola yang tersembunyi dalam data yang sudah diberi label.

Algoritma yang Digunakan pada Predictive Modelling

Berikut ini adalah beberapa algoritma yang umum digunakan dalam predictive modelling:

  • Random Forest
    Algoritma Random Forest menggabungkan pohon keputusan (decision tree) yang tidak terkait dan menggunakan klasifikasi dan regresi untuk mengatur dan memberi label sejumlah besar data.
  • Gradient boosted model
    Mirip dengan Random Forest, algoritma ini menggunakan beberapa pohon keputusan (decision tree), tetapi dalam metode ini, setiap tree mengoreksi kekurangan yang sebelumnya dan membangun gambaran yang lebih akurat.
  • K-Means
    Algoritma K-Means mengelompokkan titik data dengan cara yang sama seperti model clustering. Algoritma ini populer dalam merancang penawaran kepada pelanggan dengan pendekatan personalisasi (mencari kesamaan di antara kelompok besar pelanggan).
  • Prophet
    Algoritma forecasting yang sangat efektif ketika berhadapan dengan perencanaan kapasitas. Algoritma ini berhubungan dengan data deret waktu dan relatif fleksibel.

Contoh Implementasi Predictive Modelling

Predictive modelling sering dikaitkan dengan meteorologi dan peramalan cuaca, tetapi metode ini juga banyak diterapkan dalam bisnis.

Teknik analitik prediktif saat ini dapat menemukan pola dalam data untuk mengidentifikasi risiko dan peluang yang akan datang bagi suatu organisasi atau perusahaan.

Salah satu penggunaan paling umum dari predictive modelling adalah dalam periklanan dan pemasaran online. Pembuat model menggunakan data historis pengunjung web untuk menentukan jenis produk apa yang mungkin diminati pengguna dan apa yang cenderung mereka klik.

Dalam sistem deteksi penipuan, predictive modelling dapat digunakan untuk mengidentifikasi outlier dalam kumpulan data yang mengarah ke aktivitas penipuan.

Dalam manajemen hubungan pelanggan, predictive modelling digunakan untuk menargetkan pengiriman pesan ke pelanggan yang kemungkinan besar akan melakukan pembelian.

Predictive modelling juga banyak digunakan dalam prediksi maintenance/perawatan pada industri besar yang menghasilkan pendapatan miliaran dolar.

Salah satu contohnya di industri penerbangan di mana para insinyur menggunakan perangkat IoT untuk memantau kinerja komponen pesawat dari jarak jauh seperti pompa bahan bakar atau mesin jet.

Alat-alat ini memungkinkan penyebaran sumber daya maintenance secara preemptif untuk meningkatkan pemanfaatan peralatan dan membatasi waktu henti yang tidak terduga. Tindakan ini sangat bermanfaat dalam meningkatkan efisiensi operasional dari industri penerbangan dan pesawat itu sendiri.

Selain itu, predictive modelling juga dapat dipakai dalam perencanaan wilayah kota, engineering, pemulihan bencana alam, dan manajemen keamanan digital maupun keamanan secara fisik.

Manfaat Predictive Modelling

Secara singkat, predictive modelling bermanfaat untuk mengurangi waktu, tenaga, dan biaya dalam memperkirakan hasil bisnis. Variabel seperti faktor lingkungan, kecerdasan kompetitif, perubahan regulasi, dan kondisi pasar dapat dimasukkan ke dalam perhitungan matematis untuk menghasilkan gambaran ke depan yang lebih lengkap dengan biaya yang relatif rendah.

Contoh jenis peramalan atau forecastung tertentu yang dapat menguntungkan bisnis meliputi prediksi permintaan pelanggan, perencanaan jumlah karyawan, analisis churn, analisis kompetitor, pemeliharaan aset dan perangkat keras IT, serta risiko keuangan.

 

Referensi:

 

 

 

Continue reading Konsep Tentang Predictive Modelling

Konsep Sistem Pakar dan Penerapannya

Bidang kecerdasan buatan (AI) berkaitan dengan metode pengembangan sistem yang menampilkan aspek perilaku cerdas. Sistem ini dirancang untuk meniru kemampuan manusia dalam berpikir dan merasakan. Salah satu contohnya adalah sistem pakar atau expert system.

Apa itu sistem pakar?

Pengertian Sistem Pakar

Sistem pakar adalah program komputer berteknologi kecerdasan buatan (AI) yang mensimulasikan penilaian, perilaku, dan kemampuan pengambilan keputusan manusia yang memiliki keahlian dan pengalaman di bidang tertentu.

Sistem pakar diimplementasikan dengan mengapdosi pengetahuan seorang pakar. Pakar atau manusia ahli (human expert) adalah seorang individu yang memiliki kemampuan pemahaman yang superior atas suatu masalah spesifik. 

Seorang pakar mampu menjelaskan suatu tanggapan, mempelajari hal-hal baru seputar topik permasalahan, menyusun kembali pengetahuan jika dipandang perlu, serta memecahkan masalah dengan cepat dan tepat.

Sistem pakar dirancang dengan tujuan untuk memberikan solusi pada masalah yang kompleks, atau untuk memperjelas ketidakpastian melalui penggunaan program non-algoritmik di mana biasanya keahlian manusia akan dibutuhkan.

Sistem pakar umumnya dipakai pada domain masalah yang kompleks dan dianggap sebagai alternatif yang banyak digunakan dalam mencari solusi yang membutuhkan adanya keahlian manusia yang spesifik. Sistem pakar juga mampu membenarkan solusi yang diberikan berdasarkan pengetahuan dan data dari pengguna sebelumnya. 

Sistem pakar banyak digunakan dalam membuat keputusan strategis terkait pemasaran bisnis, menganalisis kinerja sistem realtime, mengkonfigurasi komputer, dan melakukan banyak fungsi lain yang biasanya memerlukan keberadaan seorang pakar atau ahli.

Sistem pakar biasanya bertujuan untuk melengkapi, bukan menggantikan pakar manusia.

Konsep sistem pakar dikembangkan pada tahun 1970-an oleh ilmuwan komputer Edward Feigenbaum, seorang profesor ilmu komputer di Universitas Stanford dan pendiri Laboratorium Sistem Pengetahuan Stanford.

Menurut Feigenbaum, dunia komputer sedang bergerak maju dari yang awalnya melakukan pemrosesan data menuju "pemrosesan pengetahuan". Hal ini berarti komputer memiliki potensi untuk melakukan lebih dari perhitungan dasar dan mampu memecahkan masalah yang kompleks berkat teknologi prosesor dan arsitektur komputer baru.

Komponen-komponen pada Sistem Pakar

Sistem pakar biasanya memiliki tiga komponen inti, yakni:

  • Knowledge Base: komponen yang berisi informasi data, aturan (rule), relasi antara data dan aturan dalam pengambilan kesimpulan.
  • Inference Engine: komponen yang berfungsi menganalisa data yang ada dan menarik kesimpulan berdasarkan aturan yang ada.
  • User Interface: komponen yang berfungsi sebagai alat atau media komunikasi antara pemakai (user) dengan program

 1. Knowledge Base

Knowledge Base atau basis pengetahuan tersusun atas fakta yang berupa informasi tentang obyek, dan kaidah yang merupakan informasi tentang cara bagaimana membangkitkan fakta baru dari fakta yang sudah diketahui.

Knowledge base merupakan representasi pengetahuan dari seorang pakar. Pengetahuan yang disimpan dalam knowledge base disimpan dalam suatu struktur data khusus yang disesuaikan dengan metode inferensi yang dipakai.

2. Inference Engine

Inference atau inferensi adalah proses yang digunakan dalam sistem pakar untuk menghasilkan informasi baru dari informasi yang telah diketahui.

Dalam sistem pakar proses inferensi dilakukan dalam suatu modul yang disebut Inference Engine (Mesin inferensi). Inference engine dibuat ketika representasi pengetahuan (RP) pada bagian knowledge base telah lengkap, atau paling tidak telah berada pada level yang cukup akurat, maka RP tersebut telah siap digunakan.

Inference engine merupakan modul yang berisi program tentang bagaimana mengendalikan proses reasoning atau penalaran untuk mengambil kesimpulan.

Inference engine pada dasarnya memilih pengetahuan yang relevan dalam rangka mencapai kesimpulan. Inference engine memulai pelacakannya dengan mencocokkan aturan-aturan dalam basis pengetahuan dengan fakta-fakta yang ada.

 3. User Interface

User interface atau antarmuka pengguna adalah komponen yang berfungsi sebagai jembatan penghubung antara sistem pakar dan pengguna, memungkinkan terjadinya interaksi antara program dan orang awam atau pemakai program untuk menyelesaikan suatu masalah.

Antarmuka pengguna pada sistem pakar terbagi atas empat bagian, yaitu:

  1. Antarmuka pengisian Tabel Variabel: digunakan untuk memasukkan variable list.
  2. Antarmuka pengisian Tabel Konklusi: sama dengan Tabel Variabel hanya pada form Tabel Konklusi diberi keterangan apakah variable konklusi yang diinputkan akan ditampilkan pada saat konsultasi atau tidak.
  3. Antarmuka pengisian Tabel Rules: digunakan untuk memasukkan basis pengetahuan dengan penggunaan data variable dan konklusi yang diisikan melalui antarmuka pengisian Tabel Variabel dan Tabel Konklusi.
  4. Antarmuka Tanya Jawab: dilakukan proses tanya jawab antara program dan pemakai. Pengisian berbentuk menu pilihan, sehingga pemakai dapat memilih jawaban dari sekian jawaban yang tersedia. Hal ini untuk menghindari kesalahan dalam memasukkan jawaban yang dapat menyebabkan kesalahan program pada saat melakukan proses pengecekan aturan-aturan yang ada dalam knowledge base.

Karakteristik Sistem Pakar

Berikut adalah beberapa karakteristik dari sistem pakar:

  • Kinerja Tinggi: Sistem pakar memberikan kinerja tinggi untuk memecahkan semua jenis masalah kompleks dari domain tertentu dengan efisiensi dan akurasi tinggi.
  • Dapat dimengerti: Sistem pakar merespons dengan cara yang mudah dimengerti oleh pengguna. Sistem dapat mengambil input dalam bahasa manusia dan memberikan output dengan cara yang sama.
  • Andal: Sistem pakar jauh lebih andal untuk menghasilkan output yang efisien dan akurat.
  • Sangat responsif: Sistem pakar memberikan hasil untuk kueri kompleks apa pun dalam waktu yang sangat singkat.

Prinsip Kerja Sistem Pakar

Sistem pakar mengumpulkan pengalaman dan fakta dalam knowledge base dan mengintegrasikannya dengan inference engine.

Inference engine menggunakan salah satu dari dua metode berikut untuk memperoleh informasi dari knowledge base:

  • Forward chaining, yaitu membaca dan memproses sekumpulan fakta untuk membuat prediksi logis tentang apa yang akan terjadi selanjutnya. Contoh dari forward chaining adalah membuat prediksi tentang pergerakan pasar saham.
  • Backward chaining, yaitu membaca dan memproses serangkaian fakta untuk mencapai kesimpulan logis tentang mengapa sesuatu terjadi. Contoh dari backward chaining yaitu memeriksa serangkaian gejala untuk mencapai diagnosis medis.

Sistem pakar bergantung pada ketersediaan knowledge base yang baik. Proses penambahan informasi ke knowledge base dilakukan oleh pakar ahli, dan pengguna umum menggunakan sistem untuk memecahkan masalah kompleks.

Proses membangun dan memelihara sistem pakar disebut rekayasa pengetahuan atau knowledge engineering. Pengembang sistem perlu memastikan bahwa sistem pakar memiliki semua informasi yang diperlukan untuk memecahkan masalah. Kemampuan sistem juga dapat ditingkatkan dengan memperluas knowledge base atau membuat seperangkat aturan baru.

Perbedaan Sistem Konvensional dan Sistem Pakar

Berikut adalah perbedaan mendasar dari sistem konvensional dan sistem pakar:

Sistem Konvensional

  • Informasi dan pemrosesannya biasanya jadi satu dengan program
  • Program tidak pernah salah (kecuali pemrogramnya yang salah)
  • Biasanya tidak bisa menjelaskan mengapa suatu input data itu dibutuhkan atau bagaimana output itu diperoleh
  • Pengubahan program cukup sulit dan merepotkan
  • Sistem hanya akan bekerja jika sistem tersebut sudah lengkap
  • Eksekusi dilakukan langkah demi langkah secara algoritmik
  • Menggunakan data
  • Tujuan utamanya adalah efisiensi

Sistem Pakar

  • Basis pengetahuan merupakan bagian terpisah dari mekanisme inferensi
  • Program bisa saja melakukan kesalahan
  • Penjelasan adalah bagian terpenting dari sistem pakar
  • Pengubahan pada aturan/kaidah dapat dilakukan dengan mudah
  • Sistem dapat bekerja hanya dengan beberapa rules
  • Eksekusi dilakukan pada keseluruhan basis pengetahuan secara heuristik dan logis
  • Menggunakan pengetahuan
  • Tujuan utamanya adalah efektivitas

Manfaat dan Kegunaan Sistem Pakar

Adapun manfaat dan kegunaan dari sistem pakar dapat dijabarkan sebagai berikut:

  • Memungkinkan orang awam bisa mengerjakan pekerjaan para ahli
  • Bisa melakukan proses secara berulang secara otomatis
  • Menyimpan pengetahuan dan keahlian para pakar
  • Mampu mengambil dan melestarikan keahlian para pakar (terutama yang termasuk keahlian langka)
  • Mampu beroperasi dalam lingkungan yang berbahaya
  • Memiliki kemampuan untuk bekerja dengan informasi yang tidak lengkap dan mengandung ketidakpastian.
  • Pengguna bisa merespon dengan jawaban ’tidak tahu’ atau ’tidak yakin’ pada satu atau lebih pertanyaan selama konsultasi dan sistem pakar tetap akan memberikan jawaban.
  • Tidak memerlukan biaya saat tidak digunakan
  • Dapat digandakan (diperbanyak) sesuai kebutuhan dengan waktu yang minimal dan sedikit biaya
  • Dapat memecahkan masalah lebih cepat daripada kemampuan manusia dengan catatan menggunakan data yang sama.
  • Menghemat waktu dalam pengambilan keputusan
  • Meningkatkan kualitas dan produktivitas karena dapat memberi nasehat yang konsisten dan mengurangi kesalahan
  • Meningkatkan kapabilitas sistem terkomputerisasi yang lain.
  • Mampu menyediakan pelatihan. Pengguna pemula yang bekerja dengan sistem pakar akan menjadi lebih berpengalaman. Fasilitas penjelas dapat berfungsi sebagai guru

Contoh Penerapan Sistem Pakar

Sistem pakar efektif digunakan dalam domain atau bidang subjek tertentu yang memerlukan para ahli untuk membuat diagnosa, penilaian, atau prediksi.

Sistem ini telah memainkan peran besar di banyak industri, termasuk bidang-bidang berikut:

  • Layanan keuangan: sistem pakar membuat keputusan tentang manajemen aset, bertindak sebagai penasihat dan membuat prediksi tentang perilaku berbagai pasar dan indikator keuangan lainnya.
  • Teknik mesin: membantu memecahkan masalah mesin elektromekanis yang kompleks.
  • Telekomunikasi: sistem pakar digunakan untuk membuat keputusan mengenai teknologi jaringan yang digunakan dan pemeliharaan jaringan yang ada.
  • Kesehatan: sistem pakar membantu diagnosis medis.
  • Pertanian: sistem pakar dipakai untuk memperkirakan kerusakan tanaman.
  • Layanan pelanggan: digunakan untuk membantu menjadwalkan pesanan, mengarahkan permintaan pelanggan, dan memecahkan masalah.
  • Transportasi: sistem pakar berkontribusi dalam bidang perhubungan dan transportasi seperti kontrol lampu lalu lintas, desain jalan raya, penjadwalan dan pemeliharaan bus dan kereta api, pola penerbangan dan kontrol lalu lintas udara.

Adapun contoh dari sistem pakar adalah sebagai berikut:

  • CaDet (Cancer Decision Support Tool) digunakan untuk mengidentifikasi kanker pada tahap awal.
  • DENDRAL membantu ahli kimia mengidentifikasi molekul organik yang tidak diketahui.
  • DXplain adalah sistem pendukung klinis yang mendiagnosis berbagai penyakit.
  • MYCIN mengidentifikasi bakteri seperti bakteremia dan meningitis, dan merekomendasikan antibiotik dan dosis.
  • PXDES menentukan jenis dan tingkat keparahan kanker paru-paru yang dimiliki seseorang.
  • R1/XCON adalah sistem pakar manufaktur awal yang secara otomatis memilih dan memesan komponen komputer berdasarkan spesifikasi pelanggan.

Kelebihan Sistem Pakar

Adapun kelebihan dari sistem pakar adalah sebagai berikut:

  • Sistem pakar tidak rentan terhadap kesalahan manusia atau pengaruh emosional. Sistem pakar membuat keputusan berdasarkan aturan dan fakta yang ditentukan.
  • Pakar manusia tidak akan bertahan selamanya, dan mungkin banyak pengetahuan khusus dari para pakar yang seharusnya dijaga atau diabadikan. Sistem berbasis pengetahuan seperti sistem pakar menyediakan tempat penyimpanan permanen untuk pengetahuan dan informasi tersebut.
  • Sistem pakar menarik kesimpulan dari fakta yang ada dengan menggunakan berbagai jenis aturan, seperti aturan jika-maka (if-else).
  • Sistem pakar relatif murah dibandingkan dengan biaya mempekerjakan ahli manusia. Sistem pakar dapat membantu mencapai keputusan dengan lebih efisien, yang menghemat waktu dan memangkas anggaran biaya.
  • Beberapa pakar berkontribusi pada basis pengetahuan sistem pakar. Hal ini memberikan lebih banyak pengetahuan untuk diambil dan mencegah ahli dari pengambilan keputusan yang menyimpang.

Kelemahan Sistem Pakar

Kelemahan dari sistem pakar dapat dijabarkan sebagai berikut:

  • Pendekatan oleh setiap pakar untuk suatu situasi atau problem bisa berbeda-beda, meskipun sama-sama benar.
  • Transfer pengetahuan pada sistem pakar dapat bersifat subjektif dan bias.
  • Kurangnya rasa percaya pengguna dapat menghalangi pemakaian sistem pakar.
  • Sistem pakar tidak memiliki kemampuan pemecahan masalah yang 100% tepat. Salah satu kelebihan kecerdasan manusia adalah dapat bernalar secara nonlinier dan menggunakan informasi tambahan untuk menarik kesimpulan.
  • Sistem pakar kurang dalam hal intuisi. Intuisi manusia memungkinkan orang untuk menggunakan akal sehat dan firasat untuk memecahkan masalah. Mesin tidak memiliki intuisi. Dan meniru pengambilan keputusan berdasarkan perasaan menggunakan logika mekanis bisa memakan waktu lebih lama daripada seorang ahli yang menggunakan pengetahuan heuristik intrinsik untuk sampai pada kesimpulan yang cepat.
  • Dalam beberapa kasus -- diagnosa medis, misalnya -- emosi manusia berguna dan perlu. Misalnya, pengungkapan informasi medis yang sensitif kepada pasien memerlukan kecerdasan emosional yang mungkin tidak dimiliki oleh sistem pakar.
  • Sistem pakar sangat bergantung pada kualitas basis pengetahuan yang dimiliki. Jika diberikan informasi yang tidak akurat, maka dapat memberikan keputusan yang menyimpang.
Demikianlah penjelasan mengenai sistem pakar. Semoga informasi yang disajikan dapat bermanfaat dan membantu Anda memahami lebih jauh mengenai sistem pakar.
 
Continue reading Konsep Sistem Pakar dan Penerapannya
, ,

Apa Bedanya Artificial Intelligence, Machine Learning, dan Deep Learning?


 

Apa Bedanya Artificial Intelligence, Machine Learning, dan Deep Learning? - Artificial Intelligence, Machine Learning, dan Deep Learning saat ini sangat populer dan menarik perhatian banyak pihak. Namun, masih banyak di antara kita yang belum paham secara mendalam mengenai arti dari istilah-istilah tersebut.

Banyak juga yang berpikir bahwa ketiga istilah tersebut menggambarkan hal yang sama, padahal tidak. Sebenarnya apa definisi dari ketiga istilah tersebut?

Artificial Intelligence

Dalam istilah sederhana, AI (singkatan dari Artificial Intelligence) ialah sistem atau mesin yang meniru kecerdasan manusia untuk melakukan tugas dan secara terus-menerus dapat meningkatkan kemampuannya berdasarkan informasi yang telah dikumpulkan. AI telah diwujudkan dalam beberapa bentuk. Beberapa contohnya adalah:

  1. Chatbot, menggunakan AI untuk memahami masalah pelanggan lebih cepat dan memberikan jawaban yang lebih efisien
  2. Smart Assistant, menggunakan AI untuk mengurai informasi penting dari kumpulan data teks dalam jumlah besar guna mengatur jadwal pengguna secara lebih baik
  3. Recommendation Engine, menggunakan AI supaya dapat memberikan rekomendasi otomatis untuk acara TV berdasarkan kebiasaan menonton pengguna, atau rekomendasi produk berdasarkan riwayat pembelian di platform ecommerce.

Artificial Intelligence atau AI lebih banyak berkutat dengan proses mesin berpikir dan analisis data. Meskipun AI menampilkan gambar robot mirip manusia yang memiliki kemampuan berpikir cerdas, AI tidak dimaksudkan untuk menggantikan manusia.

Ketika membicarakan AI, kita sebenarnya tidak jauh-jauh dari dua istilah ini: Machine Learning dan Deep Learning. Karna keduanya merupakan sub-bidang dari Artificial Intelligence.

Machine Learning

Machine Learning yaitu istilah untuk menyebut komputer yang belajar dari data. Bidang ini merupakan irisan dari jurusan ilmu komputer dan statistika di mana algoritma digunakan untuk melakukan tugas tertentu tanpa diprogram secara eksplisit; Sebaliknya, machine larning mengenali pola dalam data dan membuat prediksi ketika ada data baru yang tiba.

Secara umum, proses pembelajaran algoritma ini dapat bersifat supervised ataupun unsupervised, tergantung pada data yang digunakan untuk melatih algoritma. Machine Learning menggabungkan algoritma “klasik” untuk berbagai macam tugas seperti pengelompokan (clustering), regresi, atau klasifikasi. Algoritma Machine Learning harus dilatih pada data dengan memberikan label tertentu. Semakin banyak data yang diberikan ke dalam algoritma, maka hasilnya akan semakin baik. 

Machine learning sebenarnya adalah bagian yang lebih mengerucut dari bidang AI. Bidang ini menggunakan teknik (termasuk juga deep learning) yang memungkinkan mesin menggunakan pengalaman atau data sebelumnya untuk menyelesaikan tugas yang diberikan. Proses pembelajaran didasarkan pada langkah-langkah berikut:

  1. Masukkan data ke dalam algoritma. (Pada langkah ini kita dapat memberikan informasi tambahan ke model, misalnya, dengan melakukan ekstraksi fitur.)
  2. Gunakan data tersebut untuk melatih model.
  3. Uji dan terapkan model.
  4. Gunakan model yang diterapkan untuk melakukan tugas prediksi otomatis. (Dengan kata lain, panggil dan gunakan model yang digunakan untuk menerima prediksi yang dikembalikan oleh model.)

Lalu apa beda AI dan Machine Learning? 

Artificial Intelligence adalah bidang ilmu komputer yang membuat sistem komputer dapat meniru kecerdasan manusia. Istilah ini terdiri dari dua kata, Artificial (buatan) dan Intelligence (kecerdasan), yang berarti "kekuatan berpikir buatan manusia." Sistem kecerdasan buatan tidak perlu diprogram sebelumnya, melainkan menggunakan algoritma yang dapat bekerja dengan kecerdasan mereka sendiri. 

Di sisi lain, Machine learning memungkinkan sistem komputer untuk membuat prediksi atau mengambil beberapa keputusan menggunakan data yang sudah ada sebelumnya tanpa perlu diprogram secara eksplisit. Caranya dengan mempelajari banyak data yang sifatnya terstruktur maupun semi-terstruktur sehingga model yang dibuat dapat menghasilkan output yang akurat atau memberikan prediksi berdasarkan data tersebut.

Machine learning hanya berfungsi untuk domain tertentu seperti ketika kita membuat model untuk mendeteksi gambar anjing, maka keluarannya hanya akan memberikan hasil untuk gambar anjing, tetapi jika kita memberikan data baru seperti gambar kucing maka tidak lagi relevan atau gagal memprediksi dengan tepat.

Machine learning sekarang banyak digunakan di berbagai tempat seperti untuk sistem rekomendasi produk online, algoritma pencarian Google, filter spam Email, saran penandaan teman Facebook otomatis, dll. 

Secara singkat perbedaan antara AI dan Machine learning dapat dilihat pada tabel berikut:

Pembeda Artificial Intelligence Machine Learning
Keluaran yang dihasilkan Berupa pengetahuan atau knowledge Berupa data
Tujuan yang ingin dicapai Mengembangkan sistem yang mampu meniru atau mendekati kemampuan cerdas manusia dalam menyelesaikan masalah Mengembangkan algoritma yang bisa belajar secara mandiri dari data latih
Cakupan tugas Membuat sistem cerdas untuk melakukan tugas apa pun seperti manusia. Mengajar mesin dengan data untuk melakukan tugas tertentu dan memberikan hasil yang akurat.
Sub bidang Machine learning and deep learning adalah dua bidang turunan dari AI. Hanya deep learning yang merupakan bidang turunan dari Machine Learning
Titik fokus Sistem AI berfokus dalam memaksimalkan peluang keberhasilan. Pembelajaran mesin memiliki fokus dalam akurasi dan pola.
Jenis data yang didukung Data tidak terstruktur, semi-terstruktur, hingga terstruktur Hanya data terstruktur dan semi-terstruktur
Contoh implementasi Chatbots, Smart Assistant (Siri, Alexa, Google Assistant), Sistem pakar dll Rekomendasi film Netflix, Algoritma pencarian Google, Facebook photo tagging, dll

 Deep Learning

Deep Learning didefinisikan sebagai algoritma yang menganalisis data dengan struktur logika yang mirip dengan cara manusia menarik kesimpulan. Perlu diketahui bahwasanya deep learning dapat dicapai hanya dengan menggunakan supervised dan semisupervised learning.

Untuk mencapai hal ini, sistem deep learning menggunakan struktur algoritma berlapis yang disebut jaringan saraf tiruan (JST). Desain JST semacam itu terinspirasi oleh jaringan saraf biologis otak manusia, yang mengarah ke proses pembelajaran yang jauh lebih mumpuni daripada model machine learning standar.

Saat ini, Deep Learning digunakan di banyak bidang. Sistem kemudi otomatis, misalnya, Deep learning digunakan untuk mendeteksi objek, seperti rambu STOP atau pejalan kaki. Militer menggunakan Deep learning untuk mengidentifikasi objek dari satelit, misal untuk menemukan zona aman atau tidak aman bagi pasukannya. Tentu saja, industri elektronik juga tak ketinggalan. Perangkat smart home assistant seperti Amazon Alexa, mengandalkan algoritma Deep Learning untuk merespons suara dan mengetahui preferensi penggunanya.

Lalu apa istimewanya bidang Deep Learning dibandingkan dengan Machine Learning?

Perlu diketahui bahwasanya Deep learning adalah sub bidang (turunan) dari machine learning. Namun memiliki keunggulan yang lebih baik dari machine learning biasa.

Apa saja itu?

Pertama dan terpenting, algoritma Machine Learning standar memiliki struktur yang agak sederhana, seperti regresi linier atau decision tree, sebaliknya algoritma Deep Learning didasarkan pada jaringan saraf tiruan. JST berlapis-lapis ini, seperti otak manusia, kompleks dan saling terkait. 

Kedua, algoritma Deep Learning membutuhkan lebih sedikit intervensi manusia. Algoritma Deep Learning tidak memerlukan bantuan software engineer untuk mengidentifikasi fitur tetapi mampu melakukan rekayasa fitur otomatis melalui jaringan sarafnya. Hal ini agak berbeda dengan machine learning biasa yang membutuhkan intervensi seorang engineer untuk membantu mengekstrasi fitur sebagai data tambahan untuk model.

Ketiga, Deep Learning membutuhkan lebih banyak data daripada algoritma machine learning agar berfungsi dengan baik. Jika seandainya machine learning butuh seribu titik data, Deep learning bisa membutuhkan jutaan data. Karena struktur multi-layer yang kompleks, sistem Deep Learning membutuhkan kumpulan data yang besar untuk menghilangkan fluktuasi dan membuat interpretasi berkualitas tinggi.

Berikut adalah tabel perbandingan machine learning vs deep learning:

Perbedaan Semua Machine Learning Hanya Deep Learning
Jumlah poin data Dapat menggunakan data yang sedikit dalam membuat prediksi. Butuh data training dalam skala besar untuk melakukan prediksi yang lebih baik
Ketergantungan perangkat keras Dapat bekerja pada mesin low-end. Tidak membutuhkan komputasi yang besar Membutuhkan mesin dengan spesifikasi tinggi karena digunakan untuk melakukan operasi perkalian matriks secara intensif. GPU dapat mengoptimalkan operasi ini secara efisien.
Proses fiturisasi Membutuhkan fitur untuk diidentifikasi dan dibuat secara akurat oleh pengguna Mempelajari fitur dari data yang disediakan dan membuat fitur baru secara mandiri tanpa intervensi manusia.
Pendekatan pembelajaran Membagi prosesnya menjadi tahapan yang lebih kecil. Kemudian menggabungkan hasil dari setiap tahapan menjadi satu output atau keluaran. Cara belajarnya didasarkan pada proses menyelesaikan masalah secara end-to-end.
Waktu eksekusi Membutuhkan waktu yang relatif sedikit untuk training (tahap pelatihan), mulai dari beberapa detik hingga beberapa jam Biasanya membutuhkan waktu yang lama untuk training karena algoritma deep learning melibatkan banyak layer.
Output/Keluaran Outputnya biasanya berupa nilai numerik, seperti skor atau klasifikasi. Outputnya dapat berupa format yang berbeda-beda, seperti teks, skor, atau suara.

Kesimpulan

Sebagai penutup kesimpulan, AI adalah bidang yang menaungi Machine Learning dan juga Deep Learning dan bidang apapun yang berhubungan dengan metode meningkatkan mesin cerdas untuk menyelesaikan permasalahan di kehidupan manusia.

Machine Learning (ML) adalah sesuatu yang diidentikkan dengan AI karena merupakan generasi awal dimana AI mulai berkembang, namun sekarang  ML adalah bidang turunan dari AI. ML merujuk pada sistem AI yang mampu belajar secara mandiri berdasarkan algoritma dan data historis.

Sedangkan sistem yang menjadi semakin cerdas dari waktu ke waktu tanpa intervensi manusia adalah Deep Learning. Deep Learning (DL) merupakan turunan machine learning (ML) yang bekerja berdasarkan dataset skala besar.

Referensi:

 

 

Continue reading Apa Bedanya Artificial Intelligence, Machine Learning, dan Deep Learning?

Perbedaan Data Scientist, Data Analyst dan Data Engineer


Data science menjadi perbincangan dan trend-center bagi para penggiat teknologi di bidang statistika. Sebenarnya, data science itu apa? Melansir dari Oracle, data science merupakan ilmu yang menggabungkan berbagai bidang, termasuk statistik, metode ilmiah, kecerdasan buatan (AI), dan analisis data, untuk mengekstrak nilai dari data. Penggabungan berbagai keterampilan untuk menganalisis data yang dikumpulkan dari web, smartphone, pelanggan, sensor, dan sumber lain untuk mendapatkan wawasan yang bisa untuk di olah.

Mengapa Data Science Sangat Penting?

Ilmu ini sangat menarik saat ini. Lalu, mengapa data science sangat penting? Karena perusahaan sangat membutuhkan data science. Teknologi modern telah memungkinkan penciptaan dan penyimpanan peningkatan jumlah informasi dan volume data telah meledak. Diperkirakan bahwa 90 persen dari data di dunia diciptakan dalam dua tahun terakhir. Kebanyakan data hanya berada di database dan tidak tersentuh untuk diolah. Pengelolaan data sangat dibutuhkan agar lebih tersusun dan lebih transformatif  untuk dapat memberikan suatu keputusan bagi perusahaan. 

Data science mengungkapkan tren dan menghasilkan wawasan yang dapat digunakan bisnis untuk membuat keputusan yang lebih baik dan menciptakan produk dan layanan yang lebih inovatif. Mungkin yang paling penting, ini memungkinkan model pembelajaran mesin (ML) untuk belajar dari sejumlah besar data yang diumpankan kepada mereka, daripada terutama mengandalkan analis bisnis untuk melihat apa yang dapat mereka temukan dari data.

Data Scientist, Data Analyst dan Data Engineer

Tentu saja pekerjaan di bidang data science sangat dibutuhkan di era saat ini. Banyak perusahaan yang mencari talenta digital terkait data science. Berikut beberapa role pekerjaan di bidang data science, diantaranya: 

1. Data Scientist 

Seorang data scientist menganalisis dan menafsirkan data digital yang kompleks untuk membantu para pemimpin bisnis membuat keputusan yang lebih baik berdasarkan data. Data scientist memiliki pengetahuan dan keahlian yang mendalam dalam matematika (aljabar linier dan kalkulus multivariabel) yang telah mereka peroleh dengan mendapatkan gelar dalam disiplin ilmu pengetahuan.

Berikut role dari data scientist, diantaranya:

  1. Membersihkan dan mengumpulkan data berkualitas untuk melatih algoritma
  2. Mengidentifikasi pola tersembunyi dalam kumpulan data
  3. Membangun model pembelajaran mesin
  4. Visualisasi data
  5. Menyempurnakan metrik bisnis dengan mengembangkan dan menguji hipotesis   

2. Data Analyst 

Apa itu analis data? Data analyst adalah menguraikan angka dan menerjemahkannya menjadi kata-kata untuk menjelaskan apa yang dikatakan data. Mendapatkan pekerjaan analis data tidak memerlukan latar belakang matematika yang kuat. Namun, mereka tidak dapat berjalan dengan baik dalam peran ini tanpa pemahaman dalam statistik, pre-processing, visualisasi data dan analisis EDA, dan tentu saja, kemahiran dalam Excel. 

  1.  Mengumpulkan data berdasarkan permintaan tertentu dari perusahaan.
  2. Membiasakan diri dengan parameter kumpulan data (jenis data, bagaimana hal itu dapat diurutkan).
  3. Pre-processing: memastikan data bebas dari kesalahan.
  4. Menafsirkan data dan menganalisis cara-cara memecahkan masalah bisnis.
  5. Menarik kesimpulan dari analisis.
  6. Memvisualisasikan dan mempresentasikan temuan kepada manajer.

3. Data Engineer

 
Data engineer bertanggung jawab untuk membangun, menguji dan memelihara arsitektur data. Tujuannya adalah untuk membangun dan mengoptimalkan sistem perusahaan yang memungkinkan bagi data analyst dan data scientist menyelesaikan pekerjaan mereka. Kamu harus memiliki keahlian di bidang programming, big data, dan matematika.
 
Selain itu, arsitektur data yang disiapkan oleh data engineer membuat dasar untuk penggunaan data lebih lanjut, termasuk: 
 
  1. Penyerapan dan penyimpanan data 
  2. Pembuatan algoritma.
  3. Penyebaran model dan algoritma machine learning 
  4. Visualisasi data. 

Referensi:

 What is Data Science? | Oracle

Continue reading Perbedaan Data Scientist, Data Analyst dan Data Engineer