Back to IF3270 Pembelajaran Mesin

Logical Function Representation with Perceptrons (m‑of‑n, AND, OR, XOR)

Questions/Cues

  • Mengapa perceptron dapat mewakili fungsi AND?
  • Bagaimana cara menentukan bobot untuk fungsi OR?
  • Apa perbedaan m‑of‑n dengan AND/OR?
  • Mengapa XOR tidak dapat direpresentasikan oleh satu perceptron?
  • Langkah‑langkah umum merancang perceptron untuk fungsi logika?

Reference Points

Perceptron sebagai Unit Linear dengan Fungsi Sign

Perceptron adalah unit komputasi yang menghitung kombinasi linear dari input‑inputnya, kemudian menerapkan fungsi sign: hasilnya +1 bila nilai linear ≥ 0, dan –1 bila nilai tersebut < 0. Kombinasi linear tersebut dituliskan sebagai

di mana disebut bias (atau offset) dan adalah bobot yang mengukur kontribusi masing‑masing input . Karena fungsi sign hanya membedakan dua sisi dari sebuah hiperplan dalam ruang n‑dimensi, perceptron secara alami cocok untuk memisahkan data yang linearly separable. Representasi logika dasar (AND, OR, NOT) termasuk dalam kategori ini karena dapat dipisahkan oleh sebuah garis (atau bidang) sederhana.

Dalam konteks logika, nilai input biasanya dipilih {-1, +1}. Pilihan ini memudahkan perhitungan karena produk menjadi positif bila input dan bobot memiliki “sikap” yang sama, dan negatif bila berlawanan. Dengan menyesuaikan bobot dan bias, kita dapat memindahkan hiperplan sehingga semua kombinasi yang harus menghasilkan +1 berada di satu sisi, sementara kombinasi yang harus menghasilkan –1 berada di sisi lain.

Fungsi m‑of‑n dan Hubungannya dengan AND/OR

Sebuah fungsi m‑of‑n menghasilkan +1 bila setidaknya dari input bernilai +1; bila kurang dari input yang bernilai +1, outputnya –1. Dua kasus khusus yang paling dikenal adalah:

  • AND: . Semua input harus +1 agar output +1.
  • OR: . Cukup satu input +1 untuk menghasilkan output +1.

Karena fungsi m‑of‑n hanya menilai jumlah input yang aktif, kita dapat mengatur semua bobot menjadi nilai yang sama (misalnya 0.5) dan memilih bias yang tepat untuk memisahkan dua kelas. Secara umum, dengan bobot untuk semua dan bias , hiperplan berada tepat di antara titik‑titik yang memiliki tepat input +1 dan yang memiliki input +1.

Contoh numerik: untuk fungsi AND dengan dua input (), pilih sehingga bobot . Maka bias

Namun dalam slide yang diberikan dipilih bias (nilai sedikit lebih kecil) untuk mengakomodasi toleransi numerik; kombinasi menghasilkan tabel kebenaran AND yang tepat.

Untuk OR dengan dua input (), gunakan bobot yang sama dan bias

Agar lebih jelas, banyak sumber (mis. Mitchell 1997) menyarankan bobot dua kali lebih besar, misalnya dan bias ; fungsi sign kemudian menjadi , yang secara intuitif menekankan bahwa satu input +1 sudah cukup untuk melewati ambang 0.

Contoh Perhitungan untuk AND dan OR

AND dengan bobot :

  • Input (1, 1): .
  • Input (1, –1): .
  • Input (–1, 1): .
  • Input (–1, –1): .

Semua kombinasi cocok dengan tabel kebenaran AND.

OR dengan bobot :

  • Input (1, –1): (hanya satu input +1 tidak cukup).
  • Input (1, 1): .
  • Input (–1, 1): .
  • Input (1, 0) atau (0, 1) (jika nilai 0 diperlakukan sebagai –1) menghasilkan nilai di atas atau di bawah ambang sesuai kebutuhan.

Dengan menyesuaikan bias sedikit (mis. ), semua kombinasi yang memiliki setidaknya satu +1 akan menghasilkan +1, sehingga fungsi OR tercapai.

Mengapa XOR Tidak Dapat Direpresentasikan oleh Satu Perceptron

Fungsi XOR (exclusive‑OR) menghasilkan +1 bila tepat satu dari dua input bernilai +1, dan –1 bila kedua input sama (baik keduanya +1 atau keduanya –1). Jika kita plot keempat kombinasi pada bidang dua‑dimensi, titik‑titik yang harus menghasilkan +1 berada pada posisi (1, –1) dan (–1, 1), sedangkan titik yang harus menghasilkan –1 berada pada (1, 1) dan (–1, –1). Tidak ada satu garis lurus (hiperplan dalam 2‑dimensi) yang dapat memisahkan kedua kelompok ini secara simultan. Dengan kata lain, data XOR tidak linearly separable.

Karena perceptron hanya dapat membentuk satu hiperplan, ia tidak memiliki kapasitas untuk memisahkan pola XOR. Untuk mengatasi hal ini diperlukan struktur berlapis (misalnya jaringan saraf dengan satu lapisan tersembunyi) yang dapat membentuk kombinasi non‑linear dari fitur‑fitur input. Pada tingkat teoritis, menambahkan satu neuron tambahan yang menghitung fungsi AND dan OR, lalu menggabungkannya dengan bobot yang tepat, dapat menghasilkan perilaku XOR—tetapi ini sudah melampaui kemampuan satu perceptron tunggal.

Prosedur Umum Merancang Perceptron untuk Fungsi Logika m‑of‑n

  1. Tentukan nilai n dan m. Misalnya, untuk fungsi “setidaknya tiga dari lima input bernilai +1”, maka .
  2. Pilih bobot seragam untuk semua input. Nilai dapat dipilih kecil (mis. 0.5) untuk menghindari overflow numerik.
  3. Hitung bias menggunakan rumus umum

Penambahan 0.5 memastikan hiperplan berada tepat di antara titik dengan tepat input +1 dan titik dengan input +1.

  1. Verifikasi dengan tabel kebenaran: Evaluasi semua kombinasi input, hitung nilai linear , dan pastikan fungsi sign menghasilkan output yang diinginkan. Jika ada kesalahan, sesuaikan atau tambahkan offset kecil pada bias.
  2. Implementasi praktis: Pada bahasa pemrograman, cukup definisikan vektor bobot dan bias, lalu gunakan fungsi sign (atau np.sign dalam Python) untuk menghasilkan output.

Dengan prosedur ini, hampir semua fungsi logika yang bersifat m‑of‑n dapat direpresentasikan secara tepat oleh satu perceptron, selama fungsi tersebut linearly separable—yang memang selalu terjadi untuk m‑of‑n karena keputusan hanya bergantung pada jumlah input yang aktif.

Ringkasan

Perceptron menggunakan kombinasi linear dan fungsi sign untuk memisahkan dua kelas dalam ruang fitur. Dengan menyiapkan bobot seragam dan bias yang dihitung dari parameter pada fungsi m‑of‑n, kita dapat merepresentasikan logika AND () dan OR () secara tepat. XOR tidak dapat direpresentasikan karena tidak linearly separable; solusi memerlukan jaringan berlapis. Prosedur umum merancang perceptron meliputi penentuan , pemilihan bobot , perhitungan bias , dan verifikasi tabel kebenaran.