Sebelumnya saya udah share kurikulum machine learning for beginner. Ada satu materi bagus lagi dari microsoft yaitu kurikulum data science for beginner. Materi ini adalah pengenalan data science untuk pemula. Materinya dibagi dalam 10 minggu dan 20 materi kuliah tentang data science. Bisa dilihat disini:
Microsoft baru saja nyediain kurikulum machine learning for beginners. Kurikulum ini bisa dipake buat belajar machine learning. Kurikulumnya dirancang buat 12 minggu, terdiri dari 26 pelajaran tentang mesin learning. Prakteknya pake library scikit-learn.
Setiap pelajaran ada kuis pretest dan post test, instruksi kuliah, solusi dan tugas. Kurikulum ini dirancang berbasis proyek. Link kurikulumnya bisa dilihat disini:
Ikutin lecture dan menyelesaikan aktifitas yang ada disana
Membuat dan menyelesaikan projek; ada solusi juga yang disediakan disana
Ikut kuis post-lecture
Selesaikan challenge (tantangan)
Selesaikan assignment (tugas)
Tulis komen di discussion board di rubrik PAT (Progress assessment tool)
Materi prakteknya pake python, tapi ada juga beberapa materi yang tersedia dalam bahasa R. Ada banyak kuis, total ada 52, masing2 terdiri dari 3 pertanyaan. Daftar materinya bisa dilihat disini:
Our research article has been published on IJAIT – International Journal of Applied Science. IJAIT is a research journal in the field of information technology and computer engineering. The journal is open access and indexed in DOAJ. Currently there is no publication fees. From my experience, the submission and review process is not complicated. It took around 3 months from my submission until published.
Comments from reviewers are very good, I get a lot of input from reviewers. I got about 3 rounds of review process. This journal can be seen here:
Our research title is Study of Internet and Social Media Addiction in Indonesia during Covid-19. We did a study on social media addiction in Indonesia, especially during the pandemic. We conduct surveys, and perform analysis with machine learning. There are around 2309 respondents from 31 provinces involved. The survey was conducted with Kimberley Young’s Internet Addiction Test (IAT) method.
We found that around 25% of respondents were Internet addicted. High school students and college students have a higher risk of addiction. YouTube and Instagram are the most addicted platform to our respondents. The article is can be seen here:
Saya lagi baca cerita tentang arthur samuel checkers game. Arthur samuel ini dianggap salah satu pioner artificial intellegence. Dia profesor di MIT. Jadi sekitar tahun 1950 dia bikin program game checker. Checker ini game komputer kayak catur. Jadi dia bikin game yang bisa maen checker sendiri melawan komputer sebanyak ratusan ribu kali. Dari ratusan ribu game itu komputer mempelajari pergerakan dan posisi apa yang bikin menang, dan pergerakan apa yang bikin game itu kalah.
Dengan cara itu komputer bisa ngalahin arthur dalam game checker tersebut. Cara mesin belajar dengan bikin semacam search tree untuk mencari posisi dan pergerakan yang mungkin. Karena pada saat itu memori komputer masih sangat kecil, dia menggunakan teknik yang disebut alpha-beta pruning.
Jadi dia pake sistem skoring. Fungsinya untuk mengukur kemungkinan menang dari posisi di papan saat ini. Yang dihitung diantaranya jumlah catur tersisa, jumlah raja, dan kemungkinan bidak yang jadi raja. Komputer memilih langkah yang akan dipilih menggunakan strategi minimax. Maksudnya dia akan menghitung nilai optimal dari gerakan yang dapat diambil.
Samuel membuat juga mekanisme seperti rote learning, dimana komputer mengingat semua posisi yang pernah diambil, serta probabilitas kemenangannya. Program ini terus diperbaiki Samuel sehingga kemudian dapat mengalahkan pemain catur amatir.
Dengan game ini Samuel mengenalkan istilah machine learning. Dia mendifinisikan machine learning sebagai ilmu yang memberikan komputer kemampuan untuk belajar, tanpa harus diprogram secara khusus.
Tom Mitchell profesor komputer di Carnegie Melon kemudian membuat definisi machine learning yang lebih detail. Yaitu sebuah komputer program belajar dari experience E, dari task T dan dengan ukuran performa P, bila performa pada T yang diukur dengan P meningkat dengan eksperience E.
Pada game checker, experience E adalah pengalaman si komputer memainkan ratusan ribu game. Task T adalah task untuk bermain checker dan performan P adalah probabilitas kemenangan game.
Contoh lain misalnya pada program filtering email spam. Email mempelajari bagaimana melakukan klasifikasi email spam yang lebih baik. Jadi klasifikasi email adalah task T, performanya diukur dengan P, dan eksperience E.
Saya lagi baca paper Malware classification with Word2Vec, HMM2Vec, BERT, and ELMo karya kale dkk. Dia ngebangun sistem klasifikasi malware dengan word2vec. Jadi dia pake fitur opcode dari malware, kemudian disusun jadi teknik embedding NLP pake Word2Vec, HMM2Vec, BERT, dan ELMo.
Kemudian dilakukan klasifikasi pake support vector machines (SVM), k-nearest neighbor (kNN), random forests (RF), dan convolutional neural networks (CNN).
Eksperimennya pake 7 family malware. Menurut mereka, performancenya lebih bagus dan training timenya lebih cepet dibandingin benchmark.
Opcodenya diekstrak pake objdump. 3 opcode yang paling sering muncul adalah, Mov, add dan push. 7 family malware yang dipilih karena punya sampel lebih dari 1000 yaitu bho, ceeinject, Fakerean,onlinegames, Renos, Vobfus, dan winwebsec.
Buat para penggemar machine learning, nyari dataset tuh penting banget. Tadi nemu ada yang share kumpulan dataset publik
Mall Customers Dataset:Â info tentang pengunjung mall, diantaranya gender, customer id, age, annual income, and spending score. Bisa dipake untuk segmentasi pelanggan berdasarkan umur, penghasilan dll. .
Boston Housing Dataset:Â Hasil sensus dari US Cencus Service (kayak BPS) di boston tentang macam2. Diantaranya kepadatan penduduk, tingkat kriminalitas, prorporsi lahan bisnis di daerah boston dll IRIS Dataset:Â tentang Bunga petal (daun) and sepal (kelopak). Bisa digunakan untuk klasifikasi dan regresi
Twitter US Airline Sentiment:Â Data Twitter review penerbangan di amerika pada bulan February 2015,diklasifikasikan sebagai komen positif, negatif, and neutral
COVID-19 Dataset: Dataset tentang Covid dari Allen Institute of AI. Ada 45 ribu penelitian ttg COVID-19.
MIMIC-III: dataset dari MIT Lab for Computational Physiology, tentang 40,ribu pasien kritis. ada info demographics, vital signs, laboratory tests, medications, dll
Saya lagi baca paper Efficient malware classification by binary sequences with one dimensional convolutional neural network karya Wei-cheng lin dan yi-ren yeh dari jurnal mathmatics mdpi. Menurut dia mengkonversi malware ke gambar grayscale merusak struktur kode binary yang 1 dimensi. Karena lebar gambar yang udah fix akan memotong urutan kode biner. Jadi mereka mengusulkan metode 1 dimensi CNN untuk klasifikasi malware. Mereka pake 2 dataset benchmark. Performanya lebih baik dibandingkan klasifikasi dengan 2 dimensi. Mereka menggunakan komputasi yang lebih kecil karena pake sequence bit/byte level yang lebih kecil.
Mereka mencoba beberapa urutan. Yang pertama adalah urutan byte. setiap urutan 8 bit di encode menjadi byte. Namun urutan byte akan menjadi panjang. Selain itu ukuran sampel yang berbeda menyulitkan implementasi di CNN. Mereka menggunakan juga resizing atau konpresi untuk menetapkan panhang urutan byte. Setiap sampel di resize menjadi 1×1024, 1×2304, 1×4906 dan 1×16.384. Setelah preprocessing kemudian diklasifikasi dengan CNN 1 dimensi.
Pada model yang diusulkan ada 5/6 blok konvolusi. Sebagian besar blok komvolusi memiliki layer konvolusi 1×3 dengan fungsi aktivasi Leaky RelU. Digunakan juga layer max-pooling setelah blok konvolusi. Kemudian ditambahkan layer konvolusi 1×8 dengan 8 striding dan zero-padding untuk mengubah ukuran input jadi 1 x 1 x 16.384. Layer konvolusi 1 x 8 akan mengurangi ukuran input dari 1 x 1 x 16.384 menjadi 1 x 1 x 2048.Setelah blok konvolusi terakhir tidak ditambahkan layer max-pooling.
Kemudian dicoba juga input sequence bit. Dilakukan resize juga untuk mendapatkan panjang yang tetap. Proses resizing ini sama seperti kompresi data. Dataset yang digunakan adalah Microsoft malware classification challenge dan Malimg. Data dibagi menjadi 80% training, 10% validasi dan 10% testing.
Hasil pengujian pada dataset microsoft diperoleh akurasi 95,49 % untuk sequence 1 x 1024 dan 96,32 untuk sequence 1×2304. Sementara pada dataset malimg diperoleh akurasi 98,47%
Saya lagi baca paper malware detection employed by visualization and deep neural network, karya Pinhero dkk dari Jurnal computers and security elsevier. Menurut dia klasifikasi malware secara otomatis masih banyak masalah:
Ekstraksi fitur: analisa statik bisa dihindari dengan teknik obfuscation. Sementara itu analisa dinamik butuh waktu lama dan bisa dikelabui dengan teknik evasion
Membangun model prediksi: Dataset training kualitasnya akan menurun seiring waktu sehingga tidak cukup untuk mendeteksi family malware tertentu.
Pinhero coba pake teknik visualisasi malware, dengan klasifikasi deep learning. Mereka menguji 12 arsitektur neural network berbeda dengan dataset sebanyak 20.199 malware mendapatkan hasil F-measure 99,97%. Dataset yang dipake dari Microsoft malware classification challenge BIG 2015 dan Malimg. Sampel Benign dikumpulkan dari berbagai sumber dan dianalisa dengan virustotal. Dataset malimg di reverse menjadi hexadesimal, kemudian diindeks ke colourmap, dimana intersection dari baris dan indeks kolom menentukan sebuah piksel.
Dataset Microsoft Malware classification (BIG 2015) memiliki 10.860 malware dengan 9 family. Dari dataset ini yang digunakan adalah data raw (rheksadesimal dari konten file biner). Dataset benign terdiri dari 12.971 sampel, dikumpulkan dari berbagai market place seperti: softonic, sourceforge, portable freeware dan driverpack solution. Kemudian diuji ke virustotal. Hanya yang 100% benign dari hasil virustotal yang digunakan.
Malware divisualisasikan sebagai grayscale, RGB dan markov. Dilakukan juga analisa teksture dengan filter gabor. Ukuran gambar diubah jadi 4 macam, 32×32, 64×64, 128×128 dan 256×256. Arsitektur yang digunakan diantaranya VGG3, ResNet50.
Dari hasil pengujian didapat hasil terbaik pada gambar RGB 256×256 dengan akurasi 97,38% untuk dataset pertama dan 99,21% untuk dataset ke dua. Klasifer dengan markov menghasilkan akurasi dan nila F-measure lebih baik dibandingkan gambar rgb dan grayscale.
Gabor menghasilkan nila F 99,2%. Dilakukan segmentasi eksekutable menjadi blok berikut: computed block entropy, dan representasikan blok entropi dalam bentuk gambar.
Varian malware pada family yang sama memiliki entropy gambar yang mirip. Model CNN terbaik adalah VGG3 baseline, VGG3 dengan dropout, VGG3 dengan dropout dan batch normalization dan ResNet-50
Saya lagi baca buku Approaching (almost) any machine learning problem. Buku ini tulisan Abhisekk Thakur. Buku ini kayak repository python khususnya vision. Menurut penulisnya buku ini beda sama buku tradisional. Kayaknya masih terus diupdate. Buku ini bukan pengenalan tentang algoritma mesin learning. Jadi sebelum baca buku ini baiknya udah punya dasar tentang ML.
Selain itu gak ada penjelasan matematik. Penulisnya fokus pada berbagai masalah ML yang sering dihadapi. Mr Thakur ini ahli data science dan 4x grandmaster di kaggle. Isi bukunya: