Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Equipment >> Robot industri

Menggabungkan Bias Node Ke Jaringan Neural Anda

Artikel ini menunjukkan cara menambahkan nilai bias ke Perceptron multilayer yang diimplementasikan dalam bahasa pemrograman tingkat tinggi seperti Python.

Selamat datang di seri Semua Tentang Sirkuit di jaringan saraf, yang dibuat oleh Direktur Teknik Robert Keim. Sebelum Anda melanjutkan ke pelajaran tentang simpul bias ini, harap pertimbangkan untuk mengikuti sisa seri di bawah ini:

  1. Bagaimana Melakukan Klasifikasi Menggunakan Jaringan Syaraf Tiruan:Apa Itu Perceptron?
  2. Cara Menggunakan Contoh Jaringan Neural Perceptron Sederhana untuk Mengklasifikasikan Data
  3. Cara Melatih Jaringan Neural Perceptron Dasar
  4. Memahami Pelatihan Jaringan Syaraf Sederhana
  5. Pengantar Teori Pelatihan untuk Jaringan Neural
  6. Memahami Kecepatan Pembelajaran di Jaringan Neural
  7. Pembelajaran Mesin Tingkat Lanjut dengan Perceptron Multilayer
  8. Fungsi Aktivasi Sigmoid:Aktivasi di Jaringan Neural Perceptron Multilayer
  9. Cara Melatih Jaringan Neural Perceptron Multilayer
  10. Memahami Rumus Pelatihan dan Backpropagation untuk Perceptron Multilayer
  11. Arsitektur Jaringan Saraf untuk Implementasi Python
  12. Cara Membuat Jaringan Neural Perceptron Multilayer dengan Python
  13. Pemrosesan Sinyal Menggunakan Jaringan Saraf Tiruan:Validasi dalam Desain Jaringan Saraf Tiruan
  14. Pelatihan Kumpulan Data untuk Jaringan Neural:Cara Melatih dan Memvalidasi Jaringan Neural Python
  15. Berapa Banyak Lapisan Tersembunyi dan Node Tersembunyi yang Dibutuhkan Jaringan Neural?
  16. Cara Meningkatkan Akurasi Jaringan Neural Lapisan Tersembunyi
  17. Menggabungkan Bias Node ke Jaringan Neural Anda

Node bias, yang dapat ditambahkan ke lapisan input atau lapisan tersembunyi Perceptron, menghasilkan nilai konstan yang dipilih oleh perancang.

Kami membahas nilai bias kembali di Bagian 11, dan saya mendorong Anda untuk membaca (atau membaca ulang) bagian yang relevan dari artikel itu jika Anda tidak jelas tentang apa itu simpul bias atau bagaimana mereka memodifikasi dan berpotensi meningkatkan fungsionalitas jaringan saraf.

Dalam artikel ini, pertama-tama saya akan menjelaskan dua metode untuk memasukkan nilai bias ke dalam arsitektur jaringan Anda, dan kemudian kita akan melakukan eksperimen untuk melihat apakah nilai bias dapat meningkatkan kinerja akurasi yang kita peroleh di artikel sebelumnya (Bagian 16).

Menggabungkan Bias melalui Spreadsheet

Diagram berikut menggambarkan jaringan yang memiliki bias node di lapisan input tetapi tidak di lapisan tersembunyi.

Jika ini adalah konfigurasi yang Anda cari, Anda dapat menambahkan nilai bias menggunakan spreadsheet yang berisi data pelatihan atau validasi Anda.

Keuntungan dari metode ini adalah tidak diperlukan modifikasi kode yang substansial. Langkah pertama adalah menyisipkan kolom di spreadsheet Anda dan mengisinya dengan nilai bias Anda:

Sekarang, yang perlu Anda lakukan adalah meningkatkan dimensi lapisan input Anda satu per satu:

Mengintegrasikan Bias ke dalam Kode

Jika Anda menginginkan simpul bias di lapisan tersembunyi, atau jika Anda tidak suka bekerja dengan spreadsheet, Anda memerlukan solusi yang berbeda.

Mari kita asumsikan bahwa kita ingin menambahkan simpul bias ke lapisan input dan lapisan tersembunyi. Pertama, kita perlu meningkatkan I_dim dan H_dim , karena tujuan kami adalah mengintegrasikan node bias sehingga berfungsi seperti node normal tetapi dengan nilai pembobotan sebelumnya yang dipilih oleh desainer dan tidak pernah berubah.

Saya akan melakukannya sebagai berikut:


Membuat Node Bias Input-Layer

Seperti yang Anda ingat, kami menggunakan kode berikut untuk merakit kumpulan data pelatihan, memisahkan nilai keluaran target, dan mengekstrak jumlah sampel pelatihan.

Setelah pernyataan ini, jumlah kolom dalam array dua dimensi training_data akan sama dengan jumlah kolom input dalam spreadsheet. Kita perlu menambah jumlah kolom satu per satu untuk memperhitungkan node bias di lapisan input, dan sementara kita melakukannya, kita dapat mengisi kolom tambahan ini dengan nilai bias yang diinginkan.

Kode berikut menunjukkan bagaimana hal ini dapat dilakukan.


np.ones() function membuat larik satu kolom yang jumlah barisnya sama dengan training_count , dan memberikan nilai +1 untuk setiap elemen dalam larik ini. Kemudian kita menggunakan np.hstack() berfungsi untuk menambahkan larik satu kolom ke sisi kanan training_data original asli larik.

Perhatikan bahwa saya telah melakukan prosedur ini untuk data pelatihan dan data validasi. Penting untuk diingat bahwa tujuannya sebenarnya bukan untuk mengubah data pelatihan atau validasi; melainkan, kami memodifikasi data sebagai sarana untuk menerapkan konfigurasi jaringan yang diinginkan.

Ketika kita melihat diagram blok Perceptron, node bias muncul sebagai elemen dari jaringan itu sendiri; dengan demikian, setiap sampel yang diproses oleh jaringan harus mengalami modifikasi ini.

Membuat Node Bias Lapisan Tersembunyi

Kita dapat menambahkan bias ke dalam pemrosesan feedforward dengan memodifikasi for loop yang menghitung nilai pascaaktivasi lapisan tersembunyi dan kemudian secara manual memasukkan nilai bias untuk node tersembunyi terakhir (yang sebenarnya adalah node bias).

Modifikasi pertama ditunjukkan di bawah ini:


Jika jaringan dikonfigurasi untuk tidak memiliki simpul bias lapisan tersembunyi, bias_tersembunyi sama dengan 0 dan eksekusi for loop tidak berubah.

Jika, di sisi lain, kami telah memutuskan untuk menyertakan node bias lapisan tersembunyi, loop for tidak akan menghitung nilai pascaaktivasi untuk node akhir di lapisan (yaitu, node bias).

Langkah selanjutnya adalah menaikkan variabel node sehingga akan mengakses bias node di postActivation_H array, lalu tetapkan nilai bias.

Perhatikan bahwa modifikasi ini juga harus diterapkan pada bagian validasi kode.

Nilai Bias Selain +1

Dalam pengalaman saya, +1 adalah nilai bias standar, dan saya tidak tahu apakah ada pembenaran yang kuat untuk menggunakan angka lain. Bias diubah oleh bobot, jadi memilih +1 tidak menempatkan batasan tegas tentang bagaimana bias berinteraksi dengan fungsionalitas jaringan secara keseluruhan.

Namun, jika Anda ingin bereksperimen dengan nilai bias lainnya, Anda dapat melakukannya dengan mudah. Untuk bias tersembunyi, Anda cukup mengubah nomor yang ditetapkan ke postActivation_H[node] . Untuk bias input, Anda dapat mengalikan kolom_baru array (yang awalnya memiliki +1 untuk setiap elemen) dengan nilai bias yang diinginkan.

Menguji Pengaruh Bias

Jika Anda telah membaca Bagian 16, Anda tahu bahwa Perceptron saya mengalami beberapa kesulitan mengklasifikasikan sampel dalam Eksperimen 3, yang merupakan masalah "kompleksitas tinggi".

Mari kita lihat apakah penambahan satu atau lebih node bias menawarkan peningkatan yang konsisten dan signifikan.

Asumsi saya adalah bahwa perbedaan dalam akurasi klasifikasi akan cukup halus, jadi untuk percobaan ini, saya rata-rata sepuluh kali, bukan lima. Set data pelatihan dan validasi dihasilkan menggunakan hubungan kompleksitas tinggi yang sama antara input dan output, dan dimensi lapisan tersembunyi adalah 7.

Berikut adalah hasilnya:

Kesimpulan

Seperti yang Anda lihat, node bias tidak menyebabkan perubahan signifikan dalam performa klasifikasi.

Ini sebenarnya tidak mengejutkan saya—saya pikir node bias terkadang terlalu ditekankan, dan mengingat sifat data input yang saya gunakan dalam eksperimen ini, saya tidak melihat alasan mengapa node bias akan membantu.

Meskipun demikian, biasing adalah teknik penting dalam beberapa aplikasi; sebaiknya tulis kode yang mendukung fungsionalitas simpul bias sehingga ada saat Anda membutuhkannya.


Robot industri

  1. Memikirkan kembali rencana permainan Anda untuk pemantauan jaringan
  2. Cara Memperkuat Perangkat Anda untuk Mencegah Serangan Cyber
  3. Membangun Jaringan Sensor Nirkabel di Rumah Anda
  4. Memahami Minima Lokal dalam Pelatihan Jaringan Saraf
  5. Cara Meningkatkan Akurasi Jaringan Neural Lapisan Tersembunyi
  6. Cara Mengintegrasikan Manajemen Suku Cadang ke dalam CMMS Anda
  7. [Wawancara] Pakar Industri tentang Memilih Jaringan IoT Anda
  8. Cara Berhasil Mengintegrasikan Robotika Ke Fasilitas Anda
  9. Mengubah Rantai Pasokan Anda Menjadi Pusat Peluang
  10. Seberapa Amankah Jaringan Lantai Toko Anda?