Selama bertahun-tahun, ReLU menjadi fungsi aktivasi baku dalam deep learning. Alasannya jelas—sederhana dan bekerja baik dalam banyak kasus. Namun saat neuron mulai menghasilkan nol selama pelatihan, mereka berhenti belajar, gradiennya menjadi nol, dan backpropagation tak bisa memperbarui bobotnya. Pada jaringan yang lebih dalam, masalah ini dapat memengaruhi banyak neuron dan mengurangi kemampuan model menangkap pola pada data.
Bahasa sederhananya: jaringan Anda berhenti belajar.
Softplus menawarkan alternatif yang mulus dan terdiferensiasi untuk mengatasi isu ini, sambil tetap mempertahankan sebagian besar keunggulan ReLU. Fungsi ini mendekati perilaku ReLU untuk masukan positif, tetapi memberikan gradien non-nol untuk nilai negatif. Hal ini menjaga neuron tetap aktif sepanjang pelatihan.
Dalam artikel ini, Anda akan mempelajari apa itu Softplus, bagaimana perbandingannya dengan ReLU secara matematis, dan kapan sebaiknya memilihnya dibanding fungsi aktivasi lain.
Softplus adalah fungsi aktivasi mulus yang bertindak sebagai pendekatan terdiferensiasi dari ReLU.
Fungsi ini menerima bilangan riil apa pun sebagai masukan dan menghasilkan nilai positif. Softplus tidak memiliki sudut tajam di nol seperti ReLU. Kurvanya mulus melalui titik transisi tersebut.
Berikut definisi matematisnya:
Dengan:
x adalah nilai masukan
e adalah bilangan Euler (sekitar 2,718)
ln adalah logaritma natural
Untuk masukan positif besar, Softplus mengembalikan nilai yang mendekati nilai masukannya. Untuk masukan negatif, ia mengembalikan nilai positif kecil alih-alih nol.
Di mana σ(x) adalah fungsi sigmoid yang mungkin sudah sering Anda lihat.
Sifat turunan ini membuat Softplus berguna saat Anda memerlukan aliran gradien yang mulus selama backpropagation. Gradien tidak pernah turun ke nol. Ini berarti neuron selalu dapat memperbarui bobotnya dan terus belajar.
Perilaku pada nilai ekstrem
Softplus berperilaku berbeda tergantung apakah masukan besar dan positif atau besar dan negatif.
Untuk nilai positif besar:
Untuk nilai negatif besar:
Inilah alasan Softplus sangat baik dalam mendekati ReLU. Saat x positif dan besar, kedua fungsi mengembalikan nilai yang kurang lebih sama.
Perbedaannya terlihat pada masukan negatif. ReLU menghasilkan tepat nol untuk masukan negatif, sedangkan Softplus menghasilkan nilai positif kecil.
Perbedaan kecil itu mencegah masalah neuron mati. Neuron yang menggunakan Softplus dapat pulih dari aktivasi negatif karena gradiennya tidak pernah benar-benar hilang.
Sifat Matematis dan Komputasional
Softplus memiliki sifat matematis yang perlu Anda ketahui. Ini membuatnya lebih dari sekadar versi ReLU yang mulus.
Kekelusan dan terdiferensiasi
Softplus terdiferensiasi tanpa batas di setiap titik.
Artinya Anda dapat mengambil turunan sebanyak yang Anda mau, dan fungsinya tetap mulus. Secara matematis, ini adalah fungsi analitik.
Sebaliknya, ReLU memiliki tekukan di nol—sudut tajam tempat turunan tidak ada. Titik tak terdiferensiasi ini dapat menimbulkan masalah pada algoritma optimasi yang mengasumsikan gradien mulus.
Dalam deep learning, optimasi yang mulus bekerja lebih baik saat permukaan loss mulus. Jika Anda menggunakan metode optimasi orde kedua atau algoritma yang bergantung pada transisi gradien yang mulus, Softplus memberi Anda kemulusan tersebut.
Stabilitas numerik
Menghitung eksponensial dapat menyebabkan masalah overflow saat masukan menjadi besar.
Kerangka kerja deep learning menangani ini dengan parameter threshold. Saat masukan melampaui ambang ini, fungsi beralih dari menghitung logaritma menjadi mengembalikan keluaran linear.
Begini cara kerjanya:
Untuk masukan kecil: hitung Softplus secara langsung
Untuk masukan besar melampaui ambang: kembalikan masukan secara langsung
Ini mencegah overflow numerik sambil mempertahankan perilaku yang Anda butuhkan. Untuk masukan positif besar, Softplus memang mendekati fungsi linear, sehingga peralihan ini tidak memengaruhi keluaran secara bermakna.
Keterkaitan dengan fungsi lain
Softplus terhubung dengan beberapa fungsi aktivasi dan probabilitas lainnya. Berikut keterkaitannya:
Sigmoid: Seperti yang Anda lihat sebelumnya, turunan Softplus adalah fungsi sigmoid. Ini berarti Softplus adalah integral dari sigmoid, yang masuk akal jika Anda membandingkan bentuknya.
LogSumExp: Softplus sebenarnya merupakan kasus khusus dari fungsi LogSumExp. Untuk dua masukan, LogSumExp(0, x) = ln(1 + e^x) = Softplus(x). Ini mengaitkan Softplus dengan teknik stabilitas numerik yang digunakan dalam machine learning.
Softmax: LogSumExp adalah dasar dari Softmax, jadi Softplus berada dalam rumpun yang sama. Keduanya menggunakan trik log-exp untuk stabilitas numerik.
Fungsi logit: Logit adalah invers dari sigmoid. Karena sigmoid merupakan turunan dari Softplus, ketiga fungsi ini membentuk satu keluarga yang saling terkait dalam teori probabilitas.
Konjugat konveks: Dalam analisis konveks, konjugat konveks dari Softplus adalah entropi biner negatif. Ini menghubungkan Softplus dengan prinsip pemaksimalan entropi yang digunakan dalam teori informasi dan pemodelan probabilistik.
Jika Anda bekerja dengan model probabilistik atau kerangka Bayesian, keterkaitan entropi ini menjadikan Softplus pilihan alami untuk memastikan aktivasi selaras dengan prinsip entropi maksimum.
Keunggulan Menggunakan Softplus
Softplus menyelesaikan masalah spesifik yang kurang ditangani ReLU. Berikut empat di antaranya.
Mulus dan terdiferensiasi
Softplus mulus di setiap titik pada kurva.
Ini berarti gradien mengalir secara kontinu selama backpropagation tanpa lompatan atau putus mendadak. Saat Anda melatih jaringan, aliran gradien yang mulus menghasilkan pembaruan bobot yang lebih stabil dan perilaku konvergensi yang lebih baik.
Sudut tajam ReLU di nol dapat menyebabkan diskontinuitas gradien. Softplus tidak memiliki masalah ini.
Mencegah neuron mati
Softplus tidak pernah menghasilkan tepat nol, bahkan untuk masukan negatif besar.
Ini berarti setiap neuron dapat terus belajar karena gradien tidak pernah benar-benar hilang. Dengan ReLU, neuron yang mulai menghasilkan nol bisa tetap terjebak di sana selamanya—gradiennya nol, sehingga pembaruan bobot tidak mengubahnya.
Softplus memberi Anda jaring pengaman. Neuron dapat pulih dari aktivasi negatif dan kembali berkontribusi pada jaringan.
Keluaran selalu positif
Softplus menjamin keluaran non-negatif untuk masukan apa pun.
Ini penting saat Anda membangun model yang memerlukan prediksi bernilai positif. Model regresi Poisson menghitung data (pelanggan, kejadian, klik) di mana nilai negatif tidak masuk akal. Model generatif sering memerlukan keluaran positif untuk merepresentasikan probabilitas atau intensitas.
Lebih cocok untuk tugas tertentu
Sejumlah tugas mendapat manfaat dari perilaku aktivasi yang mulus dan kontinu.
Tugas regresi dengan fungsi target yang mulus bekerja lebih baik dengan aktivasi yang mulus. Jika Anda memprediksi nilai kontinu seperti suhu, harga, atau jarak, Softplus selaras lebih baik dengan kemulusan yang mendasari data Anda.
Model Bayesian dan kerangka probabilistik juga lebih menyukai fungsi yang mulus. Saat Anda memodelkan ketidakpastian atau bekerja dengan distribusi probabilitas, turunan kontinu Softplus membuat operasi matematis lebih rapi dan stabil.
Jika Anda bekerja di domain ini, Softplus memberi jaminan teoretis yang lebih baik dan hasil praktis yang lebih baik dibanding transisi tajam ReLU.
Keterbatasan dan Kompromi
Ada beberapa keterbatasan yang perlu Anda ketahui tentang Softplus sebelum benar-benar meninggalkan ReLU. Berikut tiga di antaranya.
Biaya komputasi lebih tinggi
ReLU menggunakan operasi max sederhana: max(0, x).
Softplus menghitung eksponensial dan logaritma: ln(1 + e^x). Operasi ini lebih lambat, terutama saat dijalankan jutaan kali di jaringan besar dengan ribuan neuron.
Perbedaannya akan bertambah. Overhead komputasi ini dapat meningkatkan waktu pelatihan.
Konvergensi lebih lambat
Softplus memiliki gradien yang lebih mulus, yang di atas kertas terdengar baik.
Namun mulus tidak selalu berarti cepat. Transisi tajam ReLU menciptakan aktivasi yang jarang—banyak neuron menghasilkan tepat nol. Kelangkaan ini membantu gradien merambat lebih cepat melalui jaringan saat backpropagation.
Softplus tidak memiliki kelangkaan ini. Setiap neuron menghasilkan nilai non-nol, yang berarti lebih banyak komputasi dan berpotensi konvergensi lebih lambat pada arsitektur yang dalam.
Lebih jarang digunakan dalam praktik
ReLU mendominasi deep learning selama bertahun-tahun.
Artinya ada lebih banyak dokumentasi, persoalan/solusi, dan sumber daya umum terkaitnya. Softplus tidak mendapat perhatian yang sama. Lebih sedikit orang yang menggunakannya, sehingga pengetahuan komunitas lebih terbatas, lebih sedikit jawaban di Stack Overflow, dan lebih sedikit model pralatih yang menggunakannya.
Saat Anda memilih Softplus, Anda menempuh jalur dengan dukungan yang lebih sedikit dan kemungkinan lebih banyak debugging mandiri.
Softplus di PyTorch
PyTorch memudahkan penggunaan Softplus dengan dukungan bawaan dan dua parameter yang mengendalikan perilakunya.
Sebagai referensi, berikut versi PyTorch yang saya gunakan:
import torch
import torch.nn as nn
print(torch.__version__)Didukung oleh
Berikut implementasi dasarnya:
# Create a Softplus activation function
softplus = nn.Softplus(beta=1, threshold=20)# Apply it to some input
x = torch.tensor([-2.0,-1.0,0.0,1.0,2.0])
output = softplus(x)print(output)Didukung oleh
Cukup sederhana. Namun dua parameter—beta dan threshold—mengubah perilaku fungsi. Mari kita telusuri lebih dalam.
Saat Anda meningkatkan beta, fungsi menjadi lebih curam dan mendekati ReLU. Saat Anda menurunkannya, fungsi menjadi lebih mulus dan bertahap. Berikut cara kerjanya dalam kode:
Nilai baku beta=1 bekerja baik untuk sebagian besar kasus. Anda hanya perlu mengubahnya jika ingin menyetel ketajaman aktivasi untuk tugas tertentu.
Parameter threshold
Parameter threshold mencegah overflow numerik untuk masukan besar.
Ingat bagaimana perhitungan e^x bisa meledak untuk nilai x yang besar? Saat masukan melampaui ambang, PyTorch beralih dari menghitung rumus Softplus penuh menjadi mengembalikan masukan secara langsung:
softplus = nn.Softplus(beta=1, threshold=20)# Large input bypasses the exponential
large_input = torch.tensor([25.0])print(softplus(large_input))Didukung oleh
Nilai baku threshold=20 cocok untuk sebagian besar skenario. Pada titik ini, Softplus memang sudah mendekati fungsi linear, sehingga peralihan tidak memengaruhi hasil.
Kapan Menggunakan Softplus
Pilih Softplus saat Anda memerlukan kemulusan gradien untuk optimasi. Jika Anda menggunakan metode optimasi orde kedua atau algoritma yang mengasumsikan permukaan loss yang mulus, Softplus memberikan turunan kontinu yang dibutuhkan metode tersebut.
Gunakan saat model Anda memerlukan keluaran non-negatif. Data hitung, nilai intensitas, dan parameter probabilitas semuanya harus tetap positif. Softplus menangani ini secara alami tanpa kendala tambahan.
Jaringan dangkal lebih mendapat manfaat dari Softplus dibanding jaringan dalam. Saat Anda hanya memiliki beberapa lapisan, kehilangan satu neuron saja karena masalah ReLU mati akan menurunkan kinerja. Softplus menjaga semua neuron tetap aktif dan belajar.
Anda juga dapat memilih Softplus untuk model probabilistik dan kerangka Bayesian. Gradien yang mulus dan keterkaitan entropi membuat operasi matematis lebih bersih. Model berbasis energi juga diuntungkan oleh sifat kontinu Softplus.
Model yang memerlukan interpretasi gradien kontinu bekerja lebih baik dengan Softplus. Jika Anda menganalisis respons jaringan terhadap perubahan masukan atau mempelajari aliran gradien, turunan yang mulus memberi wawasan yang lebih jelas dibanding transisi tajam ReLU.
Kapan ReLU tetap lebih baik
Jangan beralih ke Softplus hanya karena terdengar lebih baik di atas kertas atau karena terlihat baru dan menarik.
Jaringan besar dan dalam berlatih lebih cepat dengan ReLU. Overhead komputasi Softplus akan bertambah di ratusan lapisan dan jutaan parameter. Kelangkaan aktivasi ReLU juga membantu memori dan kecepatan.
Sistem produksi sering memilih ReLU karena optimasi perangkat keras menargetkannya secara khusus. Pelatihan Anda bisa 10–20% lebih lambat dengan Softplus pada perangkat keras yang sama.
Tugas visi komputer dan NLP standar biasanya tidak memperoleh manfaat dari Softplus. Komunitas telah bertahun-tahun mengoptimalkan arsitektur di sekitar ReLU, dan mengganti fungsi aktivasi berarti membangun ulang pengetahuan itu.
Mulailah dengan ReLU untuk sebagian besar proyek. Beralih ke Softplus hanya saat Anda menghadapi masalah spesifik yang dapat diselesaikan oleh sifat-sifatnya.
Kesimpulan
Singkatnya, Softplus memberi Anda alternatif yang mulus terhadap ReLU saat dibutuhkan.
Fungsi ini tidak akan menggantikan ReLU sebagai fungsi aktivasi baku—dan memang tidak perlu. Softplus menyelesaikan masalah spesifik: neuron mati pada jaringan dangkal, model yang memerlukan keluaran non-negatif, dan tugas di mana aliran gradien yang mulus penting untuk optimasi.
Anda mendapatkan sifat matematis yang lebih baik dengan mengorbankan kecepatan komputasi. Untuk sebagian besar proyek deep learning, kesederhanaan dan kecepatan ReLU menang. Namun saat Anda bekerja dengan model probabilistik, kerangka Bayesian, atau tugas regresi dengan fungsi target yang mulus, Softplus menjadi pilihan yang lebih baik.
Uji keduanya. Jalankan eksperimen. Biarkan masalah spesifik Anda yang menentukan pilihan.
Ingin belajar lebih lanjut? Lihat sumber daya hebat kami:
Senior Data Scientist yang berbasis di Kroasia. Penulis Tekno Teratas dengan lebih dari 700 artikel yang telah diterbitkan, menghasilkan lebih dari 10 juta tayangan. Penulis buku Machine Learning Automation with TPOT.
Softplus FAQ
Apa itu fungsi aktivasi Softplus?⌄
Softplus adalah fungsi aktivasi mulus yang didefinisikan sebagai f(x) = ln(1 + e^x) yang berfungsi sebagai pendekatan terdiferensiasi dari ReLU. Tidak seperti ReLU yang memiliki sudut tajam di nol, Softplus melengkung mulus melalui titik transisi. Untuk masukan positif besar, ia mengembalikan nilai yang mendekati nilai masukannya, sedangkan untuk masukan negatif, ia mengembalikan nilai positif kecil alih-alih nol. Hal ini membuatnya berguna untuk mencegah masalah neuron mati pada jaringan saraf.
Kapan saya harus menggunakan Softplus alih-alih ReLU?⌄
Pilih Softplus saat Anda memerlukan kemulusan gradien untuk optimasi, seperti pada metode optimasi orde kedua atau algoritma yang mengasumsikan permukaan loss yang mulus. Ini juga ideal saat model Anda memerlukan keluaran non-negatif (seperti data hitung atau parameter probabilitas) dan untuk jaringan dangkal di mana kehilangan satu neuron saja karena masalah ReLU mati akan menurunkan kinerja. Softplus bekerja baik untuk model probabilistik, kerangka Bayesian, dan tugas regresi dengan fungsi target yang mulus. Namun, tetap gunakan ReLU untuk jaringan besar dan dalam serta tugas visi komputer atau NLP standar di mana kecepatan lebih penting.
Apa keunggulan utama Softplus dibanding ReLU?⌄
Softplus memberikan empat keunggulan utama: mulus dan terdiferensiasi di setiap titik, sehingga mencegah diskontinuitas gradien; mencegah neuron mati dengan tidak pernah menghasilkan tepat nol, sehingga semua neuron dapat terus belajar; menjamin keluaran non-negatif untuk masukan apa pun; dan lebih cocok untuk tugas yang memerlukan perilaku aktivasi mulus dan kontinu seperti regresi dan pemodelan probabilistik. Aliran gradien yang kontinu menghasilkan pembaruan bobot yang lebih stabil dan perilaku konvergensi yang lebih baik selama pelatihan.
Bagaimana cara kerja parameter beta dan threshold pada Softplus di PyTorch?⌄
Parameter beta mengendalikan kemulusan kurva Softplus—meningkatkan beta membuat fungsi lebih curam dan mendekati ReLU, sementara menurunkannya membuat fungsi lebih mulus dan bertahap. Parameter threshold mencegah overflow numerik untuk masukan besar dengan beralih dari menghitung rumus Softplus penuh menjadi sekadar mengembalikan masukan secara langsung saat masukan melampaui ambang. Nilai baku (beta=1, threshold=20) bekerja baik untuk sebagian besar skenario.
Apa perbedaan biaya komputasi antara Softplus dan ReLU?⌄
Softplus memiliki biaya komputasi yang lebih tinggi daripada ReLU karena menghitung eksponensial dan logaritma (ln(1 + e^x)) alih-alih operasi max sederhana milik ReLU (max(0, x)). Operasi ini lebih lambat, terutama saat dijalankan jutaan kali pada jaringan besar dengan ribuan neuron. Overhead komputasi ini dapat meningkatkan waktu pelatihan sebesar 10–20% pada perangkat keras yang sama, itulah sebabnya ReLU tetap lebih disukai untuk sistem produksi dan jaringan besar serta dalam di mana kecepatan sangat krusial.
Mengapa jaringan saraf memerlukan fungsi aktivasi?⌄
Jaringan saraf memerlukan fungsi aktivasi untuk memasukkan nonlinieritas ke dalam model. Tanpanya, jaringan hanya akan melakukan transformasi linear—tak peduli berapa banyak lapisannya—sehingga tidak mampu mempelajari pola atau hubungan kompleks dalam data. Fungsi aktivasi memungkinkan jaringan saraf mendekati fungsi nonlinier, sehingga dapat menangani tugas seperti pengenalan gambar, pemahaman bahasa, dan pengambilan keputusan.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Selama bertahun-tahun, ReLU menjadi fungsi aktivasi baku dalam deep learning. Alasannya jelas—sederhana dan bekerja baik dalam banyak kasus. Namun saat neuron mulai menghasilkan nol selama pelatihan, mereka berhenti belajar, gradiennya menjadi nol, dan backpropagation tak bisa memperbarui bobotnya. Pada jaringan yang lebih dalam, masalah ini dapat memengaruhi banyak neuron dan mengurangi kemampuan model menangkap pola pada data.
Bahasa sederhananya: jaringan Anda berhenti belajar.
Softplus menawarkan alternatif yang mulus dan terdiferensiasi untuk mengatasi isu ini, sambil tetap mempertahankan sebagian besar keunggulan ReLU. Fungsi ini mendekati perilaku ReLU untuk masukan positif, tetapi memberikan gradien non-nol untuk nilai negatif. Hal ini menjaga neuron tetap aktif sepanjang pelatihan.
Dalam artikel ini, Anda akan mempelajari apa itu Softplus, bagaimana perbandingannya dengan ReLU secara matematis, dan kapan sebaiknya memilihnya dibanding fungsi aktivasi lain.
Jika Anda benar-benar baru di deep learning, baca panduan mendalam kami tentang fungsi aktivasi pada jaringan saraf.
Apa Itu Fungsi Softplus?
Softplus adalah fungsi aktivasi mulus yang bertindak sebagai pendekatan terdiferensiasi dari ReLU.
Fungsi ini menerima bilangan riil apa pun sebagai masukan dan menghasilkan nilai positif. Softplus tidak memiliki sudut tajam di nol seperti ReLU. Kurvanya mulus melalui titik transisi tersebut.
Berikut definisi matematisnya:
Dengan:
Untuk masukan positif besar, Softplus mengembalikan nilai yang mendekati nilai masukannya. Untuk masukan negatif, ia mengembalikan nilai positif kecil alih-alih nol.
Turunan dari Softplus
Turunan Softplus adalah fungsi sigmoid logistik.
Artinya:
Di mana σ(x) adalah fungsi sigmoid yang mungkin sudah sering Anda lihat.
Sifat turunan ini membuat Softplus berguna saat Anda memerlukan aliran gradien yang mulus selama backpropagation. Gradien tidak pernah turun ke nol. Ini berarti neuron selalu dapat memperbarui bobotnya dan terus belajar.
Perilaku pada nilai ekstrem
Softplus berperilaku berbeda tergantung apakah masukan besar dan positif atau besar dan negatif.
Untuk nilai positif besar:
Untuk nilai negatif besar:
Inilah alasan Softplus sangat baik dalam mendekati ReLU. Saat x positif dan besar, kedua fungsi mengembalikan nilai yang kurang lebih sama.
Perbedaannya terlihat pada masukan negatif. ReLU menghasilkan tepat nol untuk masukan negatif, sedangkan Softplus menghasilkan nilai positif kecil.
Perbedaan kecil itu mencegah masalah neuron mati. Neuron yang menggunakan Softplus dapat pulih dari aktivasi negatif karena gradiennya tidak pernah benar-benar hilang.
Sifat Matematis dan Komputasional
Softplus memiliki sifat matematis yang perlu Anda ketahui. Ini membuatnya lebih dari sekadar versi ReLU yang mulus.
Kekelusan dan terdiferensiasi
Softplus terdiferensiasi tanpa batas di setiap titik.
Artinya Anda dapat mengambil turunan sebanyak yang Anda mau, dan fungsinya tetap mulus. Secara matematis, ini adalah fungsi analitik.
Sebaliknya, ReLU memiliki tekukan di nol—sudut tajam tempat turunan tidak ada. Titik tak terdiferensiasi ini dapat menimbulkan masalah pada algoritma optimasi yang mengasumsikan gradien mulus.
Dalam deep learning, optimasi yang mulus bekerja lebih baik saat permukaan loss mulus. Jika Anda menggunakan metode optimasi orde kedua atau algoritma yang bergantung pada transisi gradien yang mulus, Softplus memberi Anda kemulusan tersebut.
Stabilitas numerik
Menghitung eksponensial dapat menyebabkan masalah overflow saat masukan menjadi besar.
Kerangka kerja deep learning menangani ini dengan parameter
threshold. Saat masukan melampaui ambang ini, fungsi beralih dari menghitung logaritma menjadi mengembalikan keluaran linear.Begini cara kerjanya:
Ini mencegah overflow numerik sambil mempertahankan perilaku yang Anda butuhkan. Untuk masukan positif besar, Softplus memang mendekati fungsi linear, sehingga peralihan ini tidak memengaruhi keluaran secara bermakna.
Keterkaitan dengan fungsi lain
Softplus terhubung dengan beberapa fungsi aktivasi dan probabilitas lainnya. Berikut keterkaitannya:
Sigmoid: Seperti yang Anda lihat sebelumnya, turunan Softplus adalah fungsi sigmoid. Ini berarti Softplus adalah integral dari sigmoid, yang masuk akal jika Anda membandingkan bentuknya.
LogSumExp: Softplus sebenarnya merupakan kasus khusus dari fungsi LogSumExp. Untuk dua masukan,
LogSumExp(0, x) = ln(1 + e^x) = Softplus(x). Ini mengaitkan Softplus dengan teknik stabilitas numerik yang digunakan dalam machine learning.Softmax: LogSumExp adalah dasar dari Softmax, jadi Softplus berada dalam rumpun yang sama. Keduanya menggunakan trik log-exp untuk stabilitas numerik.
Fungsi logit: Logit adalah invers dari sigmoid. Karena sigmoid merupakan turunan dari Softplus, ketiga fungsi ini membentuk satu keluarga yang saling terkait dalam teori probabilitas.
Konjugat konveks: Dalam analisis konveks, konjugat konveks dari Softplus adalah entropi biner negatif. Ini menghubungkan Softplus dengan prinsip pemaksimalan entropi yang digunakan dalam teori informasi dan pemodelan probabilistik.
Jika Anda bekerja dengan model probabilistik atau kerangka Bayesian, keterkaitan entropi ini menjadikan Softplus pilihan alami untuk memastikan aktivasi selaras dengan prinsip entropi maksimum.
Keunggulan Menggunakan Softplus
Softplus menyelesaikan masalah spesifik yang kurang ditangani ReLU. Berikut empat di antaranya.
Mulus dan terdiferensiasi
Softplus mulus di setiap titik pada kurva.
Ini berarti gradien mengalir secara kontinu selama backpropagation tanpa lompatan atau putus mendadak. Saat Anda melatih jaringan, aliran gradien yang mulus menghasilkan pembaruan bobot yang lebih stabil dan perilaku konvergensi yang lebih baik.
Sudut tajam ReLU di nol dapat menyebabkan diskontinuitas gradien. Softplus tidak memiliki masalah ini.
Mencegah neuron mati
Softplus tidak pernah menghasilkan tepat nol, bahkan untuk masukan negatif besar.
Ini berarti setiap neuron dapat terus belajar karena gradien tidak pernah benar-benar hilang. Dengan ReLU, neuron yang mulai menghasilkan nol bisa tetap terjebak di sana selamanya—gradiennya nol, sehingga pembaruan bobot tidak mengubahnya.
Softplus memberi Anda jaring pengaman. Neuron dapat pulih dari aktivasi negatif dan kembali berkontribusi pada jaringan.
Keluaran selalu positif
Softplus menjamin keluaran non-negatif untuk masukan apa pun.
Ini penting saat Anda membangun model yang memerlukan prediksi bernilai positif. Model regresi Poisson menghitung data (pelanggan, kejadian, klik) di mana nilai negatif tidak masuk akal. Model generatif sering memerlukan keluaran positif untuk merepresentasikan probabilitas atau intensitas.
Lebih cocok untuk tugas tertentu
Sejumlah tugas mendapat manfaat dari perilaku aktivasi yang mulus dan kontinu.
Tugas regresi dengan fungsi target yang mulus bekerja lebih baik dengan aktivasi yang mulus. Jika Anda memprediksi nilai kontinu seperti suhu, harga, atau jarak, Softplus selaras lebih baik dengan kemulusan yang mendasari data Anda.
Model Bayesian dan kerangka probabilistik juga lebih menyukai fungsi yang mulus. Saat Anda memodelkan ketidakpastian atau bekerja dengan distribusi probabilitas, turunan kontinu Softplus membuat operasi matematis lebih rapi dan stabil.
Jika Anda bekerja di domain ini, Softplus memberi jaminan teoretis yang lebih baik dan hasil praktis yang lebih baik dibanding transisi tajam ReLU.
Keterbatasan dan Kompromi
Ada beberapa keterbatasan yang perlu Anda ketahui tentang Softplus sebelum benar-benar meninggalkan ReLU. Berikut tiga di antaranya.
Biaya komputasi lebih tinggi
ReLU menggunakan operasi max sederhana:
max(0, x).Softplus menghitung eksponensial dan logaritma:
ln(1 + e^x). Operasi ini lebih lambat, terutama saat dijalankan jutaan kali di jaringan besar dengan ribuan neuron.Perbedaannya akan bertambah. Overhead komputasi ini dapat meningkatkan waktu pelatihan.
Konvergensi lebih lambat
Softplus memiliki gradien yang lebih mulus, yang di atas kertas terdengar baik.
Namun mulus tidak selalu berarti cepat. Transisi tajam ReLU menciptakan aktivasi yang jarang—banyak neuron menghasilkan tepat nol. Kelangkaan ini membantu gradien merambat lebih cepat melalui jaringan saat backpropagation.
Softplus tidak memiliki kelangkaan ini. Setiap neuron menghasilkan nilai non-nol, yang berarti lebih banyak komputasi dan berpotensi konvergensi lebih lambat pada arsitektur yang dalam.
Lebih jarang digunakan dalam praktik
ReLU mendominasi deep learning selama bertahun-tahun.
Artinya ada lebih banyak dokumentasi, persoalan/solusi, dan sumber daya umum terkaitnya. Softplus tidak mendapat perhatian yang sama. Lebih sedikit orang yang menggunakannya, sehingga pengetahuan komunitas lebih terbatas, lebih sedikit jawaban di Stack Overflow, dan lebih sedikit model pralatih yang menggunakannya.
Saat Anda memilih Softplus, Anda menempuh jalur dengan dukungan yang lebih sedikit dan kemungkinan lebih banyak debugging mandiri.
Softplus di PyTorch
PyTorch memudahkan penggunaan Softplus dengan dukungan bawaan dan dua parameter yang mengendalikan perilakunya.
Sebagai referensi, berikut versi PyTorch yang saya gunakan:
Berikut implementasi dasarnya:
Cukup sederhana. Namun dua parameter—
betadanthreshold—mengubah perilaku fungsi. Mari kita telusuri lebih dalam.Parameter beta
Parameter
betamengendalikan kemulusan kurva Softplus.Saat Anda meningkatkan
beta, fungsi menjadi lebih curam dan mendekati ReLU. Saat Anda menurunkannya, fungsi menjadi lebih mulus dan bertahap. Berikut cara kerjanya dalam kode:Nilai baku
beta=1bekerja baik untuk sebagian besar kasus. Anda hanya perlu mengubahnya jika ingin menyetel ketajaman aktivasi untuk tugas tertentu.Parameter threshold
Parameter
thresholdmencegah overflow numerik untuk masukan besar.Ingat bagaimana perhitungan
e^xbisa meledak untuk nilai x yang besar? Saat masukan melampaui ambang, PyTorch beralih dari menghitung rumus Softplus penuh menjadi mengembalikan masukan secara langsung:Nilai baku
threshold=20cocok untuk sebagian besar skenario. Pada titik ini, Softplus memang sudah mendekati fungsi linear, sehingga peralihan tidak memengaruhi hasil.Kapan Menggunakan Softplus
Pilih Softplus saat Anda memerlukan kemulusan gradien untuk optimasi. Jika Anda menggunakan metode optimasi orde kedua atau algoritma yang mengasumsikan permukaan loss yang mulus, Softplus memberikan turunan kontinu yang dibutuhkan metode tersebut.
Gunakan saat model Anda memerlukan keluaran non-negatif. Data hitung, nilai intensitas, dan parameter probabilitas semuanya harus tetap positif. Softplus menangani ini secara alami tanpa kendala tambahan.
Jaringan dangkal lebih mendapat manfaat dari Softplus dibanding jaringan dalam. Saat Anda hanya memiliki beberapa lapisan, kehilangan satu neuron saja karena masalah ReLU mati akan menurunkan kinerja. Softplus menjaga semua neuron tetap aktif dan belajar.
Anda juga dapat memilih Softplus untuk model probabilistik dan kerangka Bayesian. Gradien yang mulus dan keterkaitan entropi membuat operasi matematis lebih bersih. Model berbasis energi juga diuntungkan oleh sifat kontinu Softplus.
Model yang memerlukan interpretasi gradien kontinu bekerja lebih baik dengan Softplus. Jika Anda menganalisis respons jaringan terhadap perubahan masukan atau mempelajari aliran gradien, turunan yang mulus memberi wawasan yang lebih jelas dibanding transisi tajam ReLU.
Kapan ReLU tetap lebih baik
Jangan beralih ke Softplus hanya karena terdengar lebih baik di atas kertas atau karena terlihat baru dan menarik.
Mulailah dengan ReLU untuk sebagian besar proyek. Beralih ke Softplus hanya saat Anda menghadapi masalah spesifik yang dapat diselesaikan oleh sifat-sifatnya.
Kesimpulan
Singkatnya, Softplus memberi Anda alternatif yang mulus terhadap ReLU saat dibutuhkan.
Fungsi ini tidak akan menggantikan ReLU sebagai fungsi aktivasi baku—dan memang tidak perlu. Softplus menyelesaikan masalah spesifik: neuron mati pada jaringan dangkal, model yang memerlukan keluaran non-negatif, dan tugas di mana aliran gradien yang mulus penting untuk optimasi.
Anda mendapatkan sifat matematis yang lebih baik dengan mengorbankan kecepatan komputasi. Untuk sebagian besar proyek deep learning, kesederhanaan dan kecepatan ReLU menang. Namun saat Anda bekerja dengan model probabilistik, kerangka Bayesian, atau tugas regresi dengan fungsi target yang mulus, Softplus menjadi pilihan yang lebih baik.
Uji keduanya. Jalankan eksperimen. Biarkan masalah spesifik Anda yang menentukan pilihan.
Ingin belajar lebih lanjut? Lihat sumber daya hebat kami: