Apa itu propagasi balik?

Penyusun

Dave Bergmann

Senior Staff Writer, AI Models

IBM Think

Cole Stryker

Staff Editor, AI Models

IBM Think

Apa itu propagasi balik?

Propragasi balik adalah teknik machine learning yang penting untuk optimalisasi jaringan neural buatan. Ini memfasilitasi penggunaan algoritma penurunan gradien untuk memperbarui bobot jaringan, yang merupakan cara model pembelajaran mendalam yang mendorong kecerdasan buatan (AI) modern 'belajar'.

Singkatan dari 'propagasi balik kesalahan', propagasi balik adalah metode yang elegan untuk menghitung bagaimana perubahan pada salah satu bobot atau bias jaringan neural akan memengaruhi akurasi prediksi model. Sangat penting untuk penggunaan pembelajaran yang diawasi, pembelajaran semi-diawasi, atau pembelajaran yang diawasi sendiri untuk melatih jaringan neural.

Meskipun padanan dan pendahulu dari propagasi balik diusulkan secara independen dalam berbagai konteks sejak tahun 1960-an, David E. Rumelhart, Geoffrey Hinton, dan Ronald J. Williams yang pertama kali mempublikasikan algoritma pembelajaran formal. Makalah mereka pada tahun 1986, "Learning representations by back-propagating errors," memberikan turunan dari algoritma propagasi balik seperti yang digunakan dan dipahami dalam konteks machine learning modern.

Logika propagasi balik adalah bahwa lapisan neuron dalam jaringan neural pada dasarnya adalah serangkaian fungsi matematika bersarang. Selama pelatihan, persamaan-persamaan yang saling berhubungan tersebut disatukan ke dalam fungsi lain: 'fungsi kerugian' yang mengukur perbedaan (atau 'kerugian') antara hasil yang diinginkan (atau 'kebenaran dasar') untuk input yang diberikan dan hasil sebenarnya dari jaringan neural.

Oleh karena itu, kita dapat menggunakan "aturan rantai", prinsip kalkulus yang berasal dari abad ke-17, untuk menghitung sejauh mana setiap neuron berkontribusi pada kerugian keseluruhan. Dengan demikian, kita dapat menghitung dampak dari perubahan pada variabel apa pun, yaitu bobot atau bias apa pun, di dalam persamaan yang diwakili oleh neuron-neuron tersebut.

Secara matematis, propagasi balik bekerja mundur dari hasil untuk menghitung secara efisien 'gradien' dari fungsi kerugian: vektor turunan untuk setiap persamaan dalam jaringan. Gradien ini memberi tahu algoritma pengoptimalan seperti 'penurunan gradien' persamaan mana yang harus disesuaikan, dan ke arah mana untuk menyesuaikannya, untuk mengurangi kerugian.

Ketiga proses yang saling terkait ini—fungsi kerugian yang melacak kesalahan model di berbagai input, propagasi balik kesalahan tersebut untuk melihat bagaimana berbagai bagian jaringan berkontribusi terhadap kesalahan, dan algoritma penurunan gradien yang menyesuaikan bobot model—adalah cara model pembelajaran mendalam 'belajar'. Dengan demikian, propagasi balik sangat penting untuk melatih model jaringan neural, dari persepsi multilapis paling dasar hingga arsitektur jaringan neural mendalam yang kompleks yang digunakan untuk AI generatif.

Tren AI terbaru, dipersembahkan oleh para pakar

Dapatkan kurasi insight tentang berita AI yang paling penting dan menarik. Berlangganan buletin Think mingguan. Lihat Pernyataan Privasi IBM.

Terima kasih! Anda telah berlangganan.

Langganan Anda akan dikirimkan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM kami untuk informasi lebih lanjut.

Cara kerja jaringan neural

Karena proses propagasi balik sangat mendasar dalam bagaimana jaringan neural dilatih, penjelasan yang membantu tentang proses ini membutuhkan pemahaman yang baik tentang bagaimana jaringan neural membuat prediksi.

Yang paling penting, sangat berguna untuk memahami tujuan dan konteks dari 'bobot' dan 'bias': parameter model yang dapat disesuaikan yang dioptimalkan melalui propagasi balik dan penurunan gradien.

Struktur jaringan neural

Jaringan neural bertujuan untuk secara kasar meniru struktur otak manusia. Mereka terdiri dari banyak node (atau neuron) yang saling berhubungan, disusun berlapis-lapis. Jaringan neural membuat prediksi setelah data input asli melakukan 'forward pass' melalui seluruh jaringan.

Neuron di 'lapisan input' menerima data input, biasanya sebagai penyematan vektor, dengan setiap neuron input menerima fitur individual dari vektor input. Sebagai contoh, sebuah model yang bekerja dengan gambar skala abu-abu 10x10 piksel biasanya akan memiliki 100 neuron di lapisan inputnya, dengan setiap neuron input yang berhubungan dengan piksel individual. Oleh karena itu, jaringan neural biasanya membutuhkan input dengan ukuran yang tetap, meskipun teknik seperti pooling atau normalisasi dapat memberikan fleksibilitas.

Dalam jaringan neural standar, setiap neuron pada lapisan input terhubung ke setiap neuron pada lapisan berikutnya, yang juga terhubung ke neuron pada lapisan berikutnya, dan seterusnya hingga lapisan output di mana prediksi akhir dibuat. Lapisan perantara antara lapisan input dan lapisan output yang disebut lapisan tersembunyi jaringan, adalah tempat sebagian besar 'pembelajaran' terjadi.

Sementara beberapa arsitektur jaringan neural khusus, seperti campuran model pakar atau jaringan neural konvolusi, memerlukan variasi, penambahan, atau pengecualian pada pengaturan langsung ini, semua jaringan neural menggunakan struktur inti ini.

Diagram neural network dengan tiga lapisan tersembunyi: input, beberapa lapisan tersembunyi, output Penggambaran visual dari jaringan neural feedforward dasar dengan 3 lapisan tersembunyi. Selama inferensi, informasi tentang data input mengalir dari kiri ke kanan; selama propagasi balik, informasi tentang kesalahan mengalir dari kanan ke kiri.

Bobot dan bias

Meskipun setiap neuron menerima input dari setiap node pada lapisan sebelumnya, tidak semua input tersebut memiliki nilai yang sama. Setiap koneksi antara dua neuron diberi 'bobot' yang unik: pengali yang meningkatkan atau mengurangi kontribusi satu neuron ke neuron di lapisan berikutnya.

Setiap neuron individu juga dapat diberikan 'bias': nilai konstanta yang ditambahkan ke jumlah input tertimbang dari neuron di lapisan sebelumnya.

Tujuan utama dari propagasi balik dan penurunan gradien adalah untuk menghitung bobot dan bias yang akan menghasilkan prediksi model terbaik. Neuron yang berhubungan dengan fitur data yang secara signifikan berkorelasi dengan prediksi yang akurat diberi bobot yang lebih besar; koneksi lain dapat diberi bobot yang mendekati nol.

Jaringan neural mendalam modern, sering kali dengan puluhan lapisan tersembunyi yang masing-masing berisi banyak neuron, dapat terdiri dari ribuan, jutaan, atau-dalam kasus sebagian besar model bahasa besar (LLM)-miliaran parameter yang dapat disesuaikan.

Fungsi aktivasi

Setiap neuron dikonfigurasikan untuk melakukan operasi matematika, yang disebut 'fungsi aktivasi', yang menjadi kumpulan input berbobot yang diterimanya dari node-node di lapisan sebelumnya. Fungsi aktivasi memperkenalkan 'nonlinieritas', memungkinkan model untuk menangkap pola kompleks dalam data input dan menghasilkan gradien yang dapat dioptimalkan. Menggunakan hanya fungsi aktivasi linier pada dasarnya meruntuhkan jaringan neural menjadi model regresi linier.

Fungsi aktivasi umum dalam jaringan neural meliputi:

  • Fungsi sigmoid, yang memetakan input apa pun ke nilai antara 0 dan 1.
  • Fungsi tangen hiperbolik (atau tanh) , yang memetakan input ke nilai antara -1 dan 1.
  • Unit linier yang diperbaiki (atau ReLU), yang memetakan input negatif apa pun ke 0 dan membiarkan input positif tidak berubah.
  • Fungsi softmax, yang mengubah vektor input menjadi vektor yang elemen-elemennya berkisar antara 0 dan 1 dan secara kolektif dijumlahkan menjadi 1.

Pertimbangkan sebuah unit tersembunyi hipotetis z, dengan fungsi aktivasi tanh dan istilah bias t, di lapisan kedua dari jaringan neural dengan 3 node input, a, b, dan c, di lapisan inputnya. Setiap koneksi antara node input dan node z memiliki bobot yang unik, w. Kita dapat menggambarkan nilai output yang akan diteruskan oleh node z ke neuron-neuron pada lapisan berikutnya dengan persamaan yang disederhanakan z = tanh(waz*a + wbz*b + wcz*c + t).

Neuron z terhubung ke neuron di lapisan berikutnya. Oleh karena itu, persamaan untuk z adalah bagian dari fungsi aktivasi di lapisan berikutnya dan, dengan perluasan, juga merupakan bagian dari setiap fungsi aktivasi untuk setiap neuron di lapisan berikutnya.

Rumus dan visualisasi untuk fungsi aktivasi umum dalam jaringan neural. KIRI: sigmoid; TENGAH: tanh; KANAN: ReLU Rumus dan visualisasi untuk fungsi aktivasi umum dalam jaringan neural. KIRI: sigmoid; TENGAH: tanh; KANAN: ReLU

Mengapa menggunakan propagasi balik?

Seperti yang akan dijelaskan pada bagian berikut, propagasi balik adalah algoritma yang sangat cepat dan efisien untuk mengurai jaringan besar variabel dan persamaan yang saling berhubungan dalam jaringan neural.

Untuk mengilustrasikan efisiensi propagasi balik, Michael Nielsen membandingkannya dengan pendekatan alternatif yang sederhana dan intuitif untuk menghitung gradien fungsi kerugian jaringan neural dalam buku teks daringnya, "Neural Networks and Deep Learning".

Seperti yang dijelaskan Nielsen, seseorang dapat dengan mudah memperkirakan dampak perubahan pada bobot tertentu wj dalam jaringan dengan hanya menyelesaikan forward pass untuk dua nilai wj yang sedikit berbeda, sambil menjaga semua parameter lainnya tidak berubah, dan membandingkan kerugian yang dihasilkan untuk setiap pass. Dengan memformalkan proses tersebut ke dalam sebuah persamaan yang mudah dan mengimplementasikan beberapa baris kode di Python, Anda dapat mengotomatiskan proses tersebut untuk setiap bobot dalam jaringan.

Namun, sekarang bayangkan ada 1 juta bobot dalam model Anda, yang akan cukup sederhana untuk model pembelajaran mendalam modern. Untuk menghitung seluruh gradien, Anda harus menyelesaikan 1.000.001 forward pass melalui jaringan: 1 untuk menetapkan garis dasar, dan kemudian pass lain untuk mengevaluasi perubahan pada tiap 1 juta bobot.

Propagasi balik dapat mencapai tujuan yang sama dalam 2 pass: 1 forward pass dan 1 backward pass.

Mixture of Experts | 12 Desember, episode 85

Decoding AI: Rangkuman Berita Mingguan

Bergabunglah dengan panel insinyur, peneliti, pemimpin produk, dan sosok kelas dunia lainnya selagi mereka mengupas tuntas tentang AI untuk menghadirkan berita dan insight terbaru seputar AI.

Konsep matematika utama untuk propagasi balik

Untuk menyederhanakan penjelasan tentang cara kerja propagasi balik, akan sangat membantu untuk meninjau secara singkat beberapa konsep dan terminologi matematika inti.

  • Derivatif adalah tingkat perubahan dalam suatu persamaan pada saat tertentu. Dalam persamaan linier, laju perubahan adalah kemiringan konstan. Dalam persamaan nonlinier , seperti yang digunakan untuk fungsi aktivasi, kemiringan ini bervariasi. Diferensiasi adalah proses menemukan turunan dari suatu fungsi tertentu. Dengan mendiferensiasikan fungsi nonlinier, kita kemudian dapat menemukan kemiringan - laju perubahan sesaat - pada titik tertentu dalam kurva.
  • Pada fungsi dengan beberapa variabel, turunan parsial adalah turunan dari satu variabel terhadap variabel lainnya. Jika kita mengubah satu variabel, tetapi menjaga yang lain tetap sama, bagaimana hasil dari fungsi keseluruhan berubah? Fungsi aktivasi masing-masing node dalam jaringan neural memiliki banyak variabel, termasuk banyak input dari neuron pada lapisan sebelumnya dan bobot yang diterapkan pada input tersebut. Ketika berhadapan dengan node tertentu n, menemukan turunan parsial dari fungsi aktivasi neuron dari lapisan sebelumnya memungkinkan kita untuk mengisolasi dampak masing-masing pada keseluruhan hasil fungsi aktivasi n itu sendiri.
  • Gradien adalah vektor yang berisi semua turunan parsial dari sebuah fungsi dengan beberapa variabel. Pada dasarnya, ini mewakili semua faktor yang memengaruhi tingkat di mana hasil dari persamaan kompleks akan berubah mengikuti perubahan input.
  • Aturan rantai adalah rumus untuk menghitung turunan fungsi yang tidak hanya melibatkan beberapa variabel, tetapi juga beberapa fungsi. Misalnya, pertimbangkan fungsi komposit ƒ(x) = A(B(x)). Turunan fungsi komposit, f, sama dengan turunan fungsi luar (A) dikalikan dengan turunan fungsi dalam (B).

Aturan rantai sangat penting untuk menghitung turunan fungsi aktivasi dalam jaringan neural , yang terdiri dari hasil fungsi aktivasi neuron lain di lapisan sebelumnya.

Meskipun logika di balik propagasi balik relatif mudah, matematika dan notasi dapat menjadi sangat rumit, terutama bagi mereka yang tidak terbiasa dengan kalkulus variabel.

Bagaimana cara kerja propagasi balik?

Bekerja mundur dari hasil model, propagasi balik menerapkan 'aturan rantai' untuk menghitung pengaruh perubahan pada setiap parameter jaringan neural pada keseluruhan kesalahan prediksi model.

Secara abstrak, tujuan dari propagasi balik adalah untuk melatih jaringan neural agar dapat membuat prediksi yang lebih baik melalui pembelajaran yang terawasi. Lebih mendasar lagi, tujuan dari propagasi balik adalah untuk menentukan bagaimana bobot dan bias model harus disesuaikan untuk meminimalkan kesalahan yang diukur dengan 'fungsi kerugian'.

Pada tingkat teknis dan matematis, tujuan dari propagasi balik adalah untuk menghitung gradien fungsi kerugian sehubungan dengan masing-masing parameter jaringan neural. Dalam istilah yang lebih sederhana, propagasi balik menggunakan aturan rantai untuk menghitung tingkat perubahan kerugian sebagai respons terhadap perubahan apa pun pada bobot (atau bias) tertentu dalam jaringan.

Secara umum, melatih jaringan neural dengan propagasi balik memerlukan langkah-langkah berikut:

  • Sebuah forward pass, membuat prediksi pada data pelatihan.
  • Fungsi kerugian mengukur kesalahan prediksi model selama forward pass tersebut.
  • Propagasi balik kesalahan, atau backward pass, untuk menghitung turunan parsial dari fungsi kerugian.
  • Penurunan gradien, untuk memperbarui bobot model.

Forward pass

Jaringan neural menghasilkan prediksi melalui propagasi maju. Perambatan maju pada dasarnya adalah serangkaian persamaan bersarang yang panjang, dengan output fungsi aktivasi dari satu lapisan neuron berfungsi sebagai input ke fungsi aktivasi neuron di lapisan berikutnya.

Pelatihan model biasanya dimulai dengan inisialisasi bobot dan bias secara acak. Hiperparameter model, seperti jumlah lapisan tersembunyi, jumlah node di setiap lapisan dan fungsi aktivasi untuk neuron tertentu, dikonfigurasikan secara manual dan tidak perlu dilatih.

Dalam setiap forward pass, sebuah input diambil sampelnya dari kumpulan data pelatihan. Node-node pada lapisan input menerima vektor input, dan masing-masing meneruskan nilainya-dikalikan dengan bobot awal acak-ke node-node pada lapisan tersembunyi pertama. Unit-unit tersembunyi mengambil jumlah tertimbang dari nilai output ini sebagai input ke fungsi aktivasi, yang nilai hasilnya (dikondisikan oleh bobot awal acak) berfungsi sebagai input ke neuron-neuron di lapisan berikutnya. Ini berlanjut sampai lapisan hasil, di mana prediksi akhir terjadi.

Pertimbangkan contoh sederhana jaringan neural yang mengklasifikasikan input ke dalam salah satu dari 5 kategori:

  • Lapisan input menerima representasi numerik dari contoh yang diambil dari data pelatihan.
  • Node input meneruskan nilainya ke unit tersembunyi di lapisan berikutnya. Unit tersembunyi menggunakan fungsi aktivasi ReLU.
  • Data mengalir melalui lapisan tersembunyi, masing-masing secara progresif mengekstraksi fitur utama hingga mencapai lapisan hasil.
  • Lapisan hasil berisi 5 neuron, masing-masing sesuai dengan kategori klasifikasi potensial.
  • Neuron hasil menggunakan fungsi aktivasi softmax. Nilai hasil dari setiap fungsi softmax neuron hasil sesuai dengan probabilitas, dari 1, bahwa input harus diklasifikasikan sebagai kategori yang diwakili oleh neuron tersebut.
  • Jaringan memprediksi bahwa input asli termasuk dalam kategori neuron hasil mana pun yang memiliki nilai softmax tertinggi.

Dalam jaringan yang terlatih dengan baik, model ini akan secara konsisten menghasilkan nilai probabilitas tinggi untuk klasifikasi yang benar dan menghasilkan nilai probabilitas rendah untuk klasifikasi yang salah. Namun, jaringan neural ini belum dilatih. Pada titik ini, bobot dan biasnya memiliki nilai awal acak, sehingga prediksinya umumnya tidak akurat.

Fungsi kerugian

Setelah setiap forward pass, 'fungsi kerugian' mengukur perbedaan (atau 'kerugian') antara prediksi hasil model untuk input tertentu dan prediksi yang benar (atau 'kebenaran dasar') untuk input tersebut. Dengan kata lain, ini mengukur seberapa berbeda hasil aktual model dari output yang diinginkan.

Dalam pembelajaran diawasi, yang menggunakan data berlabel, kebenaran dasar disediakan oleh anotasi manual. Dalam pembelajaran yang diawasi sendiri, yang menutupi atau mengubah bagian dari sampel data yang tidak berlabel dan model tugas dengan merekonstruksinya, sampel asli berfungsi sebagai kebenaran dasar.

Tujuan dari fungsi kerugian ini adalah untuk mengukur ketidakakuratan dengan cara yang secara tepat mencerminkan sifat dan besarnya kesalahan hasil model untuk setiap input. Rumus matematika yang berbeda untuk kerugian paling cocok untuk tugas-tugas tertentu: misalnya, varian kesalahan kuadrat rata-rata bekerja dengan baik untuk masalah regresi, sedangkan varian kerugian entropi silang bekerja dengan baik untuk klasifikasi.

Karena fungsi kerugian menerima output dari jaringan neural sebagai input, dan output jaringan tersebut itu adalah fungsi komposit yang terdiri atas banyak fungsi aktivasi bersarang dari masing-masing neuron, membedakan fungsi kerugian berarti membedakan seluruh jaringan. Untuk melakukannya, propagasi balik menggunakan aturan rantai.

'Fungsi kerugian', 'fungsi biaya' atau 'fungsi kesalahan'?
Perlu segera dicatat bahwa dalam beberapa konteks, istilah fungsi biaya atau fungsi kesalahan digunakan sebagai pengganti fungsi kerugian, dengan 'biaya' atau 'kesalahan' menggantikan 'kerugian'.

Meskipun beberapa literatur machine learning memberikan nuansa unik pada setiap istilah, namun pada umumnya istilah-istilah tersebut dapat dipertukarkan.1 Fungsi objektif adalah istilah yang lebih luas untuk setiap fungsi evaluasi yang ingin kita minimalkan atau maksimalkan. Fungsi kerugian, fungsi biaya atau fungsi kesalahan mengacu secara khusus pada istilah yang ingin kita minimalkan.

Backwards pass

Dimulai dari lapisan terakhir, 'backward pass' membedakan fungsi kerugian untuk menghitung bagaimana setiap parameter individu jaringan berkontribusi terhadap kesalahan keseluruhan untuk satu input.

Kembali ke contoh model pengklasifikasi sebelumnya, kita akan mulai dengan 5 neuron di lapisan terakhir, yang akan kita sebut lapisan L. Nilai softmax dari setiap neuron hasil mewakili kemungkinan, dari 1, bahwa sebuah input termasuk dalam kategori. Dalam model yang terlatih dengan sempurna, neuron yang mewakili klasifikasi yang benar akan memiliki nilai hasil mendekati 1 dan neuron lainnya akan memiliki nilai hasil mendekati 0.

Untuk saat ini, kita akan fokus pada unit hasil yang mewakili prediksi yang benar, yang akan kita sebut Lc. Fungsi aktivasi Lc adalah fungsi gabungan, yang berisi banyak fungsi aktivasi bersarang dari seluruh jaringan neural dari lapisan input ke lapisan hasil. Meminimalkan fungsi kerugian akan memerlukan penyesuaian di seluruh jaringan yang membuat hasil dari fungsi aktivasi Lc mendekati 1.

Untuk melakukannya, kita perlu tahu bagaimana perubahan apa pun di layer sebelumnya akan mengubah hasil Lcsendiri. Dengan kata lain, kita perlu menemukan turunan parsial dari fungsi aktivasi Lc.

Hasil dari fungsi aktivasi Lcbergantung pada kontribusi yang diterima dari neuron-neuron di lapisan kedua dari belakang, yang akan kita sebut sebagai lapisan L-1. Salah satu cara untuk mengubah hasil Lc adalah dengan mengubah bobot antara neuron-neuron di L-1 dan Lc. Dengan menghitung turunan parsial dari setiap bobot L-1 sehubungan dengan bobot lainnya, kita dapat melihat bagaimana meningkatkan atau mengurangi salah satu dari mereka akan membawa hasil dari Lc lebih dekat ke (atau lebih jauh dari) 1.

Tapi itu bukan satu-satunya cara untuk mengubah hasil Lc. Kontribusi yang diterima Lc dari neuron L-1 tidak hanya ditentukan oleh bobot yang diterapkan pada nilai hasil L-1, tetapi juga oleh nilai hasil aktual (pra-bobot) itu sendiri. Nilai hasil neuron L-1 , pada gilirannya, dipengaruhi oleh bobot yang diterapkan pada input yang mereka terima dari L-2. Jadi kita dapat mendiferensiasikan fungsi aktivasi di L-1 untuk menemukan turunan parsial dari bobot yang diterapkan pada kontribusi L-2. Derivatif parsial ini menunjukkan kepada kita bagaimana setiap perubahan pada bobot L-2 akan memengaruhi hasil di L-1, yang kemudian akan memengaruhi nilai hasil Lc dan dengan demikian memengaruhi fungsi kerugian.

Dengan logika yang sama, kita juga dapat memengaruhi nilai hasil yang diterima neuron L-1 dari neuron L-2 dengan menyesuaikan kontribusi yang diterima neuron L-2 dari neuron di L-3. Jadi kita menemukan turunan parsial di L-3, dan seterusnya, secara rekursif mengulangi proses ini sampai kita mencapai lapisan input. Setelah selesai, kita akan mendapatkan gradien dari fungsi kerugian: vektor turunan parsialnya untuk setiap bobot dan parameter bias dalam jaringan.

Kami sekarang telah menyelesaikan forward pass dan backward pass untuk satu contoh pelatihan. Namun, tujuan kami adalah melatih model untuk menggeneralisasi dengan baik ke input baru. Untuk melakukan hal tersebut, diperlukan pelatihan pada sejumlah besar sampel yang mencerminkan keragaman dan rentang input yang akan ditugaskan oleh model untuk membuat prediksi setelah pelatihan.

Penurunan gradien

Sekarang kita memiliki gradien fungsi kerugian terhadap setiap parameter bobot dan bias dalam jaringan, kita dapat meminimalkan fungsi kerugian, dan dengan demikian mengoptimalkan model, dengan menggunakan penurunan gradien untuk memperbarui parameter model.

Bergerak ke bawah—menurunkan—gradien fungsi kerugian akan mengurangi kerugian. Karena gradien yang kami hitung selama propagasi balik berisi turunan parsial untuk setiap parameter model, kami tahu arah mana yang harus 'dilangkahkan' untuk setiap parameter guna mengurangi kerugian.

Setiap langkah mencerminkan proses model “belajar” dari data pelatihannya. Tujuan kita adalah memperbarui bobot secara bertahap sampai mencapai titik gradien minimum. Tujuan dari algoritma penurunan gradien adalah untuk menemukan penyesuaian parameter spesifik agar kita dapat menuruni gradien secara paling efisien.

Tingkat pembelajaran

Ukuran setiap langkah adalah hiperparameter yang dapat disesuaikan, disebut laju pembelajaran. Memilih tingkat pembelajaran yang tepat penting untuk pelatihan yang efisien dan efektif.

Ingatlah bahwa fungsi aktivasi dalam jaringan neural bersifat nonlinier. Beberapa gradien mungkin berbentuk seperti huruf U: langkah ke arah tertentu akan menurunkan gradien, tetapi terus melangkah ke arah itu akhirnya akan menaikkan gradien.

Tingkat pembelajaran yang rendah memastikan kita selalu melangkah ke arah yang benar, tetapi menghitung begitu banyak perubahan memakan waktu dan mahal secara komputasi. Laju pembelajaran yang tinggi memang efisien secara komputasi, tetapi berisiko melampaui batas minimum.

Ukuran batch

Pertimbangan lain dalam penurunan gradien adalah seberapa sering memperbarui bobot. Salah satu pilihannya adalah menghitung gradien untuk setiap contoh dalam kumpulan data pelatihan, kemudian mengambil rata-rata gradien tersebut dan menggunakannya untuk memperbarui parameter. Proses ini diulang secara berulang dalam serangkaian periode pelatihan sampai tingkat kesalahan stabil. Metode ini adalah penurunan gradien batch.

Ketika kumpulan data pelatihan sangat besar, seperti yang biasanya terjadi pada pembelajaran mendalam, batch penurunan gradien memerlukan waktu pemrosesan yang sangat lama. Menghitung gradien untuk jutaan contoh untuk setiap iterasi pembaruan bobot menjadi tidak efisien. Dalam penurunan gradien stokastik (SGD), setiap periode menggunakan satu contoh pelatihan untuk setiap langkah. Sementara kerugian mungkin berfluktuasi dari periode ke periode, kerugian dengan cepat menuju nilai minimal di banyak pembaruan.

Diagram penurunan gradien, "nilai bobot" pada sumbu x dan "kerugian" pada sumbu y, dan "titik awal" pada sisi kiri atas diagram, terdapat teks pada bagian terbawah "titik konvergensi, yaitu ketika fungsi biaya minimal" Demonstrasi visual penurunan gradien

Penurunan gradien mini-batch merupakan pendekatan jalan tengah. Contoh pelatihan diambil secara acak dalam kelompok dengan ukuran tetap, kemudian gradiennya dihitung dan dirata-ratakan. Hal ini mengurangi kebutuhan penyimpanan memori dari penurunan gradien batch sekaligus mengurangi ketidakstabilan relatif SGD.

Solusi terkait
IBM watsonx.ai

Latih, validasi, lakukan tuning, dan terapkan AI generatif, model dasar, dan kemampuan machine learning dengan IBM watsonx.ai, studio perusahaan generasi berikutnya untuk pembangun AI. Bangun aplikasi AI dalam waktu singkat, dengan sedikit data.

Temukan watsonx.ai
Solusi kecerdasan buatan (AI)

Gunakan AI di bisnis Anda dalam perpaduan antara keahlian AI terdepan di industri dari IBM dan portofolio solusi Anda.

Jelajahi solusi AI
Konsultasi dan layanan AI

Temukan kembali alur kerja dan operasi yang penting dengan menambahkan AI untuk memaksimalkan pengalaman, pengambilan keputusan secara real-time, dan nilai bisnis.

Jelajahi layanan AI
Ambil langkah selanjutnya

Dapatkan akses satu atap ke kemampuan yang mencakup siklus hidup pengembangan AI. Hasilkan solusi AI yang kuat dengan antarmuka ramah pengguna, alur kerja yang efisien, serta akses ke API dan SDK berstandar industri.

Jelajahi watsonx.ai Pesan demo langsung