Apa peran bias dalam jaringan saraf?

807

Saya menyadari gradient descent dan algoritma back-propagation. Yang tidak saya dapatkan adalah: kapan menggunakan bias penting dan bagaimana Anda menggunakannya?

Misalnya, ketika memetakan ANDfungsi, ketika saya menggunakan 2 input dan 1 output, itu tidak memberikan bobot yang benar, namun, ketika saya menggunakan 3 input (1 di antaranya bias), ia memberikan bobot yang benar.

Karan
sumber
17
Lihatlah pertanyaan ini: stackoverflow.com/questions/1697243/help-with-perceptron untuk contoh masalah aktual di mana OP tidak menggunakan istilah bias
Amro
6
Dan di sini adalah contoh yang bagus dalam Python mengapa bias penting :) stackoverflow.com/questions/38248657/…
mineral
3
inilah artikel hebat yang penuh dengan backprop matematika, juga mencakup pembaruan bias: theclevermachine.wordpress.com/2014/09/06/...
Andy

Jawaban:

1361

Saya pikir bias hampir selalu membantu. Akibatnya, nilai bias memungkinkan Anda untuk menggeser fungsi aktivasi ke kiri atau ke kanan , yang mungkin penting untuk keberhasilan pembelajaran.

Mungkin membantu untuk melihat contoh sederhana. Pertimbangkan jaringan 1-input, 1-output ini yang tidak memiliki bias:

jaringan sederhana

Output dari jaringan dihitung dengan mengalikan input (x) dengan bobot (w 0 ) dan melewatkan hasilnya melalui beberapa jenis fungsi aktivasi (mis. Fungsi sigmoid.)

Inilah fungsi yang dihitung jaringan ini, untuk berbagai nilai w 0 :

output jaringan, diberi bobot w0 yang berbeda

Mengubah berat w 0 dasarnya mengubah "kecuraman" dari sigmoid. Itu berguna, tetapi bagaimana jika Anda ingin jaringan menghasilkan 0 ketika x adalah 2? Hanya mengubah kecuraman sigmoid tidak akan benar-benar berfungsi - Anda ingin dapat menggeser seluruh kurva ke kanan .

Itulah yang bias Anda lakukan. Jika kami menambahkan bias ke jaringan itu, seperti:

jaringan sederhana dengan bias

... maka output dari jaringan menjadi sig (w 0 * x + w 1 * 1.0). Berikut adalah hasil keluaran jaringan untuk berbagai nilai w 1 :

output jaringan, diberi bobot w1 yang berbeda

Memiliki bobot -5 untuk w 1 menggeser kurva ke kanan, yang memungkinkan kita untuk memiliki jaringan yang menghasilkan 0 ketika x adalah 2.

Nate Kohl
sumber
6
@ user1621769: Pendekatan paling sederhana adalah jaringan dengan simpul bias tunggal yang terhubung ke semua simpul non-input dalam jaringan.
Nate Kohl
65
@ user1621769: Fungsi utama bias adalah untuk memberikan setiap node nilai konstan yang dapat dilatihkan (selain input normal yang diterima oleh node). Anda dapat mencapainya dengan node bias tunggal dengan koneksi ke N node, atau dengan N node bias masing-masing dengan koneksi tunggal; hasilnya harus sama.
Nate Kohl
4
@ user1621769: Anda mungkin gagal memperhitungkan bobot? Setiap koneksi memiliki bobot trainable, dan bias node memiliki nilai tetap.
Dimpl
4
@ user132458, jika algoritma pelatihan menunjukkan bahwa Anda tidak memerlukan perubahan bias, bobot bias mungkin akan mendekati 0. Dengan demikian menghilangkan sinyal bias.
jorgenkg
8
@ Gabriel: Seharusnya ada satu bias per neuron tersembunyi.
343

Hanya untuk menambahkan dua sen saya.

Cara yang lebih sederhana untuk memahami apa itu bias: itu entah bagaimana mirip dengan b konstan fungsi linear

y = kapak + b

Ini memungkinkan Anda untuk memindahkan garis ke atas dan ke bawah agar sesuai dengan prediksi dengan data yang lebih baik. Tanpa b , baris selalu melewati titik asal (0, 0) dan Anda mungkin mendapatkan nilai yang lebih buruk.

zfy
sumber
5
anologi yang bagus tetapi jika kita menetapkan bias ke 1 maka mengapa itu membuat perbedaan dengan fit sekarang bahwa setiap baris sekarang akan melalui (0,1), bukan (0,0)? Karena semua baris sekarang bias ke y = 1 bukannya y = 0 mengapa ini membantu?
langit biru
36
@ blue-sky Karena dengan mengalikan bias dengan bobot, Anda dapat menggesernya dengan jumlah sewenang-wenang.
Carcigenicate
3
Apakah benar menyebut b "koefisien"? Bukankah "koefisien" angka yang digunakan untuk mengalikan variabel?
Ben
8
b bukan "koefisien" melainkan mencegat.
Espanta
22
b adalah koefisien $ x ^ 0 $. a adalah koefisien $ x ^ 1 $
65

Utas ini sangat membantu saya mengembangkan proyek saya sendiri. Berikut adalah beberapa ilustrasi lebih lanjut yang menunjukkan hasil dari jaringan neural maju 2-feed feed sederhana dengan dan tanpa unit bias pada masalah regresi dua variabel. Bobot diinisialisasi secara acak dan aktivasi ReLU standar digunakan. Seperti jawaban sebelum saya menyimpulkan, tanpa bias jaringan-ReLU tidak dapat menyimpang dari nol pada (0,0).

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

JP K.
sumber
1
Bisakah Anda menambahkan fungsi yang diplot dengan label sumbu?
Komal-SkyNET
46

Dua jenis parameter yang berbeda dapat disesuaikan selama pelatihan JST, bobot dan nilai dalam fungsi aktivasi. Ini tidak praktis dan akan lebih mudah jika hanya salah satu parameter yang harus disesuaikan. Untuk mengatasi masalah ini, bias neuron ditemukan. Neuron bias terletak di satu lapisan, terhubung ke semua neuron di lapisan berikutnya, tetapi tidak ada di lapisan sebelumnya dan selalu memancarkan 1. Karena neuron memancarkan 1 bobot, terhubung ke bias neuron, ditambahkan langsung ke jumlah gabungan dari bobot lain (persamaan 2.1), sama seperti nilai t dalam fungsi aktivasi. 1

Alasannya tidak praktis adalah karena Anda secara bersamaan menyesuaikan bobot dan nilainya, sehingga setiap perubahan pada bobot dapat menetralkan perubahan pada nilai yang berguna untuk instance data sebelumnya ... menambahkan neuron bias tanpa nilai perubahan memungkinkan Anda untuk mengontrol perilaku layer.

Lebih jauh lagi, bias memungkinkan Anda untuk menggunakan jaring saraf tunggal untuk mewakili kasus serupa. Pertimbangkan fungsi AND boolean yang diwakili oleh jaringan saraf berikut:

JST
(sumber: aihorizon.com )

  • w0 berhubungan dengan b .
  • w1 sesuai dengan x1 .
  • w2 sesuai dengan x2 .

Sebuah perceptron tunggal dapat digunakan untuk mewakili banyak fungsi boolean.

Sebagai contoh, jika kita mengasumsikan nilai boolean dari 1 (benar) dan -1 (salah), maka salah satu cara untuk menggunakan perceptron dua input untuk mengimplementasikan fungsi AND adalah dengan mengatur bobot w0 = -3, dan w1 = w2 = .5. Perceptron ini dapat dibuat untuk mewakili fungsi OR sebagai gantinya dengan mengubah ambang batas ke w0 = -.3. Faktanya, AND dan OR dapat dilihat sebagai kasus khusus fungsi m-of-n: yaitu fungsi di mana setidaknya m dari n input ke perceptron harus benar. Fungsi OR berhubungan dengan m = 1 dan fungsi AND untuk m = n. Setiap fungsi m-of-n mudah direpresentasikan menggunakan perceptron dengan mengatur semua bobot input ke nilai yang sama (misalnya, 0,5) dan kemudian mengatur ambang w0 yang sesuai.

Perceptrons dapat mewakili semua fungsi boolean primitif AND, OR, NAND (1 AND), dan NOR (1 OR). Pembelajaran Mesin - Tom Mitchell)

Ambang adalah bias dan w0 adalah berat yang terkait dengan bias / ambang neuron.

Kiril
sumber
8
Anggap saja sebagai aturan umum: tambahkan bias! Jaringan saraf adalah "tidak dapat diprediksi" sampai batas tertentu sehingga jika Anda menambahkan bias neuron, Anda lebih mungkin menemukan solusi lebih cepat daripada jika Anda tidak menggunakan bias. Tentu saja ini tidak terbukti secara matematis, tetapi itulah yang saya amati dalam literatur dan penggunaan umum.
Kiril
25

Bias itu bukan NNistilah, itu istilah aljabar umum untuk dipertimbangkan.

Y = M*X + C (persamaan garis lurus)

Sekarang jika C(Bias) = 0demikian, garis akan selalu melewati titik asal, yaitu (0,0), dan tergantung hanya pada satu parameter, yaitu M, yang merupakan kemiringan sehingga kita memiliki lebih sedikit hal untuk dimainkan.

C, yang bias mengambil nomor berapa pun dan memiliki aktivitas untuk menggeser grafik, dan karenanya dapat mewakili situasi yang lebih kompleks.

Dalam regresi logistik, nilai yang diharapkan dari target diubah oleh fungsi tautan untuk membatasi nilainya ke interval unit. Dengan cara ini, prediksi model dapat dilihat sebagai probabilitas hasil primer seperti yang ditunjukkan: Fungsi Sigmoid di Wikipedia

Ini adalah lapisan aktivasi terakhir di peta NN yang menghidupkan dan mematikan neuron. Di sini bias juga memainkan peran dan menggeser kurva secara fleksibel untuk membantu kami memetakan model.

Pradi KL
sumber
1
jadi apa masalah dalam pelatihan / pembelajaran jaringan saraf terjadi ketika garis selalu melewati asal ketika bias tidak digunakan?
Daniyal Javaid
@DaniyalJavaid Itu mungkin kemungkinan dan bukan masalahnya
Pradi KL
23

Lapisan dalam jaringan saraf tanpa bias tidak lebih dari multiplikasi vektor input dengan matriks. (Vektor keluaran mungkin dilewatkan melalui fungsi sigmoid untuk normalisasi dan untuk digunakan dalam ANN berlapis-lapis setelah itu tetapi itu tidak penting.)

Ini berarti bahwa Anda menggunakan fungsi linear dan dengan demikian input dari semua nol akan selalu dipetakan ke output dari semua nol. Ini mungkin solusi yang masuk akal untuk beberapa sistem tetapi secara umum itu terlalu membatasi.

Menggunakan bias, Anda secara efektif menambahkan dimensi lain ke ruang input Anda, yang selalu mengambil nilai satu, sehingga Anda menghindari vektor input semua nol. Anda tidak kehilangan generalitas karena matriks bobot terlatih Anda tidak perlu bersifat surjektif, sehingga masih dapat memetakan ke semua nilai yang sebelumnya mungkin.

ANN 2d:

Untuk pemetaan ANN dua dimensi ke satu dimensi, seperti dalam mereproduksi fungsi AND atau OR (atau XOR), Anda dapat menganggap jaringan saraf melakukan hal-hal berikut:

Pada bidang 2d tandai semua posisi vektor input. Jadi, untuk nilai boolean, Anda ingin menandai (-1, -1), (1,1), (-1,1), (1, -1). Apa yang dilakukan JST Anda sekarang adalah menggambar garis lurus pada bidang 2d, memisahkan output positif dari nilai output negatif.

Tanpa bias, garis lurus ini harus melewati nol, sedangkan dengan bias, Anda bebas untuk meletakkannya di mana saja. Jadi, Anda akan melihat bahwa tanpa bias Anda menghadapi masalah dengan fungsi AND, karena Anda tidak dapat menempatkan keduanya (1, -1) dan (-1,1) ke sisi negatif. (Mereka tidak diizinkan berada di telepon.) Masalahnya sama untuk fungsi OR. Namun, dengan bias, mudah untuk menarik garis.

Perhatikan bahwa fungsi XOR dalam situasi itu tidak dapat diselesaikan bahkan dengan bias.

Debilski
sumber
4
Jika Anda menggunakan fungsi transfer sigmoid, Anda memperkenalkan non-linearitas. Menyatakan bahwa ini adalah fungsi linier adalah salah dan juga berbahaya, karena non-linearitas sigmoid adalah kunci solusi beberapa masalah. Juga, sigmoid (0) = 0,5, dan tidak ada x yang sigmoid (x) = 0.
bayer
2
Ya, tetapi itu adalah 0,5 untuk setiap input 0 tanpa bias, terlepas dari apa fungsi linear sebelumnya. Dan itu intinya. Anda biasanya tidak melatih fungsi sigmoid Anda, Anda hanya hidup dengannya. Masalah linearitas terjadi jauh sebelum fungsi sigmoid.
Debilski
Saya mengerti maksud Anda: layer tidak dapat mempelajari output yang berbeda untuk 0 daripada yang dimulai dengan. Itu benar dan penting. Namun, "argumen fungsi linear" tidak berlaku menurut saya. Bahkan dengan bias, fungsinya tetap linier. Properti linearitas menyesatkan di sini. (Ya, saya mungkin akan melakukan nitpicking.)
bayer
Saya akan mengatakan, bahwa dengan bias itu affine . ( en.wikipedia.org/wiki/Affine_transformation#Representation )
Debilski
Ya kamu benar Terima kasih telah menunjukkan perbedaan itu kepada saya. (Mengapa kita menyebutnya regresi linier, btw, meskipun itu affine?)
bayer
20

Ketika Anda menggunakan JST, Anda jarang tahu tentang bagian dalam sistem yang ingin Anda pelajari. Beberapa hal tidak dapat dipelajari tanpa bias. Misalnya, lihat data berikut: (0, 1), (1, 1), (2, 1), pada dasarnya fungsi yang memetakan setiap x ke 1.

Jika Anda memiliki jaringan satu lapis (atau pemetaan linear), Anda tidak dapat menemukan solusi. Namun, jika Anda memiliki bias itu sepele!

Dalam pengaturan yang ideal, bias juga dapat memetakan semua titik ke titik rata-rata target dan membiarkan neuron tersembunyi memodelkan perbedaan dari titik itu.

bayer
sumber
18

Modifikasi neuron WEIGHTS saja hanya berfungsi untuk memanipulasi bentuk / kelengkungan fungsi transfer Anda, dan bukan keseimbangannya / nol persimpangan .

Pengenalan bias neuron memungkinkan Anda untuk menggeser kurva fungsi transfer secara horizontal (kiri / kanan) di sepanjang sumbu input sambil membiarkan bentuk / kelengkungan tidak berubah. Ini akan memungkinkan jaringan untuk menghasilkan keluaran acak yang berbeda dari standar dan karenanya Anda dapat menyesuaikan / menggeser pemetaan input-ke-output sesuai dengan kebutuhan khusus Anda.

Lihat di sini untuk penjelasan grafis: http://www.heatonresearch.com/wiki/Bias

Oke Uwechue
sumber
16

Hanya untuk menambah semua ini sesuatu yang sangat hilang dan yang sisanya, kemungkinan besar, tidak tahu.

Jika Anda bekerja dengan gambar, Anda mungkin sebenarnya lebih suka untuk tidak menggunakan bias sama sekali. Secara teori, dengan cara itu jaringan Anda akan lebih independen dari besarnya data, seperti apakah gambar itu gelap, atau cerah dan cerah. Dan internet akan belajar melakukannya dengan mempelajari relativitas di dalam data Anda. Banyak jaringan saraf modern memanfaatkan ini.

Untuk data lain yang memiliki bias mungkin sangat penting. Itu tergantung pada jenis data apa yang Anda hadapi. Jika informasi Anda invarian-magnitudo --- jika memasukkan [1,0,0.1] harus mengarah ke hasil yang sama seperti jika memasukkan [100,0,10], Anda mungkin lebih baik tanpa bias.

Íhor Mé
sumber
Anda mungkin lebih baik dengan normalisasi. Apa contoh dari jaringan modern yang menggunakan "kurangnya bias" untuk menghasilkan invarian yang besar?
AwokeKnowing
@AwokeKnowing, saya percaya, ResNet biasa menggunakan itu, karena ini adalah bagian dari "inisialisasi", tapi saya tidak yakin mereka melakukan ini untuk tujuan ini, atau, mungkin untuk pertimbangan ukuran model / efisiensi dan saya Saya tidak yakin konsep ini dipublikasikan di mana saja. Tapi saya pikir itu sepenuhnya dapat dipahami pada tingkat teori. Jika Anda tidak memiliki bias yang tidak skala, ketika Anda skala nilai, semua output hanya skala yang sesuai. Sadar akan konsep ini, atau tidak, sebagian besar arsitektur modern tidak memiliki bias setidaknya dalam sebagian besar struktur mereka.
Íhor Mé
16

Dalam beberapa percobaan dalam tesis master saya (mis. Halaman 59), saya menemukan bahwa bias mungkin penting untuk lapisan pertama, tetapi terutama pada lapisan yang sepenuhnya terhubung pada akhirnya tampaknya tidak memainkan peran besar.

Ini mungkin sangat tergantung pada arsitektur jaringan / dataset.

Martin Thoma
sumber
Kedengarannya sepenuhnya analog dengan proses pemodelan sistem "dengan tangan" dengan regresi linier. Model paling sederhana adalah Y_bar = rata-rata (Y). Kemudian Anda menambahkan kompleksitas dengan memasukkan berbagai istilah X, berhenti ketika tidak ada informasi yang signifikan.
IRTFM
15

Bias memutuskan berapa banyak sudut yang Anda inginkan untuk memutar berat Anda.

Dalam bagan 2 dimensi, bobot dan bias membantu kita menemukan batas keputusan output. Katakanlah kita perlu membangun fungsi AND, pasangan input (p) -output (t) seharusnya

{p = [0,0], t = 0}, {p = [1,0], t = 0}, {p = [0,1], t = 0}, {p = [1,1] , t = 1}

masukkan deskripsi gambar di sini

Sekarang kita perlu menemukan batas keputusan, batas ide seharusnya:

masukkan deskripsi gambar di sini

Lihat? W adalah tegak lurus terhadap batas kita. Jadi, kita katakan W memutuskan arah batas.

Namun, sulit untuk menemukan W yang benar pada awalnya. Sebagian besar, kami memilih nilai W asli secara acak. Dengan demikian, batas pertama adalah: masukkan deskripsi gambar di sini

Sekarang batasnya adalah pareller ke sumbu y.

Kami ingin memutar batas, bagaimana?

Dengan mengubah W.

Jadi, kami menggunakan fungsi aturan pembelajaran: W '= W + P: masukkan deskripsi gambar di sini

W '= W + P setara dengan W' = W + bP, sementara b = 1.

Oleh karena itu, dengan mengubah nilai b (bias), Anda dapat menentukan sudut antara W 'dan W. Itu adalah "aturan pembelajaran JST".

Anda juga bisa membaca Desain Jaringan Saraf oleh Martin T. Hagan / Howard B. Demuth / Mark H. Beale, bab 4 "Aturan Belajar Perceptron"


sumber
1
Penjelasan / ilustrasi bermanfaat
javadba
10

Secara khusus, Nate jawaban , zfy ini jawabannya , dan Pradi ini jawaban yang besar.

Dalam istilah yang lebih sederhana, bias memungkinkan lebih banyak variasi bobot untuk dipelajari / disimpan ... ( catatan samping : kadang-kadang diberi ambang batas tertentu). Bagaimanapun, lebih banyak variasi berarti bahwa bias menambahkan representasi lebih kaya dari ruang input ke bobot yang dipelajari / disimpan model. (Di mana bobot yang lebih baik dapat meningkatkan kekuatan menebak jaringan saraf)

Sebagai contoh, dalam model pembelajaran, hipotesis / dugaan dibatasi oleh y = 0 atau y = 1 diberi beberapa masukan, dalam mungkin beberapa tugas klasifikasi ... yaitu beberapa y = 0 untuk beberapa x = (1,1) dan beberapa y = 1 untuk beberapa x = (0,1). (Kondisi pada hipotesis / hasil adalah ambang yang saya bicarakan di atas. Perhatikan bahwa contoh saya mengatur input X menjadi masing-masing x = vektor ganda atau 2 bernilai, alih-alih input tunggal bernilai Nate x input dari beberapa koleksi X).

Jika kita mengabaikan bias, banyak input mungkin akhirnya diwakili oleh banyak bobot yang sama (yaitu bobot yang dipelajari sebagian besar terjadi di dekat titik asal (0,0). Model tersebut kemudian akan terbatas pada jumlah bobot yang lebih baik, alih-alih banyak banyak bobot yang lebih baik, itu bisa lebih baik dipelajari dengan bias. (Di mana bobot yang kurang dipelajari menyebabkan tebakan yang lebih buruk atau penurunan kekuatan tebakan jaringan saraf)

Jadi, optimal bahwa model belajar baik dekat dengan asal, tetapi juga, di tempat sebanyak mungkin di dalam ambang batas / keputusan. Dengan bias kita dapat mengaktifkan derajat kebebasan yang dekat dengan asal, tetapi tidak terbatas pada wilayah langsung asal.

Jordan Bennett
sumber
9

Memperluas penjelasan @zfy ... Persamaan untuk satu input, satu neuron, satu output akan terlihat:

y = a * x + b * 1    and out = f(y)

di mana x adalah nilai dari simpul input dan 1 adalah nilai dari bias node; y dapat langsung menjadi output Anda atau diteruskan ke suatu fungsi, seringkali merupakan fungsi sigmoid. Perhatikan juga bahwa bias bisa berupa konstanta, tetapi untuk membuat semuanya lebih sederhana, kami selalu memilih 1 (dan mungkin itu sangat umum sehingga @zfy melakukannya tanpa menunjukkan & menjelaskannya).

Jaringan Anda mencoba mempelajari koefisien a dan b untuk beradaptasi dengan data Anda. Jadi, Anda dapat melihat mengapa menambahkan elemen b * 1memungkinkannya agar lebih cocok dengan lebih banyak data: sekarang Anda dapat mengubah kemiringan dan intersep.

Jika Anda memiliki lebih dari satu input, persamaan Anda akan terlihat seperti:

y = a0 * x0 + a1 * x1 + ... + aN * 1

Perhatikan bahwa persamaan tersebut masih menggambarkan satu neuron, satu jaringan keluaran; jika Anda memiliki lebih banyak neuron, Anda cukup menambahkan satu dimensi ke matriks koefisien, untuk membuat multipleks input ke semua node dan menjumlahkan kembali setiap kontribusi node.

Anda dapat menulis dalam format vektor sebagai

A = [a0, a1, .., aN] , X = [x0, x1, ..., 1]
Y = A . XT

yaitu meletakkan koefisien dalam satu array dan (input + bias) di yang lain Anda memiliki solusi yang Anda inginkan sebagai produk titik dari dua vektor (Anda perlu mengubah X untuk bentuk menjadi benar, saya menulis XT a 'X transposed')

Jadi pada akhirnya Anda juga dapat melihat bias Anda sebagai hanya satu input lagi untuk mewakili bagian dari output yang sebenarnya independen dari input Anda.

RobMcZag
sumber
Saya ingat dari kelas Andrew Ng bahwa bias itu ditinggalkan dalam proses pelatihan. dapatkah Anda memperbarui jawaban Anda untuk menjelaskan bahwa dengan mempertimbangkan kesimpulan Anda bahwa itu hanyalah "input lain"?
AwokeKnowing
@AwokeKnowing Saya tidak ingat itu dari kelas Andrew Ng, tapi itu beberapa tahun yang lalu. Bias juga bisa hidup atau mati tergantung apa yang Anda coba pelajari. Saya membaca bahwa dalam pemrosesan gambar mereka tidak menggunakannya untuk memungkinkan penskalaan. Bagi saya jika Anda menggunakannya, Anda menggunakannya juga dalam pelatihan. Efeknya adalah menstabilkan koefisien ketika semua atau sebagian dari input adalah nol atau hampir nol. Mengapa Anda tidak menggunakan bias selama pelatihan dan kemudian menggunakannya saat menggunakan NN untuk memprediksi output untuk input baru? Bagaimana itu bisa bermanfaat?
RobMcZag
Tidak, itu lebih seperti, gunakan di forward pass, tapi jangan menggunakannya saat menghitung gradien untuk backprop, atau sesuatu seperti itu.
AwokeKnowing
@AwokeKnowing Saya kira itu adalah cara untuk menghemat memori dan waktu. Anda dapat memutuskan bahwa Anda tidak peduli untuk mempelajari koefisien untuk unit bias. Itu bisa baik-baik saja jika Anda memiliki setidaknya satu lapisan tersembunyi karena bias akan memberikan beberapa masukan ke lapisan itu dan hasilnya dapat dipelajari oleh koefisien dari lapisan pertama ke lapisan kedua. Saya tidak yakin apakah kecepatan konvergensi akan berubah. Dalam contoh satu layer saya, Anda dipaksa untuk mempelajari juga koefisien bias seperti yang diterapkan pada output.
RobMcZag
Dalam banyak masalah sederhana, data target telah direndahkan dan diskalakan, sehingga tidak diperlukan bias. Dan potensi pengaruh outlier yang berlebihan dalam variabel dengan rentang besar berkurang.
IRTFM
9

Selain jawaban yang disebutkan .. Saya ingin menambahkan beberapa poin lainnya.

Bias bertindak sebagai jangkar kami. Ini adalah cara bagi kita untuk memiliki semacam garis dasar di mana kita tidak pergi di bawah itu. Dalam hal grafik, pikirkan seperti y = mx + b itu seperti intersep-y dari fungsi ini.

output = input kali nilai bobot dan menambahkan nilai bias dan kemudian menerapkan fungsi aktivasi.

Naren Babu R
sumber
8

Untuk berpikir secara sederhana, jika Anda memiliki y = w1 * x di mana y adalah output Anda dan w1 adalah bobot bayangkan suatu kondisi di mana x = 0 maka y = w1 * x sama dengan 0 , Jika Anda ingin memperbarui berat Anda, Anda memiliki untuk menghitung berapa banyak perubahan dengan delw = target-y di mana target adalah output target Anda, dalam hal ini 'delw' tidak akan berubah karena y dihitung sebagai 0.Jadi, misalkan jika Anda dapat menambahkan beberapa nilai tambahan itu akan membantu y = w1 * x + w0 * 1 , di mana bias = 1 dan berat dapat disesuaikan untuk mendapatkan bias yang benar. Perhatikan contoh di bawah ini.

Dalam hal garis Slope-intercept adalah bentuk persamaan linear yang spesifik.

y = mx + b

periksa gambar

gambar

di sini b adalah (0,2)

jika Anda ingin meningkatkannya menjadi (0,3) bagaimana Anda akan melakukannya dengan mengubah nilai b yang akan menjadi bias Anda

Yumlembam Rahul
sumber
7

Untuk semua buku ML yang saya pelajari, W selalu didefinisikan sebagai indeks konektivitas antara dua neuron, yang berarti semakin tinggi konektivitas antara dua neuron, semakin kuat sinyal akan ditransmisikan dari neuron ke neuron target atau Y = w * X sebagai hasil untuk mempertahankan karakter biologis neuron, kita perlu mempertahankan 1> = W> = -1, tetapi dalam regresi nyata, W akan berakhir dengan | W | > = 1 yang bertentangan dengan cara kerja Neuron, akibatnya saya usulkan W = cos (theta), sementara 1> = | cos (theta) | , dan Y = a * X = W * X + b sementara a = b + W = b + cos (theta), b adalah bilangan bulat

Edward
sumber
7

Dalam jaringan saraf:

  1. Setiap Neuron memiliki bias
  2. Anda dapat melihat bias sebagai ambang (umumnya nilai yang berlawanan dari ambang)
  3. Jumlah tertimbang dari lapisan input + bias menentukan aktivasi neuron
  4. Bias meningkatkan fleksibilitas model.

Dengan tidak adanya bias, neuron tidak dapat diaktifkan dengan hanya mempertimbangkan jumlah tertimbang dari lapisan input. Jika neuron tidak diaktifkan, informasi dari neuron ini tidak melewati sisa jaringan saraf.

Nilai bias bisa dipelajari.

masukkan deskripsi gambar di sini

Secara efektif, bias = - ambang batas. Anda dapat menganggap bias sebagai cara mudah mendapatkan neuron untuk menghasilkan 1 - dengan bias yang sangat besar, sangat mudah bagi neuron untuk menghasilkan 1, tetapi jika biasnya sangat negatif, maka itu sulit.

secara ringkas: bias membantu dalam mengendalikan nilai di mana fungsi aktivasi akan memicu.

Ikuti video ini untuk lebih jelasnya

Beberapa tautan yang lebih bermanfaat:

geeksforgeeks

menuju data

Ravindra babu
sumber
1
Interpretasi yang bagus. Tapi saya tidak jelas bagaimana bias itu bisa dipelajari (atau bisa dilatih?). Dalam kasus sederhana di mana loss = ReLU (omega * x + a), bobot omega dapat dilatih melalui aturan rantai, tetapi bagaimana bias adapat dilatih ketika gradien ke aselalu konstan?
Libin Wen
4

Istilah bias digunakan untuk menyesuaikan matriks hasil akhir seperti yang dilakukan intersep-y. Misalnya, dalam persamaan klasik, y = mx + c, jika c = 0, maka garis akan selalu melewati 0. Menambahkan istilah bias memberikan lebih banyak fleksibilitas dan generalisasi yang lebih baik untuk model Jaringan Saraf Tiruan kami.

Aman pradhan
sumber
0

Secara umum, dalam pembelajaran mesin kami memiliki rumus dasar ini Bias-Variance Tradeoff Karena di NN kami memiliki masalah Overfitting (masalah generalisasi model di mana perubahan kecil dalam data menyebabkan perubahan besar dalam hasil model) dan karena itu kami memiliki varian besar, memperkenalkan Bias kecil bisa banyak membantu. Mempertimbangkan formula di atas Bias-Variance Tradeoff , di mana bias dikuadratkan, maka memperkenalkan bias kecil dapat menyebabkan pengurangan varians banyak. Jadi, perkenalkan bias, ketika Anda memiliki varian besar dan bahaya overfitting.

Euler
sumber
3
Unit Bias dan tradeoff bias-varians adalah konsep yang terpisah. Pertanyaannya adalah tentang yang pertama.
SigmaX
0

Bias membantu untuk mendapatkan persamaan yang lebih baik

Bayangkan input dan output seperti fungsi y = ax + bdan Anda harus meletakkan garis yang benar antara input (x) dan output (y) untuk meminimalkan kesalahan global antara setiap titik dan garis, jika Anda mempertahankan persamaan seperti ini y = ax, Anda akan memiliki satu parameter untuk adaptasi saja, bahkan jika Anda menemukan yang terbaik ameminimalkan kesalahan global itu akan agak jauh dari nilai yang diinginkan

Anda dapat mengatakan bias membuat persamaan lebih fleksibel untuk beradaptasi dengan nilai terbaik

Karam Mohamed
sumber