Seorang anak manusia pada usia 2 membutuhkan sekitar 5 instance mobil untuk dapat mengidentifikasinya dengan akurasi yang wajar terlepas dari warna, warna, dll. Ketika anak saya berusia 2 tahun, ia dapat mengidentifikasi trem dan kereta api, meskipun ia telah melihat hanya sedikit. Karena dia biasanya membingungkan satu sama lain, tampaknya jaringan sarafnya tidak cukup terlatih, tapi tetap saja.
Apa yang hilang dari jaringan syaraf tiruan yang mencegah mereka untuk dapat belajar dengan lebih cepat? Apakah transfer belajar merupakan jawaban?
neural-networks
neuroscience
Marcin
sumber
sumber
Jawaban:
Saya memperingatkan agar tidak ada kemiripan yang kuat antara jaringan saraf biologis dan buatan. Saya pikir nama "jaringan saraf" agak berbahaya, karena menipu orang untuk berharap bahwa proses neurologis dan pembelajaran mesin harus sama. Perbedaan antara jaringan syaraf biologis dan buatan lebih besar daripada kesamaan.
Sebagai contoh bagaimana hal ini bisa salah, Anda juga dapat mengubah alasan di pos asli di kepalanya. Anda dapat melatih jaringan saraf untuk belajar mengenali mobil di siang hari, asalkan Anda memiliki komputer yang cukup cepat dan sejumlah data pelatihan. Anda dapat menjadikan ini tugas biner (mobil / bukan mobil) atau tugas multi-kelas (mobil / trem / sepeda / pesawat / kapal) dan masih percaya diri dalam tingkat kesuksesan yang tinggi.
Sebaliknya, saya tidak akan mengharapkan seorang anak untuk dapat memilih mobil hari - atau bahkan minggu - setelah lahir, bahkan setelah melihat "begitu banyak contoh pelatihan." Sesuatu yang jelas berbeda antara anak berusia dua tahun dan bayi yang menjelaskan perbedaan dalam kemampuan belajar, sedangkan jaringan saraf klasifikasi gambar vanila sangat mampu mengambil klasifikasi objek segera setelah "kelahiran." Saya pikir ada dua perbedaan penting: (1) volume relatif dari data pelatihan yang tersedia dan (2) mekanisme pengajaran mandiri yang berkembang seiring waktu karena banyaknya data pelatihan.
Posting asli memaparkan dua pertanyaan. Judul dan isi pertanyaan bertanya mengapa jaringan saraf membutuhkan "begitu banyak contoh." Relatif dengan pengalaman anak, jaringan saraf dilatih menggunakan tolok ukur gambar umum memiliki data yang relatif sedikit.
Saya akan mengulangi pertanyaan dalam judul untuk
"Bagaimana melatih jaringan saraf untuk tolok ukur gambar umum dibandingkan & kontras dengan pengalaman belajar seorang anak?"
Demi perbandingan, saya akan mempertimbangkan data CIFAR-10 karena ini adalah tolok ukur gambar yang umum. Bagian berlabel terdiri dari 10 kelas gambar dengan 6000 gambar per kelas. Setiap gambar berukuran 32x32 piksel. Jika Anda entah bagaimana menumpuk gambar berlabel dari CIFAR-10 dan membuat video standar 48 fps, Anda akan memiliki sekitar 20 menit rekaman.
Seorang anak berusia 2 tahun yang mengamati dunia selama 12 jam setiap hari memiliki sekitar 263.000 menit (lebih dari 4000 jam) pengamatan langsung dunia, termasuk umpan balik dari orang dewasa (label). (Ini hanya angka rata-rata - Saya tidak tahu berapa menit yang dihabiskan oleh seorang anak berusia dua tahun yang khas untuk mengamati dunia.) Selain itu, anak tersebut akan terpapar pada banyak, banyak objek di luar 10 kelas yang terdiri dari CIFAR- 10.
Jadi ada beberapa hal yang berperan. Salah satunya adalah bahwa anak memiliki paparan lebih banyak data secara keseluruhan dan sumber data yang lebih beragam daripada model CIFAR-10. Keragaman data dan volume data diakui dengan baik sebagai prasyarat untuk model yang kuat secara umum. Dalam hal ini, tidak mengherankan bahwa jaringan saraf lebih buruk dalam tugas ini daripada anak, karena jaringan saraf yang dilatih tentang CIFAR-10 secara positif kekurangan data pelatihan dibandingkan dengan anak berusia dua tahun. Resolusi gambar yang tersedia untuk anak lebih baik daripada gambar 32x32 CIFAR-10, sehingga anak dapat mempelajari informasi tentang detail halus benda.
Perbandingan CIFAR-10 hingga dua tahun tidak sempurna karena model CIFAR-10 kemungkinan akan dilatih dengan beberapa lintasan melalui gambar statis yang sama, sementara anak akan melihat, menggunakan penglihatan binokular, bagaimana objek disusun dalam tiga -dimensi dunia sambil bergerak dan dengan kondisi pencahayaan dan perspektif yang berbeda pada objek yang sama.
Anekdot tentang anak OP menyiratkan pertanyaan kedua,
"Bagaimana jaringan saraf bisa menjadi otodidak?"
Seorang anak diberkahi dengan beberapa bakat untuk belajar sendiri, sehingga kategori objek baru dapat ditambahkan dari waktu ke waktu tanpa harus memulai dari awal.
Komentar OP tentang transfer-learning menamakan satu jenis adaptasi model dalam konteks pembelajaran mesin.
Dalam komentar, pengguna lain telah menunjukkan bahwa pembelajaran satu dan beberapa tembakan * adalah bidang penelitian pembelajaran mesin lainnya.
Selain itu, pembelajaran penguatan membahas model pembelajaran mandiri dari perspektif yang berbeda, yang pada dasarnya memungkinkan robot untuk melakukan percobaan coba-coba untuk menemukan strategi yang optimal untuk memecahkan masalah tertentu (misalnya bermain catur).
Mungkin benar bahwa ketiga paradigma pembelajaran mesin ini erat untuk meningkatkan bagaimana mesin beradaptasi dengan tugas-tugas visi komputer baru. Mengadaptasi model pembelajaran mesin dengan cepat ke tugas-tugas baru adalah bidang penelitian yang aktif. Namun, karena tujuan praktis dari proyek-proyek ini (mengidentifikasi contoh baru malware, mengenali penipu dalam foto paspor, mengindeks internet) dan kriteria untuk sukses berbeda dari tujuan anak yang belajar tentang dunia, dan kenyataan bahwa seseorang melakukannya di komputer menggunakan matematika dan yang lainnya dilakukan dalam bahan organik menggunakan kimia, perbandingan langsung antara keduanya akan tetap penuh.
Selain itu, akan menarik untuk mempelajari cara membalik masalah CIFAR-10 dan melatih jaringan saraf untuk mengenali 6000 objek dari 10 contoh masing-masing. Tetapi bahkan ini tidak akan menjadi perbandingan yang adil untuk anak berusia 2 tahun, karena masih akan ada perbedaan besar dalam total volume, keragaman dan resolusi data pelatihan.
* Saat ini kami tidak memiliki tag untuk pembelajaran satu kali atau beberapa pembelajaran.
sumber
Pertama-tama, pada usia dua tahun, seorang anak tahu banyak tentang dunia dan secara aktif menerapkan pengetahuan ini. Seorang anak melakukan banyak "transfer learning" dengan menerapkan pengetahuan ini ke konsep-konsep baru.
Kedua, sebelum melihat kelima contoh "berlabel" mobil itu, seorang anak melihat banyak mobil di jalan, di TV, mobil mainan, dll., Juga banyak "pembelajaran tanpa pengawasan" yang terjadi sebelumnya.
Akhirnya, jaringan saraf hampir tidak memiliki kesamaan dengan otak manusia, jadi tidak ada gunanya membandingkannya. Perhatikan juga bahwa ada algoritma untuk pembelajaran sekali pakai, dan cukup banyak penelitian tentang hal itu yang terjadi saat ini.
sumber
Satu aspek utama yang tidak saya lihat dalam jawaban saat ini adalah evolusi .
Otak anak tidak belajar dari awal. Ini mirip dengan bertanya bagaimana bayi rusa dan jerapah bisa berjalan beberapa menit setelah lahir. Karena mereka dilahirkan dengan otak mereka yang sudah siap untuk tugas ini. Tentu saja ada beberapa penyesuaian yang diperlukan, tetapi rusa bayi tidak belajar berjalan dari "inisialisasi acak".
Demikian pula, fakta bahwa objek bergerak besar ada dan penting untuk dilacak adalah sesuatu yang kita miliki sejak lahir.
Jadi saya pikir anggapan pertanyaan ini benar-benar salah. Jaringan saraf manusia memiliki kesempatan untuk melihat berton-ton - mungkin bukan mobil tetapi - bergerak, memutar objek 3D dengan tekstur dan bentuk yang sulit, dll., Tetapi ini terjadi melalui banyak generasi dan pembelajaran berlangsung dengan algoritma evolusioner, yaitu yang memiliki otak lebih terstruktur untuk tugas ini, bisa hidup untuk berkembang biak dengan peluang lebih tinggi, meninggalkan generasi berikutnya dengan kabel otak yang lebih baik dan lebih baik dari awal.
sumber
Saya tidak tahu banyak tentang jaringan saraf tetapi saya tahu sedikit tentang bayi.
Banyak anak berusia 2 tahun memiliki banyak masalah dengan bagaimana kata-kata umum seharusnya. Sebagai contoh, sangat umum pada usia itu untuk anak-anak menggunakan "anjing" untuk binatang berkaki empat. Itu perbedaan yang lebih sulit daripada "mobil" - pikirkan saja betapa berbedanya pudel terlihat dari Dane yang hebat, misalnya dan mereka berdua adalah "anjing" sedangkan kucing tidak.
Dan seorang anak berusia 2 tahun telah melihat banyak lebih dari 5 contoh "mobil". Seorang anak melihat lusinan atau bahkan ratusan contoh mobil kapan saja keluarga pergi berkendara. Dan banyak orang tua akan berkomentar "lihat mobil" lebih dari 5 kali. Tetapi anak-anak juga dapat berpikir dengan cara yang tidak mereka ketahui. Sebagai contoh, di jalan anak itu melihat banyak hal berbaris. Ayahnya berkata (satu) "lihat mobil yang mengkilap!" dan bocah itu berpikir, "mungkin semua hal lain yang di antre juga adalah mobil?"
sumber
Ini adalah pertanyaan yang menarik yang telah saya renungkan juga, dan dapat memberikan beberapa alasan mengapa.
sumber
Konsep "instance" dengan mudah menjadi kacau. Sementara seorang anak mungkin telah melihat 5 contoh unik dari sebuah mobil, mereka sebenarnya telah melihat ribuan ribu frame, di banyak lingkungan yang berbeda. Mereka kemungkinan melihat mobil dalam konteks lain. Mereka juga memiliki intuisi untuk dunia fisik yang dikembangkan selama hidup mereka - beberapa pembelajaran transfer mungkin terjadi di sini. Namun kami membungkus semua itu menjadi "5 instance."
Sementara itu, setiap frame / gambar yang Anda lewatkan ke CNN dianggap sebagai "contoh." Jika Anda menerapkan definisi yang konsisten, kedua sistem benar-benar memanfaatkan jumlah data pelatihan yang jauh lebih mirip.
Juga, saya ingin mencatat bahwa jaringan saraf convolutional - CNNs - lebih berguna dalam visi komputer daripada JST, dan pada kenyataannya mendekati kinerja manusia dalam tugas-tugas seperti klasifikasi gambar. Pembelajaran mendalam (mungkin) bukan obat mujarab, tetapi ia bekerja dengan sangat baik di domain ini.
sumber
Seperti yang ditunjukkan oleh yang lain, efisiensi data dari jaringan saraf tiruan bervariasi secara substansial, tergantung pada detailnya. Faktanya, ada banyak metode pembelajaran sekali pakai, yang dapat menyelesaikan tugas pelabelan trem dengan akurasi yang cukup baik, hanya menggunakan sampel berlabel tunggal.
Salah satu cara untuk melakukan ini adalah dengan apa yang disebut transfer learning; jaringan yang dilatih dengan label lain biasanya sangat efektif beradaptasi dengan label baru, karena kerja kerasnya adalah memecah komponen gambar tingkat rendah dengan cara yang masuk akal.
Tetapi kami tidak membutuhkan data berlabel tersebut untuk melakukan tugas tersebut; seperti bayi tidak membutuhkan data berlabel sama seperti jaringan saraf yang Anda pikirkan.
Misalnya, salah satu metode tanpa pengawasan yang berhasil saya terapkan dalam konteks lain, adalah untuk mengambil serangkaian gambar yang tidak berlabel, memutar secara acak, dan melatih jaringan untuk memprediksi sisi gambar yang 'naik'. Tanpa mengetahui apa objek yang terlihat, atau apa namanya, ini memaksa jaringan untuk mempelajari sejumlah besar struktur tentang gambar; dan ini dapat membentuk dasar yang sangat baik untuk pembelajaran berlabel selanjutnya yang lebih efisien data.
Walaupun memang benar bahwa jaringan buatan sangat berbeda dari yang asli dalam cara yang mungkin bermakna, seperti tidak adanya analog yang jelas dari backpropagation, sangat mungkin benar bahwa jaringan saraf yang nyata menggunakan trik yang sama, mencoba mempelajari struktur dalam data tersirat oleh beberapa prior prior.
Salah satu contoh lain yang hampir pasti memainkan peran pada hewan dan juga telah menunjukkan harapan besar dalam memahami video, adalah dengan asumsi bahwa masa depan harus dapat diprediksi dari masa lalu. Hanya dengan memulai dari asumsi itu, Anda dapat mengajarkan jaringan saraf secara keseluruhan. Atau pada tingkat filosofis, saya cenderung percaya bahwa asumsi ini mendasari hampir semua yang kita anggap sebagai 'pengetahuan'.
Saya tidak mengatakan sesuatu yang baru di sini; tetapi relatif baru dalam arti bahwa kemungkinan-kemungkinan ini terlalu muda untuk menemukan banyak aplikasi, dan belum sampai ke pemahaman buku teks tentang 'apa yang bisa dilakukan JST'. Jadi untuk menjawab pertanyaan OP; JST sudah menutup banyak celah yang Anda gambarkan.
sumber
Salah satu cara untuk melatih jaringan saraf yang dalam adalah memperlakukannya sebagai setumpuk penyandi otomatis ( Mesin Boltzmann Terbatas ).
Secara teori, sebuah auto-encoder belajar dengan cara yang tidak terawasi: Dibutuhkan data input yang sewenang-wenang dan tidak berlabel dan memprosesnya untuk menghasilkan data output. Kemudian ia mengambil data keluaran itu, dan mencoba meregenerasi data masukannya. Ini tweak parameter node-nya sampai bisa mendekati round-tripping datanya. Jika Anda memikirkannya, pembuat enkode otomatis menulis sendiri tes unitnya. Akibatnya, ia mengubah "data input tidak berlabel" menjadi data berlabel : Data asli berfungsi sebagai label untuk data bolak-balik.
Setelah lapisan-pengkode otomatis dilatih, jaringan syaraf disetel dengan baik menggunakan data berlabel untuk melakukan fungsi yang dimaksudkan. Efeknya, ini adalah tes fungsional.
Poster asli bertanya mengapa banyak data diperlukan untuk melatih jaringan saraf tiruan, dan membandingkannya dengan yang diduga rendahnya jumlah data pelatihan yang dibutuhkan oleh manusia berusia dua tahun. Poster asli membandingkan apel-ke-jeruk: Proses pelatihan keseluruhan untuk jaringan saraf tiruan, versus fine-tuning dengan label untuk anak berusia dua tahun.
Namun dalam kenyataannya, anak berusia dua tahun ini telah melatih auto-encoders-nya pada data acak berlabel diri selama lebih dari dua tahun. Bayi bermimpi ketika mereka berada di dalam rahim . (Begitu juga anak kucing.) Para peneliti telah menggambarkan mimpi-mimpi ini sebagai melibatkan penembakan neuron acak di pusat pemrosesan visual.
sumber
Kita tidak belajar "melihat mobil" sampai kita belajar melihat
Dibutuhkan waktu yang cukup lama dan banyak contoh bagi seorang anak untuk belajar bagaimana melihat objek seperti itu. Setelah itu, seorang anak dapat belajar mengidentifikasi jenis objek tertentu hanya dari beberapa contoh. Jika Anda membandingkan seorang anak berusia dua tahun dengan sistem pembelajaran yang benar-benar dimulai dari papan tulis kosong, itu perbandingan apel dan jeruk; pada usia itu anak telah melihat ribuan jam "rekaman video".
Dengan cara yang sama, dibutuhkan banyak contoh jaringan syaraf tiruan untuk belajar "cara melihat" tetapi setelah itu dimungkinkan untuk mentransfer pengetahuan itu ke contoh baru. Transfer belajar adalah seluruh domain pembelajaran mesin, dan hal-hal seperti "pembelajaran satu pukulan" dimungkinkan - Anda dapat membangun JST yang akan belajar mengidentifikasi jenis objek baru yang belum pernah dilihat sebelumnya dari satu contoh, atau untuk mengidentifikasi orang tertentu dari satu foto wajah mereka. Tetapi melakukan bagian awal "belajar melihat" ini dengan baik membutuhkan cukup banyak data.
Selain itu, ada beberapa bukti bahwa tidak semua data pelatihan sama, yaitu, data yang Anda "pilih" saat belajar lebih efektif daripada data yang hanya diberikan kepada Anda. Misalnya percobaan kucing kembar Held & Hein. https://www.lri.fr/~mbl/ENS/FONDIHM/2013/papers/about-HeldHein63.pdf
sumber
Satu hal yang belum saya lihat dalam jawaban sejauh ini adalah kenyataan bahwa satu 'contoh' dari objek dunia nyata yang dilihat oleh anak manusia tidak sesuai dengan contoh dalam konteks pelatihan NN.
Misalkan Anda berdiri di persimpangan jalan kereta api dengan anak berusia 5 tahun dan menonton 5 kereta berlalu dalam 10 menit. Sekarang, Anda bisa mengatakan "Anak saya hanya melihat 5 kereta dan dapat dengan andal mengidentifikasi kereta lain sementara NN membutuhkan ribuan gambar!". Meskipun ini mungkin benar, Anda sepenuhnya mengabaikan fakta bahwa setiap kereta yang dilihat anak Anda mengandung BANYAK informasi lebih banyak daripada gambar tunggal kereta. Bahkan, otak anak Anda sedang memproses beberapa lusin gambar kereta per detik ketika sedang lewat, masing-masing dari sudut yang sedikit berbeda, bayangan yang berbeda, dll., Sementara satu gambar akan memberi NN informasi yang sangat terbatas. Dalam konteks ini, anak Anda bahkan memiliki informasi yang tidak tersedia untuk NN, misalnya kecepatan kereta atau suara yang dihasilkan kereta.
Selanjutnya, anak Anda dapat berbicara dan MEMINTA PERTANYAAN! "Kereta sangat panjang, kan?" "Ya.", "Dan mereka juga sangat besar, kan?" "Iya.". Dengan dua pertanyaan sederhana, anak Anda belajar dua fitur yang sangat penting dalam waktu kurang dari satu menit!
Poin penting lainnya adalah deteksi objek. Anak Anda dapat segera mengidentifikasi objek mana, yaitu bagian mana dari gambar yang perlu difokuskan, sedangkan NN harus belajar mendeteksi objek yang relevan sebelum dapat mencoba untuk mengklasifikasikannya.
sumber
Saya berpendapat kinerja tidak jauh berbeda seperti yang Anda harapkan, tetapi Anda mengajukan pertanyaan yang bagus (lihat paragraf terakhir).
Seperti yang Anda sebutkan belajar transfer: Untuk membandingkan apel dengan apel kita harus melihat berapa banyak gambar secara total dan berapa banyak gambar dari kelas yang diminati oleh manusia / jaringan saraf.
1. Berapa banyak gambar yang dilihat manusia?
Gerakan mata manusia memakan waktu sekitar 200 ms yang bisa dilihat sebagai semacam "foto biologis". Lihat ceramah oleh pakar visi komputer Fei-Fei Li: https://www.ted.com/talks/fei_fei_li_how_we_re_teaching_computers_to_understand_pictures#t-362785 .
Dia menambahkan:
Di ImageNet, database terkemuka untuk deteksi objek, ada ~ 14 juta gambar berlabel . Jadi jaringan saraf yang sedang dilatih di ImageNet akan melihat sebanyak mungkin foto bayi berumur 14000000/5/60/60/24 * 2 ~ 64 hari, jadi berusia dua bulan (dengan asumsi bayi itu bangun setengah dari hidupnya). Agar adil sulit untuk mengatakan berapa banyak dari gambar-gambar ini diberi label. Terlebih lagi, gambar-gambar itu, yang dilihat bayi, tidak begitu beragam seperti di ImageNet. (Mungkin bayi melihat ibunya punya waktu, ...;). Namun, saya pikir itu adil untuk mengatakan bahwa anak Anda akan melihat ratusan juta gambar (dan kemudian menerapkan pembelajaran transfer).
Jadi berapa banyak gambar yang kita butuhkan untuk mempelajari kategori baru dengan dasar yang kuat dari gambar terkait yang dapat (transfer) pelajari?
Posting blog pertama yang saya temukan adalah ini: https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html . Mereka menggunakan 1000 contoh per kelas. Saya bisa membayangkan 2,5 tahun kemudian bahkan dibutuhkan lebih sedikit. Namun, 1000 gambar dapat dilihat oleh manusia dalam 1000/5/60 dalam 3,3 menit.
Kau menulis:
Itu akan sama dengan empat puluh detik per instance (dengan berbagai sudut objek untuk membuatnya sebanding).
Singkatnya: Seperti yang saya sebutkan, saya harus membuat beberapa asumsi. Tapi saya pikir, orang dapat melihat bahwa kinerjanya tidak jauh berbeda seperti yang diharapkan.
Namun, saya yakin Anda mengajukan pertanyaan besar dan inilah alasannya:
2. Apakah jaringan saraf akan bekerja lebih baik / berbeda jika mereka bekerja lebih seperti otak? (Geoffrey Hinton mengatakan ya).
Dalam sebuah wawancara https://www.wired.com/story/googles-ai-guru-computers-think-more-like-brains/ , pada akhir 2018, ia membandingkan implementasi saat ini dari jaringan saraf dengan otak. Dia menyebutkan, dalam hal bobot, jaringan saraf tiruan lebih kecil dari otak dengan faktor 10.000. Karena itu, otak membutuhkan lebih sedikit iterasi pelatihan untuk dipelajari. Untuk mengaktifkan jaringan syaraf tiruan, agar bekerja lebih seperti otak kita, dia mengikuti tren lain dalam perangkat keras, sebuah startup berbasis di Inggris bernama Graphcore. Ini mengurangi waktu perhitungan dengan cara pintar menyimpan bobot jaringan saraf. Oleh karena itu, lebih banyak bobot dapat digunakan dan waktu pelatihan jaringan saraf tiruan mungkin berkurang.
sumber
Saya ahli dalam hal ini. Saya manusia, saya masih bayi, saya punya mobil, dan saya melakukan AI.
Alasan mengapa bayi mengambil mobil dengan contoh yang jauh lebih terbatas adalah intuisi. Otak manusia sudah memiliki struktur untuk menghadapi rotasi 3D. Juga, ada dua mata yang menyediakan paralaks untuk pemetaan kedalaman yang sangat membantu. Anda dapat melihat antara mobil dan gambar mobil, karena tidak ada kedalaman gambar yang sebenarnya. Hinton (peneliti AI) telah mengusulkan gagasan Capsule Networks, yang akan mampu menangani berbagai hal secara lebih intuitif. Sayangnya untuk komputer, data pelatihan adalah (biasanya) gambar 2D, array piksel datar. Agar tidak terlalu fit, banyak data diperlukan sehingga orientasi mobil dalam gambar digeneralisasi. Otak bayi sudah dapat melakukan ini dan dapat mengenali mobil pada orientasi apa pun.
sumber