Minggu, 22 Agustus 2021

Neuroimaging Data dengan Brain Imaging Dataset Specification(BIDS)

Memperkenalkan format NIFTI yang merupakan standard untuk pengolahan. Dikonversi dari dicom dari alatnya sendiri. Perbedaan antara dcom dengan NIFTI terlihat pada gambar diatas.


Rekonstruksi Citra? Generative Model Architectures pilihan utamanya



Memang di dunia per ML an ini tidak ada yang saklek, hanya mendekati, tidak ada rule of thumb, hanya kebanyakan dari kebiasaan penggunaan sebelumnya. Oke back to topik, karena penelitian saya bidang rekonstruksi citra maka dari pengalaman-pengalaman suhu-suhu sebelumnya cocoknya(saya bilang disini cocoknya ya...) menggunakan arsitektur model generatif. Oke jadi menurut situs ini, generatif model itu terdiri dari :

  1. Generative Adverserial Network (Latent space guys)
  2. Boltzmann machines (nah ini yang menginspirasi Deep Believe Network)
  3. Variational autoencoders (ini sebelumnya kita pakai untuk denoising)
  4. Hidden Markov models
  5. Models that predict the next word in a sequence, like GPT-2

Masing masing model diatas tentu berkembang dong sampai sekarang, makanya saya lengkapi di ujungnya biar kebayang perkembangannya. Okeh untuk GAN, kita lakukan terlebih dahulu training terhadap Diskriminator secara supervised learning, dimana inputan berasal dari real data dan sesekali dari generator untuk fake data dengan label tentunya fake(dari generator) or real(dari inputan data). 

Baru setelah itu kita latih generatornya dengan target luaran masuk ke diskriminator dan memastikan output label real dari generator. lanjut terus iterasi selanjutnya sampai nilainya optimal. Untuk contoh kode bisa kita tengok dengan dataset MNIST.

Gambar di generate dari latent space berupa noise random. Ketika generator belum dilakukan di training seperti gambar diatas, dia akan menghasilkan citra random dengan nilai 0-1(gambar biner) seperti gambar berikut:
Model generator sendiri mendapatkan inputan berupa :
Inputs(Menuju Generator): Point in latent space, e.g. a 100 element vector of Gaussian random numbers.
Untuk target outputnya sendiri keluar dari diskriminator berupa : 
Outputs(Dari diskriminator): Binary classification, likelihood, apakah gambar asli atau palsu.


Minggu, 15 Agustus 2021

Principal Component Analysis (PCA) dan Analysis of Variance (ANOVA) dalam Citra

Hasil diskusi dengna pa ibnu, untuk menentukan jumlah layer bisa digunakan PCA, sedangkan untuk melakukan pengecekan linearitas menggunakan ANOVA. Disisi lain PCA digunakan juga untuk rekonstruksi citra.

Kata pa ibnu :

Kalau yg usulan sy, dicari berdasar datasetnya. Buat nentuin jumlah hidden layer dicari menggunakan pca, kemudian jml neuron tiap hidden layer menggunakan pengklasteran k-means dan kriteria elbow. Sblmnya harus diuji linieritasnya dulu untuk tiap2 atribut input dan output.

Kalau di spss pakai anova, sy tinggal pakai sj sih. Semakin byk yg hubungannya linier, diduga kebutuhan varian kumulatif pca berkurang, nantinya akan berpengaruh pada kebutuhan jumlah hidden layer.

kalau klasifikasi biner ambil cutoff sekitar 40%, kalau multi kelas 60-70%.kalau regresi ambil di atas 80%. nah misal kita ambil cutoff 70% itu butuh 4 komponen, berarti jumlah hidden layernya kita ambil 4 dulu. Btw, mengenai data linier bisa dicoba Dendrite Net bisa dikembangkan dari yang sudah published DNR yang mengolah time series atau data sekuensial. 

Sabtu, 14 Agustus 2021

Antara Denoising dan Autoencoder

Memang judul denoising adalah judul yang lama, semakin berkembangnya teknik machine learning maka muncul sebuah konsep dengan istilah Autoencoder. Dimana denoising merupakan salah satu praktek dari pengaplikasian Autoencoder.



Kita lihat, yang dibangun adalah code yang berada di tengah. Bagian tengah tersebut yang akan menggunakan data latih antara gambar orisinil dengan gambar yang sudah memiliki noise. Beberapa refensi bisa dicary dengan kata pencarian : autoencoder denoising. Diantaranya :
Dari tulisan di atas, Autorencoder bisa digunakan untuk rekonstruksi citra dan atau denoising citra dengan tuning code_size atau target_dim(pada gambar dibawah kotak merah tulisan c), arsitektur bisa menggunakan sequential atau tambahan CNN(pada gambar dibawah trapesium E dan D).


Prinsipnya dari ref no.6, untuk auto encoder, training dan label menggunakan data input yang sama(pada gambar diatas persegi panjang x dan x'). 
autoencoder.fit(x=X_train, y=X_train, epochs=20,validation_data=[X_test, X_test])
untuk denoising training menggunakan data noise, labelnya data tanpa noise atau asli.
autoencoder.fit(x=X_train_noise, y=X_train, epochs=1,validation_data=[X_test_noise, X_test])

Rabu, 11 Agustus 2021

Monte Carlo Simulation : Prinsip dasar dan penerapan random dalam penyelesaian masalah noise pada citra

 Memang saat ini penelitian saya banyak mengacu dan lebih banyak membaca hal-hal yang berurusan dengan deep learning. Sampai pada akhirnya ketika membaca paper dari Cheng Du, bahwasanya rekonstruksi citra mereka menggunakan Monte Carlo untuk mereduksi noise, sehingga muncul pertanyaan binatang apa monte carlo ini. Dari sekian hasil pencarian google akhirnya saya menemukan video yang pas untuk penjelasan monte carlo dan bagaimana dia bisa menghilangkan noise atau blur pada gambar.



Di video tersebut diperlihatkan bagaimana bola secara random di jatuhkan di antara wadah linkaran dan kotak, kemudian diperhitungkan berapa peluang bola masuk ke wadah lingkaran dan wadah kotak. misal a merupakan sisi dan radius wadah. maka peluang bola masuk ke wadah lingkaran adalah = luas lingkaran/luas kotak = pi*a^2/a^2 = pi. Sehingga peluangnya ada pi untuk masuk ke wadah lingkaran. Terlihat semakin banyak random jatuhan bola, maka akan semakin mendekati nilai pi. Sehingga kesimpulannya semakin banyak nilai random yang diambil maka akan semakin baik nilainya. Dengan syarat pengambilan sampel random harus unbiased(tidak memihak).

Contoh lainnya pada gambar adalah dengan mengambil random pencahayaan sehingga akan didapatkan hasil citra yang baik. Jika diterapkan di rekonstruksi citra, kita tahu fMRI banyak sekali noise nya sehingga wajar kita akan menggunakan denoising Monte Carlo setelah citra dibangkitkan dari perekaman fMRI. Pertanyaan selanjutnya adalah, nilai random unbias seperti apa yang diambil sebagai parameter denoising nya? apakah diambil dari stimulus langsung? maka sudah ada yang membuatnya di postingan ini. Atau benar-benar random dari berbagai bahan gambar yang benar benar unbias agar denoise benar benar independen dari stimulus? tapi akan memakan banyak resource komputasi, yang jelas solusi paling cepat adalah solusi pertama, dengan menggunakan stimulus, karena denoising ini seperti mencari master anak kunci yang cocok dengan gemboknya, dan yang paling cepat adalah membuat duplikat yang mendekati anak kunci asli. Atau kita gunakan saja threshold seperti ini? Tinggal coba semuanya mana yang lebih baik.
Karena GAN, membangkitkan citra dari noise random, dan berkait erat dengan monte carlo. Maka gambarnya bisa disempurnakan dengan cara denoising monte carlo dengan menggunakan GAN, dimana diskriminator nya bertindak sebagai pemeriksa bentuk.