Perpustakaan dan Kerangka
Dalam bab ini, kita akan menghubungkan pembelajaran mendalam ke berbagai perpustakaan dan kerangka kerja.
Pembelajaran mendalam dan Theano
Jika kita ingin memulai pengkodean jaringan neural dalam, sebaiknya kita memiliki gambaran bagaimana kerangka kerja yang berbeda seperti Theano, TensorFlow, Keras, PyTorch dll bekerja.
Theano adalah pustaka python yang menyediakan serangkaian fungsi untuk membangun jaring dalam yang melatih dengan cepat di mesin kami.
Theano dikembangkan di Universitas Montreal, Kanada di bawah kepemimpinan Yoshua Bengio, seorang pionir jaringan yang dalam.
Theano memungkinkan kita mendefinisikan dan mengevaluasi ekspresi matematika dengan vektor dan matriks yang merupakan susunan bilangan persegi panjang.
Secara teknis, jaringan saraf dan data input dapat direpresentasikan sebagai matriks dan semua operasi jaringan standar dapat didefinisikan ulang sebagai operasi matriks. Ini penting karena komputer dapat melakukan operasi matriks dengan sangat cepat.
Kita dapat memproses beberapa nilai matriks secara paralel dan jika kita membangun jaringan saraf dengan struktur dasar ini, kita dapat menggunakan satu mesin dengan GPU untuk melatih jaringan yang sangat besar dalam jangka waktu yang wajar.
Namun jika kami menggunakan Theano, kami harus membangun jaring dalam dari bawah ke atas. Perpustakaan tidak menyediakan fungsionalitas lengkap untuk membuat jenis jaringan dalam tertentu.
Sebagai gantinya, kita harus mengkodekan setiap aspek deep net seperti model, lapisan, aktivasi, metode pelatihan, dan metode khusus apa pun untuk menghentikan overfitting.
Kabar baiknya adalah bahwa Theano memungkinkan pembangunan implementasi kami di atas fungsi vektorisasi memberi kami solusi yang sangat dioptimalkan.
Ada banyak perpustakaan lain yang memperluas fungsionalitas Theano. TensorFlow dan Keras dapat digunakan dengan Theano sebagai backend.
Deep Learning dengan TensorFlow
Googles TensorFlow adalah pustaka python. Perpustakaan ini adalah pilihan tepat untuk membangun aplikasi pembelajaran mendalam tingkat komersial.
TensorFlow berkembang dari pustaka lain DistBelief V2 yang merupakan bagian dari Google Brain Project. Pustaka ini bertujuan untuk memperluas portabilitas pembelajaran mesin sehingga model penelitian dapat diterapkan pada aplikasi tingkat komersial.
Sama seperti pustaka Theano, TensorFlow didasarkan pada grafik komputasi di mana sebuah node merepresentasikan data persisten atau operasi matematika dan edge mewakili aliran data antar node, yang merupakan array atau tensor multidimensi; karenanya dinamai TensorFlow
Output dari suatu operasi atau serangkaian operasi dimasukkan sebagai input ke operasi berikutnya.
Meskipun TensorFlow dirancang untuk jaringan neural, TensorFlow berfungsi dengan baik untuk jaringan lain tempat komputasi dapat dimodelkan sebagai grafik aliran data.
TensorFlow juga menggunakan beberapa fitur dari Theano seperti eliminasi umum dan sub-ekspresi, diferensiasi otomatis, variabel bersama dan simbolik.
Berbagai jenis deep net dapat dibuat menggunakan TensorFlow seperti convolutional nets, Autoencoders, RNTN, RNN, RBM, DBM / MLP, dan sebagainya.
Namun, tidak ada dukungan untuk konfigurasi parameter hyper di TensorFlow. Untuk fungsi ini, kita dapat menggunakan Keras.
Deep Learning dan Keras
Keras adalah pustaka Python andal yang mudah digunakan untuk mengembangkan dan mengevaluasi model pembelajaran mendalam.
Ini memiliki desain minimalis yang memungkinkan kita untuk membangun jaring lapis demi lapis; latih, dan jalankan.
Ini membungkus pustaka komputasi numerik yang efisien Theano dan TensorFlow serta memungkinkan kita untuk menentukan dan melatih model jaringan neural dalam beberapa baris kode pendek.
Ini adalah API jaringan neural tingkat tinggi, yang membantu memanfaatkan pembelajaran mendalam dan kecerdasan buatan secara luas. Ini berjalan di atas sejumlah pustaka tingkat yang lebih rendah termasuk TensorFlow, Theano, dan sebagainya. Kode keras bersifat portabel; kita dapat mengimplementasikan jaringan saraf di Keras menggunakan Theano atau TensorFlow sebagai bagian belakang tanpa perubahan kode.