Apa berat dan bias dalam pembelajaran yang mendalam?

16

Saya mulai belajar Machine learning dari situs web Tensorflow. Saya telah mengembangkan pemahaman yang sangat mendasar tentang aliran yang diikuti oleh program pembelajaran yang mendalam (metode ini membuat saya belajar lebih cepat daripada membaca buku dan artikel besar).

Ada beberapa hal membingungkan yang saya temui, 2 di antaranya adalah:

  1. Bias
  2. Bobot

Dalam tutorial MNIST di situs web tensorflow, mereka telah menyebutkan bahwa kita perlu bias dan berat untuk menemukan bukti keberadaan pola tertentu dalam gambar. Yang tidak saya mengerti adalah, di mana dan bagaimana nilai-nilai untuk Bias dan Berat ditentukan?

Apakah kita harus memberikan nilai-nilai ini atau apakah perpustakaan TensorFlow menghitung nilai-nilai ini secara otomatis berdasarkan kumpulan data pelatihan?

Juga jika Anda dapat memberikan beberapa saran tentang cara mempercepat langkah saya dalam pembelajaran yang mendalam, itu akan luar biasa!

Tensorflow Tutorial Pemula

Umer Farooq
sumber
3
Sebagai parameter dari model statistik , mereka dipelajari atau diperkirakan dengan meminimalkan fungsi kerugian yang tergantung pada data Anda. Dan itulah yang dipelajari mesin. Anda akan mengajukan banyak pertanyaan jika Anda mengikuti metode pedogogis ini. Saya sarankan mengambil MOOC seperti yang ada di Coursera sehingga Anda dapat mempelajari berbagai hal dalam urutan yang masuk akal.
Emre
Ini sangat mendasar, jadi Anda harus melakukan kursus seperti yang disarankan @Emre.
SmallChess

Jawaban:

11

Berbicara secara matematis. Bayangkan Anda seorang model (Tidak bukan yang seperti itu, angka 8 yang)

Bias hanyalah seberapa bias Anda, Sekarang Anda seorang Nigeria, Dan Anda ditanya "Kebangsaan mana yang memiliki wanita paling cantik", kata Anda, para wanita Nigeria, kita bisa mengatakan itu karena Anda bias. jadi rumus Anda adalah .Y=WX+nsayagersayaSebuahn

Jadi apa yang kamu mengerti? Bias adalah pra-asumsi dalam model seperti yang Anda miliki.

Adapun berat, secara logis, Berat adalah Gradien Anda (aljabar linier),

Apa itu Gradient? , itu kecuraman fungsi Linear.

Apa yang membuat gradien linier sangat curam (Nilai positif tinggi)?

Itu karena sedikit perubahan dalam X (input) menyebabkan perbedaan besar dalam sumbu Y (output). Jadi Anda (Bukan sebagai Model lagi, tetapi seorang ahli matematika yang brilian (alter ego Anda)) atau Komputer Anda mencoba menemukan gradien ini, yang dapat Anda sebut bobot. Perbedaannya adalah bahwa Anda menggunakan pensil dan buku grafik untuk menemukan ini, tetapi kotak hitam melakukan Magic elektronik dengan register.

Dalam Proses Pembelajaran Mesin, komputer atau Anda mencoba menggambar banyak fungsi Garis lurus atau Linear di seluruh titik data,

Mengapa Anda mencoba menggambar banyak garis lurus?

Karena di buku grafik / memori komputer, Anda mencoba melihat garis yang sesuai.

Bagaimana saya atau Komputer tahu jalur yang pas?

Di sekolah menengah saya, saya diajarkan untuk menggambar garis melintasi titik data, secara visual memeriksa garis yang menembus dengan sempurna di tengah semua titik data (Lupakan hype AI, otak kita dapat menghitung dengan hanya menatap sesuatu) . Tetapi untuk komputer, ia mencoba deviasi standar dan varians dari setiap baris terhadap titik data. Baris dengan deviasi paling sedikit (kadang-kadang akan menyebutnya fungsi kesalahan) dipilih.

Keren! begitu dan apa yang terjadi

Gradien garis itu dihitung, katakanlah bobot Masalah Pembelajaran Dihitung

Itulah Machine Learning pada dasarnya memahami dan grafik ploting siswa SMA di / nya Graphbook-nya

Deklan
sumber
10

Saya setuju dengan komentar pada pertanyaan Anda bahwa Anda harus melihat ke dalam suatu kursus, mungkin Andrew Ng's Machine Learning on Coursera , yang merupakan kursus pengantar gratis yang sangat dihormati. Ini adalah pertanyaan dasar tentang dasar-dasar pembelajaran mesin. Karena itu saya tidak membahas matematika dalam jawaban ini, Anda bisa mendapatkannya dari banyak tempat, termasuk kursus itu.

di mana dan bagaimana nilai-nilai untuk Bias dan Berat ditentukan?

Bobot dan bias adalah parameter yang bisa dipelajari dari model Anda. Serta jaringan saraf, mereka muncul dengan nama yang sama dalam model terkait seperti regresi linier. Sebagian besar algoritma pembelajaran mesin menyertakan beberapa parameter yang dapat dipelajari seperti ini.

Nilai-nilai parameter ini sebelum pembelajaran dimulai diinisialisasi secara acak (ini menghentikan mereka semua konvergen ke nilai tunggal). Kemudian ketika disajikan dengan data selama pelatihan, mereka disesuaikan dengan nilai-nilai yang memiliki output yang benar.

Apakah kita harus memberikan nilai-nilai ini atau apakah perpustakaan TensorFlow menghitung nilai-nilai ini secara otomatis berdasarkan kumpulan data pelatihan?

Anda tidak perlu memberikan nilai sebelum pelatihan, meskipun Anda mungkin ingin memutuskan hal-hal seperti berapa banyak parameter yang harus ada (dalam jaringan saraf yang dikendalikan oleh ukuran setiap lapisan). TensorFlow menghitung nilai secara otomatis, selama pelatihan. Ketika Anda memiliki model yang sudah terlatih dan ingin menggunakannya kembali, maka Anda akan ingin mengatur nilai secara langsung misalnya dengan memuatnya dari file.

Kode spesifik yang menangani perubahan bobot dan bias dari tutorial adalah ini:

train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)

dan ini:

sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})

Baris pertama mendefinisikan bagaimana bobot dan nilai akan diubah. Anda dapat membaca ini hampir secara harfiah sebagai "mendefinisikan fungsi pelatihan yang menggunakan pengoptimal gradient descent untuk mengurangi entropi silang dari data yang disediakan".

yx

Neil Slater
sumber
8

Berat - Berat adalah kekuatan koneksi. Jika saya meningkatkan input maka seberapa besar pengaruhnya terhadap output.

Bobot mendekati nol berarti mengubah input ini tidak akan mengubah output. Banyak algoritma akan secara otomatis mengatur bobot tersebut ke nol untuk menyederhanakan jaringan.

Bias - sebagai seberapa jauh prediksi kami dari nilai-nilai nyata. Secara umum, algoritma parametrik memiliki bias yang tinggi sehingga membuatnya cepat untuk dipelajari dan lebih mudah dipahami tetapi umumnya kurang fleksibel. Pada gilirannya mereka memiliki kinerja prediksi yang lebih rendah pada masalah kompleks yang gagal memenuhi asumsi penyederhanaan bias algoritma.

Bias Rendah : Menyarankan lebih banyak asumsi tentang bentuk fungsi target.

High-Bia s: Menyarankan lebih sedikit asumsi tentang bentuk fungsi target.

Abhishek Sharma
sumber
2
OP bertanya tentang parameter bias dalam jaringan saraf. Definisi Anda untuk bias tidak masalah, tetapi jangan jawab pertanyaan.
Neil Slater