
Pengarang: Pere Martra
Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.
Apakah Anda ingin menghemat waktu dan biaya? Sesederhana membuat model yang mampu memprediksi banyak variabel dengan pelatihan yang sama dan dalam proses prediksi yang sama.
Dalam artikel ini, saya akan menunjukkan beberapa kode, tetapi jika Anda ingin memeriksa kode lengkapnya, tersedia di Kaggle dan GitHub. Di mana Anda dapat melakukan fork, memodifikasi, dan menjalankannya.
Panduan: Beberapa Output dengan Keras Functional API
Gambar oleh Nathan Dumlao di Unsplash
Saat kami mulai bekerja dengan TensorFlow, kami biasanya menggunakan format sekuensial untuk membuat Model dengan perpustakaan Keras.
Dengan model sekuensial, kita dapat memecahkan banyak masalah di semua bidang deep learning. Baik itu pengenalan atau klasifikasi gambar, Pemrosesan Bahasa Alami, atau Peramalan Seri… mereka adalah model yang cukup kuat untuk digunakan dalam sebagian besar masalah.
Namun ada kalanya kita perlu melangkah lebih jauh dalam menggunakan Keras dengan TensorFlow. Jadi, kita dapat menggunakan API untuk pembuatan model, yang membuka dunia luas dengan lebih banyak kemungkinan yang tidak kita miliki saat menggunakan model sekuensial.
Dalam artikel ini, kita akan melihat pembuatan model yang mampu memprediksi dua variabel berbeda menggunakan data yang sama dan proses pembelajaran yang sama, berbagi sebagian besar lapisan.
Artinya, kita akan membuat model Multi-Output dengan cabang dua lapis. Seperti yang bisa kita lihat pada gambar:
Model terdiri dari lapisan input, diikuti oleh dua lapisan padat. Ketiga lapisan ini adalah bagian umum dari model. Dari sini, model dibagi menjadi dua cabang yang berbeda. Di salah satu cabang, kami menemukan lapisan keluaran dari variabel klasifikasi. Cabang lainnya terdiri dari lapisan padat dan lapisan keluaran yang memprediksi variabel regresi.
Perhatikan bahwa di cabang kanan, model memprediksi variabel klasifikasi, sedangkan di cabang kiri, variabel yang diprediksi adalah variabel regresi.
Pada artikel ini, kita hanya akan melihat cara menghasilkan dan menjalankan model. Perlakuan data dan evaluasi model selanjutnya, serta gagasan tentang cara memperbaikinya, dapat ditemukan di buku catatan Kaggle.
Pengantar singkat tentang Data dan masalah yang dipecahkan.
Saya telah menggunakan Kaggle Dataset yang berisi informasi tentang anggur. Mereka adalah data dalam format tabel, dengan 11 kolom yang dapat dianggap sebagai fitur dan dua yang akan menjadi label kami.
Sebagai label pertama, saya telah memilih kualitas anggur (kualitas), yang berkisar dari 0 hingga 9. Saya telah memutuskan untuk memperlakukannya seolah-olah itu adalah variabel regresi dan bukan variabel klasifikasi. Karena itu adalah variabel yang menunjukkan bahwa anggur semakin baik.
Label kedua adalah jenis anggur (type), yang menunjukkan apakah anggur itu berwarna putih atau merah. Ini jelas merupakan variabel klasifikasi.
Gambar oleh penulis
Jadi, kami memiliki dua variabel dengan tipe berbeda untuk diprediksi dalam satu model.
Setelah melihat Dataset, kami memulai konstruksi model.
https://medium.com/media/28b0d9f3fae2bdd8d7a790a50ae9fb7a/href
Seperti yang Anda lihat, membuat model jenis ini sama sekali tidak rumit dan membuka dunia kemungkinan baru jika kita membandingkannya dengan model sekuensial.
Anda memiliki semua informasi dalam komentar dalam kode, tetapi saya ingin menunjukkan beberapa hal.
Saya biasanya menggunakan nama yang sama untuk nama internal lapisan dan nama variabel yang berisi lapisan. Tidak hanya untuk membuat kode lebih jelas tetapi ketika kami menunjukkan fungsi kerugian dan metrik, nama internal lapisan harus ditunjukkan. Saat melaporkan keluaran model, kita harus menunjukkan nama variabel yang berisi lapisan. Lebih mudah bagi saya untuk selalu menggunakan nama yang sama.
Fungsi kerugian dan metrik yang berbeda dapat digunakan untuk setiap variabel keluaran.
Kami benar-benar harus menunjukkannya dalam dua daftar. Satu untuk fungsi kerugian dan satu lagi untuk metrik, di mana kita akan menghubungkannya dengan nama lapisan.
model.compile(optimizer=optimizer,
rugi = {‘y_t_layer’ : ‘binary_crossentropy’,
‘y_q_layer’ : ‘mse’
},
metrik = {‘y_t_layer’ : ‘akurasi’,
‘y_q_layer’: tf.keras.metrics.RootMeanSquaredError()
}
)
Untuk apa beberapa model keluaran berguna?
Saya tidak berpura-pura memberikan jawaban yang lengkap karena itu hanya visi saya, dan Ilmuwan Data yang lebih berpengalaman dapat menemukan lebih banyak kegunaan untuk mereka.
Jenis model ini sangat berguna dalam lingkungan di mana pelatihan berkala harus dilakukan dengan volume data yang besar untuk memprediksi lebih dari satu variabel. Waktu yang dihemat jika kita membandingkannya dengan pelatihan dua atau tiga model yang berbeda bisa sangat signifikan, tidak hanya dalam waktu tetapi juga dalam biaya.
Mereka juga dapat menghemat banyak waktu dan proses di lingkungan di mana banyak prediksi perlu dieksekusi berulang kali dan hasilnya lebih dari satu variabel.
Di sisi lain, biayanya lebih mahal untuk menyesuaikan karena, misalnya, lebih sulit untuk menemukan tingkat pembelajaran yang dapat optimal untuk semua variabel.
Artikel ini adalah bagian dari seri tentang topik lanjutan di TensorFlow dan Keras, jika Anda menyukainya, pertimbangkan untuk mengikuti saya di Medium untuk mendapatkan pembaruan tentang artikel baru. Dan tentu saja, Anda dipersilakan untuk terhubung dengan saya di LinkedIn.
TensorFlow di luar dasar
Bagaimana Memprediksi Banyak Variabel Dengan Satu Model? Dan mengapa! awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.
Diterbitkan melalui Menuju AI