LSTM malware classification – Kang – Paper Review

Paper Title : Long short-term memory-based Malware classification Method for information Security

Authors: Jungho Kang, Sejun Jang, Shuyu Li, Young-Sik Jeong, Yunsick Sung

Venue: Elsevier Computers & electrical engineering, Vol 77, July 2019, pages 366-375

URLhttps://doi.org/10.1016/j.compeleceng.2019.06.014

Problem: 

Deteksi malware signature based yang banyak digunakan saat ini tidak mampu mendeteksi berbagai macam teknik obfuscation malware. Diperlukan pendekatan deteksi malware baru.

Contribution:

  1. Mengajukan metoda deteksi malware menggunakan Word2vec untuk klasifikasi malware. Word2vec dan one-hot encoding telah banyak diimplementasikan pada NLP
  2. Metoda klasifikasi malware baru menggunakan LSTM
  3. Mengajukan metode klasifikasi menggunakan API function dan opcode. Klasifikasi malware tradisional banyak menggunakan opcode atau API function name. Namun memiliki batasan dalam akurasi

Method/solution:

  1. Source assembly degenerate dari malicious file kemudian diekstrak opcode dan nama API function.
  2. Pada fase training, word2vec dan LSTM dilatih untuk melakukan klasifikasi malware ke dalam family
  3. Tahapan training adalah: input, preprocessing dan learning
  4. Pada tahap input, tool disassembly digunakan untuk mengekstrak label source assembly dari label file malicious.
  5. Pada tahap preprocessing, opcode dan nama API function diekstrak dari label source assembly
  6. Model Word2vec mempelajari opcode dan nama API function dengan network word2vec dan terdiri dari sebuah kamus dan matrix embedding.
  7. Opcode dan nama API function yang diekstrak diindeks dengan kamu berbasis vocabulary
  8. Embedding dilakukan dengan melakukan embedding matrix word2vec menggunakan index2vec
  9. Pada tahapan learning, network LSTM dilatih dengan vektor dari opcode dan nama function API dan label2nya
  10. Pada tahapan eksekusi, family dari sebuah malicious file ditentukan dengan mempelajari model word2vec dan network LSTM
  11. Proses preprocessing terdiri dari 8 tahap: 1) ekstrak opcode dan nama API function; 2) model word2vec belajar dari opcode dan api; 3) matrix embedding dan vocabulary degenerated; 4) Vocabulary-based dictionary degenerated dengan sorting; 5) index opcode dan api function dibuat dari dictionary berbasis word2index; 6) Jika opcode dan index function API lebih pendek dari maximum sequence length, ukurannya disamakan dengan zero-padding
  12. Label vector dibuat dengan one-hot encoding
  13. Vektor berbasis index degenerate dengan matrix embedding melalui fungsi index2vec
  14. Panjang vector opcode dan function API adalah 300, weight setiap cell pada hidden layer diinisialisasi dengan 1.
  15. Hidden layer memiliki 128 cell
  16. Output vector dikirim ke layer softmax
  17. Dataset menggunakan Microsoft malware classification challenge berukuran 500GB dan 10,868 malware pada 9 family
  18. Pada setiap malware setiap source assemblu degenerate dengan idapro
  19. 90% dataset digunakan pada training, 10% pada testing

Main result:

  1. Akurasi akhir yang dihasilkan adalah 97,59%
  2. Akurasi awal pada proses training adalah 77,11% dan secara bertahap meningkat menjadi 97,59%
  3. Akurasi sistem 0,5% lebih tinggi dibandingkan sistem pembanding one-hot encoding
  4. Proses konvergen juga lebih cepat 10 menit dibandingkan sistem pembanding
  5. Loss pada metode yang diusulkan adalah 0,73 dan menuru secara gradual menjadi 0,05. Sementara pada sistem pembanding lossnya adalah 1,21 dan konvergen menjadi 0,09. Loss yang didapat 0,04 lebih rendah dibandingkan metode one-hot encoding

Limitation:

  1. Komputasi besar karena menggunakan 2 fitur opcode dan function API
  2. Belum dilakukan klasifikasi malware berdasarkan family
  3. Pengujian hanya dilakukan pada malware Windows (PE)

Neurlux: Dynamic Malware Analysis – Jindal – PaperReview

Paper Title: Neurlux: Dynamic Malware Analysis Without Feature Engineering

Authors: Chani Jindal, Christopher Salls, Hojjat Aghakhani, Keith Long, Christopher Kruegel, Giovanni Vigna

Venue: ACM Annual Computer Security Applications Conference-2019

URL : https://dl.acm.org/doi/abs/10.1145/3359789.3359835

Problem: Pendekatan deteksi malware dengan machine learning masih mengalami kendala pada proses feature extraction. Proses ekstraksi feature membutuhkan waktu yang lama dan sulit untuk mengidentifikasi feature terbaik, karena berbagai macam jenis malware

Contribution

  1. Mengusulkan Neurlux, klasifikasi malware berbasis behavioural report yang dihasilkan oleh sandbox. Dengan cara ini maka tidak diperlukan proses feature engineering. Preprocessing dilaporkan dengan cleaning report menjadi kata-kata tertentu. Model kemudian mempelajari sequence dari kata-kata tersebut untuk membuat prediksi
  2. Membuat dan melakukan pengujian klasifikasi malware pada report analisa dinamis, termasuk metoda baru seperti stacking ensemble pada integrated feature dan model feature count.
  3. Menguji kemampuan generalisasi Neurlux dengan melakukan pengujian terhadap dataset baru dan format laporan baru, contohnya yang dibuat oleh sandbox baru
  4. Melakukan share source dan dataset di github

Method/solution

  1. Mengimplementasikan teknik klasifikasi document dengan word sequence dari NLP
  2. Memanfaatkan hasil report analisa dinamis cuckoo sandbox dengan neural network.
  3. Hasil report termasuk aktifitas network, perubahan registry, file actions dll
  4. Sebagai pembanding digunakan juga hasil report dari sandbox dari perusahaan antivirus, pada penelitian ini dinamakan VendorSandbox
  5. Menggunakan 2 dataset, dari antivirus (VendorDataset) dan EmberDataset
  6. VendorDataset terdiri dari 27.540 sampel windows x86 binary dengan 50% benign dan 50% malware. Sampel teridiri dari 1000 family malware
  7. DatasetEmber merupakan potongan dari dataset standar Ember, terdiri dari 42ribu bniaru windowsx86 dengan 50% benign dan 50% malware
  8. Membandingkan dengan MalDy dari Karbab et.al
  9. Data cleaning dilakukan untuk mengubah format report dalam bentuk dokumen JSON menjadi sequence word. Karekater seperti bracket dihilangkan. Kemudian dokumen diberi token untuk sejumlah kata tertentu, sehingga 10ribu kata yang paling banyak muncul dikonversi menjadi sequence numerik
  10. Data formatting dilakukan dengan konversi kata ke vektor, dengan representasi kata dalam continuous vector space.
  11. Menggunakan word embedding yang bisa ditraining, sehingga kata-kata yang mirip memiliki vektor yang sesuai.
  12. Model menggunakan kombinasi CNN, BiLSTM network dan Attention network. Model diharapkan dapat memahami pattern lexical tersembunyi pada malicious dan benign.
  13. Model terdiri dari sebuah layer CNN dan 2 pasang layer BiLSTM dan attention. Dua pasang BiLSTM dan Attention adalah implementasi dari metode hierarchical attention network
  14. CNN melakukan ekstrak feature local dan deep feature dari text input
  15. LSTM menghasilkan representasi high-level dari bidirectional LSTM menggunakan hidden unit dari forward dan backward LSTM. LSTM dapat menemukan temporal relationship dari feature
  16. Input adalah trainable word embedding dengan dimensi 256
  17. Bagian berbeda dari report memiliki importance yang berbeda dalam menentukan malicious behavior dari sampel
  18. Output Neurlux adalah skor 0-1 dimana 0 benign dan 1 adalah malicious
  19. 6 Feature utama adalah: API sequence calls, Mutexes, File system change, Registry changes dan loaded DLL
  20. Proses input generation terdiri dari: Feature selection, data cleaning, data formatting dan model training

Main result

  1. Menghasilkan akurasi 96,8% pada validasi K-fold
  2. Neurlux menghasilkan performa yang lebih baik dibandingkan pendekatan klasifikasi malware yang menggunakan feature engineering
  3. Menghasilkan generalisasi yang lebih baik dibanding metode pembanding
  4. Terdapat perbedaan report dari sampel yang sama dari sandbox yang berbeda. Namun perbedaan hanya pada penamaan feature
  5. Performa pada validation accuracy lebih baik daripada metode pembanding
  6. Teknik NLP pada klasifikasi dokumen berhasil diimplementasikan dengan baik, dan memiliki performa yang lebih baik daripada Neural network raw model
  7. Model dapat mempelajari kombinasi terbaik dari features. Model dapat mengenali operasi file yang dilakukan oleh malware dan API Calls
  8. Neurlux lebih kuat dibandingkan model yang diuji, dengan akurasi yang lebih tinggi pada pengujian dengan dataset dan format report yang berbeda. Sementara model raw bytes memiliki performa tidak baik pada klasifikasi di dataset dan format report berbeda.

Limitation:

  1. Hanya melakukan klasifikasi setelah proses analisa dinamis
  2. Membutuhkan data training besar dan akurat.
  3. Hanya diuji pada malware windows

Note

Model pembanding MalDY menggunakan NLP untuk memproses report sanbdbox. Teknik ini menggunakan model BOW (Bag of words) dan Common N-grams (CNG).

Bootsrap your own latent-Grill-PaperReview

Paper Title:Bootstrap Your Own Latent; A new approach to self-supervised learning

Authors: Jean Bastian Grill, Florian Strub, Florent Altche, Corentin Tallec, Pierre H.Richemond, Elena Buchatskaya, Carl Doersch, Bernardo Avila Pires, Zhaohan Daniel Guo, Mohammed Gheshlaghi Azar, Bilal Piot, Koray Kavukcuoglu, Remi Munos, Michal Valko

Venue: Advances in Neural Information Processing Systems 33 (NeurIPS 2020)

URL: https://arxiv.org/pdf/2006.07733

Problem:

Mendapatkan image representasi yang baik adalah sebuah tantangan dalam computer vision. Banyak pendekatan training telah diajukan untuk mengatasi tantangan ini diantaranya mengandalkan pada visual pretext task, seperti metoda contrastive dengan melakukan traning dengan mengurangi distance antara representasi dari augmented views yang berbeda dari gambar yang sama (positive pair) dan meningkatkan distance antara representasi dari augmented view dari gambar berbeda (negative pair).

Namun metode ini membutuhkan treatment khusus untuk negative pairs dan performansinya tergantung pada pemilihan image augmentation

Contribution:

  1. Mengenalkan BYOL, metode SSL (self-supervised Learning) baru
  2. BYOL menghasilkan performa lebih baik dibandingkan state-of-the-art semi-supervised dan transfer benchmarks
  3. BYOL lebih kuat terhadap perubahan batch size pada set augmentasi gambar dibandingkan pendekatan contrastive

Method/solution

  1. BYOL menggunakan 2 neural network: online dan target
  2. Online network ditentukan dengan sebuah set weight θ dan dibagi menjadi tiga tahapan: sebuah encoder fθ , projector g0 dan predictor q0
  3. Target network memiliki arsitektur yang sama dengan online network, tapi memiliki weight yang berbeda
  4. Target network menyediakan target regresi untuk train online network, dan parameternya secara exponensial mengubah rata-rata dari parameter 0
  5. Dari sebuah set image D, image x->D disampling dari D, dan 2 distribusi dari augmentasi image T dan T‘
  6. BYOL menghasilkan dua augmented view v dan v’
  7. Dari augmented view pertama v, online network menghasilkan representasi y0 dan proyeksi z0
  8. Target network menghasilkan y’ dan target proyeksi z’ dari augmented view v’
  9. Kemudian dihasilkan output prediksi q0 dari z’ dan l2 normalisasi q0 dan z’
  10. Prediktor ini hanya diterapkan pada online branch, sehingga arsitektur asimetrik antara online dan target
  11. Pada setiap training step, dilakukan optimasi stokastik untuk minimasi L0
  12. Pada setiap akhir training kita hanya menyimpan f0
  13. Dibandingkan metode lain, diperhitungkan juga jumlah inference time weight hanya pada representasi akhir f0
  14. Pengujian dilakukan dengan dataset ILSVRC-2012
  15. Benchmark adalah semi-supervised pada ImageNet
  16. Diukur transfer capability dari dataset dan task lain, termasuk klasifikasi, segmentasi, deteksi objek dan estimasi depth

Main result

  1. BYOL mencapai performansi lebih baik dibandingkan metode state-of-the-art contrastive method tanpa negative pairs
  2. Pada pengujian linear evaluasi pada ImageNet BYOL mencapai akurasi top-1 74,3%
  3. Mengurangi gap dengan supervised baseline 78,9%
  4. Pada arsitektur yang lebih dalam dan lebih lebar, menghasilkan performa 79,6% (top-1) akurasi. Lebih baik dibandingkan state-of-the-art self-supervised
  5. Pada ResNet-50 BYOL mencapai akurasi 78,5% hamper menyerupai supervised baseline 78,9% pada arsitektur yang sama
  6. Mengginakan protocol semi-supervised dengan 1% dan 10% dataset ImageNet dihasilkan akurasi top-1 77,5% setelah fine-tuning diperoleh 100%
  7. Pengujian transfer ke task classification lain, BYOL menghasilkan performa lebih baik dibandingkan SimCLR pada semua benchmark dan Supervised-IN pada 7 dari 12 benchmark
  8. Representasi BYOL bisa ditransfer ke small images seperti COFAR, landscape (SUN397) , VOC 2007 dan teksture (DTD)
  9. Transfer ke task lain pada vision seperti semantic segmentasi, object detection dan depth estimasi, BYOL lebih baik dibandingkan baseline

Limitation:

  1. Fokus pada vision, belum diuji pada audio, video, text dl
  2. membutuhkan kemampuan dan resource besar untuk proses augmentasi untuk implementasi pada modal lainnya

Malware detection Malconv-Raff

Paper Title: Malware Detection by Eating a Whole Exe

Authors: Edward Raff, Jon Barket, Jared Sylvester, Robert Brandon, Bryan Catanzaro, Charles Nicholas

Venue: AAAI-2018 Workshop on Artificial Intelligence for Cyber Security

URL: https://arxiv.org/pdf/1710.09435.pdf

Problem: Membangun neural network untuk deteksi malware dari raw byte sequence memiliki banyak permasalahan yang tidak timbul pada image processing maupun NLP.  Diantaranya masalah sequence denganlebih dari 2 juta time steps dan masalah batch normalization sepertinya menyulitkan proses learning. 

Contribution:

Arsitektur neural network untuk deteksi malware yang dapat memproses sebuah byte sequence melalui 2 juta time steps

Method/solution

  1. Dataset menggunakan 2 juta binary dengan 1 juta benign dan 1 juta malicious
  2. Menggunakan arsitektur convolution network dengan sebuah global max-pooling dan fully connected layers
  3. Menggunakan embedding layer untuk memetakan setiap byte pada sebuah feature vector fixed length 
  4. Shallow architecture dengan sebuah filter width besar 500 bytes dikombinasikan dengan 500 aggresive stride untuk mendapatkan komputasi balanced pada data paralel dengan PyTorch
  5. Menggunakan pendekatan gated convolution
  6. Ukuran input feature step besar (2 juta time steps)
  7. Menggunakan DeCov Regularization dengan memberikan penalti pada korelasi antara hidden state activation pada layer kedua dari belakang
  8. Menggunakan softmax
  9. Menggunakan temporal max-pooling agar hasil lebih dapat dipahami.
  10. Menggunakan batch size 256 sampel per batch
  11. Training menggunakan 8 GPUs pada DGX-1 dengan 16,75 jam per epoch pada 10 epoch. 
  12. Evaluasi performansi model menggunakan balanced accuracy dan AUC

 

Main result:

  1. Proses training pada 2 juta sampel menghabiskan waktu 1 bulan
  2. Regularization DeCov meningkatkan akurasi dari model
  3. 58-61% informasi malware diperoleh dari PE-HEader
  4. Akurasi dengan batch-norm hanya mencapai 60% pada training dan 50% pada pengujian
  5. Batch-norm tidak efektif pada model karena proses training dilakukan pada binary executable

Limitation:

  1. Terjadi overfitting
  2. Terjadi failure pada Batch-normalization 
  3. Kesulitan membedakan sampel packed malware dan benign
  4. Pemakaian memori sangat besar

Proses analisa manual 1 binary oleh analis bisa mencapai 10 jam (Mohaisen and alrawi 2013). 

Deteksi Malware sequence modeling-Oak-Paper Review

Paper Title: Malware Detection on Highly Imbalanced Data through Sequence Modeling

Authors: Rajvardhan Oak, Min Du, David Yan, Harshvardhan Takawale, Idan Amit

Venue: AISec ’19, November 15, 2019, London, United Kingdom

URL: https://doi.org/10.1145/3338501.3357374

Problem: Deteksi malware Android menggunakan deep learning mengalami kendala dataset yang terbatas dan imbalanced.

Contribution: 

  1. Menggunakan model BERT untuk mengatasi permasalahan imbalanced dataset pada deteksi malware android dengan deep learning.
  2. Menggunakan supervised LSTM untuk klasifikasi malware, melakukan validasi asumsi bahwa sequnce informasi akan mempengaruhi klasifikasi
  3. Menangani permasalahan imbalanced dataset dengan menggunakan teknik NLP BERT
  4. Melakukan studi kelebihan pre-training BERT dengan membandingkan hasil deteksi pada beberapa model dengan nilai inisialisasi berbeda (random atau di pre-trained pada data android) dan dilakukan training pada dataset android yang kecil
  5. Mempelajari efektifitas implementasi model BERT untuk deteksi malware android dengan setting pengujian beragam, seperti mempelajari sequence aktifitas secara mendalam 
  6. Menampilkan berbagai analisa statistik untuk pengujian validitas

Method/solution

  1. Menggunakan dataset 180.000 sampel dengan 2/3nya adalah malware
  2. Menguji model bahasa BERT untuk deteksi malware pada dataset keseluruhan
  3. membangun re-balanced dataset yang memiliki sampel malwar eyang berbahaya
  4. melakukan simulasi kondisi dataset malware yang unbalanced
  5. Dataset yang digunakan dari Palo Alto Networks Wildfire yang kemudian dilakukan ekstraksi label action sequence dari aplikasi android.
  6. Action pada dataset bukan log dari function calls tertentu, melainkan deskripsi high level dari behavior setiap aplikasi, contohnya “file APK menggunakan HTTP post” atau “file APK membuat sebuah hidden file”
  7. Dari setiap sampel dicatat juga informasi seperti domain apa yang dihubungi, permission yang diminta, sequence dari aktivitas dinamik yang dibuat aplikasi dan sertifikat yang digunakan untuk sign APK.
  8. Aktifitas tersebut dicatat ketika aplikasi dimonitor dan dibuat urutan aktifitas secara kronologis.
  9. 174 aktifitas yang dicatat diubah menjadi integer
  10. Analisa behaviour dibuat dalam format XML
  11. Menggunakan analisa n-gram untuk analisa aktifitas malware
  12. Parameter yang diukur akurasi, presisi, recall dan F1-score berdasarkan nilai True Positive (TP), true negatives (TN) positives (P) dan negatives (N)
  13. Akurasi= (TP+TN)/(P+N) ; jumlah prediksi benar dibandingkan total sampel
  14. Precision=TP/P’ ; ketepatan prediksi malware
  15. recall=TP/P ; persentase malware dideteksi oleh model
  16. F1 score=2*precision*recall/(precision+recall) : evaluasi keseluruhan model
  17. Melakukan perbandingan analisa sequence dengan analisa bag-of-words
  18. Pembagian dataset 75% utk training; 25% pengujian
  19. Setiap activity sequence direpresentasikan menjadi activity vector Setiap nilai pada activity vector diganti dengan nilai Term Frequency-inverse Document Frequency (TF-IDF).
  20. Neural network menggunakan 3 hidden layer, masing2 100 neuron
  21. Rasio malware pada aplikasi android dimonitor menggunakan sistem Autofocus dari PaloALto
  22. Pada model unsupervised menggunakan metoda clustering, Autoencoder dan DAGMM.
  23. Untuk  baseline menggunakan metode deteksi semi-supervised anomaly detection Deeplog
  24. Clustering menggunakan K-means; dengan cosine distance sebagai distance metric dan K=2

Main result: 

  1. F1 Score 0,985 pada jumlah sampel 183.000 APK dengan, 66% nya adalah malware dan 33% benign
  2. Menggunakan BERT diraih F1 score  0.919 pada sebuah dataset dengan sampel malware sebanyak 0.5% saja
  3. Hasil pre-training model BERT sangat berguna ketika dataset training yang dilabel sedikit.
  4. Hasil preprocessing didapat total 183000 sequences; 120780 adalah malware dan 60390 benign
  5. Untuk LSTM didadapat nilai F1-0,985
  6. Positivity rates 0,01% untuk aplikasi lama
  7. Untuk file baru, positivity rates 2% untuk android dan 0,5% untuk windows

Limitation:

  1. Pendekatan TF-IDF ini hanya cocok untuk deteksi offline
  2. Hasil positivity rate masih rendah
  3. Terdapat banyak variant malware yang sama pada training dan test, baiknya ada penambahan variant identification pada pre-processing
  4. Tidak ada timestamp pada sampel maware
  5. Perlu dikaji atribusi malware ke dalam kelas atau family yang sama
  6. Perlu dibandingkan dengan model bahasa lainnya seperti XLNet

Pada bidang machine learning terjadi kemajuan pesat pada bidang klasifikasi. Di NLP dua arsitektur yang banyak digunakan adalah LSTM (Long Short-term Memory) dan BERT (Bidirectional encoder representations from transformer). LSTM adalah kelas khusus dari jaringan neural yang memiliki keunggulan dalam mengingat histori dari data sequence.LSTM menggunakan input current dan input histori untuk prediksi. BERT mencoba untuk membuat representasi deep bidirectional pada saat pre-training untuk unlabeled text dengan masked words dan sentences. Model pre-trained dapat difine-tuned dengan output single layer untuk beragam task downstream dengan jumlah training tambahan minimum. Model ini secara empiris bekerja dengan baik pada klasifikasi text, dan membutuhkan waktu train yang lebih sedikit.

LSTM efektif pada analisa file log dan sistem anomali deteksi. File log atau sequences aktivitas memiliki kemiripan dengan model language dimana sama2 memiliki ordered sequence dari tokens. Menurut penulis, model bahasa dapat memiliki performa yang baik pada deteksi malware. 

Ratio aplikasi android dunia dibandingkan total aplikasi sekitar 0.01% – 2%. Sehingga membangun model yang bisa berjalan pada dataset imbalanced adalah sebuah keuntungan. BERT adalah model bahasa state-of-the-art pada nlp. Pendahulu bert adalah transformer. Tidak seperti recurrent neural networks sequence history untuk prediksi, transformer menggunakan mekanisme self-attention untuk membuat model hubungan antara semua kata pada sebuah kalimat. 

BERT menggunakan training Transformer dua arah. BERT memiliki mekanisme pre-training yang dapat belajar parameter dengan self-supervised learning pada unlabeled dataset secara efektif.

Inovasi inti dari BERT adalah penggunaan model bahasa masked. Word sequence sebelum dimasukan ke BERT, 15% dari kata2 pada setiap sequence diganti dengan sebuah masking token. Model kemudian mencoba prediksi nilai asli dari masked words berdasarkan konteks dari kata-kata lain pada sequence. Poin penting untuk dicatat adalah model prediksi menggunakan semua konteks, diantaranya kata2 sebelum, dan sesudah masked word. Sebuah model pre-trained dapat melakukan model hubungan antara token (kata) pada konteks berbeda dengan efektif.

Langkah 

Self-supervised visual learning- Kolesnikov-review paper

Paper Title: Revisiting self-supervised visual representation learning

Authors: Alexander Kolesnikov, Xiaohua Zhai, Lucas Beyer

Venue:2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) 

URL: https://ieeexplore.ieee.org/document/8953672

Problem: Computer vision masih banyak bergantung pada supervised learning. Namun proses labeling data menjadi kendala pada supervised learning. Sehingga peneliti masih bergantung pada dataset yang tersedia saja. Untuk itu diperlukan baru dalam proses learning. Teknik yang cukup prospektif adalah self-supervised learning (SSL). SSL menerima unlabel data yang kemudian diformulasikan menjadi sebuah pretext learning task seperti prediksi konteks dan rotasi gambar. Namun Pretext task ini harus dirancang agar bisa memahami gambar input dengan benar. Paper ini melakukan studi tentang teknik apa saja yang dapat digunakan untuk meningkatkan performa SSL.

Contribution:

  1. Melakukan studi tentang teknik pretext task pada arsitektur CNN untuk meningkatkan performa SSL
  2. Melakukan studi empiris berbagai arsitektur SSL 

Method/solution:

  1. Model CNN menggunakan ResNet, Revnet dan VGG
  2. Teknik Self-supervised yang digunakan adalah rotation, exemplar, jogsaw, relative patch location
  3. Visual representasi dievaluasi dengan melakukan training pada sebuah model regresi logistik linear untuk menyelesaikan masalah klasifikasi image yang membutuhkan pemahaman high-level scene. Task ini disebut downstream task.
  4. Untuk mempercepat evaluasi digunakan teknik optimasi efficient convex untuk training model logistik regression menggunakan L-BFGS
  5. Dataset yang digunakan ImageNet dan Places205

Main result:

  1. Sifat arsitektur pada supervised tidak otomatis terbawa ketika diterjemahkan ke self-supervised learning. 
  2. Kualitas representasi yang dipelajari pada arsitektur CNN dengan skip-connections tidak menurun mendekati akhir model. Hal ini kontras dengan pengamatan pada arsitektur Alexnet.
  3. Meningkatkan jumlah filter pada sebuah model CNN dan menambah ukuran representasi secara signifikan dan konsisten meningkatkan kualitas dari representasi visual yang dipelajari
  4. Prosedur evaluasi dimana sebuah model linear di train pada sebuah representasi fixed-visual menggunakan stochastic gradient descent sensitive terhadap learning rate schedule dan membutuhkan banyak epoch untuk mendapatkan hasil.

Limitation:

  1. Hanya melakukan studi pada representasi image
  2. Tidak melakukan pengujian pada BERT
  3. Tidak melakukan pengujian dengan GAN

SSL adalah learning framework dimana sebuah supervised signal pada sebuah pretext task dibuat secara otomatis, dalam rangka untuk learn representations  yang berguna dalam menyelesaikan task. 

Banyak penelitian SSL yang menggunakan arsitektur AlexNet. Pada paper ini dilakukan studi implementasi varian ResNet dan arsitektur sebuah batch-normalized VGG. Semuanya menghasilkan performa tinggi pada training fully-supervised. VGG secara struktur dekat dengan AlexNet karena tidak memiliki skip-connections dan menggunkan layer yang fully-connected.

Pada pengujian awal, diamati properti dari ResNet model: kualitas representasi tidak menurun mendekati akhir network. Hipotesa penulis adalah ini akubat dari skip-connection membuat residual unit tidak bisa diinvert pada keadaan tertentu, sehingga menyebabkan penyimpanan informasi pada depth walaupun tidak relevan untuk pretext task. Berdasarkan hipotesis ini dimasukan RevNets pada studi ini karena memiliki stronger invertibility namun secara struktur mirip dengan ResNets

Self-Supervised-Doersch-Paper review

Paper Title: Multi-task Self-Supervised Visual Learning

Authors: Carl Doersch, Andrew Zisserman

Venue: 2017 IEEE International Conference on Computer Vision

URL: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8237488

Problem:Bagaimana melakukan kombinasi dari beberapa self-supervised task berbeda untuk melakukan training pada sebuah representasi visual? 

Apakah kombinasi tersebut menghasilkan performa yang lebih baik dibandingkan training pada satu task?

Contribution:

1. Melakukan implementasi 4 self-supervision task (Relative Positin, Colorization, esemplar task, dan motion segmentation) dan membandingkan performanya dengan 3 jenis pengukuran

2. Melakukan kombinasi taskt untuk training dan menguji performanya

3. Mencari cara mengatasi konflik yang timbul ketika melakukan kombinasi naive dari self-supervision task. 

Method/solution:

1. Membangun arsitektur multi-task network (naive) dengan sebuah common trunk dan  sebuah head (extra layer) pada setiap task. Arsitektur ini menggunakan Resnet-101 v2 pada TensorFlow-Slim. 

2. Menambahkan ekstensi lasso untuk memisahkan feature.

3.Melakukan Harmonisasi input jaringan dengan mengganti preprocessing pada task relative position dengan preprocessing yang sama dengan colorization. 

4. Melakukan distribusi training pada beberapa mesin. Setiap mesin melakukan training pada sebuah task.

5. Gradient dari setiap task disinkronisasi dan dirata2kan dengan RMSProp optimizer.

6. Training dilakukan pada 64 GPU secara paralel dan menyimpan checkpoint setap 2,4K GPU (NVIDIA K40) jam. 

7. Tiga  evaluasi task yang digunakan: klasifikasi gambar, deteksi kategori objek, dan pixel-wise depth prediction. 

Main result:

1. Dibandingkan penelitian sebelumnya, performansi hasil pengujian lebih baik, dikarenakan adanyadepth tapmbanan dari ResNet dan tambahan waktu training. 

2. ImageNet-trained untuk Faster RCNN juga menghasilkan performa lebih baik yaitu 74,2 dibanding 69,9 pada penelitian sebelumnya, karena tambapan augmentasi multi-scale.

3. Pada metoda pre-training self-supervised, relative position dan colorization menghasilkan performa terbaik.

4. Relative position menghasilkan performa lebih baik dibandingkan PASCAL dan NYU

5. Colorization menghasilkan lebih paik dibandingkan ImageNet-frozen.

6. Relative position menghasilkan performa sebanding dengan ImageNet pre-training pada depth prediction, serta hanya menghasilkan gap 7,5% mAP dari PASCAL. 

7. Gap terbesar ada pada ImageNet Evaluation.

8. Exemplar Training memiliki performa yang lebih jelek dibandingkan penelitian PASCAL dan NYU

9. Motion segmentation menghasilkan performa yang lebih jelek dibandingkan ImageNet

10. Harmonisasi dan lasso weighting hanya memberikan efek minimal terhadap performa

11. Kombinasi self-supervised task membuat training lebih cepat. 

Limitation:

  1. Augmentasi hanya digunakan pada exemplar training saja tidak pada semua task.
  2. Self-supervised task yang diuji terbatas
  3. Tidak melakukan pengujian weighting dinamis untuk optimasi task
  4. Tidak melakukan pengujian pada deep network seperti VGG-16

GAN pada Deep Learning – Shams

Hari ini saya baca paper dengan judul Why are Generative Adversarial Networks vital for Deep Learning Networks? A case study on Covid-19 chest X-ray Image karya Shams et.al.

Pada penelitian ini Shams mencoba menggunakan gambar X-Ray dada pasien dengan Deep Learning untuk mendeteksi Covid-19. Namun Deep Learning membutuhkan dataset yang besar, sementara hanya tersedia gambar X-Ray yang terbatas. Untuk itu dia menggunakan Generative Adverasrial Network untuk mengggenerate dataset pada pre-processing. Menurut Shams, kombinasi GAN-DNN ini sanggup mendeteksi covid dengan loss function yang minimum. Untuk optimasi digunakan Stochastic gradient descent (SGD) dad Improved Adam (IAdam) pada saat training.

GAN adalah jaringan yang biasanya digunakan untuk augmentasi data untuk memperkirakan model generative dengan proses adversarial. Model yang ditraining akan digenerate secara simultan dengan menangkap distribusi data dan model diskriminatif untuk memperkirakan probabilitas data training. 

GAN adalah metode untuk melakukan training model generative. Framework GAN terdiri dari 2 jaringan: model generatif G yang menangkap distribusi data dan sebuah model diskriminatif D yang membedakan antara sampel yang diambil dari G dan gambar dari data training. 

Tipe augmentasi data lainnya berbasis GAN adalah deep convolutional GAN oleh Radford et.al untuk unsupervised learning. Makhzani et.al mengajukan adverasrial auto-encoder (AAE). Information maximizing GAN (InfoGAN) diteliti oleh Chen et.al

Stochastic Gradient Decent (SGD) optimizer digunakan untuk memiminalkan waktu komputasi per iterasi, sebuah langkah adaptif untuk memprediksi detail penting dari gambar X-Ray COVID berbasis ukuran daerah kemiripan dari konten gambar dan model transformasi yang diteliti oleh Klein et.al. menggunakan jaringan RelU. 

Improved Adam Optimizer

Bock et.al mengajukan sistem ini berbasis ukuran langkah adaptove dengan mengubah weights dan momentum untuk mendapatkan konvergensi dari jaringan neural.

Untuk membangun model GAN, diperlukan struktur jaringan, termasuk layer dari unit generator dan unit diskriminator. Kemudian tentukan nilai hyper parameter untuk training seperti epoch, iterasi, ukuran batch dan learning rate.  Selanjutnnya generator dan model diskrimantor melakukan konstruksi weight awal secara random. 

Hasil pengujian didapatkan GAN efektif untuk menghasilkan model generativ. Kalau kita tidak memiliki cukup data, GAN dapat digunakan untuk melakukan generate data dibandingkan augmentasi data. 

referensi:

Shams, M. Y., O. M. Elzeki, Mohamed Abd Elfattah, T. Medhat, and Aboul Ella Hassanien. “Why Are Generative Adversarial Networks Vital for Deep Neural Networks? A Case Study on COVID-19 Chest X-Ray Images.” In Big Data Analytics and Artificial Intelligence Against COVID-19: Innovation Vision and Approach, pp. 147-162. Springer, Cham, 2020.

 

Multi Layer Perceptron

Single-layer perceptrons hanya dapat mewakili keputusan linier. Perceptron hanya dapat mewakili fungsi yang dapat dipisahkan secara linier. Multi-layer perceptrons (MLP) dapat mewakili keputusan non-linier. MLP menambahkan hidden layer antara input dan output. Menambahkan lapisan tersembunyi memungkinkan lebih banyak fungsi target diwakili.

Hidden Units

adalah node yang terletak di antara node input dan node output, memungkinkan jaringan untuk mempelajari fungsi non- linier, memungkinkan jaringan untuk merepresentasikan kombinasi fitur masukan.

Multi Layer Feed Forward Network (MLP)

  • Multilayer neural network dengan satu lapisan tersembunyi dan 10 masukan, cocok untuk masalah restoran.
  • Layer sering kali terhubung sepenuhnya (tetapi tidak selalu).
  • Jumlah unit tersembunyi yang biasanya dipilih acak

Algoritma Learning MLP

 

Semoga Bermanfaat!

LVQ Prof Wisnu

Saya lanjutkan share materi Prof Wisnu tentang Neural network, kali ini tentang LVQ (Learning Vector Quantization). LVQ beliau artikan sebagai pembelajaran berbasis kompetensi.

  • Struktur jaringan sederhana, lapis tunggal tanpa hidden layers,
  • Vektor Pewakil (reference, prototype) –> representasi kategori kelas
  • Winner Takes all

Metode Pembelajaran LVQ

Contoh LVQ

Backpropagation

Back-propagation diperkenalkan oleh Rumelhart, Hinton dan Williams dan dipopulerkan pada buku Parallel Distributed Processing (Rumelhart and McLelland, 1986)

Prinsip dasar algoritma propagasi-balik memiliki tiga fase:

  • Fase feed forward pola input pembelajaran

  • Fase kalkulasi dan back-propagation error yang didapat.

  • Fase penyesuaian bobot.

  • Jaringan lapis banyak

  • Terdiri dari satu lapisan unit-unit masukan, satu atau lebih lapisan tersembunyi dan satu

Jaringan lapisan unit keluaran; Struktur dasar sama sepeti perceptron, sehingga disebut multilayer perceptron. Setiap neuron pada suatu lapisan dalam jaringan Propagasi-Balik mendapat sinyal. Masukan dari semua neuron pada lapisan sebelumnya beserta satu sinyal bias.

Karakteristik fungsi aktivasi: kontinyu, dapat didiferensiasikan, monoton tidak turun, dan turunan fungi mudah dihitung.

a. fungsi sigmoid biner (range : [0,1])

 

b. fungsi sigmoid bipolar (range : [-1,1])

Back-propagation (Arsitektur) :

 input layer ditunjukkan oleh unit-unit Xi
output layer ditunjukkan oleh unit-unit Yk

hidden layer ditunjukkan oleh unit-unit Zj

Pembelajaran back-propagation

1. Inisialisasi bobot
wi =0 atau angka acak untuk i=b,1,2,3,…..,n Set laju pembelajaran α (0,1 ≤ nα ≤ 1)

Selama syarat henti belum tercapai: 

a. Feedforward:

2. Setiap unit masukan (X , i = 1, …, n) menerima sinyal masukan x dan meneruskannya ke seluruh unit pada lapisan di atasnya (hidden units)
3. Setiap unit tersembunyi (Zj, j = 1, …, p) menghitung total sinyal masukan terbobot dan fungsi aktivasinya.

Setiap unit output (Yk, k = 1, …, m) menghitung total sinyal masukan terbobot dan fungsi aktivasinya

b. Backpropagation of error:

5. Setiap unit output (Yk, k = 1, …, m) menerima sebuah pola target yang sesuai dengan pola masukan pelatihannya. Unit tersebut menghitung informasi kesalahan dan mengoreksi bobot.

6. Setiap unit tersembunyi (Z , j = 1, …, p) menghitung selisih input (dari unit-unit pada layer di atasnya),

Setiap unit output (Yk, k = 1, …, m) dan unit tersembunyi (Zj, j = 1, …, p)

mengubah bias dan bobot-bobotnya (j = 0, …, p) dan (i = 1, …, n):

8. Uji syarat henti

Pemilihan bobot awal dan bias pada back-propagation

  • Pemilihan bobot awal mempengaruhi apakah jaringan akan mencapai error

  • minimum global (atau lokal), dan jika tercapai, seberapa cepat konvergensinya.

  • Update bobot tergantung pada fungsi aktivasi unit yang lebih dalam (pemberi sinyal input) dan turunan fungsi aktivasi unit yang lebih luar (penerima sinyal input), sehingga perlu dihindari pemilihan bobot awal yang menyebabkan keduanya bernilai 0

  • Jika menggunakan fungsi sigmoid, nilai bobot awal tidak boleh terlalu besar karena dapat menyebabkan nilai turunannya menjadi sangat kecil (jatuh di daerah saturasi). Sebaliknya juga tidak boleh terlalu kecil, karena dapat menyebabkan net input ke unit tersembunyi atau unit output menjadi terlalu dekat dengan nol, yang membuat pembelajaran terlalu lambat

Pemilihan bobot awal dan bias pada back-propagation

  • Dua contoh model inisialisasi bobot dan bias.

    • Inisialisasi Acak.

  • Bobot dan bias diinisialisasi nilai acak antara -0.5 dan 0.5 (atau antara -1 dan 1, atau pada interval lain yang sesuai).

    • Inisialisasi Nguyen-Widrow.

  • Cara ini memberikan laju pembelajaran yang lebih cepat. Berikut contohnya untuk arsitektur dengan satu lapis tersembunyi.

    • Bobot dari unit/neuron tersembunyi ke unit/neuron output diinisialisasi dengan nilai acak antara -0.5 dan 0,5

Sampai disini dulu, besok insyaallah saya lanjutkan share bagian terakhir dari presentasi Prof Wisnu tentang multi layer perceptron. Semoga bermanfaat!