Cara Membangun Proyek Portofolio Pembelajaran Mendalam End-to-End – Menuju AI – Teknologi, Sains, dan Teknik Terbaik

Penulis: Yash Prakash

Pembelajaran Mendalam

Panduan lengkap untuk langkah-langkah yang saya gunakan untuk membangun proyek penting dunia nyata yang lengkap untuk dipamerkan dengan bangga di profil saya.

Foto oleh Octavian Dan di Unsplash

Pada akhir Desember 2020 ketika suatu malam, saya dengan santai menelusuri timeline Twitter saya, saya menangkap tweet dari YouTuber terkenal yang saya ikuti dan saya berhenti. Dia telah men-tweet tentang betapa sakitnya melihat sejumlah besar komentar yang diterima masing-masing video ini dan seberapa sering, begitu banyak komentar bagus – yang sangat ingin dia balas – tersesat begitu saja. volume.

Sebagai seorang praktisi ilmu data, saya tertarik dengan gagasan untuk menangani arus masuk komentar yang begitu besar di video secara efisien. Setelah memikirkannya selama beberapa jam, saya siap untuk percaya bahwa itu benar-benar masalah.

Saat itulah ide untuk melakukan proyek berdasarkan kasus penggunaan tertentu lahir. Saya ingin melakukan sesuatu untuk membuat peralihan melalui sejumlah besar komentar lebih mudah.

Pada artikel ini, saya akan membahas bagaimana saya membangun proyek portofolio lengkap berdasarkan ide ini dan bagaimana Anda dapat menemukan masalah tertentu untuk dipecahkan dan juga membangun proyek di sekitarnya.

Jadi, berpegang pada pemikiran ini, maksud saya adalah:

Fokus pada masalah nyata yang mungkin bisa Anda selesaikan melalui keterampilan Anda.

Sangatlah penting untuk berfokus pada masalah yang dihadapi oleh rekan kerja yang Anda kenal, anggota keluarga atau teman atau siapa pun yang telah memilih untuk berbagi pengalaman mereka di bidang yang Anda sukai.

Lupakan sejenak deep learning, berikut rangkaian sembilan pertanyaan yang harus Anda tanyakan pada diri sendiri terlebih dahulu:

Masalah apa yang akan Anda selesaikan? Mengapa Anda perlu menyelesaikannya? Jenis data apa yang diperlukan oleh masalah tersebut dan dapatkah Anda mengaksesnya? Jika ya, lalu bagaimana dan dari mana Anda mengaksesnya? Melalui API publik, beberapa web scraping, Kaggle, kumpulan data Google, GitHub, di mana? Setelah Anda memiliki datanya – bagaimana Anda membersihkannya dan membuatnya dapat digunakan untuk mengatasi masalah itu? Bagaimana cara Anda memutuskan pendekatan pemodelan? Bagaimana Anda tahu mana solusi yang baik? Atau apakah ada solusi yang baik? Bisakah Anda mendefinisikannya? Alat dan pustaka apa yang tersedia yang dapat Anda gunakan untuk membuat model?

dan akhirnya,

9. Bagaimana hasil Anda akan terlihat?

Ketika Anda memutuskan suatu masalah, Anda secara otomatis mulai memikirkan langkah-langkah selanjutnya dari daftar di atas. Sangat wajar untuk mengambil rute itu dan mulai mengubah ide Anda menjadi aplikasi yang lengkap.

Oleh karena itu, semuanya dimulai dengan masalah dan bagaimana Anda akan berusaha menyelesaikannya.

Silakan dan catat daftar itu sekarang. Itu adalah yang saya gunakan saat melakukan proyek saya sendiri juga!

Setelah Anda memilikinya, mari kita lanjutkan.

Mulai sekarang, saya akan membahas masing-masing dari sembilan poin tersebut dan menjelaskan bagaimana saya membangun keseluruhan proyek di sekitarnya.

Ayo pergi!

Foto oleh Armand Khoury di Unsplash

1. Masalah apa yang akan saya pecahkan?

Seperti yang saya sebutkan di anekdot kecil sebelumnya, saya ingin mendefinisikan poin khusus ini dalam satu baris.

Itu membuatnya sederhana, singkat, mudah dimengerti dan karenanya, dapat ditindaklanjuti.

Jadi inilah jawaban saya untuk pertanyaan itu:

Saya ingin mempermudah analisis komentar di video YouTube.

Itu dia. Itulah motivasi saya untuk membuat proyek ini. Sekarang lanjutkan dan tentukan milik Anda.

2. Mengapa saya perlu memecahkan masalah itu?

Segera setelah saya mulai memikirkan tweet itu, ada perasaan di dalam diri saya yang memberi tahu saya bahwa masalah ini pasti bisa diselesaikan melalui beberapa pendekatan pembelajaran yang mendalam.

Akan sangat bagus jika teknik deep learning dapat menyaring komentar dan memastikan hanya komentar yang relevan yang ditampilkan terlebih dahulu dan sebagai grup sehingga lebih mudah bagi pengguna untuk membacanya, dan karenanya memilih untuk membalasnya juga. .

Jadi tujuan akhir saya menjadi – Saya ingin menggunakan keahlian saya untuk membantu memberikan solusi untuk masalah ini. Dan karena itu akan menjadi penggunaan yang tepat dari pemrosesan bahasa alami, serta tantangan bagi kemampuan saya untuk menyatukan solusi yang layak juga.

Kesimpulan utama dari pertanyaan ini adalah – Anda perlu tahu mengapa Anda ingin memecahkan masalah ini. Apakah ada kebutuhan? Apakah tidak ada solusi yang baik tersedia? Dan jika ada sesuatu yang tersedia, bagaimana cara membuat milik Anda berbeda?

3. Jenis data apa yang diperlukan oleh masalah tersebut dan dapatkah saya mengaksesnya?

Pertanyaan ini lebih mudah dijawab – bagaimanapun juga saya perlu mengakses komentar dari video.

Melalui penelitian, saya mengetahui tentang API Data YouTube yang memungkinkan kami melakukan hal itu – mengambil komentar. Sekarang saya hanya perlu menulis skrip di sekitarnya untuk membangun kumpulan data komentar saya sendiri.

Untuk proyek saya, saya juga menjawab pertanyaan no. 4 dalam pertanyaan ini sendiri. ?

Langkah ini sangat penting untuk memastikan Anda benar-benar dapat melanjutkan untuk memikirkan tentang cara yang mungkin untuk memodelkan masalah melalui pembelajaran mendalam setelah Anda memiliki sumber data.

Sekarang setelah Anda tahu bagaimana dan di mana mendapatkan akses ke data, lanjutkan dan dapatkan atau bahkan lebih baik lagi, coba buat kumpulan data Anda sendiri seperti yang saya lakukan!

5. Setelah saya memiliki datanya – bagaimana cara membersihkannya dan membuatnya dapat digunakan untuk mengatasi masalah itu?

Saya telah mengumpulkan semua komentar yang ingin saya gunakan untuk pemodelan nanti. Sekarang datanglah keputusan untuk benar-benar mengubah data dengan baik agar dapat memasukkannya ke dalam model apa pun yang saya putar nanti.

Setiap proyek membutuhkan serangkaian langkah dan praktik yang berbeda untuk mengubah data. Karenanya, menghabiskan waktu berkualitas dengan data Anda sangat penting.

Dalam kasus saya, saya memiliki file csv sekitar 5000 komentar dari video yang saya pilih. Saya telah menyimpannya dalam bentuk empat kolom untuk setiap baris komentar – teks, penulis, id komentar, dan jumlah sejenisnya.

Melihat lebih dekat pada komentar, saya menemukan bahwa biasanya, pembuat komentar yang saya terima menerima dua jenis komentar:

Satu, di mana seorang komentator memastikan untuk berterima kasih atas videonya atau secara umum memuji pembuatan filmnya, keterampilan mengeditnya, dll. Ini biasanya adalah komentar yang sangat pendek dan ringkas.

Dan dua, di mana komentator membuat komentar tentang hal tertentu yang paling dia sukai di video dan meluangkan waktu untuk benar-benar menulis secara mendalam tentang hal itu. Komentar ini sering diakhiri dengan pesan terima kasih juga. Biasanya, komentar ini berada di sisi spektrum yang lebih panjang.

Kedua jenis komentar ini memberi saya gagasan untuk memisahkannya menjadi dua kategori dan karenanya, melakukan operasi yang berbeda pada masing-masing, sesuai dengan fitur yang akan saya putuskan nanti untuk disertakan dalam proyek.

Oleh karena itu, melihat ke belakang, poin utama yang dapat diambil dari pertanyaan ini adalah:

Pastikan untuk meluangkan waktu membersihkan, mengiris, mengubah data Anda sesuai dengan kebutuhan Anda. Teliti, pikirkan dan tulis tentang fitur apa yang ingin Anda miliki dan mulai mengubah data Anda sesuai dengan itu.

Sekarang, mari kita membahas otak aplikasi. Langkah-langkah pemodelan. ?

6. Bagaimana cara saya memutuskan pendekatan pemodelan?

Sudah jelas bagi saya sejak awal bahwa saya perlu bereksperimen dengan berbagai cara untuk mengimplementasikan aplikasi NLP ke dalam proyek saya. Penting bagi saya untuk menghabiskan waktu mempelajari dan meneliti dengan tepat apa yang saya perlukan untuk mendekati hasil yang saya inginkan.

Tapi pertama-tama, saya ingin menentukan apa yang ingin saya lakukan di aplikasi.

Saya memutuskan yang berikut:

Buat cara untuk mengeluarkan topik penting yang dibicarakan dalam komentar – mengelompokkannya bersama-sama Menerapkan algoritme pengambilan semantik untuk menanyakan komentar serupa dari korpus sehubungan dengan topik penelusuran tertentu

Ini adalah dua fitur utama proyek saya. Kemudian, saya juga memasukkan dua hal lainnya:

Tampilkan emote teratas yang digunakan oleh orang-orang di komentar (sesuatu yang dialihkan dari arus utama dan sedikit lebih menyenangkan) Tampilkan komentar sebagai awan kata yang rapi dan cantik! (sesuatu yang estetis ?)

Saya membutuhkan waktu berminggu-minggu untuk belajar, meneliti, dan menyelesaikan hal-hal yang ingin saya terapkan dalam proyek ini.

Ingat ini – Tidak semua yang muncul di benak Anda secara naluriah dapat benar-benar dimasukkan dalam aplikasi akhir, dan tidak semua yang datang terlambat kepada Anda untuk membuat produk akhir tidak dapat dimasukkan.

Tidak ada aturan yang tegas dan tegas untuk dipatuhi di sini. Ini adalah proyek Anda. Anda dapat memasukkan dan mengecualikan hal-hal yang Anda suka. Jadi habiskan waktu untuk melakukannya.

Mari kita bahas pertanyaan berikutnya.

7. Bagaimana saya tahu mana solusi yang baik? Atau apakah ada solusi yang baik? Bisakah saya mendefinisikannya?

Langkah ini hampir sama pentingnya dengan langkah sebelumnya.

Fitur yang saya putuskan untuk dimasukkan ke dalam aplikasi secara langsung menjawab pertanyaan ini.

Jika saya dapat melihat ribuan komentar dan memilih beberapa yang bagus dengan sangat mudah bagi pengguna – khususnya, hanya dengan satu ketukan tombol – itu akan menjadi solusi yang ideal, yang saya cari.

Membuatnya sesederhana mungkin dari sudut pandang pengguna sangat penting untuk menyelesaikan proyek yang baik. Tidak semua orang memiliki mata pengembang yang duduk di belakang layar komputer selama berjam-jam untuk menulis proyek.

Ini adalah definisi proyek yang bagus untuk saya. Mencapai tujuan Anda dengan menerapkan fitur yang diperlukan sama pentingnya dengan memastikan fitur tersebut juga sangat mudah dipahami.

Solusinya harus jelas, bersih dan mudah diinterpretasikan dan dianalisis. Juga, jika Anda bisa membuatnya mudah DAN menyenangkan, itu akan menjadi luar biasa.

Itu adalah pemikiran saya ketika saya mulai mencari cara untuk memastikan saya juga bisa, sedikit kemudian jika memungkinkan, membangun frontend untuk proyek tersebut juga.

Sekarang tibalah dua pertanyaan terakhir. Ini adalah batu loncatan terakhir untuk mendapatkan produk yang bagus, jadi bacalah semuanya.

8. dan 9. Alat dan pustaka apa yang tersedia yang dapat saya gunakan untuk membuat model? dan, Bagaimana hasil saya akan terlihat?

Ada berbagai perpustakaan NLP yang tersedia untuk kasus penggunaan saya. Menurut fitur yang telah saya tetapkan, saya memutuskan untuk menggunakan yang berikut ini:

untuk mengelompokkan komentar dengan topik serupa— Saya menggunakan transformator kalimat untuk memodelkan kesamaan semantik untuk pengelompokan yang lebih efisien. Saya membuat model ini hanya pada kumpulan komentar yang lebih panjang. untuk menemukan emote teratas, saya menggunakan perpustakaan emoji dan memastikan untuk mencari setiap emote dan menyimpan frekuensinya. Saya menggunakan ini hanya pada komentar yang lebih pendek. untuk mengambil komentar dari kueri yang dicari, saya menggunakan pengubah kalimat lagi tetapi kali ini, pada seluruh rangkaian komentar. Setelah itu dibangun, saya menemukan perpustakaan Streamlit menakjubkan yang memungkinkan saya membuat tampilan depan yang indah hanya dalam beberapa jam kerja. Dan itu juga dengan menulis kode dengan Python! Setelah UI selesai, langkah selanjutnya adalah menerapkan / melayani proyek dengan cara yang nyaman. Karena ini adalah proyek open-source yang saya bangun, saya memutuskan untuk menggunakan Docker untuk itu.

Penting bagi Anda untuk memastikan bahwa seseorang yang menemukan proyek Anda di GitHub (saya berasumsi Anda akan menampilkannya di sana) dapat dengan mudah menjalankan aplikasi Anda sendiri.

Oleh karena itu perlu untuk memasukkan satu set instruksi yang jelas dalam README untuk proyek tersebut. Jelaskan semua yang dapat Anda pikirkan dan banyak lagi. Tidak semua yang tampak jelas bagi Anda juga sangat terlihat bagi mereka. Jadi lakukanlah. Pastikan untuk membuatnya selengkap mungkin.

Dan itu dia. Kami akhirnya selesai.

Jika Anda telah mengikuti selama ini, selamat! Anda selangkah lebih dekat dalam membuat proyek portofolio keren yang bisa Anda banggakan!

Pergi, ikuti langkah-langkahnya dan LAKUKAN!

Foto oleh Jackson Simmer di Unsplash

Satu hal terakhir.

Seandainya Anda begitu bersemangat dengan gagasan proyek ini seperti saya dan ingin belajar lebih banyak lagi – saya punya kabar baik untuk Anda.

Saya memberikan panduan langkah demi langkah ke seluruh alur kerja saya saat membangun proyek ini dari awal. sebagai eBook GRATIS tentunya!

Yang harus Anda lakukan adalah mendaftar di sini.

Mempelajari Ilmu Data tidaklah sulit, tapi ikuti saya dan mari kita buat semuanya menyenangkan bersama. ?

Berminggu-minggu kerja keras membuahkan hasil. Lihat keseluruhan proyek ini di GitHub – ini disebut: Insight.

Jangan ragu untuk mendapatkan ide untuk meningkatkan proyek ini, jika Anda benar-benar menginginkannya. Saya menghargai umpan balik yang mungkin Anda miliki. Juga hubungi jika Anda ingin membangun frontend untuk aplikasi di React / Vue – akan menyenangkan untuk berkolaborasi!

yashprakash13 / Wawasan

Terima kasih telah membaca dan saya harap Anda mempelajari beberapa wawasan yang baik dari artikel ini. Sampai jumpa di berikutnya!

How to Build an End-to-End Deep Learning Portfolio Project awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Towards AI