Apa itu TensorFlow? Perpustakaan pembelajaran mesin menerangkan

Pembelajaran mesin adalah disiplin yang kompleks. Tetapi melaksanakan model pembelajaran mesin jauh lebih menakutkan dan sukar daripada sebelumnya, berkat kerangka pembelajaran mesin — seperti TensorFlow Google — yang memudahkan proses memperoleh data, melatih model, melayani ramalan, dan menyempurnakan hasil masa depan.

Dicipta oleh pasukan Google Brain, TensorFlow adalah perpustakaan sumber terbuka untuk pengiraan berangka dan pembelajaran mesin berskala besar. TensorFlow menggabungkan banyak model dan algoritma pembelajaran mesin dan pembelajaran mendalam (aka neural networking) dan menjadikannya berguna dengan metafora biasa. Ia menggunakan Python untuk menyediakan API front-end yang mudah untuk membangun aplikasi dengan kerangka kerja, sementara menjalankan aplikasi tersebut dalam C ++ berprestasi tinggi.

TensorFlow dapat melatih dan menjalankan rangkaian neural mendalam untuk klasifikasi digit tulisan tangan, pengecaman gambar, penyisipan kata, rangkaian saraf berulang, model urutan-ke-urutan untuk terjemahan mesin, pemprosesan bahasa semula jadi, dan simulasi berasaskan PDE (persamaan pembezaan separa). Paling baik, TensorFlow menyokong ramalan pengeluaran pada skala besar, dengan model yang sama digunakan untuk latihan.

Bagaimana TensorFlow berfungsi

TensorFlow membolehkan pemaju membuat grafik aliran data — struktur yang menerangkan bagaimana data bergerak melalui grafik, atau rangkaian nod pemprosesan. Setiap nod dalam grafik mewakili operasi matematik, dan setiap sambungan atau tepi antara nod adalah tatasusunan data multidimensi, atau tensor .

TensorFlow menyediakan semua ini untuk pengaturcara dengan menggunakan bahasa Python. Python mudah dipelajari dan dikerjakan, dan menyediakan cara mudah untuk menyatakan bagaimana abstraksi tahap tinggi dapat digabungkan bersama. Nod dan tensor di TensorFlow adalah objek Python, dan aplikasi TensorFlow adalah aplikasi Python sendiri.

Walau bagaimanapun, operasi matematik sebenarnya tidak dilakukan di Python. Perpustakaan transformasi yang tersedia melalui TensorFlow ditulis sebagai binari C ++ berprestasi tinggi. Python hanya mengarahkan lalu lintas di antara bahagian-bahagian itu, dan memberikan abstraksi pengaturcaraan peringkat tinggi untuk menghubungkannya.

Aplikasi TensorFlow dapat dijalankan pada hampir semua sasaran yang sesuai: mesin lokal, kluster di awan, perangkat iOS dan Android, CPU atau GPU. Sekiranya anda menggunakan awan Google sendiri, anda boleh menjalankan TensorFlow pada silikon TensorFlow Processing Unit (TPU) khas Google untuk percepatan selanjutnya. Model yang dihasilkan yang dibuat oleh TensorFlow, bagaimanapun, dapat digunakan pada hampir semua perangkat di mana ia akan digunakan untuk melayani ramalan.

TensorFlow 2.0, yang dirilis pada bulan Oktober 2019, merombak kerangka kerja dengan banyak cara berdasarkan maklum balas pengguna, untuk membuatnya lebih mudah digunakan (misalnya, dengan menggunakan API Keras yang agak sederhana untuk latihan model) dan lebih berprestasi. Latihan yang diedarkan lebih mudah dijalankan berkat API baru, dan sokongan untuk TensorFlow Lite memungkinkan untuk menggunakan model pada pelbagai platform. Walau bagaimanapun, kod yang ditulis untuk versi TensorFlow yang lebih awal mesti ditulis semula - kadang-kadang hanya sedikit, kadang-kadang dengan ketara - untuk memanfaatkan ciri TensorFlow 2.0 yang baru.

Faedah TensorFlow

Manfaat terbesar TensorFlow yang disediakan untuk pengembangan pembelajaran mesin adalah abstraksi. Daripada menangani perincian algoritma implementasi, atau mencari cara yang tepat untuk menghasilkan output dari satu fungsi ke input yang lain, pembangun boleh memberi tumpuan kepada logik keseluruhan aplikasi. TensorFlow mengurus perincian di sebalik tabir.

TensorFlow menawarkan kemudahan tambahan untuk pembangun yang perlu melakukan debug dan mendapatkan introspeksi ke dalam aplikasi TensorFlow. Mod pelaksanaan yang bersemangat membolehkan anda menilai dan mengubah setiap operasi grafik secara berasingan dan telus, bukannya membina keseluruhan grafik sebagai objek legap tunggal dan menilai semuanya sekaligus. Suite visualisasi TensorBoard membolehkan anda memeriksa dan membuat profil cara grafik dijalankan dengan menggunakan papan pemuka berasaskan web yang interaktif.

TensorFlow juga memperoleh banyak kelebihan dari sokongan pakaian komersial A-list di Google. Google bukan sahaja memacu perkembangan pesat di sebalik projek ini, tetapi mencipta banyak tawaran penting di sekitar TensorFlow yang menjadikannya lebih mudah digunakan dan lebih mudah digunakan: silikon TPU yang disebutkan di atas untuk mempercepat prestasi di awan Google; hab dalam talian untuk berkongsi model yang dibuat dengan rangka kerja; penjelmaan dalam penyemak imbas dan mesra kerangka kerja; dan banyak lagi.

Satu peringatan: Beberapa perincian pelaksanaan TensorFlow menyukarkan untuk memperoleh hasil latihan model yang benar-benar deterministik untuk beberapa pekerjaan latihan. Kadang-kadang model yang dilatih pada satu sistem akan sedikit berbeza dari model yang dilatih pada sistem yang lain, bahkan ketika mereka diberi data yang sama persis. Sebabnya adalah licin — misalnya, bagaimana nombor rawak disusun dan di mana, atau tingkah laku tidak deterministik tertentu ketika menggunakan GPU). Yang mengatakan, adalah mungkin untuk mengatasi masalah tersebut, dan pasukan TensorFlow sedang mempertimbangkan lebih banyak kawalan untuk mempengaruhi determinisme dalam aliran kerja.

Video berkaitan: Pembelajaran mesin dan AI diuraikan

Menerusi hype pembelajaran mesin dan kecerdasan buatan, panel kami membincangkan definisi dan implikasi teknologi.

TensorFlow vs persaingan

TensorFlow bersaing dengan beberapa kerangka pembelajaran mesin yang lain. PyTorch, CNTK, dan MXNet adalah tiga kerangka utama yang memenuhi banyak keperluan yang sama. Di bawah ini saya telah mencatat di mana mereka menonjol dan menentang TensorFlow.

  • PyTorch , selain dibina dengan Python, dan mempunyai banyak persamaan lain dengan TensorFlow: komponen dipercepat perkakasan di bawah tudung, model pembangunan yang sangat interaktif yang membolehkan kerja reka bentuk sambil berjalan, dan banyak komponen berguna yang sudah disertakan. PyTorch pada umumnya merupakan pilihan yang lebih baik untuk pembangunan projek yang cepat dan perlu dijalankan dalam masa yang singkat, tetapi TensorFlow menang untuk projek yang lebih besar dan aliran kerja yang lebih kompleks.

  • CNTK , Microsoft Cognitive Toolkit, seperti TensorFlow menggunakan struktur grafik untuk menerangkan aliran data, tetapi paling memfokuskan pada pembuatan rangkaian saraf pembelajaran mendalam. CNTK menangani banyak pekerjaan rangkaian saraf dengan lebih cepat, dan memiliki rangkaian API yang lebih luas (Python, C ++, C #, Java). Tetapi CNTK saat ini tidak semudah dipelajari atau digunakan seperti TensorFlow.

  • Apache MXNet , yang diadopsi oleh Amazon sebagai kerangka pembelajaran mendalam utama di AWS, dapat skala hampir linear di beberapa GPU dan beberapa mesin. Ia juga menyokong pelbagai API bahasa — Python, C ++, Scala, R, JavaScript, Julia, Perl, Go — walaupun API asalnya tidak begitu menyenangkan untuk digunakan seperti TensorFlow's.