Monday, 7 October 2019

Membangun Artificial Neural Network di Javascript

membangun sistem neural network sendiri di javascript - Perkembangan dunia kecerdasan buatan memang lagi hype banget akhir-akhir ini. Jika kita berbicara soal kecerdasan buatan, maka kita akan mengenal suatu model bernama neural network. Berikut ini saya akan menjelaskan mengenai apa itu neural network, dan bagaimana cara membangun sistem kecerdasan buatan sederhana untuk pertama kali.


Apa itu Neural Network?
Basically, neural network adalah cabang dari pembelajaran Artificial Intelligence. Neural Network adalah model yang meniru sistem jaringan saraf pada otak dalam mengambil keputusan. Terkhususnya adalah organ neuron yang terletak di dalam sel saraf otak. Maka dari itu, neural network juga dikenal dengan sebutan Jaringan Saraf tiruan.

Arsitektur Neural Network


Secara umum, ilmu mengenai jaringan saraf tiruan ini mengacu pada pembelajaran statistika. Ada beberapa proses sebelum input menghasilkan output. Salah satunya adalah membandingkan data yang ada sebelumnya. Proses ini dikenal dengan Training Data. Yaitu melatih sistem untuk mengambil keputusan dengan mempelajari data yang ada sebelumnya. Tentunya hal ini sangat berpengaruh pada keakuratan output. Oleh karena itu, diperlukan teknologi Big Data untuk lebih menunjang teknologi Neural Network.

Seiring berkembangnya teknologi Artificial Intelligence ini, berbagai konfigurasi kode sudah lebih dipermudah. Programmer diseluruh dunia dengan senang hati membantu berbagai projek AI untuk menjadikannya benar-benar zero config. Salah satunya di bahasa Javascript, sudah ada paket bernama BrainJS, yaitu library javascript yang mempermudah kita untuk membangun sistem neural network

BRAIN JS

Membangun Sistem Neural Network di Javascript
Saya akan mencontohkan bagaimana cara untuk membangun sistem kecerdasan buatan yang sangat sederhana. Namun seperti yang saya jelaskan  tadi, tentunya kecerdasan sistem nya nanti masih sangat kurang akurat karena keterbatasan di Training Data. Yang terpenting adalah konsep dasar dari Neural Network di Javascript.

Installasi Library Brain.JS
CDN

<script src="https://cdnjs.cloudflare.com/ajax/libs/brain/0.6.3/brain.min.js"></script>

NPM

npm i brain.js
const brain = require('brain.js')

Training Data
Training Data (melatih data) adalah tahap penting untuk membangun sistem neural network. Kita akan mencoba untuk membuat sedikit data contoh untuk dimasukan kedalam ingatan AI untuk mengambil keputusan.

Dalam training data dengan brain js, ada 2 tahap, yaitu input dan output. Input akan berisi kumpulan data yang kita miliki, dan output sebagai keputusan yang seharusnya diambil.

Untuk mendapatkan hasil yang lebih baik, kita harus mendeklarasikan semua data sebagai angka/nomor. Here is an example...

Contoh Pengambilan Keputusan Dengan Neural Network
Kita akan membuat sebuah kondisi dimana jika data berupa angka yang sama, maka outputnya adalah 0. Jika angka nya beda, maka outputnya adalah 1.


const net = brain.NeuralNetwork() // memanggil fungsi neural network pada brainjs

const trainingData = [
  {input:[0,0],output:[0]},
  {input:[0,1],output:[1]},
  {input:[1,0],output:[1]},
  {input:[1,1],output:[0]}
]
net.train(trainingData) // melatih sistem

// mendeklarasikan keputusan

net.run([0,1]) // Hasil: 0.9344263672828674
net.run([1,1]) // Hasil: 0.08769062906503677
net.run([1,0]) // Hasil: 0.933978796005249
net.run([0,0]) // Hasil: 0.05937185883522034

Dengan membandingkan output (hasil) dari pengambilan keputusan sistem dengan output yang kita atur di training data, kita sudah bisa mengetahui seberapa keakuratan dari sistem neural network yang kita bangun.

Mari kita coba dengan kasus lain. Misal, sistem pengambil keputusan apakah penggabungan komposisi warna merah, hijau, dan biru akan menghasilkan warna yang terlihat terang, atau gelap.

const net = brain.NeuralNetwork() // memanggil fungsi neural network pada brainjs

const trainingData = [{
    input: {
      merah: 0.03,
      hijau: 0.7,
      biru: 0.5
    },
    output: {
      gelap: 1
    }
  },
  {
    input: {
      merah: 0.16,
      hijau: 0.09,
      biru: 0.2
    },
    output: {
      terang: 1
    }
  },
  {
    input: {
      merah: 0.5,
      hijau: 0.5,
      biru: 1.0
    },
    output: {
      terang: 1
    }
  }
]
net.train(trainingData) // melatih data

// mendeklarasikan keputusan

net.run({
   merah: 0.4,
   hijau: 0.7,
   biru: 0.9
}) // hasil: { gelap: 0.3950822651386261, terang: 0.6040115356445312 }

Dengan begitu, kita bisa mengetahui tingkat terang dan gelap suatu warna sesuai perpaduan antara warna merah, hijau, dan biru.

Dengan pengetahuan dasar mengenai neural network, tentunya akan mempermudah kita untuk belajar AI kedepannya.

0 komentar

Post a Comment

Hai, Mohon Komentar Yang Relevan Dan Tidak OOT!