Catatan dari Reviewer
Hallo sugengri1!, terima kasih telah sabar menunggu. Kami membutuhkan waktu untuk bisa memberikan feedback yang komprehensif kepada setiap peserta kelas. Dalam kesempatan ini ada 4 (empat) hal yang ingin kami sampaikan.
Pertama, kami ingin mengucapkan selamat! Karena kamu telah menyelesaikan tugas submission dari kelas Belajar Machine Learning untuk Pemula. Jangan lihat bintang yang kamu raih, tapi lihat kemajuan yang sudah kamu capai. Ingat semua expert dahulu pemula.
Kedua, kamu boleh bangga karena telah menyelesaikan submission sesuai dengan kriteria yang telah kami tentukan. Mumpung masih hangat semangatnya langsung lanjut kelas selanjutnya yaitu Belajar Pengembangan Machine Learning.
Ketiga, beberapa lulusan tidak tahu mereka memiliki akses kelas selamanya. Sebagai informasi, kelas Dicoding selalu update sehingga memiliki perbedaan minimal 30% dari sejak kelas dirilis. Silakan mampir kembali untuk melihat materi saat kamu membutuhkan update.
Keempat, karena sudah praktik langsung maka kamu sudah menguasai ilmu kelas dasar ini antara 75-90%. Salah satu cara agar meningkatkan penguasaan ilmu agar bisa lebih maksimal (>90%) adalah dengan memperbanyak latihan atau mengajarkan ilmu kepada orang lain.
Salah satu misi Dicoding adalah menyebarkan ilmu yang bermanfaat. Kami berusaha membangun kurikulum standar global dengan harapan agar developer Indonesia bisa menjadi jawara di negeri sendiri. Namun misi ini tidak akan tercapai tanpa kolaborasi dari kita semua.
Supaya project machine learning yang kamu buat menjadi lebih baik lagi, berikut ada beberapa catatan terkait submission.
Overall Project
Well done! submission yang kamu kirimkan memiliki train accuracy sebesar >96% dan validation accuracy 97% Hal ini menunjukkan modelnya good fit.
Kamu sudah menerapkan tiga saran yang tidak ada dalam materi Dicoding yaitu, callbacks dan menghitung total waktu pelatihan model
Selamat !! Kamu berhak mendapatkan bintang 4 sesuai dengan ketentuan subsmission !!! Good Job !!
Code Review
Kamu juga dapat mencoba untuk menerapkan callback accuracy dan val accuracy dengan threshold yang lebih tinggi misalnya:
if(logs.get('accuracy')>0.98 and logs.get('val_accuracy')>0.98)
Selain menggunakan library zipfile, kamu juga bisa menggunakan command !unzip untuk ekstrak file yang berbentuk zip dengan contoh sebagai berikut:
!unzip “path dataset” atau !unzip file_location.zip
Data augmentasi dilakukan hanya pada data train karena data dibuat lebih banyak untuk melatih model, bukan untuk melakukan evaluasi model. Jika data augmentation dilakukan di data tes maka dapat menghasilkan evaluasi model yang bias. Kamu dapat mempelajari data augmentasi tidak dilakukan di validation set
Terkadang, epoch yang terlalu banyak ketika training dapat menyebabkan Overfiting. Sehingga perlu ditetapkan threshold (batas) khusus terhadap salah satu atau beberapa parameter metrics saat training. Ketika threshold tercapai, training model harus berhenti. Untuk itu, menerapkan Callback untuk stop training pada threshold metric tertentu sebagai solusinya.
Dropout juga digunakan untuk mereduksi kemungkinan overfitting pada model yang dibuat. Kamu bisa pelajari penggunaan Dropout disini.
Ketika memprediksi gambar, model akan memberikan hasil prediksi yang baik ketika gambar yang di upload memiliki background green screen tetapi ketika image tidak memiliki background greenscreen hasil prediksi sering tidak sesuai.
Hal ini dikarenakan dataset yang dipakai untuk training memiliki background yang seragam sehingga model hanya mengenali background green screen. Untuk mengatasi hal tersebut kamu bisa menambahkan data image yang lebih beragam atau menggunakan pretrained model dan melakukan Transfer Learning atau kamu bisa menghilangkan background dengan Remove Image Background
Kamu juga dapat melakukan evaluasi model yang telah dibuat menggunakan confusion matrix dan classification report
Untuk meningkatkan accuracy dan validation accuracy, kamu dapat coba Transfer Learning - Fine Tuning
Ketika ada data yang tidak seimbang atau imbalance, kamu dapat melakukan Handle imbalance dataset dan Mengatasi imbalance dataset
Kamu dapat download dataset dari Kaggle dengan menggunakan Kaggle API dan download datasets from Kaggle to Google Colab dan cara menghubungkan drive ke colab
Kamu juga dapat mempelajari model yang kamu buat apakah sudah goodfit atau belum Perbedaan Goodfit, Overfit dan Underfit
Kamu juga bisa menerapkan beberapa saran lainnya agar penulisan kode dan pengetahuan machine learning kamu bertambah.
Beberapa saran yang dapat kamu terapkan:
Additional Tips
Kamu bisa menghapus text cell, code cell, atau komentar kode yang tidak digunakan di dalam notebook agar penulisan kode dan text lebih rapi.
Agar penulisan kode lebih rapi, pada proses debugging (preprocess data, membuat model, dan melakukan testing), kamu bisa menyimpan seluruh import pada Code Cell di paling atas untuk meningkatkan kualitas keterbacaan kode.
Google Colaboratory memiliki fitur untuk menggunakan GPU. Kamu dapat memanfaatkan GPU gratis pada google colaboratory agar proses training yang dilakukan lebih cepat.
Setelah proses training selesai, kamu bisa menambahkan plot loss dan akurasi untuk mempermudah evaluasi model secara grafik dengan menggunakan Matplotlib atau Tensorboard.
Kamu dapat menggunakan text cell untuk menjelaskan bagian code cell yang telah kamu buat pada interactive python notebook. Sehingga, notebook kamu lebih informatif.
Silakan berkunjung ke forum diskusi untuk mengasah kembali penguasaan ilmu kamu dan membuat ilmu kamu bisa semakin bermanfaat dengan membantu developer yang lain.
Terima kasih telah membantu misi kami. Kesuksesan developer Indonesia adalah energi bagi kami. Jika memiliki pertanyaan terkait hasil submission, silakan mengikuti prosedur berikut.