Jumat, 30 Januari 2015

Penyimpan Kecerdasan Lumen, Part-3

Pemanfaatan Database


Sistem Database Lumen bisa dimanfaatkan untuk beberapa kebutuhan, antara lain:

  1. Journal and Emailed Facts, yaitu membuat jurnal bulanan dan mingguan dari kegiatan Robot Lumen sesuai kebutuhan pengguna dan administrator yang bisa diemail kepada list yang ditentukan oleh Administrator. Jurnal ini mencakup:
    1.  Sejumlah data yang tertangkap dari kamera, microphone, berbagai sensor sentuhan, sonar, dll. Data yang tertangkap ini disimpan dan dilaporkan dalam bentuk teks.
    2. Rekaman gambar dan suara orang-orang, serta gambar obyek-obyek, baik yang sudah dikenali atau baru ditemui. Rekaman gambar dan suara disimpan dalam format yang sudah terkompresi
    3. Tugas-tugas yang dikerjakan berdasarkan perintah administrator dan permintaan para pengguna. rekaman tugas ini disimpan dalam bentuk teks
    4. Rekaman respon audio dari Robot terhadap pertanyaan dan permintaan para pengguna. Rekaman tanya jawab dan diskusi ini disimpan dalam bentuk teks
    5. Juga termasuk rekaman berbagai postur tubuh dan kondisi aktuator penggerak badan Robot. Rekaman postur dan kondisi aktuator disimpan dalam bentuk teks.
  2. Persistence Query and Facts, yaitu menampilkan jawaban berdasar fakta dari berbagai pertanyaan administrator atau pengguna. Fakta yang disajikan adalah fakta yang sudah terverifikasi oleh administrator maupun komunitas Wikipedia. Fakta ini bisa disajikan lewat aplikasi yang berjalan di handphone dan web browser, seperti yang terlihat pada bagian akhir dari artikel part-2. Adapun mekanismenya adalah sebagai berikut:
    1. Pengguna bisa memilih dari beberapa alternatif query yang tersedia. Dan dalam hitungan mili-detik, jawaban akan tersedia.
    2. Pengguna juga bisa mengajukan pertanyaan berdasarkan kombinasi beberapa kata kunci yang tersedia. Dan dalam hitungan mili-detik, jawaban akan tersedia.
    3. Alternatif lainnya, pengguna bisa juga menggunakan pertanyaan dalam bahasa natural, Bila tidak ada fakta yang bisa disajikan, maka aplikasi database bisa menanyakan alternatif pertanyaan, atau minta pertanyaan  lain yang bisa terjawab. 
  3. Lumen Social Expression, yaitu informasi terkini berbentuk ekspresi sosial yang diposting secara rutin di beberapa media sosial yang dimiliki Robot Lumen, seperti Twitter dan Facebook. Aplikasi yang mendukung fungsi ini akan segera dikembangkan dan bukan menjadi tugas utama saya. Informasi ini diharapkan akan membentuk persepsi sosial terhadap Robot Lumen. Komunikasi lewat media sosial ini direncanakan akan menjadi komunikasi dua arah, yang bisa berfungsi untuk menanyakan fakta yang tersimpan di dalam database.
  4. Natural Language Expression, yaitu ekspresi tanya jawab dalam bahasa natural seperti hanya percakapan antar manusia normal, sehingga Robot Lumen bisa berbicara kepada pengguna dan manusia lainnya sebagai teman yang cerdas dan baik hati. Aplikasi yang mendukung fungsi ini akan dikembangkan dalam waktu dekat dan bukan menjadi tanggungjawab saya. Aplikasi ini menjadi wajib bila Lumen akan diturunkan sebagai pemandu pameran yang bisa bicara interaktif dan bisa ditanya apa saja terkait pameran maupun beberapa hal umum lainnya.

Sumber Data

Seperti hanya seorang manusia yang belajar dari interaksi dengan lingkungan dan kegiatan yang dialaminya, Robot Lumen pun harus bisa melakukan hal yang sama. Sebagai penyimpan kecerdasan Robot Lumen, sistem database ini harus adaptif terhadap kegiatan dan lingkungan sekitar, ini adalah sumber data utama. Untuk itu Robot Lumen dilengkapi dengan sebuah Streaming Server.


Streaming server ini akan menyalurkan semua data yang ditangkap oleh semua sensor yang ada pada Robot Lumen yang tergambar dalam skematik berikut:


Terhitung ada 2 kamera, 2 microphone, 5 sensor tekanan, 2 sensor sonar, ditambah sensor-sensor gerakan pada setiap motor aktuator dan persendian yang mengendalikan 25 derajat kebebasan Robot Lumen ini, sebagaimana bisa dilihat pada gambar berikut

 

Namun belajar hanya mengandalkan pada pengalaman pribadi Robot Lumen akan memakan waktu terlalu lama, sehingga saya akan menambahkan sejumlah data yang saya entri sendiri, dan juga mengimpor data tambahan berkelas dunia yang sudah diverifikasi oleh Wikipedia lewat format database Yago 2, sehingga Robot Lumen bisa menjawab berbagai pertanyaan yang datanya sudah tersedia di Wikipedia.

Standar Database Lumen

Database Lumen ini dibuat dengan menggunakan skema database khas Lumen, namun juga dengan mengadaptasi berbagai standar database berkelas dunia sehingga tidak harus menemukan hal yang sudah ditemukan orang lain, dan bisa menghemat waktu pengembangan. Adapun skema ontologi yang kita adopsi adalah sebagai berikut


Terhitung ada 144 property untuk database khas Lumen, dimana 9 adalah properti database dasar, 7 properti database spesifik Lumen, 6 properti database spesifik vCard, dan selebihnya adalah database spesifik Wiki/Yago.

Sebagian dari skema database Lumen bisa dilihat pada gambar berikut


Saat ini total ukuran dari database untuk Penyimpan kecerdasan Lumen sudah sekitar 13GB. Detail dari database dan skema database Lumen ini bisa dibagi untuk kepentingan riset atas seijin grup LSKK Prodi Teknik Elektro ITB. Bila anda berminat untuk bekerjasama, silahkan hubungi penulis untuk alamat dropbox share.




Minggu, 25 Januari 2015

Penyimpan Kecerdasan Lumen, Part-2

Skematik Umum


Skematik diagram blok IO Robot Lumen, termasuk di dalamnya jaringan internet, 6 jenis sensor dan aktuator gerakan/suara yang ada pada sebuah Robot Lumen bisa dilihat pada gambar di atas.

Seperti yang telah umum diketahui, kegiatan dari Robot Lumen secara default akan dilaksanakan sebagaimana diperintahkan atau diprogramkan, dan secara default tidak ada proses direkam atau disimpan dalam database, sehingga tidak ada proses pembelajaran dari kegiatannya.

Apa yang tertangkap sensor kamera, apa yang masuk sensor microphone, apa yang tertangkap sensor sonar dan sensor sentuhan, semuanya lewat dan berlangsung begitu saja. Begitu juga penggunaan postur tubuh dan tingkat kekakuan persendian dalam gerakan, serta suara yang keluar dari speaker semuanya lewat dan berlangsung begitu saja.


Maka untuk membuat Robot Lumen bisa mengenali dan belajar dari lingkungan serta aktivitasnya, kita perlu bantuan streaming server, dimana diakusisi 3 jenis data streaming, yaitu:
  1. Camera stream, yaitu mengambil data visual berupa wajah dan obyek yang ditemuinya. Selanjutnya pada gambar wajah dan obyek tersebut akan dilakukan proses pengenalan melalui pembandingan dengan gambar wajah dan obyek yang sudah ada dalam database, untuk selanjutnya diidentifikasi apakah dikenali atau gambar wajah dan obyek baru. Bila gambar wajah dan obyek itu baru ditemui dan belum dikenali, maka Robot Lumen akan menanyakan identitas gambar wajah dan obyek tersebut.
  2. Audio stream, yaitu mengambil data suara pembicara dan isi pembicaraan. Suara pembicara selanjutnya akan dibandingkan dengan data suara pembicara yang sudah ada di dalam server database untuk proses identifikasi pembicara, bila suara pembicara baru, maka akan ditanyakan identitas pemilik suara itu untuk identifikasi. Sedangkan isi pembicaraan akan diproses dalam aplikasi pengenalan pembicaraan dan dikonversi menjadi teks untuk selanjutnya diproses dalam aplikasi NLP (pemrosesan bahasa natural) untuk direspon isi pembicaraannya sesuai maksud pembicara.
  3. Motion stream, yaitu mengambil data gerakan berupa jalan yang dilalui dan postur tubuh yang diperlukan dalam melaksanakan jalan tersebut. Jalan yang dilalui bisa karena melaksanakan program yang telah ditentukan atau mengikuti jalan seseorang pengunjung pameran sambil melakukan suatu tindakan seperti memberi petunjuk lokasi pameran.
Ketiga data streaming itu diolah dengan aplikasi yang sesuai, dan disalurkan melalui kanal data yang sesuai agar bisa disimpan dalam database, untuk menjadi bahan laporan kegiatan, dan juga sebagai bentuk pembelajaran dari kejadian yang ada di lingkungan Robot Lumen ini.

Tentang Database Lumen


Data yang didapatkan dari streaming kamera, streaming audio, dan streaming gerakan tersebut akan memperkaya data yang sudah ada di dalam database secara real-time. Di samping data streaming dari aktivitas Robot Lumen, data lain yang saat ini dimiliki Lumen Database Server adalah data ilmu pengetahuan baku dari Yago/Wikipedia, dan data pribadi para periset Lumen sebagai pembanding baku untuk identitas, wajah dan suara.

Untuk pengembangannya, direncanakan data dari berbagai sumber di internet seperti YouTube dan sumber lainnya akan tersedia secara bertahap sesuai kebutuhan, sebagaimana tercantum dalam bagian satu dari rangkaian dokumen ini, silahkan klik disini untuk lebih detilnya.

Secara garis besar ada 2 komponen dari Lumen Database Server, yaitu Lumen Persistence Application, dan Knowledge Repository Database, yang keduanya akan bekerjasama untuk mendukung fungsi server database Lumen.

Lumen Persistence Application



Lumen Persistence Application adalah serangkaian program yang digunakan untuk mengelola data yang masuk dan yang keluar. Adapun rangkaian program persistence disusun dengan bahasa Groovy yang menggunakan syntax Java dan Java Script. Sejauh ini aplikasi pada folder lumen/pesistence yang sudah dibuat dan sudah berjalan untuk hal yang sederhana bisa dilihat pada gambar di atas.

Ada pula list program lainnya di folder lumen-sdk sebagai berikut:



Setelah program dijalankan, maka output sementara adalah sebagai berikut


bisa dilihat pada baris ke-4 dari bawah, bahwa ada satu route yang telah aktif dalam server, dan pada baris terbawah sudah disampaikan adanya 1 data yang sudah tersedia dan siap diserahkan kepada browser yang melakukan query. Hasilnya adalah sebagai berikut:


Ini adalah hasil tahap pertama dari server database Lumen, yang sementara hanya berisi 1 data dengan hanya satu jenis query. Tahapan berikutnya adalah memperbanyak pilihan query dan menambah data dari input manual maupun data akuisisi dari Yago/Wikipedia, yang direncanakan akan siap semua pada tanggal 6 Februari 2015




Jumat, 23 Januari 2015

Penyimpanan Kecerdasan Lumen, Part-1

Skematik umum


Sistem yang akan saya kembangkan untuk Robot Lumen adalah server penyimpan kecerdasan atau dalam bahasa Inggris disebut knowledge repository server. Server ini akan menyimpan data teks untuk kecerdasan bahasa, data visual untuk pengenalan pengguna, data suara untuk pengenalan pengguna, dan data gerakan Robot untuk merespon permintaan dan perintah pengguna


Informasi Umum



Sebuah repositori pengetahuan adalah sistem komputerisasi yang secara sistematis menangkap, mengatur dan mengkategorikan pengetahuan dalam sebuah organisasi. Repositori dapat ditanya dan data dapat dengan cepat diambil.
Repositori pengetahuan yang efektif meliputi faktual, konseptual, prosedural dan teknik meta-kognitif. Fitur utama dari repositori pengetahuan tergambar dalam forum-forum komunikasi pakar. Sebuah repositori pengetahuan dapat mengambil banyak bentuk untuk "menyimpan" pengetahuan yang dimilikinya.

Beberapa bentuk repository pengetahuan:

  1. Sebuah server penyimpan kecerdasan sebagai gudang pengetahuan yang bersifat dinamis untuk informasi para pengguna dan wawasan para pengembang database. Database ini bisa juga disebut pengetahuan eksplisit elektronik. 
  2. Bentuk lain dari database adalah perpustakaan, yaitu sebuah repositori pengetahuan dalam bentuk buku . Ini bisa juga disebut database pengetahuan eksplisit fisik, 
  3. Dan komunitas pakar, yaitu gudang pengetahuan sebagai kombinasi dari pengetahuan baku (explicit knowledge) dan pengalaman (tacit knowledge) para pakar tersebut.

Sifat repositori adalah menyimpan dan mengelola berbagai pengetahuan yang dimilikinya. Sebuah repositori (sebagai lawan arsip) dirancang untuk mendapatkan pengetahuan keluar dan masuk. Oleh karena itu akan memiliki beberapa aturan struktur, klasifikasi, taksonomi, manajemen catatan, dll, untuk memfasilitasi keterlibatan pengguna.


Pengantar Sistem Penyimpan Kecerdasan



Sistem penyimpan kecerdasan telah berkembang dari arsip dokumen statis yang diterbitkan seperti buku dan jurnal, menjadi komunitas online yang dinamis yang memfasilitasi pencarian dan navigasi informasi yang relevan dalam platform pembelajaran ringkas dan cepat. Sistem ini bisa menjadi fasilitas untuk belajar cepat, repositori pengetahuan juga memungkinkan dukungan untuk pengujian dan penilaian karyawan.

Fitur Kunci


Ada beberapa fitur kunci dari sistem repositori pengetahuan digital yang efektif, yaitu:

  1. Sentralisasi. Berbagai macam materi kursus digital, dan konten yang dikumpulkan dari berbagai sumber, dapat ditempatkan di sebuah lokasi terpusat di mana ia dapat ditandai, dibagi dan dikomentari secara global dalam satu antar-muka yang konsisten.
  2. Manajemen konten. Luasnya konten pembelajaran dapat mencakup file audio visual, simulasi, data, modul pembelajaran, artikel, blog, video YouTube, praktik terbaik bimbingan, kemampuan pemantauan dan informasi kontak. Konten dicari dengan kata kunci, hasil belajar, dan fasilitas lainnya.
  3. Penghematan biaya. Repositori pengetahuan berpotensi dapat mengurangi biaya pelatihan dan pendidikan dengan membuat materi kursus murah, mengurangi kebutuhan untuk pelatihan kelas dan merangsang pembelajaran informal yang produktif.
  4. Kontrol akses. Dengan membatasi potongan konten individu melalui otentikasi password dan fungsi keamanan lainnya, administrator server repositori pengetahuan dapat menyelesaikan berbagai tujuan. Kontrol akses termasuk menjaga  hak milik informasi dan melindungi kekayaan intelektual. Beberapa repositori menggunakan manajemen hak digital (DRM) untuk melindungi dan menguangkan kekayaan intelektual organisasi di pasar.
  5. Manajemen Rekam. Repositori pengetahuan dapat diintegrasikan dengan sistem manajemen pembelajaran untuk berbaur mulus ke dalam program pembelajaran dan manajemen orang-orang berbakat dalam organisasi.

Praktek Terbaik

Berbagai praktek sistem repositori pengetahuan terbaik dimanfaatkan melalui organisasi pelatihan untuk memfasilitasi pembelajaran sekaligus melindungi informasi hak milik dan kekayaan intelektual.
  1. Memastikan kualitas daripada kuantitas. Untuk melindungi dan menjaga integritas informasi yang terkandung dalam repositori, organisasi sering membuat sistem "pelayan" ahli yang bertanggung jawab atas kawasan atau komunitas tertentu. "Pelayan" harus bisa menjadi moderator posting, menanggapi pertanyaan dan, bila memungkinkan melatih peserta didik, serta menyelenggarakan webinar.
  2. Memberikan pengawasan dan kontrol. Untuk memastikan bahwa tujuan berbagi pengetahuan ditetapkan dan dilaksanakan, organisasi dapat membuat sebuah komite lintas fungsional untuk mengatur penghargaan karyawan dan pelatihan profesional. Panel bertugas untuk memastikan bahwa repositori menjadi aspek berharga dari pengalaman belajar holistik untuk ditujukan khalayak internal dan eksternal. Itu akan memastikan bahwa orang yang tepat dapat memperoleh pengetahuan yang benar pada waktu yang tepat. Prioritas lain termasuk mengukur efektivitas modul e-learning yang dibuat untuk mengajarkan keterampilan penting dan memodifikasi modul-modul tersebut sesuai kebutuhan.
  3. Melindungi kekayaan intelektual. Repositori pengetahuan yang diperlukan untuk melindungi integritas dan relevansi properti intelektual (IP). Organisasi dapat melakukannya secara efektif dengan membangun kepatuhan terhadap hak cipta dan manajemen hak digital (DRM) ke dalam sistem sehingga administrator dapat melacak penggunaan konten. Kebanyakan repositori saat kekurangan kemampuan DRM, keterbatasan utama yang berdampak kekecewaan para pencipta konten dan pemegang IP lainnya, yang pada akhirnya akan menghambat pertumbuhan platform.

Senin, 12 Januari 2015

Skematik Arsitektur Robot Lumen

Robot Lumen adalah serangkaian sistem hardware software yang memiliki interaksi dengan personifikasi sebuah Robot yang disebut Lumen. Sistem Robot ini dikembangkan oleh tim robotik Lumen, grup LSKK, Fakultas STEI, Institut Teknologi Bandung. Robot ini berbasis Robot Nao dengan 25 derajat kebebasan yang diproduksi oleh Aldebaran Perancis.

Diagram Blok Robot Lumen adalah sebagai berikut



Secara garis besar ada dua kelompok user, yaitu: Adminstrator dan Pengguna. Administrator adalah pengatur dan pengendali sistem, sedangkan pengguna adalah orang-orang yang memanfaatkan jasa Robot Lumen. Pengguna bisa dibagi lagi menjadi pengguna khusus, yaitu para pengembang, periset, dan pendukung riset Robot Lumen; dan pengguna umum, yaitu orang-orang yang akan berinteraksi dengan Robot Lumen, sebagai contoh dalam sebuah pameran, pengguna umum adalah para pengunjung booth Robot Lumen.

Untuk melaksanakan tugas-tugasnya, sistem Lumen dibagi menjadi dua kelompok besar, yaitu Sistem Robot Lumen yang didukung oleh Sistem Server Lumen yang membantu mengolahkan data agar bisa memberikan respon sesuai permintaan para Pengguna.

Diagram Blok Input Output Robot Lumen 

Adapun diagram blok pengaturan input-output Robot Lumen adalah sebagai berikut:


Berbagai data yang masuk dan tertangkap sistem sensor akan dikelola sebagai berikut:

  1. Data visual dari 2 kamera pada Robot Lumen akan diolah dan dikembangkan menjadi sistem pengenal wajah pengguna dan obyek yang terkait dengan kegiatan bersama pengguna. Data ini akan disimpan dalam bentuk gambar (image) disertai sejumlah atribut yang menjelaskan gambar tersebut.
  2. Data visual juga akan dikembangkan untuk merespon bahasa tubuh dan bahasa wajah (body language) pengguna, bila library untuk body language sudah bisa dikembangkan, sehingga pengguna bisa memerintahkan atau meminta Robot Lumen mengerjakan sesuatu tanpa harus mengatakannya secara verbal.
  3. Data suara dari 2 mikropon pada Robot Lumen akan dikonversikan menjadi teks dengan unit speech to text agar bisa didapatkan maknanya, untuk kemudian dicarikan jawaban yang sesuai dengan unit pengolah bahasa natural. Jawaban berbentuk teks yang dihasilkan unit pengolah bahasa natural selanjutnya akan diolah oleh unit text to speech agar bisa dikeluarkan dengan speaker dalam bentuk jawaban suara.
  4. Data suara juga akan dikembangkan menjadi sistem pengenal suara orang, terutama jika unit voice spectrum analyzer sudah bisa dikembangkan. Selanjutnya data spektrum suara akan disimpan berikut atribut yang menjelaskan pemilik suara tersebut.
  5. Perintah atau permintaan pengguna akan bisa mengaktifkan fungsi gerakan dari Robot Lumen, yaitu dengan memanfaatkan software pengendali dan motor-motor aktuator yang mengatur 25 derajat kebebasan Robot Lumen. Sebuah perintah atau permintaan akan diterjemahkan oleh software untuk menggerakkan sejumlah aktuator secara bersamaan.

Sistem Pengaturan Robot Lumen 

Sistem pengaturan Robot Lumen bisa dijabarkan dalam skematik yang lebih detail sebagai berikut:


Dua komponen utama sistem Lumen adalah Sistem Robot Lumen dan Sistem Server Lumen. Sistem Robot Lumen merupakan sebuah entitas yang berisikan sejumlah sensor pengambil data dan aktuator pewujud respon yang dilengkapi dengan sejumlah perangkat lunak, baik yang dikembangkan oleh Aldebaran selaku produsen Robot Nao, maupun oleh tim robotika Lumen LSKK.

Karena keterbatasan daya komputasi dari Robot Nao, maka Sistem Robot Lumen akan didukung oleh 3 server dan 3 komputer, yaitu:
  1. Server Pengolah Bahasa Natural (Natural Language Processing Server), yaitu server yang dibuat untuk mengolah data teks yang masuk dari unit speech to text, lalu memilah-milah teks yang masuk menjadi beberapa kata kunci, dan mencari alternatif jawabannya dari database yang tersedia. Bila data yang tersedia masih kurang lengkap, maka unit perambah internet (internet crawler unit) akan diaktifkan untuk mencarikan jawabannya pelengkap.
  2. Server Pengolah Data Mengalir (Data Streaming Server), yang mengelola semua data yang tertangkap oleh sekitar 30 sensor Robot Lumen, server ini kan memilah-milah data yang perlu diingat dalam memori jangka panjang sebagai pembelajaran Robot, disimpan dalam memori jangka menengah untuk dikembangkan dengan sejumlah data pelengkap, dan data yang dibiarkan mengalir dalam memori jangka pendek atau tanpa diingat sama sekali.
  3. Server Penyimpan Kecerdasan (Database / Knowledge Repository Server), yaitu server utama pengendali kecerdasan Robot, yang bertugas menyimpan data dan memori jangka panjang. Dalam server ini akan tersimpan data visual wajah dan obyek berikut atributnya, data spektrum suara berikut atribut pemiliknya, data teks untuk mendukung kecerdasan bahasa Robot, dan data gerakan Robot untuk berbagai tugas utama.
  4. Komputer Pengolah Suara (speech processing computer), yaitu komputer yang bertugas untuk menangkap suara pengguna yang selanjutkan akan dikonversikan menjadi sejumlah teks dan kata kunci yang spesifik. Komputer pengolah suara selanjutnya akan memilah kata kunci untuk dicarikan jawaban seketika dari Server Pengolah Bahasa Natural, dan mengaktifkan unit perambah internet untuk mencarikan beberapa jawaban alternatif dan pelengkap. Jawaban alternatif dan pelengkap ini kemudian akan ditawarkan juga kepada pengguna untuk dipilih. Jawaban terpilih akan dikonfirmasi kepada pengguna, untuk kemudian disimpan dalam memori jangka panjang setelah masuknya sejumlah informasi pendukung. Bila unit penganalisa spektrum suara sudah tersedia, maka komputer pengolah suara ini juga akan berusaha mengenali pemilik suara tersebut. Komputer pengolah suara mengendalikan 2 buah speaker pada Robot Lumen.
  5. Komputer Pengolah Gerakan (motion processing computer), yaitu komputer yang bertugas untuk mengatur gerakan detail dari 25 derajat kebebasan Robot Lumen sebagai respon terhadap permintaan atau perintah pengguna. Komputer pengolah gerakan mengendalikan 25 motor pada Robot Lumen.
  6. Komputer Pengolah Visual (image processing computer), yaitu komputer yang bertugas untuk menganalisis data gambar yang tertangkap oleh dua kamera pada Robot, untuk mengenali pengguna atau menangkap perintah / permintaan lewat bahasa tubuh pengguna. Komputer pengolah visual juga mengendalikan 3 set LED pada Robot Lumen sebagai bentuk respon visual.
Robot Lumen terhubung dengan 3 server dan 3 komputer pendukung Robot Lumen lewat router melalui jaringan wireless, sedangkan server dan komputer tersebut saling terhubung lewat jaringan wireless atau kabel ethernet