Para penemu kerap mencari inspirasi dari alam dan fenomena sehari-hari.
Dulu pada tahun 1904 burung menginspirasi Wright bersaudara untuk menciptakan pesawat laik terbang perdana di dunia. Kini, desain futuristik kapal selam tenaga nuklir milik Royal Navy Inggris, contohnya, juga meniru bentuk paus, belut, dan ikan pari manta.
Demikian halnya dengan machine learning dan jaringan saraf tiruannya. Jaringan Saraf Tiruan atau Artificial Neural Network (ANN) adalah sebuah model machine learning yang terinspirasi dari neuron/saraf yang terdapat pada otak manusia.
ANN merupakan salah satu model ML yang multiguna, powerful, dan memiliki skalabilitas tinggi.
Dengan kelebihan tersebut ANN sangat ideal dipakai dalam menangani masalah ML yang sangat kompleks seperti mengklasifikasi miliaran gambar, mengenali ratusan bahasa dunia, merekomendasikan video ke ratusan juta pengguna, sampai belajar mengalahkan juara dunia permainan papan GO.
Dengan kelebihan tersebut ANN sangat ideal dipakai dalam menangani masalah ML yang sangat kompleks seperti mengklasifikasi miliaran gambar, mengenali ratusan bahasa dunia, merekomendasikan video ke ratusan juta pengguna, sampai belajar mengalahkan juara dunia permainan papan GO.
Neuron dalam Otak
Sebelum kita belajar lebih mengenai saraf tiruan, kita akan mengenal lebih dahulu saraf biologis (neuron).
Sebuah saraf terdiri dari badan sel yang berisi nukleus dan komponen kompleks lainnya. Cabang-cabang yang kecil disebut dendrit, serta cabang yang paling panjang disebut akson. Panjang akson berkisar antara beberapa kali lebih panjang dari badan sel, sampai 10 ribu kali lebih panjang dari badan sel.
Sebuah saraf terdiri dari badan sel yang berisi nukleus dan komponen kompleks lainnya. Cabang-cabang yang kecil disebut dendrit, serta cabang yang paling panjang disebut akson. Panjang akson berkisar antara beberapa kali lebih panjang dari badan sel, sampai 10 ribu kali lebih panjang dari badan sel.
Setiap ujung akson dari sebuah neuron terhubung dengan dendrit dari neuron lainnya. Ketika sebuah neuron mendapatkan sebuah rangsangan, neuron tersebut akan mengirim sinyal ke neuron lainnya.
Seperti ketika kita tidak sengaja menyentuh panci yang panas. Saraf yang terdapat pada tangan kita mengirim sinyal ke saraf lain sampai ke otak, dan kita merespon dengan cepat. Pengiriman sinyal antar neuron terjadi sangat cepat yaitu hanya dalam beberapa milidetik.
Seperti ketika kita tidak sengaja menyentuh panci yang panas. Saraf yang terdapat pada tangan kita mengirim sinyal ke saraf lain sampai ke otak, dan kita merespon dengan cepat. Pengiriman sinyal antar neuron terjadi sangat cepat yaitu hanya dalam beberapa milidetik.
![202004301849018891a9adeca3a933d4920e6aec9840dc.png](https://dicodingacademy.blob.core.windows.net/academies/202004301849018891a9adeca3a933d4920e6aec9840dc.png)
Cara kerja dari sebuah neuron sangatlah sederhana. Namun, neuron-neuron tersebut terorganisir dalam sebuah jaringan berisi miliaran neuron.
Setiap neuron lalu terhubung dengan beberapa ribu neuron lainnya.
Dengan jumlah yang luar biasa besar tersebut, banyak pekerjaan kompleks yang dapat diselesaikan. Sama dengan sebuah sarang semut yang sangat besar dan kompleks seperti gambar di bawah. Tak terbayang kan sekumpulan semut kecil yang membangunnya?
Setiap neuron lalu terhubung dengan beberapa ribu neuron lainnya.
Dengan jumlah yang luar biasa besar tersebut, banyak pekerjaan kompleks yang dapat diselesaikan. Sama dengan sebuah sarang semut yang sangat besar dan kompleks seperti gambar di bawah. Tak terbayang kan sekumpulan semut kecil yang membangunnya?
![20200430184934ced8f3f39127e3c6b8ef1c76caf4b2bb.png](https://dicodingacademy.blob.core.windows.net/academies/20200430184934ced8f3f39127e3c6b8ef1c76caf4b2bb.png)
Perceptron
Perceptron adalah komponen dasar pembangun jaringan saraf tiruan. perceptron pada jaringan saraf tiruan terinspirasi dari neuron pada jaringan saraf di otak manusia. Pada jaringan saraf tiruan, perceptron dan neuron merujuk pada hal yang sama.
Sebuah perceptron menerima sebuah masukan yaitu bilangan numerik lalu memproses masukan tersebut dan menghasilkan sebuah keluaran. Untuk lebih memahami cara kerja perceptron, kita akan menggunakan diagram di bawah.
![20200430185034b0a0ce9bdafc593bb93812116dfdf710.png](https://dicodingacademy.blob.core.windows.net/academies/20200430185034b0a0ce9bdafc593bb93812116dfdf710.png)
Sebuah perceptron menerima kumpulan input berupa angka-angka. Dari input yang diterima, perceptron kemudian melakukan pemrosesan dengan output yang juga berupa angka. Terdapat 5 proses yang menjelaskan bagaimana perceptron bekerja yaitu :
- Input - menerima masukan berupa angka-angka.
- Bobot - setiap input akan diberikan bobot masing-masing. Bobot adalah sebuah parameter yang akan dipelajari oleh sebuah perceptron.
- Penjumlahan input - di tahap ini setiap input akan dikalikan dengan bobotnya masing masing lalu hasilnya akan ditambahkan dengan bias yang merupakan sebuah angka.Fungsi aktivasi - merupakan fungsi yang akan membuat perceptron bisa menyesuaikan pola non-linier. Penjelasan lebih tentang fungsi aktivasi akan dibahas di paragraf selanjutnya.
- Output - hasil dari perhitungan sebuah perceptron yang merupakan bilangan numerik.
Fungsi matematis dari perceptron dapat kita lihat di bawah.
Rumus di bawah merupakan notasi matematis yang menjelaskan proses yang kita bahas sebelumnya. Keluaran (Å·) dari perceptron merupakan bias (W0), ditambah dengan jumlah setiap input (Xi) yang dikali dengan bobot masing-masing (Wi), lalu dimasukkan ke dalam sebuah fungsi aktivasi (g).
Rumus di bawah merupakan notasi matematis yang menjelaskan proses yang kita bahas sebelumnya. Keluaran (Å·) dari perceptron merupakan bias (W0), ditambah dengan jumlah setiap input (Xi) yang dikali dengan bobot masing-masing (Wi), lalu dimasukkan ke dalam sebuah fungsi aktivasi (g).
![202004301851078768b29dd102a0ffd6d77009a516990c.png](https://dicodingacademy.blob.core.windows.net/academies/202004301851078768b29dd102a0ffd6d77009a516990c.png)
Fungsi aktivasi pada perceptron berfungsi untuk membuat jaringan saraf mampu menyesuaikan pola pada data non linier.
Seperti yang sudah pernah dibahas sebelumnya, mayoritas data yang terdapat di dunia nyata adalah data non linier seperti di bawah.
Seperti yang sudah pernah dibahas sebelumnya, mayoritas data yang terdapat di dunia nyata adalah data non linier seperti di bawah.
![20200430185128400b51f11abc2376ce33ede192655676.png](https://dicodingacademy.blob.core.windows.net/academies/20200430185128400b51f11abc2376ce33ede192655676.png)
Fungsi aktivasi lah yang memungkinkan jaringan saraf dapat mengenali pola non-linier seperti di bawah.
Tanpa fungsi aktivasi, jaringan saraf hanya bisa mengenali pola linier seperti garis pada regresi linier.
Tanpa fungsi aktivasi, jaringan saraf hanya bisa mengenali pola linier seperti garis pada regresi linier.
![202004301851474ff0f54bf0148696715a06d04db26158.png](https://dicodingacademy.blob.core.windows.net/academies/202004301851474ff0f54bf0148696715a06d04db26158.png)
Ada 3 fungsi aktivasi yang paling umum yaitu sigmoid function, hyperbolic tangent, dan rectified linear unit (ReLU). Untuk memahami lebih lanjut tentang fungsi aktivasi, kunjungi tautan berikut yah.
Untuk pembahasan selanjutnya kita akan menggunakan diagram yang lebih sederhana untuk sebuah perceptron. Pada diagram di bawah, x1, x2, dan x3 adalah input, dan z adalah sebuah perceptron. Bias dan bobot tidak masuk dalam ilustrasi agar diagram terlihat lebih sederhana.
![2020043018542386dd0d852d5fa6ff14d8a3376e2858b5.png](https://dicodingacademy.blob.core.windows.net/academies/2020043018542386dd0d852d5fa6ff14d8a3376e2858b5.png)
Pada gambar di bawah terdapat 2 buah perceptron yaitu Z1 dan Z2. Karena koneksi tiap perceptron dan tiap input sangat padat, jadi dinamakan dengan dense layer. Jadi, dense layer adalah sebuah lapisan yang terdiri dari 2 perceptron atau lebih.
![202004301854436220ef2288628a9717353504224eb9d4.png](https://dicodingacademy.blob.core.windows.net/academies/202004301854436220ef2288628a9717353504224eb9d4.png)
Selanjutnya kita akan membahas tentang Hidden layer. Sebuah hidden layer adalah dense layer yang berada di antara input layer dan output layer. Pada ilustrasi di bawah, jaringan saraf di sebelah kiri memiliki 1 hidden layer dan jaringan saraf di sebelah kanan memiliki 4 buah hidden layer.
![20200430185453c061be57e0baa8783ef4446e6ec1d04b.png](https://dicodingacademy.blob.core.windows.net/academies/20200430185453c061be57e0baa8783ef4446e6ec1d04b.png)
Dalam sebuah jaringan saraf tiruan, input layer dan output layer harus selalu ada, namun untuk hidden layer bisa ada beberapa atau tidak sama sekali. Hidden layer dan output layer sama-sama merupakan sebuah layer yang memiliki beberapa perceptron. Sedangkan input layer adalah sebuah layer yang hanya menampung angka-angka.
Hidden layer diberikan nama hidden karena sifatnya yang tersembunyi. Pada sebuah sistem jaringan saraf, input dan output layer merupakan lapisan yang dapat kita amati, sementara hidden layer, tidak.
Pada sebuah jaringan saraf tiruan, semakin banyak jumlah hidden layer dalam sistem, semakin lama jaringan saraf tersebut memproduksi hasil, namun juga semakin kompleks masalah yang dapat diselesaikan