Jaringan Saraf: Anda sudah mendapatkannya begitu sederhana

Jaringan saraf adalah semua kemarahan saat ini dengan meningkatnya jumlah peretas, siswa, peneliti, serta bisnis yang terlibat. Kebangkitan terakhir adalah di tahun 80-an serta 90-an, ketika ada sedikit atau tidak ada web di seluruh dunia serta beberapa alat jaringan saraf. Kebangkitan saat ini dimulai sekitar tahun 2006. Dari perspektif peretas, alat apa serta sumber daya lainnya ditawarkan saat itu, apa yang ditawarkan sekarang, dan apa yang harus kita harapkan untuk masa depan? Bagi saya sendiri, seorang GPU di Raspberry Pi akan menyenangkan.

Tahun 80-an serta 90-an

Jaringan saraf 80-an / 90-an juga mag
Bagi kaum muda membaca ini yang bertanya-tanya bagaimana kita kaku tua berhasil melakukan apa pun sebelum World Wide Web, majalah hardcopy memainkan peran besar dalam membuat kita sadar akan hal-hal baru. Selain itu, itu adalah edisi khusus Majalah Ilmiah Amerika September 1992, serta otak yang memperkenalkan saya ke jaringan saraf, baik jenis biologis maupun buatan.

Saat itu Anda memiliki opsi untuk menulis jaringan saraf Anda sendiri dari awal atau memesan kode sumber dari orang lain, yang akan Anda terima pada disket floppy melalui surat. Saya bahkan memesan floppy dari kolom Ilmuwan Amatir dari masalah ilmiah Amerika itu. Anda juga dapat membeli perpustakaan jaringan saraf yang akan melakukan semua matematika tingkat rendah dan kompleks untuk Anda. Ada juga simulator gratis bernama Xerion dari University of Toronto.

Mengawasi bagian-bagian ilmu toko buku memang muncul buku sesekali tentang masalah ini. Tradisional adalah eksplorasi dua volume dalam pemrosesan terdistribusi paralel, oleh Rumelhart, McClelland et al. Pilihan saya adalah perhitungan saraf serta peta yang mengatur diri sendiri: pengantar, berguna jika Anda tertarik pada jaringan saraf yang mengendalikan lengan robot.

Ada juga kursus singkat serta konferensi yang mungkin Anda hadiri. Seminar yang saya hadiri pada tahun 1994 adalah dua hari gratis yang dipakai oleh Geoffrey Hinton, kemudian dari University of Toronto, keduanya maupun sekarang pemimpin di lapangan. Seminar tahunan terkenal terbaik pada saat itu adalah konferensi sistem pemrosesan informasi saraf, masih kuat hari ini.

Dan terakhir, saya ingat menyisir perpustakaan untuk kertas yang dipublikasikan. Tumpukan kertas seminar saya serta selebaran program, artikel fotokopi, serta catatan tulisan tangan dari periode itu sekitar 3 “tebal.

Kemudian segalanya berjalan relatif tenang. Sementara jaringan saraf telah menemukan penggunaan dalam beberapa aplikasi, mereka tidak memenuhi hype mereka serta dari perspektif dunia, di luar komunitas penelitian terbatas, mereka berhenti menjadi masalah. Hal-hal tetap tenang karena perbaikan bertahap dibuat, bersama dengan beberapa terobosan, serta kemudian pada tahun 2006 mereka meledak di dunia lagi.

Saat ini tiba

Kami fokus pada alat di sini namun sebentar, terobosan itu terutama:

Teknik Baru untuk Jaringan Pelatihan yang Pergi Lebih Dari Tiga atau Empat Lapisan Dalam, Sekarang disebut Jaringan Saraf Dalam

Penggunaan GPU (unit pemrosesan grafis) untuk mempercepat pelatihan

Ketersediaan data pelatihan yang berisi sejumlah besar sampel

Kerangka kerja jaringan saraf

Sekarang ada banyak perpustakaan jaringan saraf, biasanya disebut kerangka kerja, ditawarkan untuk diunduh secara gratis dengan berbagai lisensi, banyak dari mereka kerangka sumber terbuka. Sebagian besar yang lebih populer memungkinkan Anda untuk menjalankan jaringan saraf Anda di GPU, serta cukup fleksibel untuk mendukung sebagian besar jenis jaringan.

Ini sebagian besar yang lebih populer. Mereka semua memiliki dukungan GPU kecuali untuk FNN.

Tensorflow.

Bahasa: Python, C ++ adalah dalam karya

TensorFlow adalah kerangka kerja jaringan saraf terbaru Google. Ini dirancang untuk mendistribusikan jaringan di beberapa mesin dan juga GPU. Ini dapat dianggap sebagai yang level rendah, menawarkan fleksibilitas besar tetapi juga kurva belajar yang lebih besar daripada yang tingkat tinggi seperti Keras serta TFrearn, keduanya berbicara tentang di bawah ini. Namun, mereka sedang berupaya menghasilkan versi keras yang terintegrasi dalam tensorflow.

Kami telah melihat yang ini dalam hack di Hackaday sudah dalam palu ini serta botol bir mengenali robot serta bahkan memiliki pengantar menggunakan tensorflow.

Theano.

Bahasa: Python.

Ini adalah perpustakaan open source untuk melakukan perhitungan numerik yang efektif yang melibatkan array multi-dimensi. Ini dari University of Montreal, dan berjalan di Windows, Linux serta OS-X. Theeano telah ada sejak lama, 0,1 telah dirilis pada tahun 2009.

Kafe

Bahasa: baris perintah, python, serta matlab

Caffe dikembangkan oleh Berkeley AI Research serta kontributor lingkungan. Model dapat didefinisikan dalam data teks biasa serta kemudian diproses menggunakan alat baris perintah. Ada juga antarmuka Python dan Matlab. Misalnya, Anda dapat menentukan model Anda dalam file teks biasa, berikan detail tentang cara melatihnya dalam data teks biasa kedua yang disebut pemecah, serta kemudian melewati ini ke CAFFe Command Line Tool yang kemudian akan melatih jaringan saraf. Anda kemudian dapat memuat jaring terlatih ini menggunakan program Python serta menggunakannya untuk melakukan sesuatu, klasifikasi gambar misalnya.

Cntk.

Bahasa: Python, C ++, C #

Ini adalah Microsoft Cognitive Toolkit (CNTK) serta berjalan pada Windows dan Linux. Mereka saat ini sedang mengerjakan versi yang akan digunakan dengan keras.

Keras

Bahasa: Python.

Ditulis dalam Python, Keras menggunakan TensorFlow atau Theano di bawahnya, membuatnya lebih mudah untuk menggunakan kerangka kerja itu. Ada juga rencana untuk mendukung CNTK juga. Pekerjaan sedang dilakukan untuk mengintegrasikan keras ke dalam tensorflow yang menghasilkan versi keras satu-satunya tensorflow yang terpisah.

TF Learn.

Bahasa: Python.

Seperti Keras, ini adalah pustaka tingkat tinggi yang dibangun di atas tensorflow.

Fann.

Bahasa: Mendukung lebih dari 15 bahasa, tidak ada dukungan GPU

Ini adalah perpustakaan open source tingkat tinggi yang ditulis dalam C. Ini terbatas pada jaringan saraf yang terhubung sepenuhnya serta yang jarang terhubung. Namun, ini telah populer selama bertahun-tahun, serta bahkan telah dimasukkan dalam distribusi Linux. Baru-baru ini ditampilkan di sini di Hackaday dalam robot yang belajar berjalan menggunakan pembuatan penguatan, teknik pembelajaran mesin yang sering memanfaatkan jaringan saraf.

Obor

Bahasa: Lua.

Pustaka open source ditulis dalam C. Menariknya, mereka mengatakan di halaman depan situs web mereka bahwa obor disematkan, dengan port ke iOS, andoid serta fpga backends.

Pytorch.

Bahasa: Python.

Pytorch relatif baru, situs web mereka mengatakan itu dalam beta rilis awal, namun tampaknya ada banyak minat di dalamnya. Ini berjalan di Linux dan OS-X serta menggunakan obor di bawahnya.

Tidak ada pertanyaan orang lain yang saya lewatkan. Jika Anda memiliki pilihan tertentu, itu tidak ada di sini, beri tahu kami di komentar.

Yang mana yang harus Anda gunakan? Kecuali jika bahasa pemrograman atau OS adalah masalah maka satu faktor lagi yang perlu diingat adalah tingkat keahlian Anda. Jika Anda tidak nyaman dengan matematika atau tidak ingin menggali nuansa jaringan saraf kemudian memilih yang level tinggi. Dalam hal ini, menjauhlah dari Tensorflow, di mana Anda harus belajar lebih banyak tentang API daripada kera, TFrearn atau yang tingkat tinggi lainnya. Kerangka kerja yang menyoroti fungsi matematme mereka biasanya mengharuskan Anda melakukan lebih banyak pekerjaan untuk menghasilkan jaringan. Satu faktor lagi adalah apakah Anda akan melakukan penelitian mendasar atau tidak. Kerangka kerja tingkat tinggi mungkin tidak memungkinkan Anda untuk mendapatkan akses ke jeroan cukup untuk mulai membuat jaringan gila, mungkin dengan koneksi yang mencakup beberapa lapisan atau dalam lapisan, serta dengan data yang mengalir ke segala arah.

Pelayanan online

Apakah Anda ingin menambahkan sesuatu yang akan ditawarkan jaringan saraf kepada peretasan Anda, namun tidak ingin meluangkan waktu untuk mempelajari seluk-beluk jaringan saraf? Untuk itu ada layanan yang ditawarkan dengan menghubungkan peretasan Anda ke Internet.

Kami telah melihat banyak contoh memanfaatkan Alexa untuk pengenalan suara Amazon. Google juga memiliki layanan pembelajaran mesin cloud yang mencakup penglihatan serta pidato. Layanan visinya telah muncul di sini menggunakan Raspberry PI untuk penyortiran permen serta membaca emosi manusia. WeKekinator ditujukan untuk seniman serta musisi yang telah kita lihat digunakan untuk melatih jaringan saraf untuk menanggapi berbagai gerakan untuk mengalihkan segala sesuatu di sekitar rumah, serta untuk membuat biola terkecil dunia virtual. Tidak ditinggalkan, Microsoft juga memiliki API layanan kognitif, termasuk: visi, pidato, bahasa maupun yang lain.

GPU serta TPU

Iterasi melalui jaringan saraf
Melatih jaringan saraf membutuhkan iterasi melalui jaringan saraf, maju serta kemudian mundur, setiap kali meningkatkan akurasi jaringan. Hingga suatu titik, semakin banyak iterasi yang dapat Anda lakukan, semakin baik akurasi akhir akan ketika Anda berhenti. Jumlah iterasi mungkin dalam ratusan atau bahkan ribuan. Dengan 1980-an serta 1990-an komputer, mencapai cukup iterasi mungkin membutuhkan waktu yang tidak dapat diterima. Menurut artikel, pembelajaran mendalam di jaringan saraf: ikhtisar, pada tahun 2004 meningkat 20 kali kecepatan dicapai dengan GPU untuk jaringan saraf yang terhubung sepenuhnya. Pada tahun 2006 kenaikan 4 kali dicapai untuk jaringan saraf convolutional. Pada 2010, meningkatnya sebanyak 50 kali lebih cepat ketika membandingkan pelatihan pada CPU versus GPU. Akibatnya, akurasi jauh lebih tinggi.

Kartu Grafis NVIDIA TITAN XP. Kredit Gambar: NVIDIA
Bagaimana cara membantu GPU? Sebagian besar dari pelatihan, jaringan saraf melibatkan melakukan perkalian matriks, sesuatu yang dilakukan jauh lebih cepat pada GPU daripada pada CPU. Nvidia, seorang pemimpin dalam membuat kartu grafis dan GPU, menciptakan API yang disebut CUDA yang digunakan oleh perangkat lunak jaringan saraf untuk memanfaatkan GPU. Kami menunjukkan ini karena Anda akan melihat istilah CUDA. Dengan penyebaran pembelajaran mendalam, Nvidia telah menambahkan lebih banyak API, termasuk Cudnn (CUDA untuk jaringan saraf dalam), sebuah perpustakaan primitif jaringan saraf yang disetel dengan halus, serta satu istilah lagi yang akan Anda lihat.

Nvi.Dia juga memiliki komputer papan tunggal sendiri, Jetson TX2, dirancang untuk menjadi otak untuk mobil-mobil self-driving, drone selfie-shapping, serta sebagainya. Namun, sebagai [Brian Benchoff] kami telah menunjukkan, titik harga agak tinggi untuk hacker khas.

Google telah bekerja pada akselerasi perangkat kerasnya sendiri dalam jenis Unit Pemrosesan Tensor (TPU). Anda mungkin telah memperhatikan kesamaan dengan nama kerangka Google di atas, tensorflow. TensorFlow menggunakan tensor yang berat (pikirkan array tunggal maupun multi-dimensi dalam perangkat lunak). Menurut kertas Google pada TPU itu dirancang untuk fase inferensi jaringan saraf. Inferensi mengacu pada tidak melatih jaringan saraf tetapi menggunakan jaringan saraf setelah dilatih. Kami belum melihatnya digunakan oleh segala jenis kerangka kerja, namun itu sesuatu yang perlu diingat.

Menggunakan perangkat keras orang lain

Apakah Anda memiliki jaringan saraf yang akan memakan waktu lama untuk melatih tetapi tidak memiliki GPU yang didukung, atau tidak ingin mengikat sumber daya Anda? Dalam situasi itu ada perangkat keras yang dapat Anda gunakan pada mesin lain yang dapat diakses melalui Internet. Salah satunya adalah Floydhub yang, untuk seorang individu, hanya biaya penny per jam tanpa pembayaran bulanan. Satu lagi adalah Amazon EC2.

Dataset.

Pelatihan jaringan saraf dengan data berlabel
Kami mengatakan bahwa salah satu terobosan dalam jaringan saraf adalah ketersediaan data pelatihan yang berisi sejumlah besar sampel, dalam puluhan ribu. Melatih jaringan saraf menggunakan algoritma pelatihan yang diawasi melibatkan memberikan data ke jaringan pada inputnya namun demikian juga menceritakannya apa keluaran yang diharapkan. Dalam situasi itu data juga harus diberi label. Jika Anda memberikan gambar kuda ke input jaringan, serta outputnya mengatakan itu terlihat seperti cheetah, maka perlu tahu bahwa kesalahannya besar serta lebih banyak pelatihan diperlukan. Output yang diharapkan disebut label, serta data ‘diberi label’.

Banyak dataset tersebut ditawarkan online untuk keperluan pelatihan. Mnist adalah salah satu untuk pengenalan karakter tulisan tangan. ImageNet dan CIFAR adalah dua dataset gambar berlabel berbeda. Banyak lagi yang terdaftar di halaman Wikipedia ini. Banyak kerangka yang tercantum di atas memiliki tutorial yang mencakup dataset yang diperlukan.

Itu tidak berarti Anda benar-benar membutuhkan dataset besar untuk mendapatkan akurasi yang terhormat. Robot berjalan yang sebelumnya kami sebutkan yang menggunakan Framework FNN, menggunakan Posisi Motor Servo sebagai data pelatihannya.

Sumber Daya Lainnya

Tidak seperti di tahun 80-an serta 90-an, sementara Anda masih dapat membeli buku-buku hardcopy tentang jaringan saraf, ada banyak yang online. Dua buku online yang saya nikmati adalah pembelajaran yang mendalam oleh mit press serta jaringan saraf dan pembelajaran yang mendalam. Kerangka kerja yang terdaftar di atas semuanya memiliki tutorial untuk membantu memulai. Dan kemudian ada banyak situs web lain serta video YouTube tentang semua jenis topik yang Anda cari. Saya menemukan video YouTube dari kuliah yang direkam serta pembicaraan seminar sangat berguna.

Masa depan

Raspberry Pi 7 dengan GPU
Tidak diragukan lagi masa depan akan melihat lebih banyak kerangka kerja yang terjadi.

Kami telah lama melihat chip saraf khusus serta papan di pasar tetapi tidak pernah menemukan pasar besar, bahkan kembali pada tahun 90-an. Namun, mereka tidak dirancang khusus untuk menyajikan area pertumbuhan nyata, perangkat lunak jaringan saraf yang dikerjakan semua orang. GPU memang melayani pasar itu. Sebagai jaringan saraf dengan jutaan koneksi untuk gambar serta pemrosesan suara, bahasa, serta jadi untuk membuat jalan mereka menjadi lebih kecil dan lebih kecil perangkat konsumen yang perlu untuk lebih banyak GPU atau prosesor yang disesuaikan dengan perangkat lunak itu akan menghasilkan sesuatu akhirnya bisa menjadi elemen baru di papan raspberry atau papan arduino. Meskipun ada kemungkinan pemrosesan akan tetap menjadi layanan online sebagai gantinya. EDIT: Ternyata ada GPU pada Raspberry PI – lihat komentar di bawah ini. Itu tidak berarti semua kerangka kerja di atas akan memanfaatkannya. Misalnya, Tensorflow mendukung kartu NVIDIA CUDA saja. Namun Anda masih dapat menggunakan GPU untuk kode jaringan saraf kustom Anda sendiri. Berbagai tautan ada di komentar untuk itu juga.

Sudah ada persaingan untuk GPU dari Asics seperti TPU dan mungkin kita akan melihat lebih banyak dari mereka, mungkin menggulingkan GPU dari jaringan saraf sama sekali.

Adapun komputer baru kami

Leave a Reply