- Artikel ini menjelaskan konsep penting bernama diferensiasi otomatis menggunakan Python, yang merupakan komponen inti dalam pelatihan jaringan saraf.
- Penulis adalah seorang engineer machine learning yang menggunakan library seperti Tensorflow dan Pytorch, serta bertujuan menulis kode paling sederhana untuk melakukan diferensiasi otomatis.
- Penulis memulai dengan menulis kode Python yang menjumlahkan dua variabel x dan y, lalu menetapkan hasilnya ke variabel z. Namun, z tidak melacak variabel yang digunakan, sehingga tidak mungkin memperbarui nilai z secara otomatis ketika nilai x atau y berubah.
- Untuk mengatasi hal ini, penulis memperkenalkan kelas Tensor yang memungkinkan komputasi simbolik terhadap variabel. Dalam kelas ini, operasi penjumlahan didefinisikan ulang.
- Kelas Tensor kemudian ditingkatkan lebih lanjut dengan menggunakan pohon biner. Setiap tensor dapat berisi dua tensor lain beserta operasi yang membuatnya. Ini dilakukan dengan memperkenalkan tuple Children.
- Penulis menambahkan metode forward ke kelas Tensor untuk menjalankan graph komputasi dan menghitung nilai aktual tensor.
- Penulis memperkenalkan diferensiasi otomatis ke dalam graph komputasi dengan menambahkan turunan untuk operasi dasar yang didukung oleh kelas Tensor. Pemanggilan rekursif terhadap fungsi grad menelusuri graph komputasi dan menguraikan fungsi kompleks menjadi kombinasi fungsi-fungsi sederhana.
- Kelas Tensor diperluas agar dapat menangani rumus yang lebih kompleks dengan menambahkan operasi tambahan seperti pengurangan, pembagian, eksponen, dan negasi.
- Penulis menunjukkan penggunaan kelas Tensor dengan membuat rumus kompleks dan menurunkannya.
- Sebagai penutup, penulis mengusulkan sejumlah perbaikan dan optimasi yang mungkin untuk kelas Tensor, seperti menambahkan operasi untuk array berukuran arbitrer, menghentikan traversal pada node yang tidak bergantung pada tensor x, serta menyiapkan cache untuk menghindari pengulangan komputasi.
- Artikel ini bertujuan membantu pembaca memahami bagaimana diferensiasi otomatis dilakukan untuk optimasi dan pelatihan jaringan saraf.
1 komentar
Opini Hacker News