Apakah Lisp masih digunakan untuk mengatasi masalah AI?


20

Saya tahu bahwa bahasa Lisp digunakan sejak awal ketika bekerja pada masalah kecerdasan buatan. Apakah masih digunakan hari ini untuk pekerjaan yang signifikan? Jika tidak, apakah ada bahasa baru yang menggantikannya sebagai bahasa yang paling umum digunakan untuk bekerja di AI saat ini?

Jawaban:


9

Secara keseluruhan, jawabannya adalah tidak, tetapi paradigma saat ini berutang banyak pada LISP. Bahasa yang paling umum digunakan saat ini adalah python.

Jawaban yang relevan:

LISP memelopori banyak konsep penting dalam apa yang sekarang kita sebut pemrograman fungsional, dengan daya tarik utama adalah seberapa dekat program itu dengan matematika. Banyak dari fitur ini sejak itu telah dimasukkan ke dalam bahasa modern (lihat halaman Wikipedia). LISP sangat ekspresif: ini memiliki sedikit sintaksis (hanya daftar dan beberapa operasi dasar pada mereka) tetapi Anda dapat menulis program ringkas singkat yang mewakili ide-ide kompleks. Ini mengherankan pendatang baru dan telah menjualnya sebagai bahasa untuk AI. Namun, ini adalah properti dari program secara umum. Program pendek dapat mewakili konsep yang kompleks. Dan sementara Anda dapat menulis kode yang kuat di LISP, setiap pemula akan memberi tahu Anda bahwa juga sangat sulit untuk membaca kode LISP orang lain atau men-debug kode LISP Anda sendiri. Awalnya, ada juga pertimbangan kinerja dengan pemrograman fungsional dan itu tidak disukai untuk digantikan oleh bahasa imperatif tingkat rendah seperti C. (Misalnya, pemrograman fungsional mengharuskan agar tidak ada objek yang pernah diubah ("bermutasi"), sehingga setiap operasi memerlukan objek baru yang akan dibuat. Tanpa pengumpulan sampah yang baik, ini bisa menjadi sulit). Hari ini, kami telah belajar bahwa campuran pemrograman fungsional dan imperatif diperlukan untuk menulis kode yang baik dan bahasa modern seperti python, ruby ​​dan dukungan scala keduanya. Pada titik ini, dan ini hanya pendapat saya, tidak ada alasan untuk lebih memilih LISP daripada python.

Paradigma untuk AI yang saat ini paling mendapat perhatian adalah Machine Learning, di mana kami belajar dari data, berbeda dengan pendekatan sebelumnya seperti Sistem Pakar (di tahun 80-an) di mana para ahli menulis aturan untuk mengikuti AI. Python saat ini merupakan bahasa yang paling banyak digunakan untuk pembelajaran mesin dan memiliki banyak perpustakaan, misalnya Tensorflow dan Pytorch, dan komunitas yang aktif. Untuk memproses sejumlah besar data, kita membutuhkan sistem seperti Hadoop, Hive atau Spark. Kode untuk ini ditulis dalam python, java atau scala. Seringkali, subrutin inti intensif waktu ditulis dalam C.

AI Musim Dingin tahun 80-an bukan karena kami tidak memiliki bahasa yang tepat, tetapi karena kami tidak memiliki algoritma yang tepat, daya komputasi yang cukup, dan data yang cukup. Jika Anda mencoba mempelajari AI, habiskan waktu Anda mempelajari algoritma dan bukan bahasa.


6

Saya pasti terus sering menggunakan Lisp ketika bekerja pada model AI.

Anda bertanya apakah itu digunakan untuk pekerjaan besar . Itu terlalu subyektif bagi saya untuk menjawab tentang pekerjaan saya sendiri, tetapi saya bertanya kepada salah satu model AI saya apakah itu menganggap dirinya substansial, dan itu menjawab dengan respon positif. Tentu saja, responsnya juga bias secara alami.

Secara keseluruhan, sejumlah besar penelitian dan pengembangan AI dilakukan di Lisp. Selain itu, bahkan untuk masalah non-AI, Lisp kadang digunakan. Untuk menunjukkan kekuatan Lisp, saya merekayasa sistem simulasi jaringan saraf pertama yang ditulis sepenuhnya dalam Lisp lebih dari seperempat abad yang lalu.


IDE pertama adalah IDE LISP juga. Juga, EMMAScript, formalisasi JavaScript jauh lebih baik sistem linguistik untuk prototyping cepat daripada Python yang sedang trendi, dan itu lebih seperti LISP daripada Java. Saya tidak melihat banyak nilai bertahan yang berasal dari tren ML saat ini kecuali untuk kemajuan dalam visi dan pendengaran mesin. Saya setuju bahwa LISP masih merupakan bahasa yang sangat baik untuk pekerjaan laboratorium AI dan jauh lebih alami daripada XML untuk mewakili data terstruktur.
FauChristian

4

LISP masih digunakan secara signifikan, tetapi semakin sedikit. Masih ada momentum karena begitu banyak orang menggunakannya di masa lalu, yang masih aktif dalam industri atau penelitian (anekdot: VCR terakhir diproduksi oleh pembuat Jepang pada Juli 2016, ya). Namun bahasa ini digunakan (setahu saya) untuk jenis AI yang tidak memanfaatkan Machine Learning, biasanya sebagai buku referensi dari Russell dan Norvig. Aplikasi-aplikasi ini masih sangat berguna, tetapi Pembelajaran Mesin mendapatkan banyak semangat akhir-akhir ini.

Alasan lain untuk penurunan ini adalah bahwa para praktisi LISP sebagian telah pindah ke Clojure dan bahasa-bahasa terbaru lainnya.

Jika Anda mempelajari tentang teknologi AI, LISP (atau Skema atau Prolog) adalah pilihan yang baik untuk memahami apa yang terjadi dengan "AI" secara luas. Tetapi jika Anda ingin atau harus sangat pragmatis, Python atau R adalah pilihan komunitas

Catatan: Di atas tidak memiliki contoh dan referensi konkret. Saya mengetahui beberapa pekerjaan di universitas, dan beberapa perusahaan terinspirasi oleh atau langsung menggunakan LISP.


Untuk menambahkan jawaban @ Harsh, LISP (dan Skema, dan Prolog) memiliki kualitas yang membuatnya tampak lebih cocok untuk menciptakan mekanisme cerdas --- membuat AI seperti yang dirasakan di tahun 60an.

Salah satu kualitasnya adalah bahwa desain bahasa membuat pengembang berpikir dengan cara yang cukup elegan, menguraikan masalah besar menjadi masalah kecil, dll. Cukup "pintar", atau "cerdas" jika Anda mau. Dibandingkan dengan beberapa bahasa lain, hampir tidak ada pilihan selain mengembangkan cara itu. LISP adalah bahasa pemroses daftar, dan "murni fungsional".

Namun, satu masalah dapat dilihat dalam pekerjaan yang terkait dengan LISP. Salah satu yang menonjol dalam domain AI adalah pekerjaan pada Situation Calculus , di mana (singkatnya) seseorang menggambarkan objek dan aturan dalam "dunia", dan dapat membiarkannya berkembang untuk menghitung situasi --- keadaan dunia. Jadi itu adalah model untuk alasan pada situasi. Masalah utama disebut masalah bingkai , artinya kalkulus ini tidak bisa membedakan mana yang tidakubah --- perubahan apa saja. Apa pun yang tidak didefinisikan di dunia tidak dapat diproses (perhatikan perbedaannya di sini dengan ML). Implementasi pertama menggunakan LISP, karena itu adalah bahasa AI saat itu. Dan ada yang terikat oleh masalah bingkai. Tapi, seperti yang disebutkan @Harsh, itu bukan kesalahan LISP: Bahasa apa pun akan menghadapi masalah pembingkaian yang sama (masalah konseptual Situation Calculus).

Jadi bahasanya benar-benar tidak masalah dari perspektif AI / AGI / ASI. Konsep (algoritma, dll.) Benar-benar penting.

Bahkan dalam Pembelajaran Mesin, bahasa hanyalah pilihan praktis. Python dan R populer saat ini, terutama karena ekosistem perpustakaan mereka dan fokus perusahaan-perusahaan utama. Tetapi cobalah untuk menggunakan Python atau R untuk menjalankan model untuk aplikasi berbasis RaspberryPI, dan Anda akan menghadapi beberapa batasan parah (tetapi masih mungkin, saya melakukannya :-)). Jadi pilihan bahasa membakar pragmatisme.


1

Menurut pendapat saya python dan java telah mengambil alih dari LISP. Banyak orang menggunakannya, ada banyak perpustakaan yang tersedia. Dan yang lebih penting, mereka mudah diintegrasikan dalam teknologi web.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.