답변:
첫째, 난 당신이 의미 추측 커먼 리스프 (그 참조 표준 언어 사양입니다 HyperSpec을을 (라 à 효율적인 구현과) SBCL을 ). 그러나 최근 Scheme의 일부 구현은 Bigloo 또는 Chicken / Scheme 과 같은 우수한 구현과 관련이 있습니다 . Common Lisp 및 Scheme (및 Clojure )은 모두 동일한 Lisp 제품군에 속합니다. 그리고 빅 데이터 또는 기계 학습 애플리케이션을 구동 스크립트 언어로, 계략은 할 수 있을 파이썬에 유용한 교체 및도 리스프의 방언이다. BTW, SICP를 읽는 것이 좋습니다Scheme을 사용한 프로그래밍에 대한 훌륭한 소개입니다.
그렇다면 Common Lisp (및 다른 Lisp 방언)는 상징적 AI에 적합합니다. 그러나 최근의 많은 기계 학습 라이브러리는보다 주류 언어 로 코딩됩니다. 예를 들어 TensorFlow 는 C ++ 및 Python으로 코딩됩니다. 딥 러닝 라이브러리 는 대부분 C ++ 또는 Python 또는 C로 코딩되며 GPU 컴퓨팅 부품에 OpenCL 또는 Cuda를 사용하는 경우도 있습니다.
Common Lisp는 다음과 같은 이유로 상징적 인 인공 지능에 적합합니다 .
그러나 대부분의 머신 러닝 및 신경망 라이브러리는 CL로 코딩되지 않습니다. 신경망이나 딥 러닝은 상징적 인공 지능 분야에 속하지 않습니다. 이 질문 도 참조하십시오 .
Eurisko 또는 CyC 와 같은 몇 가지 상징적 AI 시스템 이 CL에서 개발되었습니다 (실제로는 CL 위에 구축 된 일부 DSL에서).
프로그래밍 언어는 그다지 중요하지 않을 수 있습니다. 에서 인공 일반 지능 연구 주제, 어떤 사람들은 모두 자신의 코드 (그래서 그것을 설계하고 생성 할 것 AI 시스템의 아이디어에서 작동 부트 스트랩 방법을). 그런 다음 이러한 시스템에서 생성 된 코드는 C와 같은 저수준 프로그래밍 언어로 생성 될 수도 있습니다. J.Pitrat의 블로그 참조
basile@starynkevitch.net
; 트위터를 사용하기에 너무 늙었습니다
LISP 라는 강연에서 David Nolen ( Clojure 및 ClojureScript에 기여자 ; CoreKanren 의 miniKanren 포트 제작자)은 LISP 라는 강연 에서 LISP가 다른 프로그래밍 언어보다 수십 년 앞서 있다고 말했다. 언어가 그 이름을 유지하지 못한 데는 여러 가지 이유가 있습니다.
이 기사에서는 LISP가 AI에 적합한 이유를 강조합니다.
이 분야에 종사하는 대부분의 친구는 일반적으로 인공 신경 네트워크 및 기계 학습에 Matlab을 사용합니다. 그래도 낮은 수준의 세부 정보를 숨 깁니다. 결과를 찾고 있지만 도착하는 방법이 아니라면 Matlab이 좋습니다. 그러나 저수준의 세부적인 내용조차도 배우고 싶다면 LISP를 한 번 이상 살펴 보는 것이 좋습니다.
다양한 AI 알고리즘과 기술을 이해하고 있다면 언어가 그렇게 중요하지 않을 수 있습니다. 나는 "인공 지능 : 현대적인 접근 방식 (Stuard J. Russell and Peter Norvig)" 을 읽을 것을 제안합니다 . 나는 현재이 책을 읽고 있으며, 그것은 아주 좋은 책입니다.
AI는 머신 러닝, 딥 러닝, 신경망 등을 넘어서는 광범위한 분야입니다. 이러한 분야 중 일부에서 프로그래밍 언어는 전혀 문제가되지 않으므로 (속도 문제 제외) LISP는 분명히 그 주제가 아닙니다. .
예를 들어 검색 또는 AI 계획에서는 C ++ 및 Java와 같은 표준 언어가 빠르며 (특히 C ++) 계획 시스템과 같은 많은 소프트웨어 프로젝트가 오픈 소스이므로 표준 언어를 사용해야합니다 ( 또는 피드백 또는 확장을 이해하는 경우에는 적어도 현명합니다. LISP로 작성된 하나의 플래너 만 알고 있습니다. AI의이 분야에서 프로그래밍 언어 선택의 역할에 대해 약간의 인상을주기 위해 가장 유명하고 가장 중요한 플래너 목록을 제공하겠습니다.
빨리 아래로 :
설명 : 아마도 가장 잘 알려진 고전적인 계획 시스템
URL : http://www.fast-downward.org/
언어 : C ++, 부분 (전처리)은 Python입니다
FF :
설명 : 모든 사람들이 알고 있는 클래식 계획 시스템 인 Fast-Downward와 함께
URL : https://fai.cs.uni-saarland.de/hoffmann/ff.html
언어 : C
VHPOP :
설명 : 가장 잘 알려진 부분 순서 인과 링크 (POCL) 계획 시스템
URL 중 하나 : http://www.tempastic.org/vhpop/
언어 : C ++
SHOP 및 SHOP2 :
설명 : 가장 잘 알려진 HTN (계층 적) 계획 시스템
URL : https://www.cs.umd.edu/projects/shop/
language : SHOP 및 SHOP2의 두 가지 버전이 있습니다. 원래 버전은 LISP로 작성되었습니다. 최신 버전 (JSHOP 및 JSHOP2)은 Java로 작성되었습니다. Pyshop은 Python으로 작성된 추가 SHOP 변형입니다.
PANDA :
설명 : 잘 알려진 또 다른 HTN (및 하이브리드) 계획 시스템
URL : http://www.uni-ulm.de/en/in/ki/research/software/panda/panda-planning-system/
언어 : there PANDA1과 PANDA2는 Java로 작성되고 PANDA3은 주로 Java로 작성되며 일부는 Scala로 작성됩니다.
이것들은 제 생각에 가장 잘 알려진 계획 시스템 중 일부였습니다. 2 년마다 개최되는 국제 계획 대회 (IPC, http://www.icaps-conference.org/index.php/Main/Competitions ) 에서 최신 행사를 검색 할 수 있습니다 . 경쟁 플래너의 코드는 공개 소스로 게시됩니다 (몇 년 동안).