My IBM Masuk Berlangganan

Beranda

Think

Topik

Propagasi balik

Apa itu propagasi balik?

Apa itu propagasi balik?

Jelajahi platform AI IBM Daftar untuk mendapatkan pembaruan AI
Piktogram awan, diagram lingkaran, grafik

Diterbitkan: 2 Juli 2024
Kontributor: Dave Bergmann, Cole Stryker

Apa itu propagasi balik?

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', sebuah prinsip kalkulus yang berasal dari abad ke-17, untuk menghitung tingkat di mana setiap neuron berkontribusi pada kerugian keseluruhan. Dengan demikian, kita dapat menghitung dampak dari perubahan pada variabel apa pun-yaitu, pada 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.

Cara memilih model dasar AI yang tepat

Meskipun sebagian besar organisasi sudah memahami hasil yang mereka harapkan dari AI generatif, namun memilih model yang salah dapat sangat memengaruhi bisnis Anda. Dalam buku elektronik ini, jelajahi kerangka kerja pemilihan model untuk menyeimbangkan persyaratan kinerja dengan biaya, risiko, kebutuhan penerapan, dan persyaratan pemangku kepentingan.

Konten terkait Berlangganan buletin Think
Cara kerja jaringan neural

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.

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.

Pelajari lebih lanjut: Apa peran bias dalam jaringan neural?

Fungsi aktivasi

Setiap neuron dikonfigurasikan untuk melakukan operasi matematika, yang disebut 'fungsi aktivasi', pada jumlah 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.

Mengapa menggunakan propagasi balik?

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.

Konsep matematika utama untuk propagasi balik

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.

Pelajari lebih lanjut: Jelajahi primer bermanfaat tentang kalkulus machine learning
Bagaimana cara kerja propagasi balik?

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 mengambil hasil dari jaringan neural sebagai input, dan hasil jaringan neural itu adalah fungsi komposit yang terdiri dari 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.

Tonton: Apa itu propagasi balik? Penjelasan visual

Penurunan gradien

Sekarang kita memiliki gradien fungsi kerugian sehubungan dengan 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 model 'pembelajaran' dari data pelatihannya. Tujuan kita adalah memperbarui bobot secara berulang sampai kita mencapai gradien minimum. Tujuan dari algoritma penurunan gradien adalah untuk menemukan penyesuaian parameter spesifik yang akan menggerakkan kita menuruni gradien dengan paling efisien.

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

Ingatlah bahwa fungsi aktivasi dalam jaringan neural adalah nonlinier. Beberapa gradien mungkin kira-kira berbentuk U: melangkah ke satu arah akan menurunkan gradien, tetapi terus melangkah ke arah itu pada 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.

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

Tonton: Apa yang dimaksud dengan penurunan gradien? Penjelasan visual
Solusi terkait

Solusi terkait

IBM watsonx.ai™

Anda dapat melatih, memvalidasi, menyetel, dan menerapkan AI generatif, model dasar, dan kemampuan machine learning dengan mudah serta membangun aplikasi AI dalam waktu yang singkat dengan data yang sedikit.

Jelajahi watsonx.ai

Layanan konsultasi AI

Menata ulang cara Anda bekerja dengan AI: tim global kami yang beragam dan terdiri dari lebih dari 20.000 pakar AI dapat membantu Anda dengan cepat dan percaya diri dalam merancang dan meningkatkan skala AI serta otomatisasi di seluruh bisnis Anda, bekerja di seluruh teknologi IBM watsonx kami sendiri dan ekosistem mitra yang terbuka untuk menghadirkan model AI apa pun, di cloud mana pun, yang dipandu oleh etika dan kepercayaan.

Jelajahi layanan konsultasi IBM AI

IBM watsonx

Tingkatkan kekuatan AI dengan platform AI dan data generasi berikutnya.

Jelajahi platform watsonx
Sumber daya

Sumber daya

Jaringan neural dari awal

Pelajari dasar-dasar membangun jaringan neural, bahkan tanpa bantuan kerangka kerja yang mungkin membuatnya lebih mudah digunakan.

Apa itu pembelajaran mendalam?

Baca lebih lanjut tentang pembelajaran mendalam, yang merupakan bagian dari machine learning yang menggunakan jaringan neural berlapis, untuk menyimulasikan kekuatan pengambilan keputusan yang kompleks dari otak manusia. Pembelajaran mendalam memberdayakan sebagian besar aplikasi AI dalam kehidupan kita saat ini.

Panduan pemula untuk AI dan machine learning

Jelajahi beberapa aspek utama AI dan subbidangnya, termasuk sejarah singkat dan konsep dasar yang akan membawa Anda dari awal algoritma prediktif hingga tonggak sejarah dalam pembelajaran mendalam modern.

Ambil langkah selanjutnya

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.

Jelajahi watsonx.ai Pesan demo langsung
Catatan kaki

¹ "Deep Learning", Goodfellow et al, MIT Press, 2016.