Pada artikel sebelumnya, kita telah melihat step-by-step perhitungan backpropagation. Pada artikel ini kita kan mengimplementasikan backpropagation menggunakan Python
Kita akan mengimplementasikan backpropagation berdasarkan contoh perhitungan pada artikel sebelumnya. Karenanya perlu diingat kembali arsitektur dan variabel-variabel yang kita miliki. Berikut arsitektur jaringan saraf tiruannya:

Variabel $x$ menunjukkan input dari jaringan saraf tiruan kita. Pada contoh ini kita hanya akan menerima sebuah input yang memiliki 3 fitur, yang bernilai $x_1=1.0$, $x_2=2.0$, dan $x_3=0.5 $ atau dapat kita tulis sebagai berikut:
$$ X = [1.0, 2.0, 0.5] $$
Untuk bobot jaringan, jika diperhatikan terdapat 6 bobot $w$ yang menghubungkan neuron input dengan neuron output. Untuk memudahkan penamaan, kita simbolkan $w_{ij}$ berarti bobot yang menghubungkan neuron input nomor $i$ ke neuron output nomor $j$. Penamaan ini kita ikuti dari artikel sebelumnya. Jika dituliskan dalam bentuk matriks dengan $i$ menjadi nomor baris dan $j$ menjadi nomor kolom maka tampak seperti berikut:
$$ \begin{bmatrix}
w_{11} = 0.2 & w_{12} = 0.3 \\
w_{21} = 0.3 & w_{22} = 0.1 \\
w_{31} = 0.3 & w_{32} = 0.2
\end{bmatrix} $$
atau bisa dituliskan:
$$ W = \begin{bmatrix}
0.2 & 0.3 \
0.3 & 0.1 \
0.3 & 0.2
\end{bmatrix} $$
Nilai bias b pada latihan ini kita beri nilai 0 untuk $b_1$ dan $b_2$:
$$ B = [0, 0]$$
Jangan lupa juga kita buatkan variabel $T$ yang merupakan label/target asli dari data (groundtruth) dengan nilai $t_1=0$ dan $t_2=1$ (sesuai dengan artikel sebelumnya). Nantinya hasil prediksi $Y$ dari model akan dibandingkan dengan variabel ini.
Pada proses di atas kita melakukan yang namanya vektorisasi atau mengubah representasi nilai menjadi vektor atau matriks. Nantinya ini akan memudahkan perhitungan kedepannya. Di Python proses deklarasi variabel-variabel tersebut dapat dituliskan sebagai berikut:
X = [1, 2, 0.5] W = [[0.2, 0.3], [0.3, 0.1], [0.3, 0.2]] b = [0, 0] T = [0, 1]Continue reading