ภาษาโปรแกรมล่าสุดสำหรับ AI หรือไม่ [ปิด]


15

ไม่กี่ทศวรรษที่ผ่านมาการเขียนโปรแกรมภาษาของทางเลือกสำหรับ AI เป็นอย่างใดอย่างหนึ่งเปิดฉากหรือLISP , และอื่น ๆ อีกสองสามคนที่ไม่ได้เป็นที่รู้จักกันเป็นอย่างดี ส่วนใหญ่ออกแบบมาก่อนยุค 70

การเปลี่ยนแปลงเกิดขึ้นมากมายในหลาย ๆ โดเมนเฉพาะภาษา แต่ในโดเมน AI มันไม่ได้โผล่ขึ้นมามากเหมือนในเว็บภาษาหรือสคริปต์เฉพาะเป็นต้น

มีภาษาโปรแกรมล่าสุดที่มีจุดประสงค์เพื่อเปลี่ยนเกมใน AI และเรียนรู้จากความไม่เพียงพอของภาษาเดิมหรือไม่?


1
อ็อกเทฟเป็นภาษาที่ดีสำหรับการเรียนรู้ของเครื่องหากสาขาของ AI นั้นสนใจคุณ
setzamora

พิจารณาด้วยวิธีการเขียนโปรแกรมเมตา (เช่นการสร้างโปรแกรม) มองเข้าไปในบล็อกของ J.Pitrat จากนั้นภาษาที่คุณสร้างอาจไม่มีความสำคัญมากนักมันอาจเป็น C
Basile Starynkevitch

คำตอบ:


23

หลักสูตร AI ที่ฉันเข้าร่วมออนไลน์สอนที่ Stanford แนะนำให้ใช้ Python สำหรับการบ้าน ฉันเชื่อว่า Georgia Tech ยังใช้ LISP อยู่

การเข้าใจผิดที่นี่คือ "ใหม่" คือ "ดี" การวิจัย AI เป็นหนึ่งในสาขาการวิจัยการคำนวณที่เก่าแก่ที่สุด มันทำให้หลุดออกจากฟิลด์ย่อยในขณะที่ผู้คนตระหนักว่าเทคนิคจากมันสามารถใช้ที่อื่น การประมวลผลภาษาการเรียนรู้ของเครื่องและการขุดข้อมูลเป็นตัวอย่างของแอปพลิเคชั่น "เชิงปฏิบัติ" ที่ใช้ภาษามากมาย

ดังนั้นจึงน้อยกว่าที่เขตข้อมูลหลักมีการเปลี่ยนแปลงกว่าที่ได้รับการขัดเกลาเป็นสาขาวิชาที่เกี่ยวข้องมากมาย มันเหมือนกับการพูดว่า "การคำนวณทางวิทยาศาสตร์" และคาดหวังว่ามันจะหมายถึงการแก้สมการเชิงเส้น

ภาษาที่คุณกล่าวถึงมีการพัฒนาค่อนข้างมากในช่วง 20 หรือ 30 ปีที่ผ่านมา Lisp วางไข่ Common Lisp และ Clojure อารัมภบทกลับกลายเป็น Visual Prolog (มีวัตถุ ... ) และเมอร์คิวรี่ (นำ Haskell และ Prolog ไปขังไว้ในห้องด้วยกัน

เนื่องจากการวิจัย AI นั้นเป็นเชิงทฤษฎีมากกว่ามันทำให้รู้สึกว่ามันจะมุ่งเน้นไปที่ทฤษฎี (คณิตศาสตร์) มากกว่าการปฏิบัติจริง (ภาษา)

จากทั้งหมดที่กล่าวมาผู้ประดิษฐ์ที่ใหญ่ที่สุดของเทคโนโลยี AI ที่ฉันเดิมพันคือ Google พวกเขามักจะชอบงูใหญ่ (และไปและโผ แต่นั่นอยู่ด้านข้าง) ดังนั้นฉันจึงบอกว่า Python เป็น "ภาษาที่เลือกล่าสุด" แต่คุณสามารถใช้ Haskell หรือ OCaml หรือ F # หรือ C # หรือแม้แต่ Java


+1 สำหรับการกล่าวถึงดาวพุธ
Guy Coder

8

คุณอาจพบคำตอบสำหรับคำถามของคุณในฉบับพิเศษล่าสุด“ Sprachen der KI” (“ Languages ​​of AI”) ของวารสาร AI ของเยอรมันKI - Künstliche Inteligenzenzเล่ม 26 หมายเลข 1 / กุมภาพันธ์ 2012 จัดพิมพ์โดย Springer ฉันเป็นผู้ร่วมเขียนส่วนหนึ่งของเอกสารการสนทนาที่รวมอยู่ใน:“ คุณใช้ภาษาอะไรในการสร้างโปรแกรม AI ของคุณและเพราะอะไร” นี่คือตัวอย่างของ: http://ai.cs.unibas.ch /papers/schmid-et-al-kijournal2012.pdf

โดยสรุปนักวิจัย AI บางคนยังคงสาบานด้วยภาษา Lisp และ Prolog คลาสสิก คนอื่นใช้ภาษากระแสหลักเช่น C ++, Java หรือ Python คนอื่น ๆ ยังต้องการสำรวจภาษาการเขียนโปรแกรมที่ลึกลับ

ฉันเชื่อว่าไม่มีอะไรพิเศษเกี่ยวกับ AI ที่ต้องการภาษาโปรแกรมพิเศษ สิ่งที่นักวิจัยโดยทั่วไปต้องการคือภาษาโปรแกรมที่อนุญาตให้สร้างต้นแบบอย่างรวดเร็ว นี่คือสิ่งที่ภาษา AI แบบเก่า (Lisp, Prolog) และภาษา“ scripting” รุ่นใหม่ (Perl, Python, Ruby หรือภาษา JVM ล่าสุดเช่น Clojure) นั้นยอดเยี่ยม

นักวิจัยบางคนต้องการมากกว่าต้นแบบหรือพวกเขามีความต้องการพิเศษ (เช่นข้อมูลขนาดใหญ่) และจำเป็นต้องใช้อัลกอริทึมของพวกเขาในภาษาที่คอมไพล์หรือพิมพ์อย่างมากเช่น C, C ++ หรือ Java เมื่อขั้นตอนการเขียนโปรแกรมสำรวจสิ้นสุดลง จับปัญหาได้ดีขึ้น บางคนบอกว่า ณ จุดนั้น (เมื่อปัญหาเป็นที่เข้าใจกันดี) คุณจะไม่ติดต่อกับ AI อีกต่อไป

กลับมาที่คำถามสุดท้ายของคุณการพัฒนาที่สำคัญทั้งหมดในภาษา AI ใหม่ที่ฉันรับรู้ได้รับแรงบันดาลใจจากการเขียนโปรแกรมแบบ จำกัด บางคนได้เข้าสู่การใช้งาน Prolog เช่น SICStus และ SWI บางคนใช้ภาษาเหมือน Prolog เช่น Mercury และ Mozart / Oz แน่นอนว่ามีแนวโน้มที่จะมีการพัฒนาใหม่ที่สำคัญที่ฉันไม่ทราบ


2

ในขณะที่คำตอบเหล่านี้ส่วนใหญ่มุ่งเน้นไปที่คำว่า "ภาษา" เพราะคุณใช้มันในคำถามของคุณฉันไม่เชื่อว่าคุณควรคิดภาษาใดภาษาหนึ่งเมื่อคิด AI

ฉันทำงานกับเทคโนโลยีนี้มาหลายปีและตอนนี้ฉันกำลังทำงานกับProof Assistantsและทำการแปลงรหัสจาก OCaml เป็น F # ไม่ใช่ภาษาที่ใช้ AI แต่เป็นอัลกอริทึมเฉพาะที่ใช้ในภาษา สำหรับ PROLOG นี้เป็นกลไกการอนุมานอยู่บนพื้นฐานของการผสมผสาน ตอนนี้ถ้าคุณเริ่มต้นด้วยการรวมกันและดูว่ามันได้รับการปรับแต่งและขั้นสูงในช่วงหลายปีที่ผ่านมาฉันคิดว่าคุณจะพบความก้าวหน้าของความก้าวหน้าที่คุณแสวงหา อย่าเน้นภาษาเน้นที่อัลกอริธึม

เป็นตัวอย่างการอนุมานประเภทในภาษาที่ใช้งานได้ใช้Hindley – Milnerซึ่งเป็นไปตามการรวมเข้าด้วยกัน

อีกตัวอย่างที่เฉพาะเจาะจงสำหรับผู้ช่วยพิสูจน์อยู่ที่นี่ให้สังเกต prolog.ml เอ็นจินอนุมานสำหรับโปรล็อกถูกนำมาใช้ใน OCaml และถูกแปลเป็น F # ดังนั้นในขณะที่ OCaml และ F # จะไม่ได้รับการบันทึกตามปกติในฐานะภาษา AI พวกเขาสามารถใช้อัลกอริทึม AI ได้อย่างเต็มที่


ฉันต้องบอกว่านี่เป็นสิ่งที่ฉันคิดเกี่ยวกับคำถามนี้: อัลกอริทึมสำคัญกว่าภาษาที่คุณใช้ในการเขียนนั่นคือเหตุผลที่หนังสือ AI ทุกเล่มที่ฉันอ่านยืนยันที่จะให้ pseudocode สำหรับอัลกอริธึม
JJP

1

ฉันว่ามันขึ้นอยู่กับว่าคุณหมายถึงอะไรโดย AI การเรียนรู้ของเครื่องโดยทั่วไปได้เห็นการเปลี่ยนแปลงอย่างรวดเร็วของการใช้เครื่องมือดังนั้นจำนวนอัลกอริทึมสำหรับการจัดกลุ่มการจัดกลุ่มและรูปแบบอื่น ๆ ของการเรียนรู้แบบมีผู้สอนและไม่มีผู้ดูแลโดยเฉพาะอย่างยิ่ง Java เพียงเพื่อชื่อไม่กี่

หากคุณทำจัดการขนาดใหญ่ของข้อมูลสำหรับการสร้างสิ่งที่ต้องการคำแนะนำเครื่องมือการกรองการทำงานร่วมกันหรือชนิดอื่น ๆ ของการใกล้ชิดหรือภายใต้การดูแลการเรียนรู้ปัญหาคุณอาจต้องการที่จะดูที่ควาญช้าง ไม่ใช่ "ภาษาการเขียนโปรแกรม" จริง ๆ แต่เป็นชุดเครื่องมือสำหรับปัญหาประเภทนี้ คุณสามารถเขียนโค้ดโมเดลใน Java หรือภาษา JVM อื่น ๆ เช่น groovy (ภาษาไดนามิกที่แสดงออกอย่างสมเหตุสมผล) หรือ clojure (เหมือนเสียงกระเพื่อม)

ฉันไม่แน่ใจว่าทำไมคุณถึงพิจารณา Lisp ลงวันที่; มันเป็นคุณสมบัติส่วนใหญ่ของภาษา "ใหม่" ในภาษาอื่น ๆ (ปิด ฯลฯ ) มาจาก

แน่นอนว่าเทคนิคการเรียนรู้ด้วยเครื่องจักรมักจะเคลื่อนไปสู่โมเดลที่น่าจะเป็นมากกว่าตรรกะลอจิกวิธีการตัดสินใจแบบทรีที่ความพยายามเริ่มต้นของ AI เริ่มต้นด้วยเหตุนี้จึงเป็นไปได้ที่จะโต้แย้งว่าการเรียนรู้ของเครื่องจักรนั้น ของ AI


0

ภาษาของ AI ที่ฉันเลือกใช้เมื่อหลายปีก่อนคือ Prolog ซึ่งมีVisual Prologเวอร์ชันที่มาพร้อมกับ IDE เช่นเดียวกับใน Delphi

ภาษาโปรล็อก (และเวอร์ชัน GUI ของ Visual Prolog) เป็นภาษาโปรแกรมตรรกะทั่วไปที่เกี่ยวข้องกับปัญญาประดิษฐ์และภาษาศาสตร์เชิงคำนวณ

อย่างไรก็ตามแนวโน้มล่าสุดแสดงให้เห็นว่าภาษา OOP ใด ๆ เช่น C #, Java, Python, Haskell และอื่น ๆ กำลังกลายเป็นโปรแกรมสำหรับแอปพลิเคชัน AI


3
ตั้งแต่เมื่อไหร่ Haskell OOP
Andrea

คุณอาจเลียนแบบ OOP ใน Haskell ใช่ไหม
Yusubov

1
คุณสามารถเลียนแบบมันในภาษาใด ๆ ไม่ได้หมายความว่าปกติคุณจะพิจารณาภาษาใด ๆ ที่จะเป็น OO
jk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.