Deep Learning: Convolutional Neural Networks

Jika sebelumnya pembaca sudah memahami tentang Artificial Neural Networks (ANN), sekarang kita beralih ke teknik deep learning (DL) yang lebih canggih (advanced) yaitu Convolutional Neural Networks (CNN). Teknik ini biasanya digunakan dalam lingkup visual recognition, yaitu bagaimana mesin (algoritma kita) bisa mengenali objek baik berupa gambar atau video.

Teknik CNN ini diperkenalkan oleh 3 pioneer di bidang deep learning yaitu Yann Lecun (direktur AI di Facebook), Geoffrey Hinton (direktur AI Google) dan Yoshua Bengio (Professor di Universite de Montreal, Canada). Pada tahun 2018 ketiganya mendapatkan Turing Award, yang merupakan hadiah nobel untuk para computer scientist. Sampai saat ini ketiganya terus melakukan riset di bidang deep learning, khususnya convolutional neural networks.

Aplikasi CNN dalam dunia nyata yang bisa kita lihat adalah Facebook. Jika dulunya kita harus melakukan proses tagging (menandai) wajah orang, maka sekarang terkadang sebelum kita tandai, Facebook sudah bisa menandai wajah teman/keluarga kita secara otomatis. Ini merupakan aplikasi nyata CNN di media sosial. Contoh lain adalah aplikasi CCTV (kamera kecil yang biasanya dipasang di atap atau dinding) yang bisa mendeteksi wajah secara online dan real-time. Di negara-negara maju saat ini banyak CCTV yang dipasang di sudut-sudut kota. Selain untuk keamanan, kamera ini juga bisa digunakan untuk mengidentifikasi orang yang lewat di depannya.

Karena aplikasinya berbasis pada pemanfaatan informasi visual (foto dan video), tidak berlebihan jika CNN juga bisa diapikasikan dalam dunia spionase (mata-mata) layaknya di film Mission Impossible atau James Bond, di mana agen rahasia menggunakan kamera tersembunyi atau bahkan kontak lensa yang bisa mendeteksi profil lawan bicaranya.

Sampai saat ini teknik CNN terus berkembang dan aplikasinya semakin banyak. Riset-riset deep learning saat ini juga mengarah ke CNN. Bahkan sekarang CNN lebih populer daripada ANN, padahal ANN adalah cikal bajal dari CNN.

Untuk bisa memahami cara kerja CNN mari kita lihat contoh gambar di bawah ini:

Gambar kucing

Jika kita ditanya, gambar apakah itu? Maka kita dengan mudah akan menjawab gambar kucing. Bagaimana kita bisa tahu bahwa ini adalah gambar kucing? Karena kita sebelumnya pernah diajari oleh keluarga/guru/teman di masa lalu bahwa gambar seperti itu adalah gambar kucing. Dengan kata lain, di masa lalu kita sudah di training jenis-jenis gambar.

Sama halnya dengan komputer, untuk bisa mengerti nama sebuah gambar maka ia juga memerlukan proses pembelajaran (harus diajari terlebih dahulu). Kita melakukan proses training dan menguji kemampuannya untuk menilai gambar/video melalui teknik CNN. Melalui CNN, komputer akan dengan mudah mengklasifikasikan mana kucing, mana anjing, mana kuda, bunga, rumah, dan lain sebagainya.

Tentunya tingkat akurasi dari mesin CNN kita tergantung dari baik tidaknya kita melatih (men-training) mesin kita dengan dataset yang baik. Misal, jika kita mengajari mesin untuk memahami gambar kucing, maka gambar yang diberikan haruslah gambar kucing yang jelas (bukan kucing yang mirip anjing, bukan pula kucing yang hanya kelihatan separuh badan, dan lain-lain). Tidak jarang, jika dataset untuk training kurang baik, maka bisa saja mesin akan memberikan jawaban bahwa gambar di atas adalah gambar seekor cheetah (macan tutul), karena memang memiliki kemiripan antara kucing dan cheetah.

Sekarang mari kita lihat contoh output dari aplikasi CNN melalui gambar di bawah ini:

Program ConvNet yang memprediksi sebuah gambar (sumber: http://cs231n.stanford.edu/)

Gambar di atas menunjukkan sebuah gambar mobil (karena kita sudah tahu bahwa itu mobil) yang diupload ke arsitektur CNN dengan nama ConvNet. Nantinya program ini akan memprediksi gambar apa yang dimaksud. Bisa kita lihat bahwa ia memberikan output bahwa probabilitas terbesar gambar tersebut adalah sebuah mobil, diikuti dengan probabilitas kedua yaitu truck, kemudian pesawat, kapal dan kuda.

Kita bisa mengatur output dari sebuah program CNN. Kita bisa atur apakah ia mengeluarkan prediksi berupa probabilitas seperti contoh ConvNet di atas, di mana kita urutkan dari probabilitas terbesar ke terkecil), atau bisa juga kita atur agar ia langsung mengeluarkan jawaban objek apa yang dimaksud. Pada kasus lain bisa juga kita desain agar ia memberikan jawaban biner (Y/N).

Untuk melanjutkan membaca, silakan klik tombol untuk melanjutkan ke halaman seterusnya di bawah ini.

Bagikan artikel ini:

Pages: 1 2 3 4 5 6 7

Leave a Reply

avatar
  Subscribe  
Notify of