Ini adalah ulasan dari Deep Learning Specialization di Coursera. Specialization adalah istilah Coursera untuk program kursus interaktif (MOOC) yang lebih komprehensif, lebih lama (beberapa bulan), dan isinya beberapa MOOC lain. Istilah yang sama kalau di Udacity disebut nanodegree, kalau di EdX disebut micromasters, dan sebagainya.
Deep learning adalah kemajuan utama dari pembelajaran mesin dalam satu dekade terakhir, dan telah memicu perkembangan yang hebat terutama di bagian supervised learning dan reinforcement learning. Kalau Anda mendengar kemajuan AI di berita, misalnya mobil swakemudi, AI yang mengalahkan manusia dalam permainan, robot yang bisa bercakap-cakap seperti manusia, maka hampir bisa dipastikan mengandung deep learning di dalamnya. Deep learning adalah topik yang sangat menarik untuk dipelajari di bidang pembelajaran mesin.
Bagi saya, ini adalah materi deep learning (DL) pertama yang saya pelajari. Sebenarnya saya punya buku Deep Learning oleh Ian Goodfellow dkk, dan niat saya adalah untuk belajar DL dari buku ini. Tapi terus terang buku itu cukup berat buat saya. Jangankan materi deep learning-nya, materi penyegaran aljabar linernya saja sudah berat sehingga saya perlu membaca buku pengenalan aljabar liner lainnya sebelum membaca bab penyegar aljabar liner di buku ini. Apalagi materi intinya. Begitu pikir saya. Nah untuk mempersiapkan membaca bagian DL-nya, saya merasa sebaiknya mengikuti suatu kursus DL dulu.
Program spesialisasi ini saya pilih karena saya sangat suka dengan cara mengajar Prof. Andrew Ng di kursus Machine Learning sebelumnya. Dari dulu saya ingin ikut program ini, cuma belum terlalu percaya diri, sehingga saya belajar yang lain-lain dulu. Dari segi biaya, $49 per bulan, dan saya yakin dapat menyelesaikannya dalam sebulan, cukup terjangkau dibanding alternatifnya yaitu program Deep Learning NanoDegree di Udacity yang biayanya USD $599 total. Dan lebih penting lagi, program DL ND di Udacity berjalan dalam jadwal yang tetap, yaitu 4 bulan. Tidak bisa lebih cepat sesuai kemajuan murid. Bagi saya terlalu lama menunggu selama itu untuk mengerti DL.
Setelah memasuki program, ternyata materinya cukup terjangkau bagi saya. Mungkin memang spesialisasi dari Prof Andrew Ng yang bisa menjelaskan hal sulit sehingga mudah dimengerti, saya tidak merasa kesulitan untuk mengikuti materi-materi yang diajarkan.
Dan setelah menyelesaikan program ini, cukup banyak yang saya dapatkan (lihat Lingkup Materi di bawah), sehingga malah rasanya tidak pengen lagi menghabiskan waktu berbulan-bulan membaca buku DL itu lagi. Ke depannya mungkin tinggal mencari materi spesifik yang saya perlukan.
Lingkup Materi
Progam ini terdiri dari lima kursus, dan berikut adalah kutipan dari masing-masing ulasan kursus. Klik tautan untuk membaca ulasan detilnya.
Neural Networks and Deep Learning
Kursus ini memberikan dasar-dasar tentang neural networks (NN) terutama NN dengan beberapa hidden layers (deep NN), yang sangat penting sebagai fondasi pembelajaran deep learning selanjutnya. Materinya sangat lengkap, mulai intuisi, mekanisme, formula, sampai pemrograman tentang bagaimana neural networks bekerja, misalnya tentang forward dan back propagation.
Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
Kursus ini mengajarkan melakukan pembelajaran yang benar, dan optimasi dan tuning pada model kita untuk mencapai akurasi yang dibutuhkan dengan waktu yang cepat. Semua dijelaskan mulai dari intuisi, formula, dan implementasinya dalam Python (nanti akan kita bahas lebih detil aspek pemrograman ini).
Structuring Machine Learning Projects
Kursus ini mengajarkan aspek-aspek machine learning yang jarang dijumpai di tempat lain, yaitu tentang pengelolaan proyek machine learning. Bayangkan Anda bukan sebagai ML researcher/ engineer yang mengurusi tentang pembuatan dan optimasi model, tapi sebagai pimpinan suatu proyek ML yang harus mengambil keputusan strategis tentang apa-apa yang harus dikerjakan dalam proyek ML tersebut.
Convolutional Neural Networks (CNN)
CNN adalah cabang dari DLL yang sangat sukses diaplikasikan untuk pemrosesan gambar, seperti pengenalan objek, verifikasi wajah, pengenalan wajah, lokalisasi objek dalam gambar, pengenalan dan transfer gaya atau pola dalam gambar, dan lain-lain. Aplikasi CNN yang paling terkenal mungkin adalah pada mobil swakemudi, dan ini dikenalkan dalam kursus ini.
Sequence Models
Sequence model adalah model untuk memroses input yang berurutan, seperti kata-kata, audio percakapan, musik, deret DNA, atau data sekuensial lainnya. Pada kursus ini diajarkan model utama untuk memroses tipe data seperti ini yaitu recurrent neural network (RNN) seperti LSTM dan GRU, dan juga aplikasi sequence model pada NLP dan pemrosesan audio.
Materi Bonus
Sebagai “bonus”, program ini berisi video-video wawancara dengan “pahlawan deep learning” (Heroes of Deep Learning), yaitu Geoffrey Hinton, Pieter Abbeel, Ian Goodfellow, Yoshua Bengio, Yuanqing Lin, Andrej Karpathy, dan Ruslan Salakhutdino.
Video-video ini bagus dan cukup menginspirasi, dan banyak berisi tips-tips bagi yang ingin terjun di bidang machine learning/deep learning.
Persyaratan
Yang wajib untuk dikuasai sebelum mengikuti kursus ini adalah pemrograman Python, terutama Numpy, karena semua tugas pemrograman dilakukan dalam bahasa Python dan tidak ada pembelajaran Python di kursus ini. Anda bisa melihat ulasan saya pada kategori Pemrograman untuk contoh-contoh sumber untuk belajar (terutama lihat ulasan sekitar pertengahan 2017).
Persyaratan-persyaratan selanjutnya di bawah ini sangat saya rekomendasikan, tapi kalau Anda maksa banget bisa sih dilewatkan, tapi mungkin hasilnya akan kurang maksimal.
Walaupun neural network (NN) akan diajarkan dari cukup dasar di kursus ini, menurut saya sebaiknya Anda telah belajar tentang machine learning (apa itu supervised learning, terutama linear/logistic regression dan sedikit neural networks) sebelumnya agar paham gambaran besarnya. Salah satu kursus yang saya anjurkan untuk pemula adalah kursus Machine Learning oleh Prof Andrew Ng juga di Coursera.
Dari segi dasar-dasar matematika, prof Ng sendiri selalu bilang jangan kuatir kalau tidak paham formulanya (dia sering bilang “this is only for those who are experts in calculus“). Tapi menurut saya sebaiknya Anda sudah belajar sedikit tentang aljabar linear (operasi matriks) dan kalkulus (turunan) agar lebih nyaman dalam mengikuti kursus ini. Tidak perlu sampai pada matematika tingkat kuliah kok, cukup yang saya sebutkan tadi. Untuk sumber pembelajaran, Anda bisa lihat ulasan-ulasan saya pada kategori Aljabar Linear dan Kalkulus.
Pemrograman
Pemrograman memakai tiga framework yaitu Numpy, TensorFlow, dan Keras. Numpy dipakai untuk mengajarkan implementasi model yang mendasar, misalnya bagaimana cara membuat CNN, LSTM, dll. dari nol. Kadang ada tugas TensorFlow untuk mengajarkan bagaimana mengimplementasikan model tersebut di TF. Untuk model-modal yang rumit seperti CNN dan LSTM, akan memakai Keras.
Untuk pemrograman, kita diharapkan belajar sendiri framework–framework di atas. Dan inilah kritik terbesar dari saya untuk program ini, yaitu tidak adanya materi pengenalan framework. Sehingga walaupun kita bisa menyelesaikan tugas pemrogramannya, tapi pengertian kita tentang framework tidak terbentuk, karena kita hanya membaca referensi fungsi-fungsi yang dibutuhkan, tanpa mengerti konsep utamanya.
Untuk mengatasi ini, yang saya lakukan adalah mengunduh semua Jupyter notebook program ini. Rencana saya setelah belajar lagi tentang Keras (untuk TF dan Numpy saya sudah cukup kenal), saya akan memakai notebook-notebook itu untuk prakteknya.
Kesimpulan
Program ini sangat bagus untuk pengenalan deep learning, karena isinya yang cukup lengkap dan cukup terjangkau oleh siswa dengan tingkat pengetahuan menengah-pemula. Persyaratan untuk mengikuti program ini tidak terlalu tinggi, dan setelah mengikuti program ini, ada pengetahuan DL yang cukup solid yang didapat, mulai dari motivasi, intuisi, teori, sampai dengan bagaimana implementasinya.
Bagi saya sendiri, setelah mengikuti program ini saya merasa pengetahuan awal saya tentang DL sudah lumayan, tapi kemampuan pemrograman saya masih kurang. Oleh karena itu saya berniat untuk mengambil kursus DL lagi, yaitu Deep Learning for Coders dari fast.ai. Saya membaca banyak ulasan bagus untuk program ini, dan katanya dia lebih menitikberatkan pada aspek pemrograman, sehingga mudah-mudahan sesuai dengan yang saya harapkan. Dan cukup penting juga, program ini gratis. 🙂
Tinggalkan Balasan