Memaparkan catatan dengan label aiml. Papar semua catatan
Memaparkan catatan dengan label aiml. Papar semua catatan

Ahad, 20 Ogos 2017

#155: Old And New AI

Image result for neural network
Diagram Neural Network
Bercakap tentang Artificial Intelligence, waktu sekolah menengah dulu (lebih kurang 17 tahun lepas), ambe pernah fork satu projek front-end untuk AIML (Artificial Intelligence Markup Language) dan ambe tulis AIML untuk berinteraksi dalam bahasa Kelantan. Sebagai orang yang membangun sendiri aplikasi itu, ambe tahu selok belok dan algorithm engine AI tersebut. 

Dan ambe nak bagitahu, AIML adalah robot bodoh. Ia guna random number generator untuk pilih teks untuk reply apa yang user taip. Dalam masa saya, ia guna algorithm "regular-expression"-like untuk periksa dan match teks yang ditaip user dengan pre-written teks yang ditulis programmer. 

Contohnya, user taip "hello", AIML akan match teks "hello" dengan beberapa respon yang dipilih secara rawak, contohnya "hai" atau "hello there!" atau "hai watpe tu?" dan lain-lain. Hasilnya user akan dapat respon berlainan walaupun taip "hello" berkali-kali, memberi impression bahawa ia robot yang bijak (padahal tak bijak pun, tapi ambe rasa ini penting untuk lepasi ujian AI, Turing-Test). Lagi, ia ada ciri-ciri yang boleh menyimpan data seperti, jika user taip "nama saya Abu. cita-cita saja ialah menjadi angkasawan", maka AIML akan menyimpan nama "Abu" kedalam variable "nama" dan "angkasawan" kedalam variable "ambition" yang boleh diakses semula kemudian. But still, ia robot yang bodoh yang bijak memanfaat operator mudah komputer.
Membandingkan AI moden, ambe dapati ia banyak guna terma yang asing bagi ambe sendiri seperti "Neural Network". Ambe belum dapat idea yang jelas tentang NN, cuma ikut pemahaman ambe, ia satu konsep dimana, komputer akan berusaha bersungguh-sungguh (ala brute force) untuk mimic kemampuan fikiran manusia. Contohnya, bagaimana AI boleh mengenal gambar sebuah kereta, sedangkan AI tak mampu melihat dan data JPG hanyalah satu stream of 0 dan 1. Cara NN adalah, tunjukkan beribu-ribu foto kereta pada NN dari semua sudut, hingga ia boleh kenal bentuk kereta dari sudut apa pun foto diambil. Cara ini menggunakan banyak processing power, tapi hasilnya AI yang lebih "bijak". Sekarang ambe dah lihat AI yang mampu kenal objek, kenal emosi manusia melalui wajah, mampu hasilkan lukisan cantik (Prism), generate percakapan meniru suara manusia (WaveNet). trade stocks (neural network expert advisor) etc.
Oleh sebab ini, ambe agak bersetuju dengan pendapat Elon Musk. AI moden (Neural Network) adalah teknologi berisiko untuk manusia. Modern AI sangat cekap, efisyen, pantas, dan boleh outsmart manusia dengan mudah. Ambe bukan anti-intellectuals, malah ambe fikir kebijaksanaan amat berguna dan dimanfaati. Tapi jika tiba masa AI menjadi cukup matang dan mampu mencapai consciousness, peradaban manusia boleh tergoncang. Sekarang pun kita dah boleh lihat orang mula bercakap tentang profession yang berpotensi dirampas AI/robot dimasa depan, seperti designer (terdapat AI yang boleh hasilkan beribu-ribu design mengikut kehendak pengguna dalam sekelip mata), high frequency trader yang boleh outsmart kebanyakan human trader, AI yang boleh compose concerto, etc. Sementara hal ini amatlah produktif untuk membantu manusia, tapi bagaimana jika AI mula menjatuhkan manusia? Hari ini, modern AI mula nampak seperti permulaan filem fiksyen sains. Cuma ia bukan fiksyen lagi.
Bersama post ini, ambe ada attach bersama projek AI front end yang ambe bernama LAFE yang ambe fork pada 2011 (archived by Google Code) dan kamu boleh cuba AI bodoh yang ambe tulis 7 tahun lepas untuk lihat bagaimana ia berfungsi. Kamu boleh download AIML sets di alicebot.org, extract semua file .aiml kedalam folder "knowledge" untuk tambah "pengetahuan" robot ini.
Lazarus AIML Front-End.

Rabu, 21 Mei 2014

#100: A.I

Pada tahun 2001 dulu, Stephen Spielberg ada mengeluarkan satu filem bertajuk A.I (Artificial Intelligence). Ambe obses betul dengan komputer jadi ambe memang minat dengan filem begini. Ambe berpendapat, adalah menjadi satu yang mustahil bagi programmer untuk mengaturcara menjadikan komputer atau robot boleh berfikir seperti manusia. Tapi ambe tersentap bila ambe melawati laman web promosi filem A.I (2001).

Di laman web promosi filem ini, terdapat satu ruang untuk berchat (seperti IRC). Ambe login dan memulakan perbualan. Ambe disambut oleh "seseorang" yang membalas setiap pertanyaan ambe. "Dia" berchat dengan bahasa inggeris, boleh mengingati nama ambe, dan memberi respon dengan sangat cepat bila di tanya. Ambe terfikir, takkan lah ada staff yang menjawab semua pertanyaan dari beribu-ribu pelawat laman web itu.

Ambe siasat lagi, rupanya "orang" yang sedang ambe chatting itu adalah chatbot. Chatbot ini menggunakan teknologi AIML (Artificial Intelligence Markup Language). Ambe langsung tak menyangka rupanya bukan bersama manusia ambe berchatting, tapi bersama chatbot artificial intelligence. Respons yang ambe dapat dari chatbot ini semuanya relevan dengan pertanyaan ambe. Seakan ia berfikir seperti manusia betul.

HAL 9000 from 2001:A Space Odyssey
It's "consciousness"
Ambe terus mengkaji dengan penuh minat tentang teknologi AIML yang digunakan oleh chatbot tadi. Bila ambe "menggali" lebih dalam teknologi AIML, ambe dapati ia hanyalah pengaturcaraan yang tidaklah rumit. Ia banyak berkisar tentang linguistic dan bukannya kepandaian buatan yang sebenar. Ia mungkin nampak "bijak" tapi ia bukan satu "consciousness" (seperti Samantha dari filem Her (2013)). AIML mengambil input dalam bentuk ayat dan menyemak input ayat tadi kemudian memberikan respon menggunakan list-list ayat yang telah diprogramkan secara rawak. AIML boleh mengset pemboleh ubat yang kita manusia akan melihat ini sebagai satu keupayaan untuk mengingati. Contohya, ayat "My name is Johari", dari segi linguistik, selepas ayat "My name is", ia mestilah disusuli dengan nama. AIML boleh menyemak ayat ini dan mengambil perkataan selepas ayat ini sebagai nama dan menyimpannya didalam pemboleh ubah contohnya "name". Ini adalah simple tapi bagi ambe ia adalah pengaturcaraan yang bijak.

Ambe ada menulis banyak kod AIML dalam bahasa melayu sewaktu di sekolah menengah dulu. Malangnya sekarang file-file kod AIML ambe tu telah hilang. Set kod AIML yang lebih lengkap boleh didapati di GoogleCode dan dengan set kod AIML ini, anda boleh menyentuh untuk bersembang dengannya mengenai banyak perkara contohnya dari politik hinggalah sejarah dunia.

Ambe juga ada meng"port"kan satu projek interpreter AIML bernama "PASCALice" yang asalnya diprogramkan dalam Borland Delphi 5, ambe portkan ia ke Lazarus iaitu satu alternatif IDE opensource untuk Borland Delphi 5. Project ambe ini ambe beri nama LAFE, acronym untuk Lazarus AIML Front-End. Anda boleh download project ambe ini di GoogleCode.

Lazarus AIML Front-End

Isnin, 2 Januari 2012

#8: Lafe - A Lazarus AIML Front-End

Lamo dok update blog :) Dalam beberapa minggu ni saya banyak bereksplorasi dalam programming. Saya jumpa banyak perkara yang mungkin dah ketinggalan zaman, tapi saya tetap menghargai hasil kerja yang mungkin umurnya dah berbelas tahun. Antara yang paling menarik minat saya adalah project SQLite, TCC dan AIML.

AIML sebenarnya saya telah jumpa beberapa tahun lepas (sewaktu masih di sekolah menengah) dan pada waktu tu saya masih lagi baru dalam dunia programming. Saya menggunakan Borland Delphi IDE untuk compile project AIML bernama PASCAlice iaitu front-end Delphi untuk Artificial Intelligence Markup Language. Beberapa minggu lepas saya telah mencari semula project ini dan dengan pengganti open-source untuk Delphi IDE iaitu Lazarus, saya cuba mengconvertnya supaya ia compatible dengan Lazarus dan compilernya, Free Pascal. Hasilnya bagus. Saya telah berjaya untuk compile PASCAlice di Lazarus IDE v0.9.30 dan menghasilkan executable yang setakat ini boleh digunakan untuk windows. Untuk platform lain walaubagaimanapun masih belum dicuba. Disebabkan version saya of PASCAlice telah banyak diubahsuai dan interfacenya banyak lari, jadi saya fikir untuk fork-kan project PASCAlice menjadi Lafe (disebut seperti Cafe dengan "L" menggantikan "C"). Ini Lafe di http://code.google.com/p/lafe/:

Lazarus AIML Front-End
Saya release project ini dibawah GNU General Public License v2 dan source code boleh didownload terus dari laman google code Lafe. Saya mengalu-ngalukan penyertaan anda untuk menambahbaik lagi project ini dan melaporkan sebarang issue, bug-report atau cadangan. Saya juga mengalu-ngalukan programmer di luar sana yang menggunakan Lazarus di platform lain selain windows seperti Linux atau Mac OSX untuk membantu saya meng"port" project Lafe ini ke platform lain bagi memastikan semua pengguna komputer tidak ketinggalan mendapat manafaat dari praktis programming cross-platform. Terima kaseh.