
Pemula dalam jaringan saraf tiruan (ANN) biasanya memiliki sejumlah pertanyaan. Beberapa di antaranya: berapa jumlah lapisan tersembunyi yang perlu digunakan? Berapa banyak neuron tersembunyi di setiap lapisan tersembunyi? Apa tujuan menggunakan lapisan/neuron tersembunyi? Apakah menambah jumlah lapisan/neuron tersembunyi selalu memberikan hasil yang lebih baik? Kabar baiknya, kita bisa menjawab pertanyaan-pertanyaan tersebut. Perlu diperjelas, menjawabnya bisa menjadi sangat kompleks jika masalah yang diselesaikan memang rumit. Di akhir artikel ini, setidaknya Anda akan mendapatkan gambaran tentang bagaimana pertanyaan-pertanyaan tersebut dijawab dan dapat menguji sendiri berdasarkan contoh-contoh sederhana.
Pendahuluan
ANN terinspirasi dari jaringan saraf biologis. Untuk kesederhanaan, dalam ilmu komputer, ANN direpresentasikan sebagai sekumpulan lapisan. Lapisan-lapisan ini dikategorikan menjadi tiga kelas: input, tersembunyi, dan output.
Menentukan jumlah lapisan input dan output serta jumlah neuronnya adalah bagian termudah. Setiap jaringan memiliki satu lapisan input dan satu lapisan output. Jumlah neuron pada lapisan input sama dengan jumlah variabel input pada data yang diproses. Jumlah neuron pada lapisan output sama dengan jumlah keluaran yang terkait dengan setiap input. Tantangannya adalah menentukan jumlah lapisan tersembunyi dan jumlah neuronnya.
Berikut beberapa pedoman untuk mengetahui jumlah lapisan tersembunyi dan jumlah neuron per lapisan tersembunyi pada masalah klasifikasi:
- Berdasarkan data, gambarkan perkiraan batas keputusan untuk memisahkan kelas-kelas.
- Nyatakan batas keputusan tersebut sebagai sekumpulan garis. Perlu dicatat, kombinasi garis-garis tersebut harus menghasilkan batas keputusan.
- Jumlah garis yang dipilih merepresentasikan jumlah neuron tersembunyi pada lapisan tersembunyi pertama.
- Untuk menghubungkan garis-garis yang dibuat oleh lapisan sebelumnya, tambahkan lapisan tersembunyi baru. Perlu dicatat, lapisan tersembunyi baru ditambahkan setiap kali Anda perlu membuat koneksi antargaris pada lapisan tersembunyi sebelumnya.
- Jumlah neuron tersembunyi pada setiap lapisan tersembunyi baru sama dengan jumlah koneksi yang akan dibuat.
Untuk memperjelas, mari terapkan pedoman sebelumnya pada beberapa contoh.
Contoh Pertama
Mari mulai dengan contoh sederhana masalah klasifikasi dengan dua kelas seperti pada gambar berikut. Setiap sampel memiliki dua input dan satu output yang merepresentasikan label kelas. Ini sangat mirip dengan masalah XOR.
Pertanyaan pertama yang perlu dijawab adalah apakah lapisan tersembunyi diperlukan atau tidak. Aturan yang dapat diikuti untuk menentukan apakah lapisan tersembunyi diperlukan adalah sebagai berikut:
Dalam jaringan saraf tiruan, lapisan tersembunyi diperlukan jika dan hanya jika data harus dipisahkan secara non-linear.
Melihat gambar berikutnya, tampak bahwa kelas-kelas harus dipisahkan secara non-linear. Satu garis saja tidak akan cukup. Akibatnya, kita harus menggunakan lapisan tersembunyi agar mendapatkan batas keputusan terbaik. Dalam kasus seperti ini, kita mungkin tetap tidak menggunakan lapisan tersembunyi namun hal itu akan memengaruhi akurasi klasifikasi. Jadi, lebih baik menggunakan lapisan tersembunyi.
Mengetahui bahwa kita memerlukan lapisan tersembunyi membuat kita perlu menjawab dua pertanyaan penting. Pertanyaan-pertanyaan tersebut adalah:
-
Berapa jumlah lapisan tersembunyi yang dibutuhkan?
-
Berapa jumlah neuron tersembunyi pada setiap lapisan tersembunyi?
Mengikuti prosedur sebelumnya, langkah pertama adalah menggambar batas keputusan yang membagi dua kelas tersebut. Ada lebih dari satu batas keputusan yang mungkin untuk membagi data dengan benar seperti terlihat pada gambar di bawah. Yang akan kita gunakan untuk pembahasan lebih lanjut adalah bagian kanan gambar (b).
Mengikuti pedoman, langkah selanjutnya adalah menyatakan batas keputusan sebagai sekumpulan garis.
Gagasan merepresentasikan batas keputusan menggunakan sekumpulan garis berasal dari fakta bahwa setiap ANN dibangun menggunakan perceptron satu lapis sebagai blok penyusunnya. Perceptron satu lapis adalah pengklasifikasi linear yang memisahkan kelas-kelas menggunakan garis yang dibuat menurut persamaan berikut:
y=w1x1+w2x2+ ⋯ +wixi+b
Dengan xi adalah input ke-i, wi adalah bobotnya, b adalah bias, dan y adalah output. Karena setiap neuron tersembunyi yang ditambahkan akan menambah jumlah bobot, disarankan untuk menggunakan jumlah neuron tersembunyi paling sedikit yang dapat menyelesaikan tugas. Menggunakan neuron tersembunyi lebih banyak dari yang diperlukan akan menambah kompleksitas.
Kembali ke contoh kita, menyatakan bahwa ANN dibangun menggunakan beberapa jaringan perceptron identik dengan mengatakan bahwa jaringan tersebut dibangun menggunakan beberapa garis.
Pada contoh ini, batas keputusan digantikan oleh sekumpulan garis. Garis-garis dimulai dari titik-titik di mana kurva batas berubah arah. Pada titik tersebut, dua garis ditempatkan, masing-masing ke arah yang berbeda.
Karena hanya ada satu titik di mana kurva batas berubah arah seperti ditunjukkan pada gambar berikutnya oleh lingkaran abu-abu, maka hanya diperlukan dua garis. Dengan kata lain, ada dua jaringan perceptron satu lapis. Setiap perceptron menghasilkan satu garis.
Mengetahui bahwa hanya diperlukan dua garis untuk merepresentasikan batas keputusan memberi tahu kita bahwa lapisan tersembunyi pertama akan memiliki dua neuron tersembunyi.
Sampai titik ini, kita memiliki satu lapisan tersembunyi dengan dua neuron tersembunyi. Setiap neuron tersembunyi dapat dianggap sebagai pengklasifikasi linear yang direpresentasikan sebagai garis seperti pada gambar sebelumnya. Akan ada dua output, masing-masing dari setiap pengklasifikasi (yaitu neuron tersembunyi). Namun kita ingin membangun satu pengklasifikasi dengan satu output yang merepresentasikan label kelas, bukan dua pengklasifikasi. Akibatnya, output dari dua neuron tersembunyi tersebut harus digabung menjadi satu output. Dengan kata lain, kedua garis itu harus dihubungkan oleh neuron lain. Hasilnya ditunjukkan pada gambar berikutnya.
Untungnya, kita tidak perlu menambahkan lapisan tersembunyi lain dengan satu neuron untuk melakukan tugas itu. Neuron pada lapisan output akan menjalankan tugas tersebut. Neuron tersebut akan menggabungkan dua garis yang dihasilkan sebelumnya sehingga hanya ada satu output dari jaringan.
Setelah mengetahui jumlah lapisan tersembunyi dan neuronnya, arsitektur jaringan kini lengkap seperti ditunjukkan pada gambar berikutnya.
Contoh Kedua
Contoh klasifikasi lainnya ditunjukkan pada gambar berikutnya. Mirip dengan contoh sebelumnya, ada dua kelas di mana setiap sampel memiliki dua input dan satu output. Perbedaannya ada pada batas keputusan. Batas pada contoh ini lebih kompleks dibanding contoh sebelumnya.
Menurut pedoman, langkah pertama adalah menggambar batas keputusan. Batas keputusan yang akan digunakan dalam pembahasan kita ditunjukkan pada bagian paling kiri gambar berikutnya (a).
Langkah selanjutnya adalah memecah batas keputusan menjadi sekumpulan garis, di mana setiap garis akan dimodelkan sebagai perceptron dalam ANN. Sebelum menggambar garis, tandai titik-titik di mana batas berubah arah seperti ditunjukkan pada bagian paling kanan gambar berikutnya (b).
Pertanyaannya, berapa banyak garis yang diperlukan? Masing-masing titik atas dan bawah akan memiliki dua garis yang terkait dengannya sehingga total 4 garis. Titik di antaranya akan berbagi dua garisnya dari titik-titik lainnya. Garis-garis yang akan dibuat ditunjukkan pada gambar di bawah.
Karena lapisan tersembunyi pertama akan memiliki neuron tersembunyi sebanyak jumlah garis, maka lapisan tersembunyi pertama akan memiliki 4 neuron. Dengan kata lain, ada 4 pengklasifikasi yang masing-masing dibuat oleh perceptron satu lapis. Saat ini, jaringan akan menghasilkan 4 output, masing-masing dari setiap pengklasifikasi. Selanjutnya, hubungkan pengklasifikasi tersebut agar jaringan menghasilkan hanya satu output. Dengan kata lain, garis-garis itu harus dihubungkan oleh lapisan tersembunyi lain untuk menghasilkan hanya satu kurva.
Penentuan tata letak jaringan terserah pada perancang model. Salah satu arsitektur jaringan yang layak adalah membangun lapisan tersembunyi kedua dengan dua neuron tersembunyi. Neuron tersembunyi pertama akan menghubungkan dua garis pertama dan neuron tersembunyi terakhir akan menghubungkan dua garis terakhir. Hasil dari lapisan tersembunyi kedua. Hasil lapisan kedua ditunjukkan pada gambar di bawah.
Sampai titik ini, ada dua kurva terpisah. Jadi ada dua output dari jaringan. Selanjutnya adalah menghubungkan kurva-kurva tersebut agar hanya ada satu output dari seluruh jaringan. Dalam kasus ini, neuron pada lapisan output dapat digunakan untuk melakukan koneksi final alih-alih menambahkan lapisan tersembunyi baru. Hasil akhirnya ditunjukkan pada gambar berikut.
Setelah desain jaringan selesai, arsitektur jaringan lengkap ditunjukkan pada gambar berikut.
Informasi Lebih Lanjut
SlideShare
YouTube
Pemula dalam jaringan saraf tiruan (ANN) biasanya memiliki sejumlah pertanyaan. Beberapa di antaranya: berapa jumlah lapisan tersembunyi yang perlu digunakan? Berapa banyak neuron tersembunyi di setiap lapisan tersembunyi? Apa tujuan menggunakan lapisan/neuron tersembunyi? Apakah menambah jumlah lapisan/neuron tersembunyi selalu memberikan hasil yang lebih baik? Kabar baiknya, kita bisa menjawab pertanyaan-pertanyaan tersebut. Perlu diperjelas, menjawabnya bisa menjadi sangat kompleks jika masalah yang diselesaikan memang rumit. Di akhir artikel ini, setidaknya Anda akan mendapatkan gambaran tentang bagaimana pertanyaan-pertanyaan tersebut dijawab dan dapat menguji sendiri berdasarkan contoh-contoh sederhana.
Pendahuluan
ANN terinspirasi dari jaringan saraf biologis. Untuk kesederhanaan, dalam ilmu komputer, ANN direpresentasikan sebagai sekumpulan lapisan. Lapisan-lapisan ini dikategorikan menjadi tiga kelas: input, tersembunyi, dan output.
Menentukan jumlah lapisan input dan output serta jumlah neuronnya adalah bagian termudah. Setiap jaringan memiliki satu lapisan input dan satu lapisan output. Jumlah neuron pada lapisan input sama dengan jumlah variabel input pada data yang diproses. Jumlah neuron pada lapisan output sama dengan jumlah keluaran yang terkait dengan setiap input. Tantangannya adalah menentukan jumlah lapisan tersembunyi dan jumlah neuronnya.
Berikut beberapa pedoman untuk mengetahui jumlah lapisan tersembunyi dan jumlah neuron per lapisan tersembunyi pada masalah klasifikasi:
Untuk memperjelas, mari terapkan pedoman sebelumnya pada beberapa contoh.
Contoh Pertama
Mari mulai dengan contoh sederhana masalah klasifikasi dengan dua kelas seperti pada gambar berikut. Setiap sampel memiliki dua input dan satu output yang merepresentasikan label kelas. Ini sangat mirip dengan masalah XOR.
Pertanyaan pertama yang perlu dijawab adalah apakah lapisan tersembunyi diperlukan atau tidak. Aturan yang dapat diikuti untuk menentukan apakah lapisan tersembunyi diperlukan adalah sebagai berikut:
Melihat gambar berikutnya, tampak bahwa kelas-kelas harus dipisahkan secara non-linear. Satu garis saja tidak akan cukup. Akibatnya, kita harus menggunakan lapisan tersembunyi agar mendapatkan batas keputusan terbaik. Dalam kasus seperti ini, kita mungkin tetap tidak menggunakan lapisan tersembunyi namun hal itu akan memengaruhi akurasi klasifikasi. Jadi, lebih baik menggunakan lapisan tersembunyi.
Mengetahui bahwa kita memerlukan lapisan tersembunyi membuat kita perlu menjawab dua pertanyaan penting. Pertanyaan-pertanyaan tersebut adalah:
Berapa jumlah lapisan tersembunyi yang dibutuhkan?
Berapa jumlah neuron tersembunyi pada setiap lapisan tersembunyi?
Mengikuti prosedur sebelumnya, langkah pertama adalah menggambar batas keputusan yang membagi dua kelas tersebut. Ada lebih dari satu batas keputusan yang mungkin untuk membagi data dengan benar seperti terlihat pada gambar di bawah. Yang akan kita gunakan untuk pembahasan lebih lanjut adalah bagian kanan gambar (b).
Mengikuti pedoman, langkah selanjutnya adalah menyatakan batas keputusan sebagai sekumpulan garis.
Gagasan merepresentasikan batas keputusan menggunakan sekumpulan garis berasal dari fakta bahwa setiap ANN dibangun menggunakan perceptron satu lapis sebagai blok penyusunnya. Perceptron satu lapis adalah pengklasifikasi linear yang memisahkan kelas-kelas menggunakan garis yang dibuat menurut persamaan berikut:
y=w1x1+w2x2+ ⋯ +wixi+bDengan
xiadalah input ke-i,wiadalah bobotnya,badalah bias, danyadalah output. Karena setiap neuron tersembunyi yang ditambahkan akan menambah jumlah bobot, disarankan untuk menggunakan jumlah neuron tersembunyi paling sedikit yang dapat menyelesaikan tugas. Menggunakan neuron tersembunyi lebih banyak dari yang diperlukan akan menambah kompleksitas.Kembali ke contoh kita, menyatakan bahwa ANN dibangun menggunakan beberapa jaringan perceptron identik dengan mengatakan bahwa jaringan tersebut dibangun menggunakan beberapa garis.
Pada contoh ini, batas keputusan digantikan oleh sekumpulan garis. Garis-garis dimulai dari titik-titik di mana kurva batas berubah arah. Pada titik tersebut, dua garis ditempatkan, masing-masing ke arah yang berbeda.
Karena hanya ada satu titik di mana kurva batas berubah arah seperti ditunjukkan pada gambar berikutnya oleh lingkaran abu-abu, maka hanya diperlukan dua garis. Dengan kata lain, ada dua jaringan perceptron satu lapis. Setiap perceptron menghasilkan satu garis.
Mengetahui bahwa hanya diperlukan dua garis untuk merepresentasikan batas keputusan memberi tahu kita bahwa lapisan tersembunyi pertama akan memiliki dua neuron tersembunyi.
Sampai titik ini, kita memiliki satu lapisan tersembunyi dengan dua neuron tersembunyi. Setiap neuron tersembunyi dapat dianggap sebagai pengklasifikasi linear yang direpresentasikan sebagai garis seperti pada gambar sebelumnya. Akan ada dua output, masing-masing dari setiap pengklasifikasi (yaitu neuron tersembunyi). Namun kita ingin membangun satu pengklasifikasi dengan satu output yang merepresentasikan label kelas, bukan dua pengklasifikasi. Akibatnya, output dari dua neuron tersembunyi tersebut harus digabung menjadi satu output. Dengan kata lain, kedua garis itu harus dihubungkan oleh neuron lain. Hasilnya ditunjukkan pada gambar berikutnya.
Untungnya, kita tidak perlu menambahkan lapisan tersembunyi lain dengan satu neuron untuk melakukan tugas itu. Neuron pada lapisan output akan menjalankan tugas tersebut. Neuron tersebut akan menggabungkan dua garis yang dihasilkan sebelumnya sehingga hanya ada satu output dari jaringan.
Setelah mengetahui jumlah lapisan tersembunyi dan neuronnya, arsitektur jaringan kini lengkap seperti ditunjukkan pada gambar berikutnya.
Contoh Kedua
Contoh klasifikasi lainnya ditunjukkan pada gambar berikutnya. Mirip dengan contoh sebelumnya, ada dua kelas di mana setiap sampel memiliki dua input dan satu output. Perbedaannya ada pada batas keputusan. Batas pada contoh ini lebih kompleks dibanding contoh sebelumnya.
Menurut pedoman, langkah pertama adalah menggambar batas keputusan. Batas keputusan yang akan digunakan dalam pembahasan kita ditunjukkan pada bagian paling kiri gambar berikutnya (a).
Langkah selanjutnya adalah memecah batas keputusan menjadi sekumpulan garis, di mana setiap garis akan dimodelkan sebagai perceptron dalam ANN. Sebelum menggambar garis, tandai titik-titik di mana batas berubah arah seperti ditunjukkan pada bagian paling kanan gambar berikutnya (b).
Pertanyaannya, berapa banyak garis yang diperlukan? Masing-masing titik atas dan bawah akan memiliki dua garis yang terkait dengannya sehingga total 4 garis. Titik di antaranya akan berbagi dua garisnya dari titik-titik lainnya. Garis-garis yang akan dibuat ditunjukkan pada gambar di bawah.
Karena lapisan tersembunyi pertama akan memiliki neuron tersembunyi sebanyak jumlah garis, maka lapisan tersembunyi pertama akan memiliki 4 neuron. Dengan kata lain, ada 4 pengklasifikasi yang masing-masing dibuat oleh perceptron satu lapis. Saat ini, jaringan akan menghasilkan 4 output, masing-masing dari setiap pengklasifikasi. Selanjutnya, hubungkan pengklasifikasi tersebut agar jaringan menghasilkan hanya satu output. Dengan kata lain, garis-garis itu harus dihubungkan oleh lapisan tersembunyi lain untuk menghasilkan hanya satu kurva.
Penentuan tata letak jaringan terserah pada perancang model. Salah satu arsitektur jaringan yang layak adalah membangun lapisan tersembunyi kedua dengan dua neuron tersembunyi. Neuron tersembunyi pertama akan menghubungkan dua garis pertama dan neuron tersembunyi terakhir akan menghubungkan dua garis terakhir. Hasil dari lapisan tersembunyi kedua. Hasil lapisan kedua ditunjukkan pada gambar di bawah.
Sampai titik ini, ada dua kurva terpisah. Jadi ada dua output dari jaringan. Selanjutnya adalah menghubungkan kurva-kurva tersebut agar hanya ada satu output dari seluruh jaringan. Dalam kasus ini, neuron pada lapisan output dapat digunakan untuk melakukan koneksi final alih-alih menambahkan lapisan tersembunyi baru. Hasil akhirnya ditunjukkan pada gambar berikut.
Setelah desain jaringan selesai, arsitektur jaringan lengkap ditunjukkan pada gambar berikut.
Informasi Lebih Lanjut
Deep Learning - Tutorial untuk Data Scientist
Kursus Introduction to Deep Learning in Python
SlideShare
YouTube