Kategori
machine learning

Image Generation with Super Resolution

Saya lanjutkan pembahasan tentang paper Self-Supervised Visual Feature Learning with Deep Neural Network: A Survey dari Longlong Jing dan Yingli Tian. Pada tulisan sebelumnya telah dibahas tentang macam-macam teknik learning feature pada image, diantaranya dengan metode image generation dengan inpainting. Sekarang kita lanjutkan tentang metode image generation dengan Super-resolution.

Image super-resolution (SR) adalah sebyah task untuk meningkatkan resolusi dari sebuah gambar. Dengan menggunakan jaringan Fully convolutional, kita bisa menghasilkan gambar dengan resolusi tinggi dari input gambar dengan resolusi rendah. SRGAN adalah sebuah “generative adversarial network for single image super-resolution” yang diajukan oleh Ledig dkk. Metode yang dilakukan adalah dengan perceptual loss, yang terdiri dari adversarial loss dan sebuah content loss. Dengan perceptron loss, SRGAN mampu menghasilkan tekstur foro yang realistik dari input gambar yang downsampled (resolusi rendah).

Metode ini memiliki 2 jaringan: generator dan diskrimantor

Generator bertugas meningkatkan resolusi dari gambar input, sementara diskriminator bertugas untuk membedakan apakah gambar input adalah output dari generator. Loss function dari generator adalah L2 Loss pixel-wise ditambah content loss yaitu kemiripan dari fitur gambar resolusi tinggi hasil prediksi dan gambar asli dengan resolusi tinggi. Sementara loss dari diskriminator adalah binary classification loss.

Dibandingkan dengan jaringan lain yang menggunakan metode meminimalkan Mean Squared Error (MSE) yang menghasilkan rasio sinyal to noise tinggi namun tidak memiliki detail frekuensi tinggi, SRGAN mampu menhasilkan gambar dengan detail resolusi tinggi. Karena adversarial loss menghasilkan output ke gambar asli oleh dari jaringan diskriminator.

Jaringan dengan resolusi tinggi ini dapat mempelajari fitur semantik dari gambar. Seperti metode GAN lainnya, parameter dari discriminator network dapat ditransfer ke downstream task.

Sampai disini dulu, besok insyaallah saya lanjutkan dengan metode image generation dengan Colorization.

Papernya bisa dilihat pada link berikut :

https://arxiv.org/abs/1902.06162

Kategori
machine learning

Image Generation with Inpainting

Saya lanjutkan pembahasan tentang paper Self-Supervised Visual Feature Learning with Deep Neural Network: A Survey dari Longlong Jing dan Yingli Tian. Pada tulisan sebelumnya telah dibahas tentang macam-macam teknik learning feature pada image, diantaranya dengan metode image generation dengan GAN. Sekarang kita lanjutkan tentang metode image generation dengan inpainting.

dari paper Jing dan Tian

Image inpainting adalah sebuah task untuk memprediksi bagian dari gambar yang hilang. Contohnya pada gambar diatas, gambar (a) adalah gambar dengan bagian yang hilang. Sementara gambar c adalah hasil prediksi. Untuk melakukan prediksi, jaringan harus mempelajari tentang warna dan struktur dari obyek. Setelah itu, jaringan akan berusaha memprediksi bagian yang hilang berdasarkan bagian gambar yang tersedia.

Sebagai analogi dengan auto-encoders, Pathak dkk. Melakukan training sebuah ConvNet untuk menggenerate konten bagian yang hilang pada gambar dari gambar yang tersedia. Kontribusi mereka adalah menggunakan convnet pada masalah image inpainting dan menggunakan adversarial loss untuk membantu jaringan menghasilkan hipotesis yang realistis. Metode lainnya mengikuti model usulan mereka. Umumnya ada dua jaringan, sebuah jaringan generator untuk menghasilkan bagian yang hilanh dengan cara
pixel-wise reconstruction loss dan sebuah discriminator network untuk membedakan apakah gambar input adalah real dengan adversarial loss. Dengan adversarial loss, network dapat menghasilkan hipotesis yang tajam dan realistis. Kedua jaringan dapat mempelajari fitur semantik dari gambar yang kemudian dapat ditransfer ke task vision lainnya. Namun hanya Pathak dkk yang mempelajari perdorma dari transfer
learning dari parameter yang dipelajari dari generator pada task ini.

Generatir adalah fully convolutional
network dan memiliki dua bagian: enkoder dan dekoder. Input dari dekoder adalah gambar yang harus dilengkapi (inpainted) dan context encoder mempelajari fitur semantik dari gambar. Kontext decoder kemudian memprediksi bagian yang hilang berdasarkan fitur ini.

Generator diperlukan untuk memahami konten dari gambar untuk dapat menghasilkan hipotesis yang masuk akal. Discriminator dilatih untuk membedakan apakah gambar input adalah output dari generator.

Sampai disini dulu, besok insyaallah saya lanjutkan dengan metode image generation dengan super resolution.

Papernya bisa dilihat pada link berikut :

https://arxiv.org/abs/1902.06162

Kategori
machine learning

Image Feature Learning

Saya lanjutkan pembahasan tentang paper Self-Supervised Visual Feature Learning with Deep Neural Network: A Survey dari Longlong Jing dan Yingli Tian. Pada tulisan sebelumnya telah dibahas tentang macam-macam dataset yang bisa digunakan di Downstream Task untuk pengujian model SSL.  Sekarang kita lanjutkan tentang metode feature learning pada image. Di paper dibahas 3 metode feature learning pada image yaitu:

  1. Generation based
  2. Context-based
  3. Free semantic label

Secara umum gambaran metode SSL yang ada dapat dilihat pada tabel berikut:

Generation-based image feature learning

Metode ini memiliki beberapa metode diantaranya menggenerate gambar dengan GAN, super-resolusion (untuk menggenerate gambar dengan resolusi tinggi, image inpainting (untuk prediksi bagian image yang hilang) dan image colorization (memberi warna gambar gray-scale). Untuk task-task ini, label pseudo training P biasanya dari gambar tersebut dan tidak diberi label manual dari orang.

Autoencoder adalah contoh pioner teknik image generationbased. Autoencoder mempelajari untuk mengkompres gambar menjadi vektor dengan dimensi rendah yang kemudian di uncompressed menjadi gambar yang dekat dengan gambar aslinya dengan beberapa layer.

Dengan autoencoder, network dapat mengurangi dimensi dari image, namun tetap memiliki informasi yang sama dengan gambar aslinya. Metode image generation based lainnya mengikuti ide yang sama namun dengan pipeline berbeda. Tujuannya adalah untuk mempelajari fitur visual dari proses image generation.

Ada 4 teknik image generation yaitu:

  1. GAN
  2. Inpainting
  3. Super Resolution
  4. Colorization

Image generation dengan GAN

Generative Adversarial Network (GAN) adalah model deep generative yang diajukan oleh Goodfellow et al. Model GAN umumnya terdiri dari dua jaringan:

  • Sebuah generator yang menggenerate gambar dari latent vectors
  • Sebuah discriminator untuk membedakan apakah gambar input digenerate oleh generator.

Diskriminator memaksa generator untuk menggenerate gambar yang realistik, sementara generator memaksa diskriminator untuk meningkatkan kemampuan differensiasinya. Selama training, kedua jaringan saling berkompetisi dan saling membuat kuat jaringan lainnya.

Arsitektur yang umum digunakan untuk image generation dari sebuah variabel laten dapat dilihat pada gamber berikut:

Generator di training untuk melakukan maping vektor latent yang disampling dari latent space menjadi gambar. Diskriminator dipaksa untuk membedakan apakah gambar berasal dari distribusi gambar asli atau generated. Sehingga diskriminator diminta untuk menangkap fitur semantik dari gambar untuk menyelesaikan task. Parameter dari diskriminator akan menjadi pre-trained model untuk task komputer vision lainnya.

Secara matematis, generator G ditrain untuk mempelajari distribusi pz dari gambar asli, untuk menggenerati data realistik yang semirip mungkin dengan data asli. Sementara diskrimnator D ditrain untuk membedakan distribuasi dari data asli pdata dan distribusi data pz yang digenerat oleh generator G.

Metode image generation dari variabel random umumnya tidak butuh label manual. Namun tujuan task ini adalah untuk membuat gambar yang realistik, bukan untuk mendapatkan performa yang baik pada aplikasi downstream. Umumnya nilai inception dari gambar yang digenerate digunakan untuk menguji kualitas dari gambar. Hanya beberapa metode yang menguji kualitas fitur yang dipelajari oleh diskriminator pada task high level dan dibandingkan dengan yang lainnya.

Training adversarial dapat membantu jaringan untuk menangkap distribusi asli dari data sebenarnya dan menggenerate data realist. Teknik ini banyak digunakan pada task vision seperti image generation, video generation, super-resolution, image translation, dan image inpainting.

Sampai disini dulu, insyaallah besok saya akan lanjutkan dengan metode image generation dengan inpainting.

Papernya bisa dilihat pada link berikut :

https://arxiv.org/abs/1902.06162

.

Kategori
event

Workshop Technical Writing Jictra – 2

Saya lanjutkan pembahasan tentang workshop technical writing yang diadakan pengelola Jurnal Jictra ITB. Pada tulisan sebelumnya telah dibahas tentang checklist apa aja yang harus dilakukan ketika kita menulis naskah akademik. Selanjutnya Sybrand Ziljstra ngebahas tentang style guide.

Setiap jurnal memiliki style yang sudah ditetapkan. Biasanya style ini sudah mengatur format penulisan, seperti spasi, baris, font, format sitasi spelling (UK English/US English) dll. Selalu patuhi dan ikuti aturan style ini.

Kemudian dia berbicara tentang proses penulisan (writing process). Menulis naskah akademik, terutama bahasa inggris tentunya tidak mudah. Karena inggris bukanlah bahasa utama kita. Beberaoa tips yang bisa anda lakukan adalah:

  1. ketika menulis naskah ini membayangkan seseorang akan membaca naskah anda.
  2. Mulai dengan motivasi yang benar yaitu untuk mempresentasikan hasil penelitian anda
  3. Mulai menulis dan berpikir dalam bahasa inggris. Maksudnya tidak menulis dalam bahasa Indonesia kemudian menerjemahkannya ke dalam bahasa inggris.
  4. Gunakan bahasa yang jelas, ringkas dan teliti. Naskah ini adalah naskah ilmiah bukan sastra.
  5. Hindari kalimat yang rumit. Bagi saut kalimat yang panjang kompleks menjadi beberapa kalimat sederhana.
  6. Tidak usah terburu-buru, karena menulis naskah ilmiah membutuhkan waktu
  7. Banyak berlatih. Semakin sering kita menulis, semakin bagus tulisan kita.

Beberapa Tools atau alat bantu yang dapat anda gunakan:

  1. Microsoft Words mempunyai beberapa tools spelling dan grammar, tools editor, sinonim, dan dapat melacak perubahan
  2. Google translate
  3. Google Search
  4. Website tentang grammar.

Beberapa kesalahan yang sering dilakukan penulis Indonesia ketika menulis artikel ilmiah dalam bahasa indonesia diantarnaya:

  1. Kesalahan penggunakan Artikel (a/an/the)
  2. Kesalahan mengenai kata singular/plural
  3. Kesalahan urutan kata (adjective dan adverb)
  4. Kesalahan tentang waktu (present tenses, past tense, dll)
  5. Kesalahan penggunaan preposisi (in, over, at, out, dll)

Artikel

Pada bahasa inggris terdapat 2 artikel, the dan a/an. The biasanya digunakan untuk merujuk pada orang tertentu atau barang tertentu. Sementara a atau an untuk merujuk pada orang/barang yang mana saja. Seringkali kedua artikel ini tertukar. Artikel the kalau diterjemahkan ke bahasa indonesia seperti akhiran -nya. Sementara artikel a/an dapat diterjemahkan sebuah atau sesuatu.

Dalam beberapa kasus kita tidak perlu menggunakan artikel dalam bahasa inggris. Contohnya ketuka tidak ada kuantitas yang dimaksud. Contohnya kalimat:

“There are no limits”

” A room filled with people”

Atau pada kasus berikut:

“Teach biology” (mata pelajaran)

“Speak English” (bahasa)

Singular & Plural

Pada bahasa indonesia, jika konteks bahasan merujuk pada satu benda atau seseorang, maka tidak diperlukan menggunakan menggunakan kata plural. Hal ini berbeda dengan bahasa Inggris. Contohnya pada kalimat berikut:

“Ada batasan” dapat diterjemahkan menjadi

“There are limits” tapi bisa juga menjadi “There is a limit”

Keduanya memiliki makna yang berbeda.

Sampai disini dulu, Insyaallah besok akan saya lanjutkan dengan pembahasan tentang kesalahan berikutnya yang sering dilakukan penulis artikel ilmiah Indonesia.

Videonya bisa dilihat disini:

Slidenya:

Klik untuk mengakses Sybrand-Zijlstra-ITB-Journal-Workshop-9-March-2022.pdf

tentang itb jurnal jictra:

http://journal.itb.ac.id/index.php?li=articlesandabstracts&id=183&pre=1

tentang Sybrand zijlstra

https://www.linkedin.com/in/sybrandzijlstra/

Kategori
machine learning

OpenVINO – optimasi model Deep Learning

Kemaren saya ikut webinar yang diadakan oleh FAST Germany dan Intel. Di acara itu mereke mengenalkan tools OpenVINO, tools untuk optimasi model deep learning. Pembicaranya ada Say Chuan Tan dari Intel Malaysia, Razvan Bresug dari Intel Germany dan Stefanus Palapa dari Fast Germany.

Jadi Intel ngembangin tools namanya OpenVINO (Open Visual Inference and Neural Network Optimization). Tools ini open source, fungsinya untuk optimasi model Deep Learning pada Intel Hardware. Tools ini ada tersedia untuk Windows, Linux, Mac. Dia bisa dipake untuk berbagai hardware Intel, kayak CPU, GPU, VPU dan FPGAs. VPU ini kayak USB tapi isinya prosessor.

Jadi model Deep Learning kan biasanya berat dan butuh komputasi tinggi, OpenVINO bisa mempercepat proses komputasi model Deep Learning pada hardware Intel. Contohnya pada gambar dibawah, say chuan nampilin hasil optimasinya.

Misalnya model Deep Learning tanpa optimasi berjalan dengan kecepatan 0,18 detik/request. Setelah dioptimasi pake OpenVINO, model yang sama dijalankan di CPU bisa dijalankan dengan kecepatan 0,15 detik/request. Sementara kalo pake GPU kecepatannya jadi 0,066 detik/request.

Model Deep Learning yang mau dioptimasi didevelop dan ditraining dulu dengan platform lain. Terus pas deploynya baru dioptimasi pake Openvino. Platform yang disupport sama OpenVino diantaranya TensorFlow, Caffe, Pytorch, mxnet, Keras dan Onnx. Jadi klo pake OpenVINO ini model deep learning bisa dipasang di IoT dan perangkat edge lainnya.

Mereka nyediain juga model Zoo, ini tuh kumpulan model yang udah dibangun dan siap pake. Ada macem2 task misalnya Human Pose estimation, Instance Segmentation, Text Detection, dll

Pas bagian demo Razvan nunjukin, proyek yang mereka kembangin buat sebuah kampus di Swis. Kampus di Swis ini dia selama pandemi kan ujian dilakukan online, jadi mereka pengen ada sistem yang bisa mendeteksi kalo siswanya curang pas lagi ujian. Yang dideteksi itu suara, jadi kalo ada suara orang yang ngebisikin jawaban, atau siswanya nanya ke orang lain, sistemnya bisa mengenali. Selain itu sistem ini bisa mendeteksi juga gerakan mata dan kepala siswa. Misalnya siswanya ngelirik ke kanan, mungkin ada contekan disebelah kanan dst. Seru menurut saya persentasinya, mereka share beberapa link tentang openVINO berikut ini:

https://docs.openvino.ai/latest/index.html

https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/overview.html

https://www.intel.com/content/www/us/en/developer/tools/devcloud/edge/learn/certification.html

https://docs.openvino.ai/latest/model_zoo.html

https://www.intel.com/content/www/us/en/developer/tools/devcloud/overview.html

https://www.intel.com/content/www/us/en/developer/topic-technology/edge-5g/edge-solutions/overview.html

Semoga Bermanfaat!

Kategori
machine learning

Dataset Image

Saya lanjutkan pembahasan paper Self-Supervised Visual Feature Learning with Deep Neural Network: A Survey dari Longlong Jing dan Yingli Tian. Pada tulisan sebelumnya telah dibahas tentang  Downstream Task. Sekarang saya lanjutkan tentang macam-macam dataset yang bisa digunakan di Downstream Task untuk pengujian model SSL. Berikut ini beberapa dataset image:

gambar dari paper Jing & Tian

ImageNet

Dataset ImageNet memiliki 1,3 juta gambar yang terbagi secara merata dalam 1.000 kelas. Kelas-kelas ini diatur berdasarkan hirarki WordNet. Setiap gambar hanya mendapatkan 1 label. ImageNet adalah dataset yang paling banyak digunakan untuk learning fitur image pada self-supervised

Places

Dataset ini diusulkan untuk task scene recognition, dan memiliki lebih dari 2,5 juta gambar, terdiri dari 205 kategori scene, dimana ada kurang lebih 5000 gambar pada setiap kategori.

Places365

Dataset ini merupakan generasi kedua dari dataset Places yang dibangun untuk high-level visual understanding tasks, seperti scene context, object recognition, action prediction, event prediction, dan teori mind inference. Ada lebih dari 10 juta gambar yang dibagi dalam 400 kelas dan 5.000- 30.000 gambar untuk training pada setiap kelas.

SUNCG

Dataset SUNCG adalah repositori 3D scene untuk indoor, terdiri dari 45.000 scene berbeda seperti dengan denah ruangan dan layout perabotan yang dibuat secara manual. Dataset ini memiliki label synthetic depth, object level semantic labels, dan volumetric ground truth.

MNIST

MNIST adalah dataset tulisan tangan terdiri dari 70.000 gambar terbagi menjadi 60.000 gambar untuk training set dan sisanya 10.000 gambar untuk testing. Semua digit telah dinurmalisasi ukurannya dan diatur posisinya di tengah (centered) dengan ukuran tetap.

SHVN

SVHN adalah dataset untuk pengenalan digits dan angka pada gambar natural scene yang didapatkan dari gambar nomer rumah pada Google Street View images. Dataset ini memiliki 600.000 gambar dan semua digit memiliki resolusi tetap 32 × 32 pixel

CIFAR10

Dataset ini adalah kumpulan gambar kecil untuk task klasifikasi. Memiliki 60.000 ribu gambar dengan ukuran 32 × 32 dengan 10 kelas berbeda. 10 kelas ini diantaranya pesawat, mobil, burung, kucing, rusa, anjing, kodok, kuda, kapal, dan truk. Dataset ini balanced dan ada 6.000 gambar pada setiap kelas.

STL-10

Dataset STL-10 dirancang khusus untuk pengembangan pembelajaran fitur unsupervised. Dataset ini terdiri dari 500 gambar berlabel untuk training, 800 gambar untuk testing, dan 100.000 gambar tidak berlabel dengan 10 kelas diantaranya pesawat, burung, mobil, kucing, rusa, anjing, kuda, monyek, kapal dan truk.

PASCAL Visual Object Classes (VOC):

Dataset VOC 2.012 memiliki 20 kategori obyek diantaranya kendaraan, perabotan, hewan, pesawat, sepeda, kapal,bis, mobil, motor, kereta, botol, kursi, meja makan, tanaman di pot, sofa, TV/monitor, burung, kucing, sapi, anjing, kuda, domba dan orang. Setiap gambar memiliki anotasi pixel-level segmentation, anotasi bounding, dan anotasi kelas obyek. Dataset ini telah banyak digunakan sebagai benchmark untuk deteksi obyek, segmentasi semantik dan klasifikasi. Dataset ini dibagi menjadi 3 bagian: 1.464 gambar untuk training, 1.449 gambar untuk validasi dan private testing. Semua metode pengujian representasi menggunakan dataset ini menggunakan 3 task yang telah disebutkan diatas.

Video

Sementara itu untuk video ada beberapa dataset yang sering digunakan yaitu: YFCC100M, SceneNet RGB-D, Moment in Time, Kinetics, AudioSet, KITTI, UCF101, dan HMDB51.

Sampai disini dulu, besok insyaAllah akan saya lanjutkan dengan pembahasan berbagai metode learning fitur pada image. Semoga Bermanfaat!

Papernya bisa dilihat pada link berikut :

https://arxiv.org/abs/1902.06162

Kategori
machine learning

Downstream Task untuk Pengujian – 2

Saya lanjutkan pembahasan paper Self-Supervised Visual Feature Learning with Deep Neural Network: A Survey dari Longlong Jing dan Yingli Tian. Pada tulisan sebelumnya telah dibahas tentang Pretext Task dan Downstream Task. Downstream task yang sudah dibahas adalah segmentasi semantik dan deteiksi obyek. Hari ini kita coba lanjutkan dengan klasifikasi image.

Klasifikasi image adalah task untuk pengenalan kategori obyek pada gambar. Beberapa jaringan yang digunakan untuk task ini adalah AlexNet, VGG, ResNet, GoogLeNet, DenseNet dll. Biasanya setiap gambar hanya memiliki satu label kelas. Walaupun gambar dapat memiliki kelas obyek yang berbeda.

Ketika memilih klasifikasi image sebagai downstream task untuk menguji fitur image yang dipelajari dari metode self-supervised learning, model SSL diteraokan pada setiap gambar untuk mengesktrak fitur. Fitkur ini kemudian digunakan untuk melakukan training sebuah classifier, misalnya Support Vector Machine (SVM). Performa klasifikasi pada data testing kemudian dibandingkan dengan model ssl lainnya.

Human Action Recognition

Human action recognition adalah task untuk identifikasi apa yang sedang dilakukan orang di sebuah video ke dalam kelas yang berisi daftar aksi yang telah ditentukan. Secara umum, video pada dataset yang berisi satu aksi (gerakan). Fitur spatial dan temporal dibutuhkan untuk menyelesaikan task ini.

Pengenalan aksi ini digunakan untuk menguji kualitas fitur video yang dipelajari pada metode SSL. Jaringan dilatih dengan data video tidak berlabel pada saat pretext task. Kemudian di fine tuning pada dataset pengenalan aksi (gerakan) dengan label manual. Performa pengujian kemudian dibandingkan dengan metode SSL lainnya.

Pengujian Kualitatif

Pengujian kualitatif dapat dilakukan juga untuk menguji kualitas fitur SSL. Ada 3 metode, diantaranya: Visualisasi kernel, Visualisasi feature map visualization, dan visualisasi image retrieval visualization.

Kernel Visualization: secara kualitatif melakukan visualisasi kernel dari layer konvolusi pertama dengan pretext task dan membandingkan kernel-kernel daro model supervised. Kesamaan dari kernel-kernel yang dipelajari dengan mdeol supervised dan SSL dibandingkan unutk menunjukan kefektifan dari metode SSL

Feature Map Visualization: Fitur map, divisualisasikan untuk menunjukan attention dari jaringan. Aktivasi yang lebih besar menunjukan network lebih fokus pada bagian tertentu pada gambar. Fitur map biasanya divisualisasikan secara kualitativ dan dibandingkan dengan model supervised

Nearest Neighbor Retrieval: Secara umum, gambar yang terlihat mirip haru harusnya posisinya berdekatan pada feature space. Metode nearest neighbor method digunakan untuk mendapatkan KNN terbaik dari fitur space dari fitur yang telah dipelaajari oleh model SSL.

Sampai disini dulu, besok insyaAllah saya lanjutkan pembahasan tentang dataset. Semoga Bermanfaat!

Papernya bisa dilihat pada link berikut :

https://arxiv.org/abs/1902.06162

Kategori
machine learning

Downstream Task untuk Pengujian

Mari kita lanjutkan pembahasan paper Self-Supervised Visual Feature Learning with Deep Neural Network: A Survey dari Longlong Jing dan Yingli Tian. Pada tulisan sebelumnya telah dibahas tentang Pretext Task. Hari ini kita coba lanjutkan dengan Downstream Task

Untuk menguji kualitas fitur pada gambar dengan metode self-supervised, parameter yang dipelajari digunakan sebagai model pre-training dan kemudian di fine tune pada downstream task seperti klasifikasi image, segmentasi semantik, deteksi objek, pengenalan gerakan (action recognition) dll. Performa dari transfer learning pada high-level vision task menenjukan kemanpuan generalisasi dari fitur yang dipelajari. Bila ConvNet dapat mempelajari fitur umum (general Feature) maka model pre-training dapat digunakan sebagai titik awal yang baik untuk task vision lainnya.

Klasifikasi gambar, segmentasi semantik dan deteksi objek vuasabta digunakan oada image, sementara human acation recognition pada video.

  1. Segmentasi semantik: adalah task untuk memberi label semantik pada setiap pixel pada gambar. Banyak digunakan oada autonomous driving, human machine interaction dan robotik. Saat ini performa pada task ini cukup menjanjikan, beberapa model yang diusulkan diantaranya Fully Convolutional Network (FCN), DeepLab, PSPNet, dan dataset seperti Pascal VOC, CityScape dan ADE20K. Diantara semua metoda tersebut, FCN adalah pelopor karena dia yang memulai penggunakan Fully Convolution Network untuk menyelesaikan task ini. Arsitektur FCN dapat dilihat pada gambar di bawah ini. Jaringan 2D ConvNet seperti AlexNet, VGG, ResNet digunakan sebagai network dasar untuk ekstraksi fitur, sementara fully connected layer digantikan dengan transposed convolution layer untuk mendapatkan dense prediction. Network ini dilatih end-to-end dengan pelabelan pixel wise. Ketika menggunakan segmentasi semantik sebagai downstream task, FCN diinisialisasi dengan parameter yang dilatih pada saat pretext task dan difine-tune pada dataset segmentasi semantik, kemudian performanya dievaluasi dan dibandingkan dengan metode self-supervised lainnya.
Framework FCN untuk segmentasi semantik

2. Deteksi objek: adalah task untuk mendeteksi posisi obyek pada gambar dan mengenali kategori obyek. Task ini banyak digunakan untuk autonomous driving, robotik, deteksi scene teks dll. Dataset seperti MSCOCO dan OpenImage banyak digunakan untuk task ini. Fast-RCNN adalah jaringan dua tingkat untuk deteksi obyek. Proposal obyek digenerate berdasarkan fitur map yang dihasilkan dari CNN, kemudian proposal ini dimasukan pada beberapa layer fully connected untuk menggenerate bound box dari obyek dan kategori obyek. Ketika menggunakan deteksi obyek sebagai downstream teask, network ditraining dengan pretext task pada banyak data tidak berlabel, dan menjadi model pre-training untuk Fast-RCNN, kemudian di fine tuning pada dataset deteksi obyek. Performanya diuji untuk menunjukan kemampuan generalisasi dari fitur self-supervised. Arsitekturnya bisa dilihat pada gambar berikut:

Sampai disini dulu besok insyaallah saya lanjutkan dengan task lainnya seperti klasifikasi image dll. Semoga bermanfaat!

Papernya bisa dilihat pada link berikut :

https://arxiv.org/abs/1902.06162

Kategori
machine learning

Pretext dan Downstream task

Saya lanjutkan pembahasan paper Self-Supervised Visual Feature Learning with Deep Neural Network : A Survey karya Longlong Jing dan Yingli Tian. Pada tulisan sebelumnya telah dibahas tentang berbagai arsitektur Deep learning. Kali ini kita akan lanjutkan bahasan tentang Pretext dan Downstream Task.

Skema Fitur learning pada metode Self-supervised dapat dilihat pada gambar diatas. ConvNet ditraining untuk meminimalkan eror antara pseudo lapel P dan prediksi O dari ConvNet. Karena pseudo labels digenerate secara otomatis, pelabelan tidak dilakukan manual oleh orang.

Secara umum, sebuah pretext task dirancang untuk diselesaikan oleh ConvNets dan fitur visual akan dipelajari selama proses penyelesaian pretext task ini. Pseudo labels P untuk pretext task dapat digenerate secara otomatis tanpa pelabelan manusia. ConvNet dioptimasi dengan meminimalisir eror antara prediction dari ConvNet O dan pseudo labels P. Setelah training pada pretext task selesai, model ConvNet dapat menangkap visual fitur dari image atau videos.

Untuk mengatasi masalah pelabelan dataset yang besar, pretext task secara umum dirancang untuk diselesaikan oleh networks, sementara pseudo labels pretext task digenerate secara otomatis dari atribut data. Beberapa pretext task yang dirancang untuk self-supervised learning diantaranya foreground object segmentation, image inpainting, clustering, image colorization, temporal order verification, visual audio correspondence verification dll. Pretext task yang efektif memastikan bahwa fitur semantic dapat dipelajari selama proses penyelesaian pretext tasks.

Contohnya untuk image colorization, image colorization adalah sebuah task untuk memberi warna pada gambar grayscale. Untuk membuat gambar berwarna yang realistis, jaringan harus mempelajari stuktur dan konten informasi dari gambar. Pada pretext task ini, data X adalah gambar gray-scale yang dapat digenerate dengan melakukan transformasi linear transformation pada gambar RGB, sementara pseudo label P adalah gambar RGB image. Proses training pasangan Xi dan Pi dapat digenerate secara real time dengan biaya kecil. Self-Supervised learning dengan pretext task juga mengikuti pipeline yang serupa.

Berdasarkan atribut data yang digunakan untuk merancang pretext tasks, pretext task dapat dibagi menjadi 4 kategori: generation-based, context-based, free semantic label-based, dan cross modal-based.

Generation-based : Metode ini mempelajari fitur visual dengan menyelesaikanpretext task yang melibatkan image atau video generation.

  1. Image Generation: Fitur Visual dipelajari melalui proses image generation tasks. Contoh tasknya adalah image colorization, image super resolution , image inpainting, image generation dengan Generative Adversarial Networks (GANs)
  2. Video Generation: Fitur Visual features dengan melakukan task video generation. Metode ini diantaranya video generation dengan GANs dan video prediction

Context-based pretext tasks:  pretext task ini menggunakan fitur konteks dari images atau video seperti context similarity, spatial structure, temporal structure, dll.

  1. Context Similarity: Pretext tasks dirancang berdasarkan context similarity antara image patches. Contoh metode ini diantaranya metode image clustering- based, dan metode graph constraint-base.
  2. Spatial Context Structure: Pretext task digunakan untuk melatih ConvNets berdasarkan hubungan spatial antara image patches. Contohnya image jigsaw puzzle, context prediction, dan geometric transformation recog- nition.
  3. Temporal Context Structure:  Urutan waktu dari video digunakan sebagai supervision signal. ConvNet dilatih untuk melakukan verifikasi apakah input frame sequence berada dalam urutan yang benar atau untuk mengenali urutan dari frame sequence.

Metode Free Semantic Label-based: Tipe pre text tasks ini melatihnetworks untuk menggenerate label sematik secara otomatis. Label digenerate menggunakan hard-code algorithma, atau menggunakan game engine. Contoh pretext tasknya adalah moving object segmentation, contour detection, relative depth prediction dll.

Cross Modal-based Methods: pretext task ini melatih ConvNets untuk melakukan verifikasi apakah dua channel input berbeda adalah berhubungan satu sama lain. Metode ini contohnya Visual-Audio Correspondence Verification, RGB-Flow Correspondence Verification, dan egomotion.

Sampai disini dulu, insyaAllah besok saya lanjutkan pembahasan tentang paper ini. 

Papernya bisa dilihat pada link berikut :

https://arxiv.org/abs/1902.06162

.

Kategori
machine learning

Self Supervised – Jing & Tian

Saya lanjutkan pembahasan paper Self-supervised Visual Feature Learning karya Jing & Tian. Pada tulisan sebelumnya sudah dijelaskan tentang diagram sistem self-supervised learning. Ada beberapa istilah baru disana yaitu:

  1. pseudo label adalah label yang digenerate automatik berdasarkan atribut data pada waktu pretext task.
  2. Pretext-task adalah task yang dirancang untuk diselesaikan oleh jaringan untuk mempelakari visual fitur. Hasilnya adalah model pre-training
  3. Downstream task adalah aplikasi vision yang digunakan untuk menguji kualitas fitur dari SSL. Aplikasi ini menggunakan model pre-trained hasil pretext task. Dapat digunakan untuk data yang terbatas. Secara umum seperti supervised learning yaitu menggunakan data berlabel. Namun pada beberapa aplikasi dapat juga seperti pretext task, tidak menggunakan data berlabel
  4. Semi-supervised adalah metode learning dengan menggunakan sedikit data berlabel dan banyak data tidak berlabel
  5. Weakly-supervised adalah metode learning yang menggunakan label kasar atau tidak akurat. Contohnya labelnya didapat dari hashtag

Self-supervised membutuhkan dataset besar namun menghasilkan performa yang bersaing dengan metoda supervised.

Ada beberapa arsitektur yang sering digunakan untuk vision diantaranya:

  1. AlexNet: menghasilkan performa yang baik untuk klasifikasi image pada dataset ImageNet. Dengan beberapa GPU yang canggih dapat menghasilkan 62,4 juta parameter ketika ditraining pada ImageNet dengan 1,3 juta gambar. Memiliki 8 layer dimana 5 adalah layer convolusi dan 3 adalah fully connected (FC) layer. ReLU digunakan pada setiap layer convolusi. 94% parameter jaringan berasal dari layer FC. Namun jaringan dapat menghasilkan over-fit. Sehingga berbaga teknik digunakan untuk menghindari masalah overfitting diantaranya augmentasi data, dropout dan normalisasi.
  2. VGG diajukan Simonyan dan Zisserman dan menjadi juara kompetisi ILSVRC 2013. Mereka mengajukan beberapa jaringan dengan depth berbeda. Namun yang banyak digunakan adalah VGG 16 layer karena performanya yang baik walaupun ukurannya tidak terlalu besar. Memiliki 16 layer convolusi dalam 5 blok. Perbedaan VGG dan AlexNet adalah alexnet memiliki stride konvolusi besar dan ukuran kernel besar. Sementara VGG memiliki kernel lebih kecil 3×3 dan stride 1×1. Kernel besar menghasilkan banyak parameter dan ukuran model yang besar, sementara ukuran stride besar membuat jaringan tidak mendapatkan fitur halus pada lower layer. Ukuran kernel yang kecil membuat training pada Deep-CNN masih memungkinkan dengan tetap memperoleh informasi yang tepat pada jaringan.
Arsitektur VGG

3. ResNet: VGG menunjukan bahwa Deeper network dapat menghasilkan performa yang lebih baik. Namun Deeper network lebih sulit untuk ditraining, karena ada dia masalah yaitu vanishing gradient dan gradient explosion. Resnet diusulkan oleh He et.al untuk menggunakan skip connection pada blok convolusi dengan mengirimkan fitur map sebelumnya ke blok konvolusi berikutnya untuk mengatasi masalah vanishing gradient dan gradient explosion. Dengan skip connection, training deep neural network pada GPU menjadi lebih memungkinkan. He et.al juga mencoba beberapa jaringan dengan depth yang berbeda untuk klasifikasi gambar. Karena ukuran modelnya yang lebih kecil dan performanya yang baik, ResNet sering digunakan sebagai base network untuk task vision lainnya. Blok konvolusi dengan skip connection juga banyak digunakan sebagai blok dasar.

Arsitektur residual block. Identity mapping pada ResNet efektif mengurangi gradient vanishing dan exploison

4. GoogLeNet adalah deep network 22 layer diajukan oleh Szegedy et.al yang memenangkan kompetisi ILSVRC 2014 dengan akurasi top 5 93,3%. Dibandingkan penelitian lainnya yang fokus membangun deeper network, Szegedy mencoba membangun sebuah jaringan yang lebih lebar. Maksudnya setiap layer memiliki beberapa layer konvolusi paralel. Blok dasar GoogLeNet adalah blop insepsi yang terdiri dari 4 layer konvolusi paralel dengan ukuran kernel berbeda dan diikuti oleh konvolusi 1×1 untuk tujuan dimension reduction. Metode ini menampah depth dan width network namun komputasi tetap konstan. Arsitektur untuk blok inception bisa dilihat pada gambar dibawah.

5. DenseNet. Jaringan seperti AlexNet, VGG dan ResNet menggunakan arsitektur hierarkis. Gambar di masukan ke network dan fitur diekstrak dengan layer-layer yang berbeda. Shallow Layer mengekstrak fitur umum low-level, sementara deep layer mengekstrak fitur spesifik dan high-level. Namun, bila jaringan semakin banyak (deep), deeper layer dapat mengalmi masalah menyimpan fitur low-level yang dibutuhkan oleh jaringan untuk menyelesaikan task. Untuk mengatasi masalah ini, Huang et.al mengajukan dense connection untuk mengirim semua fitur sebelum blok konvolusi sebagai input ke blok konvolusi berikutnya dalam neural network. Pada gambar dibawah ini terlihat, fitur output dari blok konvolusi sebelumnya menjadi input pada blok saat ini. Dengan cara ini shallower block dapat fokus pada fitur general low-level sementara deeper block dapat fokus pada fitur spesifik task yang high level.

Sampai disini dulu, insyaAllah besok saya lanjutkan pembahasan tentang paper ini.

Papernya bisa dilihat pada link berikut :

https://arxiv.org/abs/1902.06162