Modul Machine Learning
Modul Machine Learning
Modul Machine Learning
“MACHINE LEARNING”
Puji syukur kami panjatkan kepada Allah SWT yang Maha Pengasih dan Maha
Penyayang atas nikmat kesehatan, kesempatan serta hikmat dan anugrah-Nya kami dapat
menyelesaikan Modul Pembelajaran ini dengan judul “MACHINE LEARNING“.
Dalam Modul ini Kami menyadari bahwa pada penulisannya masih terdapat banyak
kekurangan karena keterbatasan ilmu pengetahuan serta kemampuan yang ada dalam diri
kami masing-masing. Pada kesempatan ini kami ingin berterimakasih yang sebesar-besarnya
kepada dosen pembimbing kami yaitu Bapak Eri Sasmita, S.Kom.,M.Kom yang telah
memberikan bimbingan, nasehat serta saran sehingga Modul ”MACHINE LEARNING” ini
dapat kami selesaikan.
Semoga Allah SWT selalu memberikan rahmat yang melimpah dan anugrah-Nya
kepada Bapak pembimbing yang telah membantu kami dalam menyusun modul ini. Kami
berharap semoga modul ini dapat bermanfaat bagi semua pihak yang membutuhkannya.
Penulis
i
Modul Machine Learning
DAFTAR ISI
MODUL 1 ................................................................................................................................. 1
MODUL Penerapan Algoritma Convlutional Neural Network (CNN) Pada Arduino ... 13
ii
Modul Machine Learning
MODUL 1
A. Pengantar Machine Learning
Machine Learning atau dikenal dengan pembelajaran mesin adalah ilmu
computer yang bisa bekerja tanpa diprogram secara eksplisit. Banyak peneliti berpikir
bagaimana cara untuk membuat kemajuan AI terhadap tingkat manusia. Machine
Learning ini merupakan kecerdasan buatan yang mempelajari bagaimana membuat
data. Machine learning ini biasa disingkat dengan ML, ini dibutuhkan untuk
menerapkan teknik yang cepat dan kuat menemukan masalah baru.
Secara definisi, machine learning merupakan ilmu atau studi yang
mempelajari tentang algoritma dan model statistic yang digunakan oleh sistem
computer untuk melakukan task tertentu tanpa instruksi eksplisit. Machine learning
bergantung pada pola dan kesimpulan, untuk mendapatkan pola dan kesimpulan
tersebut, algoritma machine learning menghasilkan model matematika yang didasari
dari data sampel yang sering disebut dengan ‘training data’.
Machine learning juga dapat didefinisikan sebagai ilmu yang mempelajari
bagaimana membuat sebuah program yang dapat menghasilkan pengetahuan baru dari
pengetahuan yang sudah ada (disebut experience, atau data) di luar pengetahuan yang
“diprogram” secara langsung pada program. Istilah lebih umumnya adalah bagaimana
membuat computer yang dapat belajar dari lingkungan sekitar sehingga memiliki
“pengetahuan” yang berkembang.
Pemakaian teknik ini berkaitan dengan pembelajaran mesin dan AI. Mesin ini
membuktikan kepada algoritma atau program yang berjalan dikomputer. Oleh karena
itu, jika kita ingin belajar machine learning, pastikan terus berinteraksi dengan data.
Semua pengetahuan machine learning passti akan melibatkan data.
B. Taksonomi Teknik Learning
Taksonomi adalah sistem klasifikasi atau pengelompokan yang digunakan
untuk mengorganisir dan menyusun informasi ke dalam hierarki yang terstruktur.
Taksonomi teknik learning adalah taksonomi yang digunakan untuk
mengklasifikasikan dan mengelompokkan berbagai teknik pembelajaran (learning
techniques) yang digunakan dalam konteks pembelajaran mesin (machine learning).
Berikut adalah materi lengkap tentang taksonomi teknik learning:
1
Modul Machine Learning
1. Supervised Learning (Pembelajaran Terpandu)
Regresi (Regression): Teknik untuk memprediksi nilai kontinu berdasarkan
data latihan.
Klasifikasi (Classification): Teknik untuk memprediksi kelas atau label
berdasarkan data latihan yang diberikan.
Naive Bayes: Metode statistik yang menggunakan teorema Bayes untuk
klasifikasi probabilitas.
Decision Tree (Pohon Keputusan): Struktur pohon yang menggambarkan
keputusan dan konsekuensi berdasarkan fitur-fitur data.
Random Forest: Penggabungan banyak pohon keputusan yang digunakan
untuk klasifikasi atau regresi.
Support Vector Machines (SVM): Metode pembelajaran yang digunakan
untuk klasifikasi atau regresi dengan mencari hyperplane terbaik yang
memisahkan kelas data.
2
Modul Machine Learning
3. Reinforcement Learning (Pembelajaran Penguatan)
Markov Decision Process (MDP): Framework matematis yang digunakan
untuk model pembelajaran penguatan.
Q-Learning: Algoritma yang digunakan untuk mempelajari kebijakan optimal
dalam MDP.
Deep Q-Network (DQN): Jaringan saraf tiruan yang digunakan dalam
pembelajaran penguatan.
3
Modul Machine Learning
teknik learning. Setiap teknik memiliki karakteristik dan aplikasi yang berbeda
dalam konteks pembelajaran mesin. Penting untuk memahami taksonomi ini agar
dapat memilih teknik yang sesuai dengan permasalahan yang dihadapi dan
mencapai hasil yang diinginkan dalam pembelajaran mesin.
1. Deep Learning: Deep learning adalah cabang dari machine learning yang
menggunakan neural networks yang dalam untuk mempelajari pola dan fitur
yang kompleks. Deep learning telah menghasilkan kemajuan yang signifikan
dalam berbagai bidang, seperti pengenalan wajah, pengenalan suara, dan
bahasa alami. Di masa depan, diharapkan akan ada pengembangan lebih lanjut
dalam arsitektur dan algoritma deep learning yang memungkinkan
pembelajaran yang lebih efisien dan akurat.
4
Modul Machine Learning
yang dapat menemukan informasi tersembunyi dalam data. Di masa depan,
kita dapat melihat perkembangan lebih lanjut dalam metode pembelajaran
tanpa pengawasan untuk memahami data yang lebih kompleks dan
menghasilkan pemodelan yang lebih baik.
5
Modul Machine Learning
lebih erat antara perangkat keras dan perangkat lunak.
Perkembangan dan masa depan machine learning dipengaruhi oleh inovasi dan
penelitian yang terus berlanjut. Dengan adanya kemajuan teknologi, peningkatan
dalam pemahaman kita tentang metode pembelajaran mesin, dan peningkatan
ketersediaan data, kita dapat mengharapkan perkembangan yang lebih lanjut dalam
bidang ini di masa depan.
6
Modul Machine Learning
penyerang berhasil memanipulasi data yang digunakan untuk pelatihan, model
tersebut dapat menghasilkan prediksi yang salah atau dapat disalahgunakan.
5. Pengambilan keputusan yang lebih baik: Dengan analisis data yang mendalam
dan kemampuan prediksi yang akurat, machine learning dapat membantu
manusia dalam pengambilan keputusan yang lebih baik dan berdasarkan bukti.
7
Modul Machine Learning
MODUL 2
Penerapan Algoritma K-Means Clustering Pada Arduino
Kluster mengacu pada kumpulan titik data yang dikumpulkan bersama karena
kesamaan tertentu. Jika K = 2, maka akan ada 2 kluster, dan jika K = 3 maka terdapat
3 kluster, begitu seterusnya.
Dengan demikian K-means clustering dapat didefinisikan sebagai algoritma
iteratif yang membagi kumpulan data (dataset) yang tidak berlabel menjadi k kluster
yang berbeda sedemikian rupa sehingga setiap kumpulan data hanya dimiliki oleh
satu kelompok yang memiliki properti serupa.
Penerapan algoritma K-Means Clustering pada Arduino memungkinkan untuk
melakukan analisis pengelompokan data secara real-time menggunakan
mikrokontroler Arduino. K-Means Clustering adalah algoritma yang populer dalam
dunia analisis data dan machine learning untuk mengelompokkan data menjadi
beberapa kelompok berdasarkan kesamaan fitur atau atribut.
8
Modul Machine Learning
perangkat yang dapat menghasilkan data, seperti sensor suhu atau sensor jarak.
Pastikan Arduino terhubung dengan komputer melalui kabel USB.
2. Instalasi perangkat lunak Arduino: Unduh dan instal perangkat lunak Arduino
IDE dari situs resmi Arduino (https://www.arduino.cc/en/software). Pastikan
memilih versi yang sesuai dengan sistem operasi.
3. Buat program Arduino: Buka Arduino IDE dan buat program yang akan
membaca data dari sensor dan menerapkan algoritma K-Means Clustering.
Perlu menggunakan bahasa pemrograman C++ yang didukung oleh Arduino
IDE.
Berikut adalah contoh sederhana program Arduino yang menggunakan
algoritma K-Means Clustering untuk mengelompokkan data suhu:
#include <Wire.h>
#include <Adafruit_MLX90614.h>
#include <SoftwareSerial.h>
#include <TinyMLShield.h>
#include <TINYGPT.h>
#include <TinyTrainable.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <Wire.h>
#include <TinyMLShield.h>
#include <TINYGPT.h>
#include <TinyTrainable.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
#include <Wire.h>
9
Modul Machine Learning
Adafruit_BME280 bme;
#define NUM_CLUSTERS 3
void setup() {
Serial.begin(9600);
Wire.begin();
bme.begin(0x76);
void loop() {
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(cluster);
delay(1000);
int cluster = 0;
10
Modul Machine Learning
for (int i = 1; i < NUM_CLUSTERS; i++) {
minDistance = distance;
cluster = i;
return cluster;
11
Modul Machine Learning
platform yang lebih kuat secara komputasional.
12
Modul Machine Learning
MODUL 3
Penerapan Algoritma Convlutional Neural Network (CNN) Pada Arduino
Convolutional Neural Networks, yang dikenal sebagai CNN, adalah kategori
Neural Networks yang menggunakan multilayer variasi perceptron yang dirancang
untuk pra-pemrosesan minimal. Convolutional Neural Network digunkaan untuk
mengklasifikasikan data yang terlabel dengan menggunakan metode supervised
learning, yang mana cara kerja dari supervised learning adalah terdapat data yang
dilatih dan terdapat variabel yang ditargetkan sehingga tujuan dari metode ini adalah
mengelompokan suatu data ke data yang sudah ada.
Algoritma ini dirancang khusus untuk memproses data piksel dan citra visual.
Algoritma Convolutional Neural Network memiliki neuron yang didesain untuk
bekerja layaknya lobus frontal, khususnya area visual cortex pada otak manusia dan
hewan.Visual cortex yaitu area yang bertanggung jawab untuk memproses informasi
dalam bentuk rangsangan visual. Hal ini yang membuat CNN cukup efektif digunakan
dalam pemrosesan gambar dibanding algoritma neural network sejenis. Kata
convolution pada CNN yaitu sebuah operasi matematika pada dua buah fungsi yang
kemudian menghasilkan fungsi ketiga. Fungsi ini menggabungkan 2 buah himpunan
informasi dan menunjukkan bagaimana bentuk satu fungsi dimodifikasi oleh fungsi
lainnya.
CNN menggunakan convolution sebagai pengganti perkalian matriks umum.
Operasi ini digunakan paling tidak pada satu lapisannya. Neural network yang umum
biasanya mengubah input dengan meletakkannya melalui rangkaian hidden layer.
Setiap layer terdiri dari sekumpulan neuron, dimana setiap layer terhubung secara
penuh dengan semua neuron pada layer sebelumnya. Terakhir, lapisan yang sudah
terhubung sepenuhnya (output layer) digunakan untuk mewakili prediksi.
Tidak seperti neural network biasa, lapisan pada algoritma CNN memiliki
neuron yang diatur dalam 3 dimensi: width, height, dan depth. Dimensi depth
mengacu pada dimensi ketiga dari fungsi aktivasi, bukan kedalaman neural network
atau jumlah total layer dalam jaringan. Neuron-neuron dalam satu layer tidak
terhubung ke semua neuron di layer berikutnya tetapi hanya ke sebagian kecil saja.
Terakhir, hasil akhir akan direduksi menjadi satu vektor skor probabilitas, yang diatur
sepanjang dimensi depth.
Penerapan algoritma Convolutional Neural Network (CNN) pada Arduino
13
Modul Machine Learning
menjadi tantangan karena keterbatasan sumber daya perangkat keras Arduino yang
relatif terbatas, terutama dalam hal daya komputasi dan memori.
Namun, meskipun Arduino adalah platform yang terbatas dalam hal daya
pemrosesan dan memori dibandingkan dengan komputer yang lebih kuat, seperti PC
atau server, Anda masih dapat mengimplementasikan algoritma Convolutional Neural
Network (CNN) pada Arduino untuk tugas pemrosesan citra yang sederhana.
Namun, perlu diingat bahwa implementasi CNN pada Arduino akan
memerlukan beberapa kompromi. Anda mungkin harus membatasi kompleksitas
jaringan, mengurangi ukuran dan resolusi citra yang diolah, dan menggunakan teknik
optimasi untuk menjaga agar pemrosesan tetap efisien.
Berikut adalah langkah-langkah umum yang diperlukan untuk
mengimplementasikan CNN pada Arduino:
1. Persiapan Dataset: Anda perlu menyiapkan dataset citra yang akan digunakan
untuk melatih dan menguji jaringan CNN. Pastikan citra-citra tersebut sesuai
dengan keterbatasan sumber daya Arduino, seperti ukuran dan resolusi yang
lebih kecil.
2. Perancangan Model CNN: Anda perlu merancang arsitektur CNN yang sesuai
dengan tugas yang akan dilakukan. Gunakan layer konvolusi, pooling, dan
fully connected layer sesuai dengan kebutuhan. Pastikan juga bahwa jumlah
parameter model tidak terlalu besar untuk kapasitas memori Arduino.
3. Pelatihan Model: Gunakan dataset yang telah Anda siapkan untuk melatih
model CNN. Proses ini akan memerlukan perangkat komputasi yang lebih
kuat, seperti PC atau server. Anda dapat menggunakan library atau framework
deep learning yang mendukung pelatihan model pada komputer dan
menyimpan parameter yang telah dilatih.
4. Konversi Model ke Format Arduino: Setelah melatih model CNN, Anda perlu
mengonversi parameter model ke format yang dapat dipahami oleh Arduino.
Anda dapat menggunakan alat seperti TensorFlow Lite untuk mengonversi
model menjadi format yang lebih efisien dan cocok untuk mikrokontroler
seperti Arduino.
5. Implementasi pada Arduino: Transfer model yang telah dikonversi ke Arduino
dan implementasikan kode yang memungkinkan mikrokontroler untuk
memuat model, melakukan inferensi pada citra, dan menghasilkan output yang
14
Modul Machine Learning
diinginkan.
Perlu diingat bahwa performa CNN pada Arduino akan terbatas dibandingkan
dengan perangkat komputasi yang lebih kuat. Oleh karena itu, perlu dilakukan
optimasi lebih lanjut, seperti mengurangi kompleksitas model, menggunakan teknik
kompresi model, atau menggunakan strategi pemrosesan citra yang lebih efisien untuk
mencapai hasil yang memadai.
Selain itu, pastikan Anda memiliki pengetahuan yang memadai tentang
pemrograman Arduino dan implementasi CNN sebelum mencoba
menggabungkannya. Implementasi ini bisa menjadi tugas yang rumit dan
membutuhkan pemahaman yang baik tentang kedua domain tersebut.
15
Modul Machine Learning
MODUL 4
Penerapan Algoritma K-Nearest Neighbor (KNN) Pada Arduino
Algoritma K-Nearest Neighbor (KNN) adalah salah satu metode yang populer
dalam pengenalan pola dan pembelajaran mesin yang termasuk dalam kategori
algoritma penggolongan (classification). KNN digunakan untuk memprediksi label
atau kelas dari suatu data berdasarkan data latihan yang memiliki label atau kelas
yang sudah diketahui.
Pada Arduino, implementasi algoritma KNN dapat dilakukan dengan
mengikuti langkah-langkah berikut:
1. Persiapan Data Latih:
Siapkan data latih yang terdiri dari contoh-contoh dengan label yang diketahui. Setiap
contoh harus direpresentasikan sebagai vektor fitur numerik. Catat label atau kelas
yang sesuai dengan setiap contoh.
2. Hitung Jarak:
Implementasikan fungsi untuk menghitung jarak antara dua vektor fitur. Ada
beberapa metode yang dapat digunakan, seperti Euclidean distance atau Manhattan
distance. Jarak antara vektor fitur baru dengan setiap contoh data latih perlu dihitung.
3. Tentukan Tetangga Terdekat:
Urutkan contoh-contoh data latih berdasarkan jarak dari yang terdekat hingga yang
terjauh. Pilih k contoh terdekat sebagai tetangga terdekat.
4. Lakukan Voting:
Hitung frekuensi setiap kelas dari tetangga terdekat. Kelas dengan frekuensi tertinggi
akan dipilih sebagai hasil klasifikasi.
5. Kelasifikasi:
Gunakan hasil voting untuk mengklasifikasikan vektor fitur baru ke dalam salah satu
kelas.
Implementasi algoritma KNN pada Arduino memerlukan kemampuan
pemrosesan yang cukup, terutama dalam menghitung jarak dan melakukan sorting.
Oleh karena itu, pada beberapa model Arduino dengan sumber daya terbatas,
implementasi algoritma ini mungkin tidak praktis.
Namun, jika memiliki Arduino yang lebih canggih atau ingin menggunakan
Arduino dengan modul eksternal seperti sensor jarak atau sensor suhu, dapat
mengimplementasikan algoritma KNN dengan menggunakan bahasa pemrograman
16
Modul Machine Learning
Arduino dan memanfaatkan fungsi dan perangkat keras yang ada untuk memproses
data dan melakukan klasifikasi.
Pastikan untuk memahami batasan dan kemampuan Arduino yang Anda
gunakan, serta mempertimbangkan kompleksitas algoritma KNN sebelum
mengimplementasikannya pada perangkat keras Arduino.
17
Modul Machine Learning