Fungsi Aktivasi dalam Deep Learning

Deep learning, sebuah sub bidang machine learning, berkembang pesat dalam cara kerja rumit artificial neural network yang terdiri dari beberapa lapisan neuron buatan yang saling berhubungan. Untuk memungkinkan neuron belajar dan membuat prediksi secara akurat, fungsi aktivasi memainkan peran penting. Fungsi aktivasi memperkenalkan non-linearitas ke dalam jaringan saraf, memungkinkannya memodelkan hubungan kompleks antara masukan dan keluaran, dan meningkatkan kekuatan pengambilan keputusan jaringan.

Apa itu Fungsi Aktivasi?

Fungsi aktivasi adalah fungsi matematika yang mengambil jumlah masukan tertimbang dari lapisan neuron sebelumnya dan menerapkan transformasi untuk menghasilkan nilai keluaran atau aktivasi. Tujuan dari transformasi ini ada dua: (1) untuk memperkenalkan non-linearitas dan (2) memungkinkan sinyal menyebar melalui jaringan.

Fungsi aktivasi menormalkan nilai keluaran, menjadikannya berada dalam kisaran tertentu. Kisaran ini sering kali terletak antara 0 dan 1 atau -1 dan 1, bergantung pada jenis fungsi aktivasi yang digunakan. Setiap neuron di jaringan saraf dalam biasanya menggunakan fungsi aktivasi untuk memutuskan kapan dan sejauh mana fungsi tersebut harus diaktifkan.

Fungsi Aktivasi Umum

1. Fungsi sigmoid (Fungsi logistik)

Fungsi sigmoid adalah salah satu fungsi aktivasi paling awal yang digunakan dalam pembelajaran mendalam. Ini memetakan jumlah input tertimbang ke nilai antara 0 dan 1, yang mewakili kemungkinan aktivasi neuron. Namun, fungsi sigmoid mengalami masalah vanishing gradient, di mana gradien menjadi sangat kecil di lapisan yang lebih dalam, sehingga menyebabkan konvergensi lambat selama pelatihan.

2. Rectified Linear Unit (ReLU)

ReLU adalah salah satu fungsi aktivasi yang paling banyak digunakan dalam pembelajaran mendalam saat ini. Ini didefinisikan sebagai f(x) = max(0, x), dengan output adalah 0 untuk nilai negatif dan input tetap tidak berubah untuk nilai positif. ReLU secara efektif memecahkan masalah vanishing gradient dan mempercepat pelatihan. Namun dapat menyebabkan dead neuron jika gradien menjadi nol untuk semua input ke dalam neuron selama pelatihan.

3. Leaky ReLU

Untuk mengurangi masalah neuron mati, Leaky ReLU diperkenalkan. Ini didefinisikan sebagai f(x) = max(αx, x), dengan α adalah konstanta kecil (<1) yang menentukan kemiringan input negatif. Dengan mengizinkan gradien kecil untuk masukan negatif, Leaky ReLU mencegah kematian neuron dan memberikan pembelajaran yang lebih baik untuk deep neural network.

4. Hyperbolic Tangent (tanh)

Fungsi tangen hiperbolik mirip dengan fungsi sigmoid tetapi memetakan masukan ke nilai antara -1 dan 1. Fungsi ini memberikan non-linier yang lebih kuat dan lebih simetris di sekitar titik asal dibandingkan dengan fungsi sigmoid. Mirip dengan fungsi sigmoid, fungsi aktivasi tanh juga dapat mengalami masalah vanishing gradient.

5. Softmax

Softmax sering digunakan sebagai fungsi aktivasi di lapisan keluaran jaringan saraf ketika menangani masalah klasifikasi kelas jamak. Ini mengubah jumlah masukan tertimbang menjadi distribusi probabilitas, di mana setiap keluaran mewakili kemungkinan kelas tertentu. Softmax memastikan bahwa jumlah semua probabilitas sama dengan 1. Hal ini sangat berguna ketika berhadapan dengan kelas yang saling eksklusif.

Memahami Training dan Validation Loss

Deep Learning telah merevolusi bidang kecerdasan buatan, memungkinkan mesin belajar dari data dan membuat prediksi dengan akurasi luar biasa. Namun, melatih model deep learning bisa menjadi tugas yang menantang, karena kita perlu mengoptimalkan model yang kompleks dengan jutaan parameter. Salah satu komponen penting dari proses pengoptimalan ini adalah memahami training dan validation loss.

Training Loss

Saat melatih model deep learning, kita ingin meminimalkan perbedaan antara keluaran yang diprediksi dan keluaran sebenarnya. Training loss, juga disebut objective function atau cost function, mengukur perbedaan antara keluaran yang diprediksi dan keluaran aktual untuk satu contoh pelatihan. Tujuan dari proses pelatihan adalah untuk meminimalkan training loss di semua contoh pelatihan, yang dicapai melalui algoritma pengoptimalan seperti stochastic gradient descent (SGD).

Training loss adalah metrik fundamental dalam deep learning, karena memandu proses pembelajaran. Saat model dilatih, training loss akan berkurang secara bertahap. Jika training loss tidak berkurang, berarti model tidak belajar secara efektif, dan kita perlu menyesuaikan hyperparameter atau arsitektur model.

Validation Loss

Meskipun kita ingin meminimalkan training loss, tujuan utama kita adalah membangun model yang dapat meng-generalisasi data yang tidak terlihat dengan baik. Oleh karena itu, kita perlu mengukur performa model kita pada dataset terpisah yang belum pernah dilihat model tersebut selama pelatihan. Dataset ini disebut set validasi, dan loss yang terkait disebut validation loss.

Validation loss adalah metrik yang powerful untuk mengevaluasi performa generalisasi suatu model. Jika training loss berkurang, tetapi validation loss meningkat, hal ini menunjukkan bahwa model mengalami overfitting, artinya model mengingat data pelatihan tetapi gagal meng-generalisasi data baru. Di sisi lain, jika validation loss berkurang, model dapat diharapkan berfungsi dengan baik pada data yang belum pernah dilihat sebelumnya.

Contoh kurva underfitting

Contoh kurva overfitting

Memantau Training dan Validation Loss

Untuk memantau kemajuan dari training dan validation loss, kita biasanya memplotnya sebagai fungsi dari training epoch. Satu epoch mewakili satu iterasi pelatihan lengkap di seluruh training dataset. Dengan menganalisis kurva loss, kita dapat mendiagnosis masalah umum dalam deep learning, seperti overfitting, underfitting, atau ketidakstabilan model.

Salah satu tren populer dalam deep learning adalah menerapkan early stopping, yang berarti menghentikan proses pelatihan ketika validation loss tidak membaik. Teknik ini adalah cara sederhana untuk menghindari overfitting dan memastikan bahwa model dapat digeneralisasi dengan baik pada data baru.

6th International Conference of Computer and Informatics Engineering

Perhelatan International Conference of Computer and Informatics Engineering ke 6 akan dilangsungkan di Aruna, Senggigi Lombok, 14-15 September 2023. Terkait dengan kegiatan ini, kami mengirimkan satu berkas artikel riset bertajuk Machine Learning Algorithm and Modeling in Solar Irradiance Forecasting, dan statusnya accepted, 23 Agustus 2023. Penelitian dilakukan di Padepokan NEXT SYSTEM Bandung.

Terima kasih, hatur nuhun, matur nuwun kepada dosen-dosen dari Politeknik Negeri Jakarta yang telah memberikan dukungan dan berkolaborasi : Mr. Nana Sutarna, Ph.D., Ms. Dr. Prihatin Oktivasari, Ms. Murie Dwiyaniti, M.T., dan Mr. Tohazen, M.T.

IEEE Computational Intelligence Society dan IEEE Indonesia Section menjadi technical co-sponsor.

Konverter RS485 ke TTL

Produk yang satu ini murah meriah namun bisa menjawab kebutuhan untuk konversi dari RS485 ke TTL. Penulis menggunakannya untuk komunikasi ESP32 dengan sejumlah perangkat modbus slave, diantaranya: PZEM-017, PT100 dan Anemometer.

 

STM32: Cangkok Memori Flash

Ketersediaan ruang memori, khususnya Flash dan RAM, sering menjadi kendala ketika mengembangkan aplikasi berbasis MicroPython di platform mikrokontroler STM32, khususnya versi ekonomis seperti STM32F411CEU6 (Flash: 512k, RAM: 128k) atau STM32F401CCU6 (Flash: 256k, RAM: 64k)
.
Mikrokontroler yang satu ini memiliki CPU yang mumpuni, Cortex-M4, dengan dapur pacu 100 MHz dan 84 MHz. Namun ketika ditanam firmware MicroPython, ruang memori flash seperti tampak pada gambar terlampir (gambar dikutip dari Instagram pribadi usai riset 😃)


.
Ketika mencoba satu aplikasi yang cukup besar, ruang memori tidak cukup. Pilihannya, ganti dengan varian STM32 yang memiliki ruang memori flash yang lebih besar atau melakukan cangkok. Upgrade ke seri STM32 yang memiliki ruang hingga 2MB, misal STM32F429, yang harganya lumayan, karena disertai dengan daya gedor CPU yang lebih gegas (dapur pacu hingga 180 MHz); sementara yang menjadi kendala adalah ruang flash, bukan performa CPU.
.
Ketika itu, karena memerlukan ruang flash ekstra dan kinerja CPU bisa diterima, maka dipilih cara cangkok. Hasilnya bisa dilihat di gambar terlampir, ruang flash hasil cangkok menjadi sangat lapang dan leluasa ~ 4MB 😃

Project-Based Learning, 10.07.2023

Ada keseruan dalam membangun jaringan sensor terkait dengan kebutuhan monitoring di lingkungan sistem berbasis energi terbarukan. Terdiri dari sensor PT100 untuk mengukur temperatur permukaan panel surya, DHT22 untuk mengukur suhu dan kelembaban ambien. PZEM-017 untuk mengukur daya dan energi (DC). PZEM-016 untuk mengukur daya dan energi (AC). Sensor kecepatan angin dan pyranometer untuk mengukur iradiansi matahari.

Untuk kontroler, digunakan satu unit mikrokontroler ESP32, yang juga berfungsi sebagai data logger dan menyimpan data pengukuran di sebuah cloud server.

Project-based learning kali ini diikuti oleh peserta dari Badan Riset dan Inovasi Nasional (BRIN), berlangsung di Padepokan NEXT SYSTEM Bandung.

 

Praktisi Mengajar Semester Genap 2022/2023

Di semester genap tahun ajaran 2022/2023, kembali mendapat kepercayaan dari teman-teman di Politeknik Negeri Sriwijaya, untuk mengisi 3 (tiga) slot Praktisi Mengajar, total 36 jam. Adapun mata kuliah yang dipercayakan adalah Operating System, Cloud Computing dan Computer Programming.

Terima kasih kepada dosen pengampu, Bapak Sopian Soim, S.T., M.T., dan seluruh teman-teman mahasiswa/i yang sudah setia bergabung di perkuliahan online selama 3 x 12 jam.

Kuliah Pembekalan Robotika Institut Pertanian Bogor, 13.05.2023

Hari Sabtu, 13 Mei 2023, mendapat kesempatan dan kepercayaan menjadi nara sumber di sesi Kuliah Pembekalan Robotika yang diadakan Prodi Teknologi Rekayasa Komputer, Sekolah Vokasi Institut Pertanian Bogor.

Sesi kuliah yang berlangsung selama 120 menit, diikuti oleh hampir 100 mahasiswa/i.

Terima kasih kepada Bapak Bayu Widodo, M.T. dan seluruh rekan mahasiwa/i Prodi Teknologi Rekayasa Komputer yang telah mengikuti perkuliahan ini.

Fast Track Pemrograman dan Aplikasi FPGA, 03.05.2023 – 05.05.2023

Pertapaan terkait dengan Field Programmable Gate Array (FPGA) berlangsung selama 3 hari, 3 – 5 Mei 2023, di Padepokan NEXT SYSTEM Bandung. Pertapaan ini diadakan secara exclusive untuk PT. Setia Zam Med, Depok, dengan peserta Herru Setiawan dan Denny Saepoel Ramadhan.

Pelaksanaan pelatihan berjalan dengan sangat baik, peserta memperoleh pengetahuan dan keterampilan yang diperlukan dalam memrogram dan mengaplikaskan FPGA secara efektif. Semangat untuk lanjut ke materi FPGA berikutnya 🙂

Computer Vision dan Machine Learning, 02.03.2023 – 04.03.2023

Bersama salah satu peserta pelatihan Computer Vision dan Machine Learning yang digelar di Padepokan NEXT SYSTEM Bandung, 2 – 4 Maret 2022. Bapak Tulus Pramuji, B.Eng, M.T., dari Prodi Teknik Elektronika, Politeknik Negeri Semarang.

Akhirnya, Pak Tulus Pramuji hadir juga di Padepokan NEXT SYSTEM Bandung. Walaupun bukan pertama kali hadir, namun rasa haus dan laparnya terpuaskan ketika bisa ikut pertapaan secara langsung 🙂 Di masa 2020 – 2022, beberapa kali beliau menghubungi kami, menyampaikan kerinduannya untuk hadir, namun bebeerapa kali pula harus dibatalkan karena situasi yang tidak kondusif.

Salam sehat dan semangat selalu, Pak! Sampai jumpa di pertapaan berikutnya 🙂