PyTorch Scholarship Challenge 2018/2019

Oktober lalu, saya nggak sengaja dapat kabar kalau Facebook mengadakan kerja sama dengan Udacity berupa pengadaan course deep learning menggunakan framework deep learning buatan mereka, yakni PyTorch. Waktu itu yang kepikiran, wah menarik ya mempromosikan framework mereka dengan bikin course gini. Tapi ternyata ada yang lebih menarik, jadi selain kerja sama dalam membuat course, Facebook juga menyediakan beasiswa nanodegree untuk course Deep Learning with PyTorch (senilai $999 atau setara 14 jutaan rupiah).

Alur Beasiswa

Untuk mendapatkan beasiswa tersebut terdapat dua tahapan yang harus dilalui. Tahapan pertama adalah untuk seleksi awal ke Fase 1. Seleksinya berupa menjawab pertanyaan-pertanyaan dalam formulir yang lumayan panjang dan detail, yang berisi pertanyaan teknis ataupun non-teknis. Dari seleksi ini akan dipilih 10,000 peserta terbaik dari seluruh penjuru dunia untuk mengikuti seleksi Fase 1.

Di Fase 1 kita diharuskan mengikuti course Udacity "Intro to Deep Learning with Pytorch" selama kurang lebih 2 bulan. Lalu kita akan dievaluasi dari keaktifan di forum, hasil tugas akhir, dan tugas-tugas hariannya. Dari Fase 1 hanya akan dipilih 300 peserta terbaik untuk mendapatkan beasiswa nanodegree tersebut.

Saya dan istri pun daftar

Saya kabarin istri tentang berita ini dan kami berdua putuskan untuk sama-sama daftar. Saya mulai coba mengisi formulir yang diajukan untuk seleksi awal. Ada dua bagian yang menurut saya paling susah di seleksi awal ini, yang pertama pertanyaan teknis tentang Numpy dan bagian alasan kenapa ingin daftar.

Yang bagian Numpy, itu kita bukan dikasih soal terus ditanya operasi mana yang digunakan, tapi ditanya operasi mana yang paling efisien dan bisa digunakan ._. disitu saya lumayan lama cari tahu mana jawaban yang paling tepat (dengan bantuan google dan banyak coba-coba). Sedangkan di bagian alasan kenapa ingin daftar, ini kerasa susah kayaknya karena bahasa inggris saya yang mengharukan. Istri saya yang juga daftar kayaknya lebih lancar karena bahasa inggrisnya yang juga lebih bagus ._. tapi karena saya nggak boleh lihat isinya, ya sudah jadi nggak bisa cerita banyak apa yang ditulis sama istri saya.

Beberapa hari kemudian

Alhamdulillah, beberapa hari kemudian saya dapat email dari Udacity dengan subject yang menyenangkan: "Rian, you've been accepted!". Email berisi ucapan selamat karena lolos 10,000 besar, dan detail untuk seleksi Fase 1. Oh ya dan sebuah "badge" dari Udacity yang saya nggak tahu itu buat apa:

badge dari udacity
Dan Alhamdulillah ternyata tidak hanya saya, istri saya juga dapat email yang isinya sama. Yeay! dengan ini saya dan istri resmi masuk ke Fase 1 seleksi beasiswa nanodegree oleh Facebook dan Udacity. Bismillah, perjuangan yang sebenarnya baru dimulai.

9 November 2018

9 November 2018 adalah hari pertama dimulainya Fase 1. Di Fase 1 kita di haruskan mengikuti course "Intro to Deep Learning with Pytorch" yang berlangsung kira-kira selama dua bulan dari awal November sampai awal Januari. Course ini sebenarnya course gratis, bedanya bagi kita yang lolos Fase 1 akan ada proyek akhir yang akan dinilai nantinya, tugas-tugas harian juga akan dinilai untuk menentukan apakah kita layak ke Fase 2 atau tidak.

Selain itu kita juga disediakan Slack untuk sarana diskusi dan komunikasi sesama teman-teman di Fase 1. Wah, bisa bayangin ya Slack isinya 10,000 orang dari penjuru dunia, ruame, dan seru banget. Keaktifan kita di Slack ini juga menjadi kriteria penilaian.

#sg-indonesia 

Di slack tersebut dibuatkan beberapa channel untuk keperluan diskusi, dan salah satunya adalah #sg-indonesia atau study group untuk peserta Fase 1 dari Indonesia. Wah ternyata ada banyak dari Indonesia yang lolos Fase ini, sempat ikut online-meetup nya, dan akhirnya kenal beberapa nama seperti Pak Fandi yang punya pengalaman banyak; mas Mahendri, mas Feliren, dan mas Wira yang sabar nemani diskusi.

Selama Fase 1

Banyak hal menarik di fase ini, dari course yang kami ikuti ataupun diskusi-diskusi di Slack. Mulai dari bahasan super rumit tentang matematika di balik Deep Learning (ini masa-masa Slack ramai karena banyak pertanyaan, dan menjadi chapter paling susah menurut voting di akhir), sampai bahasan random seperti meme-meme kocak tentang AI.

Selain itu berkat course ini Saya juga jadi bisa mengimplementasikan Style Transfer, yang dari tahun 2016 lalu sebenarnya sudah baca papernya dan udah pingin banget implementasiin, tapi apa daya saya saat itu saya masih awal belajar Deep Learning, dan cuma tahu satu framework yang lumayan njelimet kalau mau bikin sendiri.

Style Transfer pertama!
Lalu progres lain yang nyenengin adalah saya jadi bisa paham dan bisa mengimplementasikan RNN/LSTM yang bisa bermanfaat juga untuk urusan kantor (Sebenarnya yang ini juga karena baca-baca proposal tesis istri). Saya sempat bikin visualisasi sederhana tentang fungsi RNN() di PyTorch:

Catatan RNN buatan saya untuk teman-teman Fase 1

Sempat juga pihak Udacity beberapa kali mengadakan webinar dengan pembicara yang keren-keren, dari BBC, Facebook, Udacity, dll. Bahkan para peserta Fase 1 dipersilakan jika ingin mengadakan webinar untuk topik apapun. Ya.. walau kebanyakannya saya tidak bisa ikut karena webinarnya biasanya jam 1 malam waktu Indonesia.

Pengumuman webinar terakhir
Di Slack, saya sempatkan untuk berdiskusi banyak tentang hal-hal teknis seperti penomoran layer CNN, alur fine tuning, atau konstanta-konstanta "aneh" dari papernya Gatys. Atau hal-hal tidak teknis seperti bagaimana rasanya bekerja menggunakan Deep Learning, atau tentang studi lanjut S2/S3 di bidang Deep Learning. Sayangnya, Slack yang digunakan bukanlah Slack premium jadi hanya tersimpan 10,000 chat terakhir saja, ini bikin diskusi-diskusi lama jadi tidak bisa dilihat. Dari diskusi-diskusi itu jadi ketemu sama teman-teman dari luar sana yang baik dan juga menyenangkan, seperti Pratik Gadhiya, Rusty Mina, dan Tatiana Gaponova.

Sayangnya..., istri saya tidak bisa melanjutkan challenge di Fase 1 ini, di akhir November 2018 istri saya harus masuk ke rumah sakit dan beristirahat satu bulan lebih lamanya :( Sambil mendoakan, dan bantu-bantu pemulihan semaksimal mungkin, saya tetap berusaha menyelesaikan course ini, harapannya nanti ilmu yang saya dapatkan bisa saya bagi bersama istri saya nantinya.

9 Januari 2019

Setelah hampir dua bulan berlalu, mulai muncul banyak pertanyaan seputar tugas akhir. 9 Januari 2019 adalah deadline pengumpulan tugas akhir. Tugas akhir seleksi ini adalah membuat model untuk mengklasifikasikan citra dari 102 jenis bunga. Ini adalah kasus klasifikasi dengan jumlah kelas terbesar yang pernah saya hadapi. Di sini saya benar-benar belajar menggunakan Pytorch dari scratch lagi (setelah tesis dulu), dan juga belajar menggunakan Google Colab (karena di rumah nggak ada GPU yang bisa digunakan, dan nggak mungkin juga pinjam lab kampus karena saya sudah lulus).

Saya lihat di salah satu unofficial scoreboard banyak yang bisa mencapai akurasi lebih dari 99.0% (bahkan si pembuat modelnya bilang harusnya itu 100%, hanya saja karena ada dua citra bunga di data validasi yang sepertinya salah pelabelan). Karenanya, saya yang belum mulai mengerjakan tugas akhir sempat ngira ini dataset yang mudah (haha, tidak semudah itu fergusso).

Setelah sekian puluh kali percobaan baik di rumah, di kantor atau bahkan via mobile di jalan, akurasi yang saya peroleh tidak bisa setinggi itu. Bahkan setelah beberapa hari coding untuk memastikn program jalan, akurasi pertama yang bisa dimunculkan hanyalah 80%-an :( saya coba utik-utik bisa naik ke 93%, lalu setelah coba-coba teknik fine tuning bisa sampai 97%, alhamdulillah, dan setelah ngulik hampir semingguan, ternyata tidak bisa nambah banyak, maksimal yang bisa saya peroleh hanyalah sekitar 98.2%. Walau hanya selisih 1% tapi rasanya sulit sekali meningkatkan modelnya untuk mencapai titik 99%.
nge-run google colab dari hp
Ya sudah, deadline sudah dekat, kerjaan lain juga masih banyak jadinya ya saya submit seadanya dengan harapan modelnya sudah cukup baik.

18 Januari 2019

Setelah 9 Januari, Slack mendadak hening, rasanya semua istirahat, setelah dua bulan lamanya aktif berdiskusi, mengikuti course, dan bersusah payah di tugas akhirnya, kita semua rasanya ingin istirahat sambil menunggu 18 Januari 2019, hari pengumuman siapa saja yang lolos ke Fase 2. Saya tidak tahu apakah saya bisa lolos ke Fase 2 atau tidak. Rasanya dari 10,000 orang diambil 300 (hanya 3%) rasanya sulit.

Sampai jumat pagi kemarin saya nggak sengaja baca email di tab "Promotion" dari Udacity. Agak deg-degan untuk baca subject emailnya, walau saya masih yakin itu promo diskon, tapi siapa tahu itu email pengumuman, pelan-pelan saya baca tulisan subjectnya... "Congratulations! You’ve been selected for the Deep Learning Nanodegree Scholarship!"


Alhamdulillah... T.T
Alhamdulillah.. langsung buka dan baca emailnya untuk memastikan nggak salah baca. Saya inget untuk memastikan baca beberapa kali dan sudah 100% sadar dari tidur sebelum mbangunin dan ngabarin istri. Alhamdulillah

Dan seperti sebelumnya, emailnya juga berisi informasi Fase 2 dan link untuk Slack peserta yang lolos ke Fase 2. Fase 2 akan dimulai tanggal 22 Januari mendatang dan berlangsung selama 4 bulan. Slacknya sudah mulai aktif, saya lihat beberapa nama dan wajah yang familiar di sana. Beberapa orang Indonesia juga ada yang lolos.

Tapi jujur saya sendiri kurang tahu detail penilainnya, karena beberapa teman yang rasanya lebih jago malah tidak lolos ke Fase 2 :( semoga ini semua takdir terbaik untuk kita. Dan semoga saya juga dikuatkan untuk mengemban amanah beasiswa ini.

Kalau dipikir-pikir, sebenarnya beasiswa ini hanya pintu gerbang untuk mengikuti coursenya, tidak ada uang saku yang akan saya terima, atau kaos, atau merchandise apapun yang nyata. Sisanya tergantung saya sendiri apakah cukup teguh untuk menyelesaikannya dan mendapatkan nanodegree tersebut? atau hanya akan terlewat begitu saja? Bismillah..

Terima kasih Facebook dan Udacity atas kepercayaannya..

Komentar

Posting Komentar

Tinggalkan jejak disini

Postingan populer dari blog ini

Sudah halalkah Font kita?

My Font

Singapore! The Last Night?