AI의 최신 프로그래밍 언어? [닫은]


15

몇 년 동안 AI에 대한 선택의 프로그래밍 언어였다 프롤로그 중 하나 또는 LISP , 그리고 잘 알려지지 않은 몇 가지 더 다른 사람은 . 그들 대부분은 70 년대 이전에 설계되었습니다.

변경 사항은 다른 많은 도메인 특정 언어에서 많이 발생하지만 AI 도메인에서는 웹 특정 언어 또는 스크립팅과 같이 많이 노출되지 않았습니다.

AI의 게임을 바꾸고 이전 언어의 부족에서 배우기위한 최근의 프로그래밍 언어가 있습니까?


1
옥타브는 인공 지능 분야에 관심이 있다면 머신 러닝에 좋은 언어입니다.
setzamora

메타 프로그래밍 방식 (즉, 프로그램 생성)도 고려하십시오. J.Pitrat의 블로그를 살펴보십시오 . 당신이 생성하는 언어는 큰 도움이되지 않을 수도 있고, 심지어 C 일 수도 있습니다.
Basile Starynkevitch

답변:


23

내가 스탠포드에서 가르친 온라인에 참여한 AI 과정은 숙제에 파이썬을 사용할 것을 권장했다. Georgia Tech는 여전히 LISP를 사용하고 있다고 생각합니다.

여기서 오류는 "신규"가 "좋다"입니다. AI 연구는 가장 오래된 컴퓨팅 연구 분야 중 하나입니다. 사람들이 다른 기술을 사용할 수 있다는 것을 사람들이 깨닫게되면서 서브 필드를 계속 방해합니다. 언어 처리, 기계 학습 및 데이터 마이닝은 모두 수많은 언어를 사용하는 "실제"응용 프로그램의 예입니다.

따라서 주요 분야가 대규모 관련 분야로 개선 된 것보다 덜 바뀌 었습니다. "과학적 컴퓨팅"이라고 말하고 선형 방정식을 푸는 것을 의미하는 것과 매우 흡사합니다.

언급 한 언어는 지난 20 년 또는 30 년 동안 상당히 발전했습니다. Lisp는 Common Lisp and Clojure를 생성했습니다. 프롤로그는 Visual Prolog (객체가 있습니다 ...)와 Mercury (하스켈과 프롤로그를 가져 가서 함께 방에 고정시킵니다.

AI 연구가 더 이론적이라는 점을 감안하면, 실용성 (언어)보다는 이론 (수학)에 중점을 둔다는 것이 합리적입니다.

말하면, 내가 베팅하는 AI 기술의 가장 큰 혁신가는 Google입니다. 그들은 파이썬을 선호하는 경향이 있습니다 (그리고 Go and Dart이지만 그 요점은 아닙니다). 따라서 파이썬이 "최근의 선택 언어"라고 말하지만 Haskell 또는 OCaml 또는 F # 또는 C # 또는 Java를 사용할 수도 있습니다.


+1 머큐리 언급.
Guy Coder

8

Springer가 출판 한 독일 AI 저널 KI-Künstliche Intelligenz , Volume 26, Number 1 / February 2012 의 최근 특별 호 "Sprachen der KI"( "AI 언어")에서 질문에 대한 답변을 찾을 수 있습니다 . 내가 그 안에 포함 된 토론 종이의 한 부분의 공동 저자 : "어떤 언어 마십시오 사용하여 귀하의 AI 프로그램 및 왜 만들기"여기의 프리 프레스입니다 : http://ai.cs.unibas.ch /papers/schmid-et-al-kijournal2012.pdf

요약하면, 일부 AI 연구자들은 여전히 ​​고전적인 AI 언어 인 Lisp와 Prolog를 맹세합니다. 다른 사람들은 C ++, Java 또는 Python과 같은 주류 언어를 사용합니다. 또 다른 사람들은 새로운 비전 프로그래밍 언어를 탐색하는 것을 좋아합니다.

AI에는 특별한 프로그래밍 언어가 필요한 특별한 것이 없다고 생각합니다. 연구원들이 일반적으로 원하는 것은 빠른 프로토 타이핑이 가능한 프로그래밍 언어입니다. 이것은 오래된 AI 언어 (Lisp, Prolog)이며 최신 "스크립트"언어 (Perl, Python, Ruby 또는 Clojure와 같은 최신 JVM 언어)가 유용합니다.

일부 연구자들은 프로토 타이핑을 넘어서거나 특별한 요구 사항 (예 : 빅 데이터)이 있고 탐색 적 프로그래밍 단계가 끝나고 C, C ++ 또는 Java와 같은 컴파일되거나 강력한 형식의 언어로 알고리즘을 다시 구현해야합니다. 더 나은 문제 파악. 어떤 사람들은 그 시점에서 (문제가 잘 이해 될 때) 더 이상 AI를 다루지 않는다고 말합니다.

마지막 질문으로 돌아가서, 내가 알고있는 새로운 AI 언어의 모든 중요한 개발은 제약 기반 프로그래밍에서 영감을 얻었습니다. 일부는 SICStus 및 SWI와 같은 Prolog 구현에 들어갔고, 다른 일부는 Mercury 및 Mozart / Oz와 같은 Prolog와 유사한 언어를 생성했습니다. 물론 내가 모르는 중요한 새로운 개발이있을 수 있습니다.


2

이 답변의 대부분은 질문에 사용 되었기 때문에 "언어"라는 단어에 초점을 맞추고 있지만 AI를 생각할 때 특정 언어를 생각해야한다고 생각하지 않습니다.

저는이 기술을 수년간 사용해 왔으며 현재 Proof Assistants 와 협력하고 있으며 일부 코드를 OCaml에서 F #으로 변환하고 있습니다. AI를 달성하는 것은 언어가 아니라 언어로 구현 된 특정 알고리즘입니다. PROLOG의 경우 이것은 통일 기반 의 추론 엔진 입니다 . 이제 통일부터 시작하여 수년에 걸쳐 어떻게 커스터마이징되고 발전했는지 살펴보면 원하는 발전의 진전을 찾을 수있을 것입니다. 언어에 집중하지 말고 알고리즘에 집중하십시오.

예를 들어, 기능 언어의 형식 유추는 통합을 기반으로하는 Hindley–Milner 를 사용 합니다.

교정 보조와 관련된 다른 예는 here , prolog.ml을 확인하십시오. 프롤로그에 대한 추론 엔진은 OCaml에서 구현되며 F #으로 변환됩니다. 따라서 OCaml 및 F #은 일반적으로 AI 언어로 표시되지 않지만 AI 알고리즘을 완전히 구현할 수 있습니다.


나는 이것이 내가이 질문에 대해 생각하는 것과 정확히 일치해야한다고 말해야합니다. 알고리즘은 작성하는 데 사용하는 언어보다 중요합니다. 그래서 내가 읽은 모든 AI 책은 알고리즘에 의사 코드를 제공해야한다고 주장했습니다.
JJP

1

AI의 의미에 따라 다릅니다. 일반적으로 기계 학습은 툴링의 급속한 발전을 보았으므로 분류, 클러스터링 및 기타 형태의 감독 및 비지도 학습을위한 알고리즘, 특히 확률 적 그래픽 모델을 사용하여 Python, C #, Ruby, OCaml 및 자바, 그냥 몇 가지를 말하면.

추천 엔진, 협업 필터링 또는 기타 유형의 비지도 또는지도 학습 문제와 같은 것을 구축하기 위해 대규모 데이터 조작을 수행하는 경우 Mahout을 살펴볼 수 있습니다 . 실제로 "프로그래밍 언어"는 아니지만 이러한 종류의 문제에 대한 도구 세트입니다. Java 또는 그루비 (동적, 합리적인 표현 언어) 또는 클로저 (리스프와 같은)와 같은 기타 JVM 언어로 모델 코드를 작성할 수 있습니다.

나는 왜 당신이 Lisp 날짜를 고려할 것인지 확신 할 수 없다. 다른 언어 (클로저 등)의 대부분의 "새로운"언어 기능이 시작된 곳입니다.

물론 머신 러닝 기술은 일반적으로 대부분의 초기 AI 노력이 시작한 이진 논리, 의사 결정 트리 스타일 접근 방식보다 확률 모델로 이동해 왔기 때문에 머신 러닝은 큰 텐트에서 분기되거나 우회한다고 주장 할 수 있습니다 AI의.


0

내가 몇 년 전에 사용했던 AI의 언어는 델파이처럼 IDE와 함께 제공되는 Visual Prolog 버전을 가진 Prolog 였습니다.

Prolog (및 GUI 버전 Visual Prolog)는 인공 지능 및 계산 언어와 관련된 범용 논리 프로그래밍 언어입니다.

그러나 최근의 추세에 따르면 C #, Java, Python, Haskell 등과 같은 OOP 언어는 AI 응용 프로그램에 프로그래밍 할 수있게됩니다.


3
Haskell OOP는 언제부터?
Andrea

하스켈에서 OOP를 흉내낼 수 있습니다.
Yusubov

1
어떤 언어로든 모방 할 수 있습니다. 일반적으로 어떤 언어를 OO
jk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.