AI 문제를 해결하기 위해 Lisp를 계속 사용하고 있습니까?


20

인공 지능 문제를 해결할 때 Lisp의 언어가 초기에 사용되었다는 것을 알고 있습니다. 오늘날에도 여전히 중요한 작업에 사용되고 있습니까? 그렇지 않다면 오늘날 AI에서 사용되는 가장 일반적인 언어로 자리 잡은 새로운 언어가 있습니까?

답변:


9

전체적으로 답은 '아니오'이지만 현재 패러다임은 LISP에 많은 영향을 미칩니다. 오늘날 가장 일반적으로 사용되는 언어는 파이썬입니다.

관련 답변 :

LISP는 현재 우리가 함수형 프로그래밍이라고 부르는 여러 가지 중요한 개념을 개척했으며 프로그램이 수학과 얼마나 가까운 지에 대한 주요 매력을 가지고있었습니다. 이러한 기능 중 다수는 이후 현대 언어로 통합되었습니다 ( Wikipedia 페이지 참조).). LISP는 매우 표현력이 뛰어납니다. 구문이 거의없고 (단지 목록과 일부 기본 연산 만) 복잡한 아이디어를 나타내는 간결한 프로그램을 작성할 수 있습니다. 이것은 새로 온 사람들을 놀라게하고 AI 언어로 팔았습니다. 그러나 이것은 일반적으로 프로그램의 속성입니다. 짧은 프로그램은 복잡한 개념을 나타낼 수 있습니다. LISP에서 강력한 코드를 작성할 수는 있지만 초보자는 다른 사람의 LISP 코드를 읽거나 자신의 LISP 코드를 디버깅하기가 매우 어렵다고 말할 것입니다. 처음에는 함수형 프로그래밍에 대한 성능 고려 사항이 있었으며 C와 같은 낮은 수준의 명령형 언어로 대체하는 것이 바람직하지 않았습니다. 가비지 수집이 잘되지 않으면 다루기 힘들 수 있습니다). 오늘날 우리는 좋은 코드를 작성하고 파이썬, 루비 및 스칼라와 같은 현대 언어를 모두 지원하려면 기능적 및 명령 적 프로그래밍이 혼합되어 있어야 함을 배웠습니다. 이 시점에서 이것은 내 의견 일 뿐이며, 파이썬보다 LISP를 선호 할 이유가 없습니다.

현재 가장 주목을받는 AI의 패러다임은 머신 러닝으로, 우리가 전문가가 AI에 따라 규칙을 작성하는 Expert Systems (80 년대)와 같은 이전의 접근 방식과 달리 데이터에서 학습합니다. Python은 현재 기계 학습에 가장 널리 사용되는 언어이며 Tensorflow 및 Pytorch와 같은 많은 라이브러리와 활발한 커뮤니티가 있습니다. 방대한 양의 데이터를 처리하려면 Hadoop, Hive 또는 Spark와 같은 시스템이 필요합니다. 이것에 대한 코드는 파이썬, 자바 또는 스칼라로 작성됩니다. 종종 핵심적인 시간 집약적 인 서브 루틴은 C로 작성됩니다.

80 년대의 AI Winter는 올바른 언어가 없었기 때문에가 아니라 올바른 알고리즘, 충분한 계산 능력 및 충분한 데이터가 없었기 때문입니다. 인공 지능을 배우려고한다면 언어가 아닌 알고리즘을 공부하는 데 시간을 보내십시오.


6

AI 모델을 다룰 때 계속해서 Lisp를 계속 사용하고 있습니다.

당신은 그것이 실질적인 작업 에 사용되고 있는지 물었습니다 . 그것은 내 자신의 작업에 관해 대답하기에는 너무 주관적이지만, AI 모델 자체가 실질적인지 여부에 관계없이 AI 모델 중 하나를 쿼리하여 긍정적 인 대답으로 대답했습니다. 물론 응답도 당연히 편향되어 있습니다.

전반적으로 Lisp에서는 상당한 양의 AI 연구 및 개발이 이루어지고 있습니다. 또한 AI 이외의 문제에도 Lisp가 사용되기도합니다. Lisp의 힘을 보여주기 위해, 나는 1/4 세기 전에 Lisp로 완전히 작성된 최초의 신경망 시뮬레이션 시스템을 설계했습니다.


첫 번째 IDE는 LISP IDE였습니다. 또한 JavaScript의 공식화 인 EMMAScript는 현재 유행하는 Python보다 빠른 프로토 타이핑을위한 언어 시스템이 훨씬 우수하며 Java보다 LISP와 비슷합니다. 머신 비전과 청각의 진보를 제외하고 ML의 현재 추세에서 오는 지속적인 가치는 많이 보이지 않습니다. LISP는 여전히 AI 실험실 작업을위한 훌륭한 언어이며 구조화 된 데이터를 표현하는 데 XML보다 훨씬 더 자연 스럽다는 데 동의합니다.
FauChristian

4

LISP는 여전히 많이 사용되지만 그 정도는 적습니다. 과거에도 업계 나 연구에 적극적으로 참여하고있는 많은 사람들로 인해 여전히 추진력이 남아 있습니다. 그러나이 언어는 머신 러닝을 활용하지 않는 인공 지능의 종류 (일반적으로 Russell과 Norvig의 참고서)에 사용됩니다. 이러한 응용 프로그램은 여전히 ​​유용하지만 기계 학습은 요즘 모든 증기를 얻습니다.

거부의 또 다른 이유는 LISP 실무자들이 Clojure 및 다른 최근 언어로 부분적으로 이동했기 때문입니다.

AI 기술에 대해 배우고 있다면 LISP (또는 Scheme 또는 Prolog)는 "AI"가 어떻게 진행되고 있는지 이해하는 것이 좋습니다. 그러나 당신이 원하거나 매우 실용적이어야한다면, 파이썬이나 R은 커뮤니티 선택입니다.

참고 : 위의 구체적인 예와 참조가 부족합니다. 대학에서 일하는 것과 LISP에서 영감을 얻거나 직접 사용하는 회사를 알고 있습니다.


@Harsh의 답변을 추가하기 위해 LISP (및 Scheme 및 Prolog)는 지능적인 메커니즘을 만드는 데 더 적합한 것처럼 보이는 특성을 가지고 있습니다.

자질 중 하나는 언어 디자인으로 인해 개발자가 매우 우아한 방식으로 생각하고 큰 문제를 작은 문제 등으로 분해 할 수 있다는 것입니다. 다른 언어들과 비교해 볼 때, 그러한 방법을 개발하는 것 외에는 선택의 여지가 거의 없습니다. LISP는 목록 처리 언어이며 "순전히 기능적"입니다.

그러나 LISP 관련 작업에서 한 가지 문제가 발견 될 수 있습니다. AI 영역에서 주목할만한 것은 상황 계산법 ( Situation Calculus) 에 관한 연구 인데, 여기서 "세계"의 객체와 규칙을 설명하고 상황 을 계산하도록 진화시킬 수 있습니다. 상황에 대한 추론을위한 모델입니다. 가장 큰 문제는 호출 프레임 문제가 무엇을 말할 수있는이 미적분을 의미 하지변화 --- 무엇이 바뀔까요. 세계에서 정의되지 않은 것은 처리 할 수 ​​없습니다 (여기서 ML과의 차이점 참조). 첫 번째 구현에서는 LISP를 사용했습니다. 왜냐하면 AI 언어이기 때문입니다. 그리고 프레임 문제에 묶여있었습니다. 그러나 @Harsh가 언급했듯이 LISP의 잘못은 아닙니다. 모든 언어가 동일한 프레임 문제 (상황 미적분학의 개념적 문제)에 직면합니다.

따라서 언어는 AI / AGI / ASI 관점에서 실제로 중요하지 않습니다. 개념 (알고리즘 등)이 실제로 중요합니다.

기계 학습에서도 언어는 실용적인 선택입니다. Python과 R은 오늘날 라이브러리 라이브러리와 주요 회사의 초점으로 인해 인기가 있습니다. 그러나 Python 또는 R을 사용하여 RaspberryPI 기반 응용 프로그램의 모델을 실행하려고하면 몇 가지 심각한 제한이 있습니다 (그러나 여전히 가능합니다 :-)). 따라서 언어 선택은 실용주의로 불타 버립니다.


1

제 생각에는 파이썬과 자바가 LISP에서 가져 왔습니다. 많은 사람들이 그것들을 사용하며 많은 양의 라이브러리가 있습니다. 더 중요한 것은 웹 기술에 쉽게 통합 할 수 있다는 것입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.