Apa itu TensorFlow? Perpustakaan pembelajaran mesin menjelaskan

Pembelajaran mesin adalah disiplin yang kompleks. Namun, menerapkan model pembelajaran mesin jauh lebih sulit dan sulit daripada sebelumnya, berkat kerangka kerja pembelajaran mesin — seperti TensorFlow Google — yang memudahkan proses memperoleh data, melatih model, menyajikan prediksi, dan menyempurnakan hasil di masa mendatang.

Dibuat oleh tim Google Brain, TensorFlow adalah pustaka sumber terbuka untuk komputasi numerik dan pembelajaran mesin skala besar. TensorFlow menggabungkan banyak model dan algoritme machine learning dan deep learning (alias jaringan neural) dan membuatnya berguna melalui metafora umum. Ia menggunakan Python untuk menyediakan API front-end yang nyaman untuk membangun aplikasi dengan kerangka kerja, sambil menjalankan aplikasi tersebut dalam C ++ berkinerja tinggi.

TensorFlow dapat melatih dan menjalankan jaringan neural dalam untuk klasifikasi digit tulisan tangan, pengenalan gambar, embeddings kata, jaringan neural berulang, model urutan-ke-urutan untuk terjemahan mesin, pemrosesan bahasa natural, dan simulasi berbasis PDE (persamaan diferensial parsial). Bagian terbaiknya, TensorFlow mendukung prediksi produksi dalam skala besar, dengan model yang sama yang digunakan untuk pelatihan.

Cara kerja TensorFlow

TensorFlow memungkinkan developer membuat grafik aliran data — struktur yang mendeskripsikan cara data bergerak melalui grafik, atau serangkaian node pemrosesan. Setiap node dalam grafik mewakili operasi matematika, dan setiap koneksi atau tepi antar node adalah larik data multidimensi, atau tensor .

TensorFlow menyediakan semua ini untuk programmer melalui bahasa Python. Python mudah dipelajari dan digunakan, dan menyediakan cara yang nyaman untuk mengekspresikan bagaimana abstraksi tingkat tinggi dapat digabungkan bersama. Node dan tensor di TensorFlow adalah objek Python, dan aplikasi TensorFlow itu sendiri adalah aplikasi Python.

Operasi matematika yang sebenarnya, bagaimanapun, tidak dilakukan dengan Python. Library transformasi yang tersedia melalui TensorFlow ditulis sebagai biner C ++ berperforma tinggi. Python hanya mengarahkan lalu lintas antar bagian, dan menyediakan abstraksi pemrograman tingkat tinggi untuk menghubungkannya.

Aplikasi TensorFlow dapat dijalankan di hampir semua target yang sesuai: mesin lokal, cluster di cloud, perangkat iOS dan Android, CPU atau GPU. Jika Anda menggunakan cloud Google sendiri, Anda dapat menjalankan TensorFlow pada silikon TensorFlow Processing Unit (TPU) khusus Google untuk akselerasi lebih lanjut. Namun, model hasil yang dibuat oleh TensorFlow dapat diterapkan di hampir semua perangkat yang akan digunakan untuk menyajikan prediksi.

TensorFlow 2.0, dirilis pada Oktober 2019, mengubah kerangka kerja dalam banyak cara berdasarkan masukan pengguna, untuk membuatnya lebih mudah untuk digunakan (misalnya, dengan menggunakan API Keras yang relatif sederhana untuk pelatihan model) dan lebih berkinerja. Pelatihan terdistribusi lebih mudah dijalankan berkat API baru, dan dukungan untuk TensorFlow Lite memungkinkan penerapan model pada lebih banyak variasi platform. Namun, kode yang ditulis untuk versi TensorFlow sebelumnya harus ditulis ulang — terkadang hanya sedikit, terkadang secara signifikan — untuk memanfaatkan fitur TensorFlow 2.0 baru secara maksimal.

Manfaat TensorFlow

Satu-satunya manfaat terbesar yang diberikan TensorFlow untuk pengembangan machine learning adalah abstraksi. Alih-alih berurusan dengan detail seluk beluk penerapan algoritme, atau mencari tahu cara yang tepat untuk menghubungkan keluaran dari satu fungsi ke masukan fungsi lainnya, pengembang dapat fokus pada logika aplikasi secara keseluruhan. TensorFlow menangani detail di balik layar.

TensorFlow menawarkan kemudahan tambahan bagi developer yang perlu melakukan debug dan melakukan introspeksi ke dalam aplikasi TensorFlow. Mode eager execution memungkinkan Anda mengevaluasi dan memodifikasi setiap operasi grafik secara terpisah dan transparan, alih-alih membuat seluruh grafik sebagai satu objek buram dan mengevaluasi semuanya sekaligus. Rangkaian visualisasi TensorBoard memungkinkan Anda memeriksa dan membuat profil cara grafik dijalankan melalui dasbor interaktif berbasis web.

TensorFlow juga mendapatkan banyak keuntungan dari dukungan sebuah perusahaan komersial A-list di Google. Google tidak hanya mendorong laju cepat pengembangan di belakang proyek, tetapi juga menciptakan banyak penawaran signifikan seputar TensorFlow yang membuatnya lebih mudah untuk diterapkan dan lebih mudah digunakan: silikon TPU yang disebutkan di atas untuk kinerja yang dipercepat di awan Google; hub online untuk berbagi model yang dibuat dengan kerangka; inkarnasi kerangka kerja dalam browser dan ramah seluler; dan banyak lagi.

Satu peringatan: Beberapa detail penerapan TensorFlow mempersulit perolehan hasil pelatihan model yang sepenuhnya deterministik untuk beberapa tugas pelatihan. Terkadang model yang dilatih di satu sistem akan sedikit berbeda dari model yang dilatih di sistem lain, meskipun model tersebut diberi data yang sama persis. Alasan untuk ini licin — misalnya, bagaimana nomor acak diunggulkan dan di mana, atau perilaku non-deterministik tertentu saat menggunakan GPU). Meskipun demikian, masalah tersebut dapat diselesaikan, dan tim TensorFlow sedang mempertimbangkan lebih banyak kontrol untuk memengaruhi determinisme dalam alur kerja.

Video terkait: Pembelajaran mesin dan AI diuraikan

Menerobos hype seputar pembelajaran mesin dan kecerdasan buatan, panel kami membahas definisi dan implikasi teknologi.

TensorFlow vs. kompetisi

TensorFlow bersaing dengan banyak framework machine learning lainnya. PyTorch, CNTK, dan MXNet adalah tiga kerangka kerja utama yang menangani banyak kebutuhan yang sama. Di bawah ini saya telah mencatat di mana mereka menonjol dan kalah melawan TensorFlow.

  • PyTorch , selain dibuat dengan Python, dan memiliki banyak kemiripan lain dengan TensorFlow: komponen yang dipercepat perangkat keras di bawah kapnya, model pengembangan yang sangat interaktif yang memungkinkan pekerjaan desain sesuai penggunaan, dan banyak komponen berguna yang sudah disertakan. PyTorch umumnya merupakan pilihan yang lebih baik untuk pengembangan cepat proyek yang perlu aktif dan berjalan dalam waktu singkat, tetapi TensorFlow menang untuk proyek yang lebih besar dan alur kerja yang lebih kompleks.

  • CNTK , Microsoft Cognitive Toolkit, seperti TensorFlow menggunakan struktur grafik untuk mendeskripsikan aliran data, tetapi sebagian besar berfokus pada pembuatan jaringan neural deep learning. CNTK menangani banyak pekerjaan jaringan neural lebih cepat, dan memiliki kumpulan API yang lebih luas (Python, C ++, C #, Java). Tetapi CNTK saat ini tidak mudah dipelajari atau diterapkan seperti TensorFlow.

  • Apache MXNet , diadopsi oleh Amazon sebagai kerangka kerja deep learning premier di AWS, dapat menskalakan hampir secara linier di beberapa GPU dan banyak mesin. Ini juga mendukung berbagai API bahasa — Python, C ++, Scala, R, JavaScript, Julia, Perl, Go — meskipun API aslinya tidak semenyenangkan untuk digunakan seperti TensorFlow.