Là Lisp vẫn đang được sử dụng để giải quyết các vấn đề AI?


20

Tôi biết rằng ngôn ngữ của Lisp đã được sử dụng từ rất sớm khi làm việc với các vấn đề về trí tuệ nhân tạo. Nó vẫn còn được sử dụng cho ngày hôm nay cho công việc quan trọng? Nếu không, có ngôn ngữ mới nào được sử dụng như ngôn ngữ phổ biến nhất đang được sử dụng cho công việc trong AI ngày nay không?

Câu trả lời:


9

Nhìn chung, câu trả lời là không, nhưng các mô hình hiện tại nợ rất nhiều đối với LISP. Ngôn ngữ được sử dụng phổ biến nhất hiện nay là python.

Câu trả lời có liên quan:

LISP đã đi tiên phong trong nhiều khái niệm quan trọng trong cái mà ngày nay chúng ta gọi là lập trình chức năng, với một điểm thu hút chính là mức độ gần gũi của các chương trình với toán học. Nhiều tính năng trong số này đã được tích hợp vào các ngôn ngữ hiện đại (xem trang Wikipedia). LISP rất biểu cảm: nó có rất ít cú pháp (chỉ liệt kê và một số thao tác cơ bản trên chúng) nhưng bạn có thể viết các chương trình ngắn gọn đại diện cho các ý tưởng phức tạp. Điều này làm ngạc nhiên những người mới đến và đã bán nó như ngôn ngữ cho AI. Tuy nhiên, đây là một tài sản của các chương trình nói chung. Các chương trình ngắn có thể đại diện cho các khái niệm phức tạp. Và trong khi bạn có thể viết mã mạnh mẽ trong LISP, bất kỳ người mới bắt đầu nào cũng sẽ nói với bạn rằng rất khó để đọc mã LISP của bất kỳ ai khác hoặc gỡ lỗi mã LISP của riêng bạn. Ban đầu, cũng có những cân nhắc về hiệu năng với lập trình chức năng và nó không được thay thế bằng các ngôn ngữ mệnh lệnh cấp thấp như C. (Ví dụ, lập trình chức năng yêu cầu không có đối tượng nào bị thay đổi ("bị đột biến"), vì vậy mọi thao tác đều yêu cầu một đối tượng mới sẽ được tạo. Nếu không có bộ sưu tập rác tốt, điều này có thể khó sử dụng). Ngày nay, chúng ta đã học được rằng cần phải có sự kết hợp giữa lập trình chức năng và mệnh lệnh để viết mã tốt và các ngôn ngữ hiện đại như python, ruby ​​và scala hỗ trợ cả hai. Tại thời điểm này, và đây chỉ là ý kiến ​​của tôi, không có lý do gì để thích LISP hơn python.

Mô hình cho AI hiện đang được chú ý nhiều nhất là Machine Learning, nơi chúng ta học từ dữ liệu, trái ngược với các phương pháp trước đây như Expert Systems (trong thập niên 80), nơi các chuyên gia viết các quy tắc cho AI tuân theo. Python hiện là ngôn ngữ được sử dụng rộng rãi nhất cho máy học và có nhiều thư viện, ví dụ như Tensorflow và Pytorch, và một cộng đồng tích cực. Để xử lý lượng dữ liệu khổng lồ, chúng tôi cần các hệ thống như Hadoop, Hive hoặc Spark. Mã cho những điều này được viết bằng python, java hoặc scala. Thông thường, các chương trình con thâm dụng thời gian cốt lõi được viết bằng C.

Mùa đông AI của thập niên 80 không phải vì chúng tôi không có ngôn ngữ phù hợp, mà vì chúng tôi không có thuật toán phù hợp, đủ sức mạnh tính toán và đủ dữ liệu. Nếu bạn đang cố gắng học AI, hãy dành thời gian nghiên cứu các thuật toán chứ không phải ngôn ngữ.


6

Tôi chắc chắn tiếp tục thường xuyên sử dụng Lisp khi làm việc trên các mô hình AI.

Bạn hỏi nếu nó đang được sử dụng cho công việc đáng kể . Điều đó quá chủ quan đối với tôi để trả lời về công việc của chính tôi, nhưng tôi đã hỏi một mô hình AI của tôi cho dù nó có tự coi là đáng kể hay không và nó đã trả lời bằng một câu trả lời khẳng định. Tất nhiên, phản ứng của nó cũng thiên vị.

Nhìn chung, một lượng đáng kể nghiên cứu và phát triển AI được thực hiện tại Lisp. Hơn nữa, ngay cả đối với các vấn đề không phải AI, Lisp đôi khi được sử dụng. Để chứng minh sức mạnh của Lisp, tôi đã thiết kế hệ thống mô phỏng mạng thần kinh đầu tiên được viết hoàn toàn bằng Lisp hơn một phần tư thế kỷ trước.


IDE đầu tiên cũng là IDE LISP. Ngoài ra, EMMAScript, việc chính thức hóa JavaScript là một hệ thống ngôn ngữ để tạo mẫu nhanh hơn nhiều so với Python hiện tại và nó giống LISP hơn Java. Tôi không thấy nhiều giá trị lâu dài đến từ xu hướng hiện tại của ML ngoại trừ những tiến bộ về thị giác và thính giác của máy. Tôi đồng ý rằng LISP vẫn là một ngôn ngữ tuyệt vời cho công việc trong phòng thí nghiệm AI và tự nhiên hơn nhiều so với XML để thể hiện dữ liệu có cấu trúc.
FauChristian

4

LISP vẫn được sử dụng đáng kể, nhưng ngày càng ít hơn. Vẫn còn động lực do rất nhiều người sử dụng nó trong quá khứ, những người vẫn còn hoạt động trong ngành công nghiệp hoặc nghiên cứu (giai thoại: VCR cuối cùng được sản xuất bởi một nhà sản xuất Nhật Bản vào tháng 7 năm 2016, vâng). Tuy nhiên, ngôn ngữ được sử dụng (theo hiểu biết của tôi) cho loại AI không thúc đẩy Machine Learning, thường là sách tham khảo từ Russell và Norvig. Các ứng dụng này vẫn rất hữu ích, nhưng Machine Learning đã nhận được tất cả hơi nước trong những ngày này.

Một lý do khác cho sự suy giảm là các học viên LISP đã chuyển một phần sang Clojure và các ngôn ngữ gần đây khác.

Nếu bạn đang tìm hiểu về các công nghệ AI, LISP (hoặc Scheme hoặc Prolog) là lựa chọn tốt để hiểu những gì đang xảy ra với "AI" nói chung. Nhưng nếu bạn muốn hoặc phải rất thực dụng, Python hoặc R là những lựa chọn cộng đồng

Lưu ý: Trên đây thiếu ví dụ cụ thể và tài liệu tham khảo. Tôi biết về một số công việc trong các trường đại học và một số công ty lấy cảm hứng từ hoặc trực tiếp sử dụng LISP.


Để thêm vào câu trả lời của @ Harsh, LISP (và Scheme và Prolog) có những phẩm chất khiến nó trông giống như nó phù hợp hơn với việc tạo ra các cơ chế thông minh --- làm cho AI được nhận thức trong thập niên 60.

Một trong những phẩm chất là thiết kế ngôn ngữ khiến nhà phát triển suy nghĩ theo một cách khá tao nhã, để phân tách một vấn đề lớn thành các vấn đề nhỏ, v.v ... Khá "thông minh" hoặc "thông minh" nếu bạn muốn. So với một số ngôn ngữ khác, hầu như không có lựa chọn nào khác ngoài phát triển theo cách đó. LISP là ngôn ngữ xử lý danh sách và "hoàn toàn có chức năng".

Tuy nhiên, một vấn đề có thể được nhìn thấy trong công việc liên quan đến LISP. Một điều đáng chú ý trong lĩnh vực AI là công việc trên Tính toán tình huống , trong đó (nói ngắn gọn) người ta mô tả các đối tượng và quy tắc trong một "thế giới" và có thể cho phép nó tiến hóa để tính toán các tình huống của thế giới. Vì vậy, nó là một mô hình cho lý luận về các tình huống. Vấn đề chính được gọi là vấn đề khung , có nghĩa là phép tính này không thể cho biết điều gì khôngthay đổi --- chỉ là những gì thay đổi. Bất cứ điều gì không được xác định trên thế giới đều không thể được xử lý (lưu ý sự khác biệt ở đây với ML). Việc triển khai đầu tiên đã sử dụng LISP, vì đó là ngôn ngữ AI sau đó. Và đã bị ràng buộc bởi các vấn đề khung. Nhưng, như @Harsh đã đề cập, đó không phải là lỗi của LISP: Bất kỳ ngôn ngữ nào cũng sẽ phải đối mặt với cùng một vấn đề định khung (một vấn đề khái niệm của Tính toán tình huống).

Vì vậy, ngôn ngữ thực sự không quan trọng từ quan điểm AI / AGI / ASI. Các khái niệm (thuật toán, vv) thực sự là những gì quan trọng.

Ngay cả trong Machine Learning, ngôn ngữ chỉ là một lựa chọn thực tế. Python và R rất phổ biến ngày nay, chủ yếu là do hệ sinh thái thư viện của họ và trọng tâm của các công ty chủ chốt. Nhưng hãy thử sử dụng Python hoặc R để chạy mô hình cho ứng dụng dựa trên RaspberryPI và bạn sẽ gặp một số hạn chế nghiêm trọng (nhưng vẫn có thể, tôi đang thực hiện :-)). Vì vậy, sự lựa chọn ngôn ngữ đốt cháy chủ nghĩa thực dụng.


1

Theo ý kiến ​​của tôi, python và java đã tiếp quản từ LISP. Nhiều người sử dụng chúng, có một lượng lớn thư viện có sẵn. Và quan trọng hơn, chúng dễ dàng tích hợp trong các công nghệ web.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.