인공 지능에서 lisp가 다른 언어보다 실제로 더 낫다는 증거가 있습니까? [닫은]


21

AI의 대부분의 언어보다 lisp가 더 낫다는 오랜 믿음이 있습니다 (주로리스 퍼가 아닌).

이 믿음은 어디에서 시작 되었습니까? 그리고 실제로 어떤 근거가 있습니까?


4
AI의 다른 언어보다 Lisp가 더 낫습니까? Lisp가 AI 이외의 다른 모든 것에 나쁜가? 이들은 매우 다른 질문입니다 (시나리오 1 : Lisp는 모든 언어에 가장 적합한 언어이고 시나리오 2 : Lisp는 모든 언어에 대한 최악의 언어입니다). 질문의 제목이나 본문을 편집하여 실제로 묻는 질문을보다 명확하게 할 수 있습니다.
Gareth McCaughan

9
허용 된 답변이 Lisp 기계에서 나온 경우 해결책이 있다고 가정합니다.
Martin Beckett

1
@Martin 모든 기본 AI는 제작자를 방어하거나 자신의 존재를 의심해야 할 의무가 있습니다.
Nicole

이것은 AI Programming의 패러다임이 출판 된 후 10 년 정도 전에 작성된 Peter Norvig의 AI 용 Lisp에 대한 훌륭하고 정직한 모습입니다. norvig.com/Lisp-retro.html
michiakig

1
@jwenting : Java에 대한 Norvig의 가장 중요한 점은 10 년 후에도 여전히 유효하다고 생각합니다. Java에는 메타 프로그래밍 기능이 없으며 기능적 프로그래밍을 지원하지 않습니다.
케빈 클라인

답변:


22

LISP와 유사한 언어와 다른 언어의 주요 차이점 중 하나는 LISP에서 코드와 데이터가 동일하다는 것입니다. 이를 통해 프로그램이 언어의 기본 부분으로 새로운 것을 "학습"할 때 런타임 중에 알고리즘의 일부를 수정하는 등의 작업을 수행 할 수 있습니다.

LISP는 매크로를 통해 새로운 언어 의미를 쉽게 추가 할 수있는 능력이 있습니다. 이를 통해 AI가 작동하는 동안 해당 언어가 성장하고 자체 교정되며 발전 할 수있는 가능성을 가지고 AI와 함께 작동하고 진화 할 수있는 DSL을 실제로 정의하고 정의 할 수 있습니다.

Quadrescence에 동의하면 LISP의 사용 내역은 AI에 적합한 LISP 이미지를 향한 먼 길을갔습니다. AI에 LISP가 사용되는 이유가 훨씬 더 역사를 다룹니다.


3
이 속성을 Homoiconicity BTW 라고 합니다.
MSalters

5

lisp의 첫 번째 프로그램 중 일부는 정리 프로 버, 상징적 수학, 고전적인 ELIZA 등이었습니다. Peter Norvig의 PAIP와 같은 책뿐만 아니라 lips가 MIT AI 실험실에서 시작되었다는 사실과 같은 이미지는 일종의 이미지를 얻었습니다. 그 lisp는 AI에 좋습니다.

DARPA는 또한 AI 연구를 위해 대학에 자금을 지원했으며 Symbolics에서 상당량의 하드웨어를 구입했습니다. 자금 부족은 결국 소위 "AI winter"로 이어졌습니다.

마지막으로, 포트란과 같은 원래 언어 (또는 ASM과 같은 "언어")가 수치 계산에 기본적으로 사용되었습니다. 당신은 그것들의 숫자와 배열로 작업했습니다. 요즘 우리는 대부분의 현대 언어로 상징이나 원하는 거의 모든 물건을 만들 수 있습니다.

따라서 인공 지능이 AI에 더 좋은 이유는 더 이상 사실이 아닙니다. 그러나 "작은 인공 지능에 좋다"는 생각은 여전히 ​​남아있다.

lisp가 그 특징과 구조 때문에 더 나은 언어인지 아닌지는 전적으로 다른 경우입니다 (실제로 이런 종류의 것은 AI 이외의 많은 다른 영역에 적용되기 때문에 일반적으로 오래된 화염 전쟁으로 이어질 것입니다).


5
AI를 능가하는 사람들이 Lisp를 사용하고 있었을 수도 있습니다.

1
그리고 개척자들이 시작했을 때 우연이 아니 었습니다. 1950 년대에 다른 언어를 선택할 수 있습니까?
Bo Persson

2
@Persson : 나는 그것이 주장하는 것 다소 우연히. 만약 포트란 이후에 PASCAL이 다음 언어가된다면 AI가 그 언어로 시작했을지 의심 스럽다. LISP는 FORTRAN보다 "더 나은 후보자"가 아니었고, 우연히 좋은 후보자가되었습니다.
Quadrescence

리스프는 이점 (자금)을했지만, 결론을 내렸다 이유를 한 가지 이유를 설명 " 이유 LISP이 경우 더 이상 한 번에 AI에 대한 더 나은 없었다."
Mark C

나는 내가하고있는 다음 의견을 잃었지만, 돌아와서 나중에 끝내기를 바랍니다.
Mark C

3

현재 AI 프로그램에 대해 살펴 보겠습니다 : (1) 로봇 (예 :자가 운전 차량). DARPA 그랜드 챌린지에서 탁월한 자동차 주행 소프트웨어는 Lisp가 아닙니다. 오히려 C ++ 또는 Java와 같은 절차 적 언어였습니다. (2) 자연어의 기계 번역. Lisp는 널리 사용되는 생산 시스템에서이 목적으로 사용되지 않습니다. (3) 체스 게임과 같은 게임. Fritz와 같이 널리 사용되는 우수한 체스 프로그램에서는 Lisp를이 목적으로 사용하지 않습니다.

Lisp는 기본 AISP 데이터 구조가 필요한 기호 추상화 수준에 맞는 기호 논리 프로그램을 신속하게 프로토 타이핑하기 위해 1960 년대 미국 AI 연구소에서 발명하고 개발했습니다. 연산자 및 피연산자 목록으로 표시됩니다.

그러나 프로덕션 프로그램의 경우 정적 유형 언어 및 다양한 타사 라이브러리의 소프트웨어 엔지니어링 이점은 AI 작업을 수행하는 최신 현대 시스템에는 Lisp가 고려되지 않음을 의미합니다.


2
상용 제품을 논의 할 때 고려해야 할 사항이 있습니다 (그리고 DARPA 챌린지 경쟁자들은 시간과 예산 제약 조건에 따라 생성 되었기 때문에 그렇게 생각합니다). 찾기 및 비싸기 (및 / 또는 excentrics, 보통 팀의 좋은 멤버는 아님). 따라서 LISP가 "더 나은"상태 일지라도 다른 것을 사용하는 것이 경제적으로 합리적입니다.
jwenting

3
이러한 프로그램에는 '지능'이 많지 않습니다. 많은 신호 처리 등입니다. 체스 프로그램도 AI를 사용하지 않습니다. 그것은 대부분 무차별 대입, 고도로 최적화 된 검색 + 다른 것들입니다.
Rainer Joswig

"LISP는 일반적으로 알려진 언어 atm이 아니므로 유능한 LISP 프로그래머는 찾기가 어렵고 비용이 많이 듭니다": 저는 Common Lisp를 배우기 시작했지만 전혀 어렵지 않습니다. 좋아, Lisp 전문가가 되려면 오랜 시간이 걸릴 수 있지만 구체적인 프로젝트를 수행 할 기회가 있다면 Lisp를 배우려는 프로그래머를 찾는 것이 어려울 것이라고 생각하지 않습니다.
Giorgio

3

@Stephen Reed는 매우 잘 말했습니다. 70 년대 MIT AI 연구소에 있었다는 것만 추가 할 수 있습니다. 그때 Lisp의 기원에 관한 이야기를 들었습니다. 맹세 할 수는 없지만 다음과 같이 진행됩니다.

존 맥카시 (John McCarthy)는 50 년대에 MIT에 있었고, 프로그램의 속성을 증명하기 위해 노력하고 있었고,이를 위해 람다 미적분학 (Lamda Calculus)과 유사한 간단한 구문을 사용하고있었습니다.

이야기는 대학원생 중 한 명이 프로젝트 (해석, 정리 증명, 또는 상징적 수학, 어느 것을 기억하지 못하는지)를하고 싶었고 McCarthy에게 어떤 언어를 사용할 것인지 물었습니다. 대답은-물론 포트란. (다른 것은 많지 않았으며, 목록 처리 자체는 상당히 잘 알려졌지만 언어가 아닌 서브 루틴 패키지로만 알려져있었습니다.) 어쨌든 중첩 된 목록 구조에서 기호를 처리하는 프로그램이 만들어졌습니다. 그것들을 읽고 인쇄하는 방법과 eval기능, 그리고 언어 인 Voila '와 함께. LIST 처리 언어. 거기에서 벗어났습니다.

우리가 당시에했던 알고리즘 (그리고 여전히 소수의 사람들이하고있는 알고리즘)의 경우, 상징적 표현을 쉽게 조작 할 수있는 언어가 필요했습니다. 이것이 Lisp이 잘한 일입니다. 기본 개념에는 Prolog, Scheme 등과 같은 다른 이름으로 많은 변형이있었습니다.

인공 지능은 많은 사람들에게 많은 것을 의미하며, 다른 언어는 다른 것들에 대해 좋지만 기호 조작으로 설명 될 수있는 문제에 대해서는 어떻게 든 Lisp의 후손이 아닌 유용한 언어를 찾기가 어렵습니다.



@ Thorbjørn : 해당 링크에 감사드립니다. 몇 년 동안 Lisp를 많이 사용했지만 그 생성에 많은 관심을 기울이지 않았습니다.
Mike Dunlavey

비록 Prolog가 상징적 계산으로는 좋지만 Lisp와 밀접한 관련이 있다고 말하지는 않겠습니다. Lisp는 람다 미적분학, 1 차 논리 (2 가지 계산 모델)에 대한 Prolog를 기반으로합니다.
Giorgio

@Giorgio : Prolog의 조상과 사촌은 주로 무엇으로 쓰여 집니까? 리스프 Fischer Black의 추론 프로그램, Micro-Planner 등. 나에게 좋은 책 은 컴퓨터 프로그래밍의 연역적 기초입니다 .
Mike Dunlavey

"프롤로그의 조상과 사촌은 주로 무엇으로 쓰여졌습니까?": 아, 당신은 하나는 다른 하나를 구현하는 데 사용되었다는 의미에서 밀접한 관련성을 의미했습니다. 그들은 비슷한 패러다임을 따르지 않습니다.
조르지오

1

Lisp는 AI라고 불리는 것들, 적어도 90 년 대경까지 AI의 대부분이었던 로직, 검색 및 파싱 관련 것들에 이점이 있습니다.

Lisp의 주요 장점은 매크로, 데이터 코드, 메타 프로그래밍 지원입니다.

표준 ML (SML)은 예를 들어 80 년대 이후 AI에서 널리 사용 된 또 다른 언어입니다. 목표 CAML과 F #은 SML의 진화입니다.

ML 제품군 (및 Haskell 등)의 주요 장점은 패턴 일치입니다. 이것은 아마도 Lisp에서도 가능하지만 언어에 내장 된 것이 아니라 메타 프로그래밍 라이브러리를 통해 가능합니다. Haskell에서도 사용할 수 있지만, 현재로서는 최소한 함수형 프로그래밍 언어 외에는 패턴 일치가 일반적이지 않습니다.

LISP는 기본적으로 확장 유형이없는 람다 미적분학이고 ML은 기본적으로 확장 유형 람다 미적분학이라고 주장했습니다. 나는 람다 미적분학에 대한 지식이 확실하지 않습니다.

AI는 또한 수년에 걸쳐 훨씬 더 광범위한 주제가되었으며 거의 ​​완전히 사라졌습니다. 데이터 마이닝은 AI의 한 하위 필드로 간주 될 수 있습니다. 많은 인공 지능 (OCR, 음성 인식)은 인공 지능이되는 것을 거의 중단했습니다. 그것들은 다른 애플리케이션과 마찬가지로 응용 프로그램 일뿐입니다. 그리고 AI는 신호 처리 및 다른 종류의 숫자 처리에 훨씬 의존합니다.

OCR 및 음성 인식의 경우 AI는 항상 신호 처리 및 수 크 런칭에 의존했습니다. 네, 이것에는 약간의 모순이 있습니다. ;-) 나는 정말로 알지 못하는 것에 대한 가중치를 줄 수 없습니다.

어쨌든 현대 AI 응용 프로그램 전체에 적합한 단일 언어가 없을 수도 있습니다. 현대 AI에는 다국어 개발이 많이 있다고 생각합니다. 그리고 나는 일부 프로젝트에서 C와 C ++를 찾을 수 있다는 것을 거의 보증 할 수 있습니다. 비슷한 이유로 많은 파이썬이 있다면 놀라지 않을 것입니다. 좋은 숫자 라이브러리를 사용하면 파이썬은 숫자 처리 작업을 쉽게 처리 할 수 ​​있습니다.

자율 주행 자동차 중 하나에서 비전 시스템이 경로 계획 시스템과 다른 언어로 작성되고 다른 하드웨어에서 실행된다고 생각합니다.

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