Kategori
malware

Malware Detection System with Self-Supervised Learning and Multimodal

Malware has become a serious threat to the internet. According to antivirus company McAfee, an average of 588 malware attacks occurs every minute. The LockBit ransomware infected Indonesia National Data Center and caused the downtime of 282 Indonesian government institutions’ services for more than a week. Malware also caused economic losses. During 2023, it was reported that $1.1 trillion in ransomware payments were made.

To detect malware, antivirus still relies on signature-based and heuristic-based detection techniques. This technique is effective for detecting malware. However, malware signatures and heuristic rules are compiled by malware analysts manually. It takes time and special skills to detect malware and create a signature. With the growing number of malwares, an automatic malware detection process is required. For this reason, machine learning technology is implemented for malware detection. With machine learning, the malware detection process is carried out automatically. However, the implementation of machine learning on malware detection still faces several problems. First the dataset labeling process takes a significant amount of time. Second, machine learning is not yet capable of detecting new malware. This highlights the need for a new malware detection method.

In this study, a new malware detection method using machine learning is proposed to address these problems. The approach involves developing new detection techniques based on self-supervised learning methods and a multimodal architecture. Self-supervised learning techniques, which have been successfully applied in computer vision, achieve competitive results with supervised learning techniques but do not require an extensive labeling process.

A novel malware detection method based on self-supervised has been developed, eliminating the need for a large labeling process. New malware was detected using multimodal methods. Malware files were converted into images, and their patterns were analyzed. Assuming that new malware reused code from known malware, the multimodal identified new malware by recognizing patterns from previously identified malware. The multimodal architecture combines two malware detection methods: one using image representations and the other using audio representations.

The development of the proposed malware detection method is divided into three stages. The first stage involves developing a malware detection method using an image-based representation method with self-supervised learning (SSL). The second stage focuses on the development of a malware detection method utilizing audio representation with convolutional neural network (CNN). Finally, the third stage involves the development of multimodal architecture. The methods for all three stages are conducted using an experimental approach.

The novelty of this research lies in the development of MalSSL, a malware detection method that does not require an extensive labeling process and multimodal approach to recognize new malware. MalSSL, the proposed method based on self-supervised learning and image representation, achieves malware classification accuracy of 98.4% without the need for labeling. The multimodal architecture, which combines image and audio representations using a late fusion approach, can detect new malware variants with an accuracy of 95.1%. Additionally, it achieves an accuracy of 99.7% in classifying known malware.

Paper:

https://ieeexplore.ieee.org/document/10506513

code:

https://github.com/julismail/Self-Supervised

https://github.com/julismail/Midalf

Kategori
machine learning

Pengenalan SSL

Berikut ini materi kuliah machine learning di STEI ITB tentang pengenalan SSL (Self-Supervised Learning) tanggal 12 November 2024

https://de.slideshare.net/slideshow/introduction-to-self-supervised-learning-kuliah-machine-learning-stei-itb/273221174

referensi:

  1. presentasi yann lecun, Deep Learning Hardware: Past, Present, & Future di ISSCC, San Francisco, 2019-02-18, http://yann.lecun.com
  2. presentasi ishan misra, Self-supervised learning in computer vision, https://atcold.github.io/NYU-DLSP21/en/week10/10-1/
Kategori
machine learning Uncategorized @id

Kuliah AI-Big Data – Latihan

  1. Jelaskan strategi apa saja yang dapat dilakukan untuk meningkatkan performa dari sebuah model machine learning?(minimal 5)
  2. Jelaskan bagaimana sebaiknya kita membagi sebuah dataset machine learning?
  3. Model machine learning diharapkan memiliki performa yang baik pada tahap: 

a) training, 

b) validasi, 

c) testing dan 

d) implementasi di dunia nyata. 

Setiap tahapan memiliki strategi optimasi performa yang berbeda. Jelaskan langkah apa saja yang dapat dilakukan untuk meningkatkan performa pada setiap tahapan?

4. Jelaskan evaluation metrik apa saja yang dapat kita gunakan untuk menguji performa model machine learning!

5. Jelaskan bagaimana hubungan antara bias, variance dan human level performance!

Semoga Bermanfaat!

Kategori
machine learning

Speech Synthesis Markup Language

Saya lanjutkan catatan dari training AI102 Azure. Masih tentang modul speech service.Kali ini tentang speech synthesis markup language. Dengan speech SDK kita bisa mengubah teks jadi speech,contohnya dengan metode SpeakTextAsync() . Selain itu speech service juga mendukung sintaks XML-based untuk menjelaskan karakteristik speech yang mau kita generate. Sintaks SSML (Speech Syntesis Markup Language) dapat digunakan untuk mengatur keluaran suara yang kita buat, misalnya:

  1. Menentukan gaya suara tertentu, misalnya seperti “excited” (senang) atau “cheerful” (riang) ketika menggunakan suara netral
  2. Menambahkan pause atau silence
  3. menentukan phonemes (pengucapan phonetic) tertentu, contohnya “SQL” dibaca menjadi “sequel”
  4. menyesuaikan prosody dari suara (pitch, timbre dan speaking rate)
  5. menggunakan ruls “say-as” untuk mendefinisikan string tertentu sebagai tanggal, waktu, nomer telefon dll
  6. Menambahkan rekaman suara atau audio, contohnya untuk menambahkan pesan tertentu atau mensimulasikan sebuah background noise

SSML dapat mengatur dialog antara 2 suara netral contohnya berikut ini:

a. Ariana (Cheerfully): “I say tomato:

b. Bob: ” I say tomato (pronounced tom-ah-toe).. let’s call the whole thing off!”

Untuk mengubah deskripsi SSML ke speech service, kita bisa menggunakan metoda SpeakSsmkAsync() . Contohnya : speechSynthesizer.SpeakSsmlAsync(ssml_string);

Info lebih lanjut tentang SSML bisa dilihat disini:

https://docs.microsoft.com/id-id/azure/cognitive-services/speech-service/speech-synthesis-markup?tabs=csharp

Semoga Bermanfaat!

Kategori
machine learning

AI102 -h4

Alhamdulillah hari ini hari terakhir training Microsoft AI102. Karena hari terakhir, jadi trainernya kejer setoran, diabisin 4 modul, modul 9-12. Modul 9 temanya masih tentang komputer vision. Tugasnya bikin model untuk klasifikasi buah (apel, banana dan jeruk). Kita dikenalin pake portal https://customvision.ai , trus musti bikin resource custom visual di azure. Pertama ngelabelin dulu gambar buah, trus coba ditraining dan dites klasifikasi. Tutorialnya bisa dilihat disini:

https://microsoftlearning.github.io/AI-102-AIEngineer/Instructions/17-image-classification.html

Dokumentasinya ada disini:

https://docs.microsoft.com/id-id/azure/cognitive-services/custom-vision-service/

Lanjut bikin sistem deteksi obyek, temanya masih deteksi gambar, cuman beda dengan tugas sebelumnya, dalam 1 gambar ada beberapa buah. Sama musti labeling dulu secara manual. Tutorialnya bisa dilihat disini

https://microsoftlearning.github.io/AI-102-AIEngineer/Instructions/18-object-detection.html

Lanjut modul 10 tugasnya bikin sistem deteksi wajah. Jadi dari input foto, sistem harus bisa ngenalin ada berapa orang (wajah) disana. Terus sistemnya bisa nganalisa juga beberapa fitur kayak occlusion, blur sama kacamata. Occlusion tuh maksudnya kayak ada pake sesuatu, atau ada penghalang di mukanya. Misalnya pake syal, jenggot, topi dll. Modulnya bisa dilihat disini:

https://microsoftlearning.github.io/AI-102-AIEngineer/Instructions/19-face-service.html

Dokumentasi tentang sistem deteksi wajah punya azure bisa dilihat disini:

https://docs.microsoft.com/id-id/azure/cognitive-services/computer-vision/index-identity

Sampai disini dulu deh, modul 11 sama 12 insyaallah besok saya bahas. Semoga bermanfaat!

Kategori
machine learning

AI102 -H3

Hari ini saya lanjut training AI102- Microsoft Azure AI hari ke 3. Hari ini cuman belajar 2 modul. Modul 7 masih lanjutan bikin bot, dan modul 8 tentang computer vision. Modul 7 ini diajarin pake bot framework emulator. Tugas pertama bikin botnya bisa ngasih respons yang sama dengan yang diinputin orang, jadi kayak echo. Terus tugas kedua bikin bot yang bisa jawab kalo kita nanya waktu. Tugas berikutnya adalah bikin bot juga tapi pake frameform composer. Nah ini udah ada kayak GUI nya. Jadi bikin botnya kayak kita bikin flowchart.Latihannya pake openweather API. Terus kita disuruh bikin weather bot. Tar kita bisa ngobrol sama si weather bot.

Lanjut modul 8 adalah tentang computer vision. Jadi yang pertama tugasnya bikin model yang bisa mendekripsikan gambar. Misalnya itu gambar orang, atau gambar pemandangan dst. Terus bisa mendeteksi landmark, merek, mengkategorikan gambar, sama ngedeteksi ada konten dewasa apa gak di gambar itu. Sama sistem bisa bikin thumbnail dari gambar.

Dokumentasi lebih lanjut bisa dilihat disini:

https://docs.microsoft.com/id-id/azure/cognitive-services/computer-vision/

Terus di modul ini diajarin juga pake sistem video analyzer https://www.videoindexer.ai . Jadi kalo kita kasi input sebuah video, sistem ini bisa:

  1. bikin transkrip suara dari videod
  2. deteksi wajah ada siapa aja di video tersebut
  3. memprediksi topik apa yang dibicarakan di video tersebut
  4. deteksi obyek apa aja yang ada divideo
  5. dll

dokumentasinya bisa dilihat disini:

https://docs.microsoft.com/id-id/azure/azure-video-indexer/

Semoga bermanfaat!

materinya bisa dilihat disini:

https://microsoftlearning.github.io/AI-102-AIEngineer/

Kategori
machine learning

Training AI102-h2

Hari ini materinya full tentang NLP (natural language processing). Dimulai dari modul 3, kita pake service azure yang bisa ngedeteksi bahasa. Jadi kalo kita masukin sebuah kata, dia bisa mendeteksi itu bahasa apa. Terus dilanjutkan dengan analisa sentimen, misalnya dari input review sebuah hotel, sistem bisa mendeteksi apakah reviewnya positif atau negatif.

Selain itu juga deteksi kata-kata kunci. Kata kunci ini bisa berguna buat menentukan topik dari sebuah kalimat. Dari kalimat input kita bisa juga mendeteksi entitas, maksudnya kayak tempat, orang, waktu dll yang disebutkan di kalimat. Ada juga fungsi get linked entities, ini untuk mendeteksi tautan (link web) ke sebuah entity.

Masih dari modul 3, latihan berikutnya adalah mendeteksi bahasa dan menerjemahkan ke bahasa inggris. Nah disini kayaknya saya agak salah kodingannya, karena ada kalimat bahasa prancis yang kedetek juga sebagai bahasa inggris.

Lanjut ke modul 4. Modul ini tentang speech recognition. Modul ini trainernya nyuruh jangan pake extremlabs, tapi nyoba di komputer masing2. Karena butuh mic buat ngenalin suara. Jadinya saya musti unduh dan instal visual studio, dotnet sama python. Nah cuman python nya gak tau kenapa gak bisa diupdate, jadi ada beberapa kodingan yang gak jalan. Saya belum beres ngerjain modul ini. Kalo liat trainernya modul ini kita bikin sistem yang bisa ngenalin suara, trus tar diubah jadi text, alias speech-to-text.

Trus didemoin juga bikin sistem speech synthesis. Contohnya sistem bisa ngasih tau sekarang jam berapa, pake suara. Suaranya bisa diganti2 juga. Lanjut trainernya demoin juga bikin speech translation. Jadi kita ngomong terus tar dikenalin sama sistem dan diterjemahkan.

Lanjut modul 5 tentang language understanding. Jadi kita bikin sistem yang bisa ngenalin maksud dari sebuah input. Inputnya kalimat bahasa inggris dengan berbagai gaya. Misalnya Inggrisnya orang amrik sama orang Inggris kan gayanya ngomongnya beda, nah sistem harus bisa ngenalin. Yang dicoba fitur getday, getdate, gettime. Terus bisa ngenalin juga entity, misalnya lokasi (kota). Selain itu bisa ngenalin dibikin juga sinonim nama hari misalnya sunday jadi sun dst. Terus ada juga pilihan pake regex, misalnya untuk ngenalin tanggal. Ada fitur active learning juga, jadi klo ada yang gak dikenalin sama sistem, bisa kayak ditraining ulang.

Nah yang terakhir modul 6, kita disuruh bikin bot Q&A. Bot ini bisa chating dengan orang dan ngejawab pertanyaan. Lumayan ngebut trainernya hari ini 4 modul sekaligus. Tapi seru banget. Besok katanya mulai beralih ke vision. Semoga bermanfaat!

Materinya bisa dilihat disini:

https://microsoftlearning.github.io/AI-102-AIEngineer/

Kategori
machine learning

Training AI102 – Hari 1

Saya coba cerita pengalaman saya ikut training Microsoft AI-102 . Hari pertama disuruh register di 3 website : Skillpipe, Xtremelabs sama Azure. Skillpipe buat baca buku manualnya, Xtremelabs kayak virtual mesin buat praktikum, Azure ini yang menyediakan berbagai service AI.

Terus masuk modul 1, disini trainernya ngasih sedikit teori pengenalan tentang AI, dan tentang azure. Modul 2 kita ngembangun aplikasi AI dengan cognitive service. Cognitive service ini beberapa service yang disediakan Microsoft buat bikin model AI. Service ini bisa dipake buat bikin model NLP, Vision, Speech dll.

Pas praktek pertama diminta clone materi training ini dari github disimpen di xtremelabs. Trus dijalanin pake VScode. Kemudian suruh register cognitive service. Kalo udah register tar kita dapet endpoint, subscription key sama resource location. Setelah itu praktek modul 1-getting started. Yaitu masang API si cognitive service untuk deteksi bahasa. Jadi tar klo kita ngetik sebuah kata tertentu, sistem akan mendeteksi itu bahasa apa.

Ada dua bahasa yang tersedia C# dan python. Kita cuman diminta masukin endpoint sama key. Kemudian disuruh test. Awalnya sama coba pake C#, cuman sampe di lab berapa ada eror permission denied, udah coba ngoprek gak bisa2, akhirnya beralih pake Python. Alhamdulillah lancar. Kayaknya ada salah pas create kunci baru.

Kemudian dikenalin tentang SDK, kita nginstal paket SDK Text Analytic. Terus setting endpoint dan kunci lagi. Di modul ini ada fungsi GetLanguage yang bisa mendeteksi bahasa.

Terus belajar tentang security. Disini diajarin bikin vault buat nyimpan kunci authentikasi, dan cara komunikasi yang aman dari aplikasi kita ke server azure. Kemudian belajar tentang monitor, kita diajarin monitor keamanan si aplikasi. Diajarin bikin rules yang bisa mendeteksi aktivitas tertentu. Rulesnya bisa ngasih alert juga kalo ada aktivitas mencurigakan. Kemudian diajarin bikin metrik. Saya baru sampe situ ngopreknya, sebenernya ada lagi satu latihan tentang container. Jadi kita bisa bikin kontainer buat hosting cognitive service di server kita sendiri. Nanti kalo udah berhasil saya coba cerita. Materinya bisa dilihat disini:

https://microsoftlearning.github.io/AI-102-AIEngineer/Instructions/04-use-a-container.html

Kodingan:

https://github.com/MicrosoftLearning/AI-102-AIEngineer

Semoga Bermanfaat!

Kategori
machine learning

Microsoft Azure AI training

Saya lagi ikut training Microsoft Azure AI. Training ini memperkenalkan tentang platform Azure AI. Materinya ternyata dishare juga di github berikut ini:

https://microsoftlearning.github.io/AI-102-AIEngineer/

Kodingan juga ada disini:

https://github.com/MicrosoftLearning/AI-102-AIEngineer

Kodingannya tersedia pake python sama c#, trainernya nyontohinnya pake visual studio. Cuman akses ke azure sama labnya berbayar. Lumayan seru trainingnya. Semoga Bermanfaat!

beberapa study guide buat exam:

https://blog.cloudthat.com/study-guide-for-exam-ai-102-designing-and-implementing-an-azure-ai-solution/
Kategori
machine learning

XAI : Explainable Artificial Intelligence

Saya nemu tulisan menarik dari mas Hatma tentang XAI : Explainable Artificial Intelligence. Jadi Machine Learning dan Artificial Intelligence saat ini udah mulai banyak dipake. Misalnya untuk deteksi orang pake masker atau gak dari kamera, atau untuk baca plat nomor mobil dari kamera, sampai untuk prediksi tren harga saham dll.

Nah teknologi ML dan AI ini ada banyak banget, mulai dari yang sederhana sampe yang kompleks. Cuman semakin canggih algoritma yang digunakan kadang semakin sulit untuk dijelaskan atau dipahami. Misalnya kita bikin sistem ML untuk prediksi kanker dari sebuah hasil Scan. Nah mesin biasanya dikasi sejumlah gambar hasil scan beserta labelnya misalnya kanker atau bukan kanker. Kemudian si mesin akan mencari pola yang bisa ngebedain antara kanker dan bukan. Sehingga dia bisa melakukan model untuk melakukan klasifikasi.

Cuman semakin kompleks sistem ML misalnya pake deep learning, maka biasanya semakin sulit hasil klasifikasinya dapat dipahami atau dijelaskan ke orang. Kenapa gambar A itu kanker, kenapa yang B bukan kanker misalnya.

Nah disinilah muncul XAI (explainable machine learning). XAI ini berusaha bikin model AI yang keputusan atau klasifikasinya bisa dijelaskan/dipahami. Mas Hatma dari ITS di tulisannya cerita panjang lebar tentang apa itu XAI. Disana dia jelasin tentang apa itu transparansi algoritma, penjelasan global dan penjelasan lokal.

Kemudian dia cerita juga Model AI mana yang memiliki transparansi tinggi, dan model mana yang kompleks. Kemudian untuk yang kompleks ada beberapa metode XAI yang bisa digunakan diantaranya:

  1. Partial Dependence Plot (PDP)
  2. Individual Conditional Expectation (ICE)
  3. Feature Interaction
  4. Local Interpretable Model Agnostic Explanation (LIME)
  5. Scoped Rules (Anchors)
  6. SHAP (SHapley Addictive exPlanations

Tulisan lengkapnya bisa dilihat disini:

Tentang buku interpretable machine learning:

https://interpretable-ml.keamanansiber.id

Video demo tentang XAI dari mas Hatma dan Pruf Mushashi:

Semoga Bermanfaat!