- Sebuah buku pengantar deep learning matematis, disusun agar mahasiswa dan ilmuwan tanpa pengetahuan latar belakang, serta praktisi yang menginginkan pemahaman lebih ketat, dapat membangun dasar algoritme deep learning
- Jaringan saraf tiruan didefinisikan sebagai komposisi berulang dari fungsi aktivasi dan fungsi afin, dan ketika kedalaman komposisi bertambah, ini menjadi kelas fungsi yang diperlakukan sebagai deep ANN
- Susunan keseluruhan dimulai dari struktur dan kalkulus ANN lalu berlanjut ke teori aproksimasi, optimisasi, galat generalisasi, analisis galat total, hingga penyelesaian PDE
- Bagian optimisasi juga membahas gradient flow ODE, GD, SGD, backpropagation, pendekatan Kurdyka–Łojasiewicz, batch normalization, dan inisialisasi acak
- Kode sumber Python dapat diunduh dari repositori GitHub publik dan halaman arXiv, dan melalui nama file pada caption setiap listing, isi buku dan kode dapat dipasangkan satu sama lain
Cara mendefinisikan deep learning secara matematis
- Buku ini membahas algoritme deep learning sebagai cara komputasi yang menggunakan deep ANN dan data secara berulang untuk mengaproksimasi relasi, fungsi, atau kuantitas tertentu
- ANN adalah kelas fungsi yang tersusun dari banyak komposisi fungsi aktivasi nonlinear tertentu dan fungsi afin
- Kedalaman ANN berkaitan dengan jumlah pengulangan komposisi, dan ketika komposisi fungsi nonlinear dan fungsi afin berjumlah lebih dari 2, itu mulai disebut deep ANN
- Target pembacanya adalah mahasiswa dan ilmuwan yang sama sekali tidak memiliki latar belakang deep learning tetapi membutuhkan dasar yang kokoh, serta praktisi yang ingin memahami objek dan metode deep learning dengan lebih pasti
Part I–II: Struktur jaringan saraf dan teori aproksimasi
- Setelah pengantar singkat, isi utama dibagi menjadi 6 bagian, Part I–VI
-
Part I: Jaringan saraf tiruan
- Chapter 1 memperkenalkan berbagai jenis ANN secara matematis
- fully-connected feedforward ANN
- convolutional ANN(CNN)
- recurrent ANN(RNN)
- residual ANN(ResNet)
- Chapter 2 membahas kalkulus untuk fully-connected feedforward ANN
- Chapter 1 memperkenalkan berbagai jenis ANN secara matematis
-
Part II: Aproksimasi
- Membahas berbagai hasil matematis yang menganalisis seberapa baik ANN dapat mengaproksimasi fungsi yang diberikan
- Chapter 3 mula-mula berfokus pada fungsi satu dimensi dari bilangan real ke bilangan real demi kemudahan akses
- Chapter 4 memperluas cakupan ke hasil aproksimasi ANN untuk fungsi multivariat
Part III: Optimisasi dan algoritme pembelajaran
- Inti algoritme deep learning terletak pada memodelkan atau merumuskan ulang masalah sebagai masalah optimisasi yang sesuai dan melibatkan deep ANN
- Bagian ini membahas masalah optimisasi dan algoritme untuk menyelesaikannya secara aproksimatif, yang biasanya menangani masalah minimisasi dengan metode optimisasi berbasis gradient
- Metode berbasis gradient adalah cara komputasi yang menyelesaikan masalah melalui langkah-langkah berurutan yang didasarkan pada arah gradient negatif dari fungsi yang ingin dioptimalkan
- Chapter 5 membahas gradient flow (GF) ODE dan pemanfaatannya untuk memahami metode tipe GD dan tipe SGD
- Chapter 6 meninjau dan menganalisis metode optimisasi berbasis gradient deterministik seperti gradient descent (GD)
- Chapter 7 meninjau dan menganalisis metode optimisasi berbasis gradient stokastik seperti stochastic gradient descent (SGD)
- Chapter 8 menurunkan dan membahas secara rinci backpropagation, metode yang banyak digunakan untuk menghitung gradient secara eksplisit dalam pelatihan ANN
- Analisis di Chapter 5–7 dalam banyak kasus terbatas untuk menangani masalah optimisasi pelatihan ANN, tetapi pendekatan Kurdyka–Łojasiewicz (KL) di Chapter 9 dapat menangani masalah tersebut
- Chapter 10 meninjau secara ketat batch normalization (BN), sebuah metode untuk mempercepat prosedur pelatihan ANN dalam masalah pembelajaran berbasis data
- Chapter 11 meneliti pendekatan mengoptimalkan fungsi objektif dengan inisialisasi acak yang berbeda-beda
Part IV–VI: Analisis galat dan aplikasi PDE
-
Part IV: Galat generalisasi
- Analisis matematis deep learning tidak berakhir hanya pada estimasi galat kemampuan aproksimasi ANN dan metode optimisasi
- Ketika distribusi probabilitas dari masalah pembelajaran tidak dapat diakses secara eksplisit dan harus didekati dengan realisasi atau data yang terbatas, diperlukan estimasi galat generalisasi
- Chapter 12 meninjau estimasi galat generalisasi probabilistik
- Chapter 13 membahas estimasi galat generalisasi tipe strong Lp
-
Part V: Analisis galat total
- Menunjukkan dengan contoh bagaimana menggabungkan estimasi galat aproksimasi dari Part II, galat optimisasi dari Part III, dan galat generalisasi dari Part IV
- Contohnya adalah pelatihan ANN berbasis metode optimisasi tipe SGD yang menggunakan banyak inisialisasi acak independen
- Chapter 14 menyajikan dekomposisi galat total yang sesuai untuk masalah pembelajaran terawasi
- Chapter 15 membangun analisis galat total yang bersifat ilustratif dengan menggunakan bersama-sama sebagian hasil dari Part II, III, dan IV
-
Part VI: Deep learning untuk PDE
- Metode deep learning digunakan tidak hanya untuk masalah pembelajaran berbasis data tetapi juga untuk menyelesaikan persamaan diferensial parsial (PDE) secara aproksimatif
- Part VI meninjau dan mengimplementasikan 3 metode deep learning populer untuk PDE
- Chapter 16 membahas physics-informed neural networks (PINNs) dan deep Galerkin methods (DGMs)
- Chapter 17 membahas deep Kolmogorov methods (DKMs)
Cara mengakses kode dan materi
- Buku ini mencakup berbagai kode sumber Python
- Kode sumber dapat diunduh dari repositori GitHub publik introdeeplearning/book
- Di halaman arXiv, sumber kode juga dapat diperoleh dengan menekan “Other formats” lalu memilih “Download source”
- Caption setiap source listing memuat nama file sumber yang sesuai, sehingga rumus dan contoh dalam buku mudah diikuti bersama kodenya
1 komentar
Komentar Hacker News
Tampaknya ini kumpulan yang bagus yang memperkenalkan metode machine learning standar dengan notasi matematika yang cukup terpadu dan banyak pembuktian, tetapi dengan 600 halaman, ini benar-benar pekerjaan besar
Namun, terasa bobotnya lebih diberikan pada bagian yang mudah diformalisasi daripada pada bagian yang akan menarik bila dipahami
Misalnya, bab SGD dipilih karena optimisasi adalah area tempat matematikawan bisa benar-benar memberi kontribusi berpengaruh pada machine learning, tetapi sebagian besar pembuktiannya bersifat dasar seperti dekomposisi bias-varians atau ketaksamaan Jensen; teorema menarik terkait konvergensi hanya mengutip literatur dan tidak tersambung dengan lemma sebelumnya, sementara metode yang benar-benar menarik dalam praktik seperti ADAM hampir tidak punya pembuktian atau teori
Setelah membaca bab ini, orang mungkin akan cukup memahami metode SGD modern dan proses perkembangannya, tetapi tampaknya sulit mengetahui mengapa metode-metode itu bekerja lebih dari sekadar intuisi yang dikonfirmasi lewat eksperimen numerik
Kalau begitu, rasanya akan lebih berguna memakai ruang halaman untuk pembuktian konvergensi ADAM yang sudah ada, daripada banyak membuktikan hal-hal dasar seperti E(XY)=E(X)E(Y) untuk variabel acak independen
Bab ANN juga banyak berisi pembuktian panjang atas materi yang mendasar dan kurang menarik, dan meski makalah tentang physics-informed neural networks bagus, ada sedikit masalah serupa
Arah untuk menjelaskan metode machine learning secara lebih ketat dan terpadu itu sendiri bagus, tetapi saya mempertanyakan cara mereka menarik batas tentang apa yang dimasukkan dan dikeluarkan
Pembuktian konvergensi ADAM pun tidak menjelaskan mengapa ADAM cenderung bekerja lebih baik daripada metode lain
Sulit menyalahkan buku ini karena tidak bisa menjelaskan sesuatu yang saat ini tidak dipahami siapa pun, tetapi jika teori tidak dapat memprediksi hal-hal yang benar-benar penting dalam praktik, maka gagasan pendidikan yang berpusat pada teori itu sendiri menjadi lemah
Bagi yang ingin melihat deep learning secara matematis lebih mendalam, buku Francois Fleuret https://fleuret.org/francois/lbdl.html juga layak dilihat
PDF-nya gratis, dan edisi cetaknya cukup imut
Setiap kali saya mencoba, printer duplex membuat satu dari dua lembar terbalik atas-bawah, jadi bermasalah
Saya penasaran apakah orang-orang benar-benar membaca buku seperti ini dari awal sampai akhir
Saya sedang melihat PRML karya Bishop, dan menyelesaikan bukunya dengan benar serta mengerjakan semua latihannya memakan waktu luar biasa banyak
Saya pernah melihat seseorang yang melakukan hal yang sama menulis di blog bahwa itu menghabiskan lebih dari 1500 jam
Di program magister saya, tidak ada satu pun orang yang menyelesaikan buku seperti ini; kami hanya mengikuti kuliah lalu meng-googling sisanya sesuai kebutuhan
Dari sudut pandang orang yang pengetahuan pemrogramannya lebih dalam daripada matematikanya, notasi matematika di sini lebih sulit dipahami daripada kode
Bahkan terasa lebih sulit daripada kode dalam bahasa pemrograman yang tidak saya ketahui
Saya penasaran apakah orang dengan latar matematika yang lebih kuat menganggap ekspresi matematika seperti ini lebih mudah dipahami daripada source code
Saya berusaha menyajikan konsep secara matematis setepat mungkin, tetapi pada akhirnya saya menghindari notasi berat seperti yang ada di buku ini, memangkas banyak matematika agar mahasiswa bisa memakainya di industri, dan kelas yang sebenarnya jauh lebih banyak kode daripada rumus
Jika mencoba menuliskan semuanya dengan sangat presisi, hasilnya cepat sekali menjadi berantakan
Dalam matematika, menemukan notasi yang baik untuk konsep baru sangat sulit, dan notasi yang belakangan diakui semua orang sebagai jelas, seperti notasi Einstein, diagram Feynman, atau notasi matriks, sering kali pada awalnya dibuat oleh orang-orang yang luar biasa
Sekadar menyalin area A ke dalam notasi area B belum tentu berguna; menerjemahkan mekanika kuantum ke matematika seperti aljabar C* pun merupakan pekerjaan besar dan sampai sekarang masih merupakan bidang riset yang agak terbuka
Jadi meskipun upaya menulis buku ini pasti luar biasa besar, kemungkinan kegunaan praktisnya kecil
Orang yang bisa membaca persamaan seperti ini dengan nyaman umumnya tidak membutuhkan persamaan itu, dan misalnya jika seseorang sudah tahu transformasi afin, hampir tidak ada kebutuhan untuk melihat semua indeks ijkl dari tensor 4 dimensi secara eksplisit
Sebaliknya, orang yang tidak demikian kemungkinan besar akan gentar dan mundur
Salah satu alasannya adalah karena notasi itu dioptimalkan untuk tulisan tangan
Menulis kode program dengan tangan sangat membosankan, jadi bisa dipahami mengapa notasi matematika berbentuk seperti itu
Selain itu, tidak ada yang namanya “kode yang bersesuaian” dengan notasi matematika
Notasi matematika dimaksudkan untuk menyatakan fakta atau proposisi matematis, dan tujuannya berbeda dari kode yang mengimplementasikan algoritma deep learning
Jadi topik dan cara penjelasannya condong ke orang-orang seperti itu
Misalnya, dalam deep learning praktis saya hampir tidak pernah melihat orang mengkhawatirkan kondisi eksistensi dan keunikan algoritma optimisasi berbasis gradien, tetapi hasil seperti itulah yang menjadi minat orang-orang ini dan topik makalah mereka
Judulnya sendiri mengatakan ini buku tentang landasan teoretis bidang ini, jadi cara seperti ini tidak mengejutkan
Buku seperti ini biasanya tidak dibaca dari awal sampai akhir; orang biasanya menggali mendalam hanya beberapa bab yang terkait dengan risetnya sendiri
Saat riset, saya juga pernah memakai kumpulan makalah yang sama bertele-telenya, tetapi inti yang saya minati hanya sekitar 20–30 halaman
Dari sisi ketelitian dan jumlah materi, ini terlalu bertele-tele untuk selera saya
Misalnya, mereka memasukkan ketaksamaan Gronwall sebagai lemma dan membuktikannya; versi yang dipakai memang sedikit lebih umum daripada yang biasa saya lihat, tetapi ketaksamaan Gronwall adalah alat yang sangat standar dalam analisis persamaan diferensial biasa, sehingga buku teori kontrol ketat yang saya miliki pun hanya memberi referensi tanpa pembuktian untuk menghindari kekusutan
Semakin tinggi standar pembuktian dan semakin sedikit asumsi yang ingin dipakai, semakin muncul kebertele-telean seperti ini
Saya penasaran siapa sebenarnya pembaca sasaran yang dimaksud dengan “mahasiswa dan ilmuwan”
Sejak awal bab 1 sudah ada subskrip di dalam subskrip, penjumlahan dengan subskrip yang menempel di dalam superskrip, lalu masuk ke rantai komposisi fungsi raksasa
Makin ke belakang, subskripnya sampai sedalam 4 tingkat, mereka membuat setidaknya 3 operator infiks baru, dan mendefinisikan 30 simbol baru dari tiga alfabet berbeda, padahal belum sampai 100 halaman dari total 600 halaman
Saya tidak tahu ini dibuat agar siapa bisa mengikuti dan mencernanya
Saya sudah cukup banyak melihat buku yang mencoba menjelaskan deep learning dari sudut pandang matematika, tetapi selalu membuat saya heran
Deep learning saat ini jelas merupakan sains empiris, dan menurut saya tidak banyak karya teoretis yang dampaknya cukup besar untuk dimasukkan ke dalam buku
Bahkan di antara buku-buku seperti itu, buku ini tampaknya secara aktif mendekati yang terburuk
Buku ini memakai cukup banyak halaman untuk membuktikan lemma yang hampir tidak memberi pemahaman tambahan dan hanya longgar terkait dengan deep learning, sementara sebagian besar kodenya adalah kode pembuatan grafik yang saya tidak paham mengapa dimasukkan
Menurut saya sangat sedikit orang yang akan membaca bagian besar dari buku ini
Saya masih berpikir buku ajar terbaik adalah Deep Learning karya Goodfellow dkk. dan Understanding Deep Learning yang lebih modern (https://udlbook.github.io/udlbook/)
Meski garis depan deep learning sangat empiris, ada riset menarik yang berusaha memahami bukan hanya teknik apa yang bekerja dengan baik, tetapi mengapa teknik itu bekerja
Mengatakan bahwa pembuktian bukan cara yang baik untuk memperoleh pemahaman itu tidak masuk akal
Cara itu memang tidak cocok untuk semua orang, tetapi buku berjudul “pengantar matematis untuk x” tentu ditujukan bagi orang yang sudah memiliki pelatihan matematika sampai tingkat tertentu, dan bagi pembaca seperti itu lemma serta pembuktiannya adalah cara yang alami untuk membangun pemahaman
Matematika bukan hanya pembuktian, melainkan juga cara berkomunikasi
Ada banyak cara untuk menjelaskan bagaimana jaringan saraf bekerja: gambar, kode, kata-kata, dan juga notasi matematika yang cukup padat
Biasanya lebih mudah memperoleh intuisi terlebih dahulu, lalu memahami bagian teknisnya, daripada membangun intuisi dari teori
Ini umumnya benar dalam ilmu eksakta, terutama matematika, dan karena itulah contoh-contoh membantu
Saya bertanya-tanya apakah alasan deep learning menjadi sains empiris semuanya karena orang takut matematika
Bidangnya sekaya fisika modern, tetapi anehnya sebagian besar praktisi tampaknya ingin terus berpikir seolah-olah ini masih zaman Wild West
Ada banyak peneliti deep learning yang sangat kuat kecenderungan matematikanya
Alasan deep learning menjadi sains empiris adalah karena alat matematika yang kita miliki belum cukup untuk menjelaskan dan memprediksi fenomena yang teramati dalam satu teori terpadu
Disebut sains empiris bukan berarti bidang itu “Wild West”
Model deep learning bisa menjadi objek eksperimen terkontrol yang dapat diulang, dan lewat itu kita dapat meningkatkan pemahaman tentang apa yang akan terjadi dalam kebanyakan kasus
Praktisi yang baik tahu hal ini
Banyak hal bisa dilakukan tanpa banyak matematika di luar aljabar linear, kalkulus, dan probabilitas tingkat sarjana, dan pengetahuan itu pun terutama dipakai untuk memberi intuisi serta sedikit memformalkan masalah yang sedang dipecahkan
Bahkan dengan hampir tanpa matematika, orang bisa mencapai hasil, termasuk hasil yang mengesankan
Akibatnya orang menunjukkan dan menyelesaikan masalah baru secara empiris dengan sangat cepat, jauh lebih cepat daripada laju munculnya hasil teoretis yang menjelaskan mengapa itu bekerja
Ada banyak alasan mengapa teorinya sulit, tetapi salah satu faktor besar adalah banyak keberhasilan deep learning sulit dijelaskan karena tidak pas masuk ke kerangka yang sudah ada seperti statistika atau kendali optimal
Saya bertanya-tanya apakah ada orang yang benar-benar memakai matematika ini
Dugaan saya cenderung tidak, dan paling-paling ini terlihat seperti semacam dukungan mental yang membuat peneliti deep learning merasa tenang bahwa apa yang ingin mereka lakukan bukan mustahil
Kalau saya keliru, saya dengan senang hati mengakuinya
Matematika tidak selalu diperlukan untuk membuat model yang bagus, tetapi untuk mengetahui mengapa model itu salah, Anda perlu memahami matematika
Jadi matematika itu perlu
Tanpa matematika, Anda akan menipu diri sendiri bahwa cukup memperbesar skala maka AGI bisa tercapai
Anda akan memakai Transformer di mana-mana karena semua orang memakainya, dan menjadi bingung di antara fungsi aktivasi
Anda bisa membuat model yang bekerja, tetapi itu sangat berbeda dari memahami model yang bekerja, memperkirakan di mana model itu akan gagal, dan memahami batasannya
Tampaknya banyak orang hanya melihat hasil test set lalu berharap modelnya tidak overfit
Belum lagi praktik menuning hyperparameter berdasarkan hasil test set
Bayangkan ilmu komputer tanpa teori yang memiliki pembuktian kebenaran dan sifat-sifat yang diketahui, seperti algoritma sorting dan algoritma pencarian
Matematika ini berperan seperti teori ilmu komputer
Kalau Anda hanya menyesuaikan model di library seperti Keras, Anda memang tidak benar-benar “memakai” matematika itu
Jika dataset berada di bawah ukuran tertentu, masalahnya di bawah kompleksitas tertentu, dan modelnya adalah model yang sudah diterapkan selama bertahun-tahun sehingga sifat-sifatnya sudah banyak diteliti, Anda bisa melakukan banyak hal meski hanya tahu matematika secara kasar
Mirip seperti Anda bisa membuat webapp yang sepenuhnya fungsional tanpa memahami secara mendalam bagaimana runtime Python atau Java bekerja
Tetapi jika Anda tidak memahami cara kerja sebenarnya, Anda akan cukup parah tersendat ketika menemui situasi yang belum tersedia di library
Untuk melihat apa yang terjadi jika tidak memahami matematika dasar dan statistik, lihat saja generasi lulusan “data science” saat ini yang tidak memahami dasar matematika dan statistik
Memang ada banyak masalah di sisi perekrutan, tetapi pada akhirnya alasan mereka tidak mendapatkan pekerjaan adalah karena mereka tidak pernah dipaksa mempelajari ini sehingga tidak benar-benar tahu apa yang mereka lakukan
Jadi memang ada orang yang memakainya
Dalam kasus ini, kerangka tersebut memberi praktisi cara untuk memverifikasi konsistensi fisik di antara berbagai metode
Kalau begitu, bukankah itu hal yang dipakai setiap hari oleh orang yang mengerjakan machine learning?
Saya bertanya-tanya apakah umum untuk langsung mengunggah buku, terutama buku yang baru saja terbit, ke ArXiv
Setidaknya saya sering melihatnya pada buku ajar matematika dan ilmu komputer