Showing posts with label jst. Show all posts
Showing posts with label jst. Show all posts

Thursday, August 02, 2018

Deep Learning: CNN

Tulisan ini adalah kelanjutan dari tulisan sebelumnya tentang Jaringan Syaraf Tiruan (JST) .

Deep learning (tidak hanya) terbagi menjadi dua cabang algoritma besar: CNN (Convolutional NN) dan RNN (Recurrent NN). Masih banyak metode lainnya, namun seolah tenggelam oleh dua algoritma tersebut. Perbedaan utama CNN dan RNN adalah sebagai berikut.

CNN:
  1. Input berupa tensor dengan ukuran tetap (e.g: image)
  2. Output juga berupa vector dengan ukuran tetap (e.g. probablitias dari beberapa kelas berbeda)
RNN:
  1. Beroperasi pada sekuen vector atau tensor
  2. Contoh aplikasi: Text translation, speech to text, speech recognition, text to speech.

Sederhanya, jika input bisa diubah dalam bentuk "image", kita pakai CNN, jika data berupa vektor kita pakai RNN. Contoh, data ujaran (speech) juga bisa ditraining dengan metode CNN dengan memberi input jaringan berupa "image" spectrogram.

Kembali ke CNN. Masalah terbesar JST/NN. 

Jika sebuah image berukuran 50 x 50 pixel sebagai input, dan JST memiliki konfigurasi 2 hidden layer dengan layer pertama berisi 7500 neuron (node) dan layer kedua berisi 2000 node dan 2 ouput, maka jumlah weight (bobot) pada arsitektur JST tersebut:
$$ (7500 \times 2000) + (2000 \times 2) = 15004000 $$
Jumlah yang cukup "berat" untuk dijalankan dengan komputer spek standar. Sebagai solusinya, ditawarkan arsitektur JST yakni CNN yang bisa bekerja dengan mempelajari pola pada skala yang lebih kecil, dan menggunakannya untuk mengidentifikasi gambar yang lebih besar. Contohnya adalah apakah gambar input merupakan gambar singa atau macan. Dengan mempelajari sebagian kecil bagian gambar (misal: bagian mulut), maka informasi tersebut dapat digunakan untuk menentukan gambar yang diinputkan adalah singa atau macan.

Ilustrasi CNN untuk deteksi gambar macan/singa

Konvolusi

Ide dasar dari CNN adalah kovolusi itu sendiri. Jadi, setiap bagian pada image dikonvolusikan dengan kernel atau filter.  Kedua istilah tersebut, filter dan kernel size, pada Keras/Tensorflow dibedakan, filter sebagai representasi banyaknya feature map hasil konvolusi, dan kernel sebagai peng-konvolusi. Sebagai contoh, kita memiliki data image dengan ukuran 5 x 5 pixel, kemudian kita buat filter ukuran 2 x 2. Setiap bagian (2 x 2) pada data image dikonvolusikan dengan kernel atau filter 2 x 2 tadi. Lihat gambar berikut untuk lebih jelasnya.

Monday, May 21, 2018

Menginstall library CUDA 9.2 dan CuDNN 6 pada Ubuntu 16.04

Catatan singkat instalasi CUDA 8 (Upgaded ke 9.2) dan CuDNN 6 pada Ubuntu 16.04 Xenial Xerus.

OS: Ubuntu 16.04.4 LTS, 64-bit
CPU:  i9-7900X CPU @ 3.30GHz × 20
GPU: GeForce GTX 1060 6GB/PCIe/SSE2

Untuk instalasi CUDA 9.2, baca bagian bawah tulisan ini.

Langkah-langkah instalasi

Jalankan langkah-langkah berikut pada terminal, saya sarankan anda berada di "/tmp".
$ wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
$ wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/libcudnn6_6.0.21-1%2Bcuda8.0_amd64.deb
$ wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/libcudnn6-dev_6.0.21-1%2Bcuda8.0_amd64.deb
$ sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
$ sudo dpkg -i libcudnn6_6.0.21-1+cuda8.0_amd64.deb
$ sudo dpkg -i libcudnn6-dev_6.0.21-1+cuda8.0_amd64.deb

Kemudian tambahkan path instalasi di ~/.bashrc seperti berikut:
$ vim .bashrc
Anda bisa menggunakan Gedit jika tidak ingin menggunakan vim.
# cuda path
export PATH="/usr/local/cuda-8.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64/$LD_LIBRARY_PATH"

Untuk mengeceknya, gunakan perintah `nvcc-version` dan `watch nvidia-smi`:

Saturday, October 12, 2013

Update Makalah, Essay dan lain-lain

Hari ini saya kembali mengupdate halaman "publikasi" dan "download" blog ini. Daripada terdampar di laptop saya, dan takut terhapus lagi, akhirnya saya upload saja lewat Mendeley Desktop yang sinkron dengan versi web-nya di Mendeley.com. Saya cenderung lebih suka menggunakan Mendeley untuk academic social network daripada Research-gate, karena Mendeley ada versi desktopnya, khususnya untuk Ubuntu OS.

Berikut beberapa file pdf yang saya tambahkan pada halaman Mendeley saya. Beberapa diantaranya adalah makalah saat mahasiswa S1 ITS yang saya ikutkan pada lomba-lomba penulisan karya ilmiah.
Semua file diatas saya lisensikan dengan lisensi Creative Commons 3.0 Unported License, anda bisa mendownload, menyebarkan, bahkan mengubahnya sejauh anda mentaati ketentuan lisensi tersebut (bisa dibaca disini).

Semoga bermanfaat!
Related Posts Plugin for WordPress, Blogger...