ดูเหมือนว่าจะมีความเชื่อมานาน (โดยส่วนใหญ่ที่ไม่ใช่เสียงกระเพื่อม) ที่เสียงกระเพื่อมดีกว่าภาษาส่วนใหญ่ที่ AI
ความเชื่อนี้มาจากไหน? และมีพื้นฐานใด ๆ ในความเป็นจริงหรือไม่
ดูเหมือนว่าจะมีความเชื่อมานาน (โดยส่วนใหญ่ที่ไม่ใช่เสียงกระเพื่อม) ที่เสียงกระเพื่อมดีกว่าภาษาส่วนใหญ่ที่ AI
ความเชื่อนี้มาจากไหน? และมีพื้นฐานใด ๆ ในความเป็นจริงหรือไม่
คำตอบ:
หนึ่งในความแตกต่างที่สำคัญระหว่างภาษา LISP ที่เหมือนกันและภาษาอื่น ๆ คือใน LISP รหัสและข้อมูลเป็นสิ่งเดียวกัน สิ่งนี้ทำให้เป็นไปได้ที่จะทำสิ่งต่าง ๆ เช่นมีโปรแกรมแก้ไขอัลกอริธึมบางอย่างระหว่างรันไทม์เนื่องจาก "เรียนรู้" สิ่งใหม่ ๆ ในฐานะที่เป็นส่วนหนึ่งของภาษา
อีกแง่มุมหนึ่งที่เข้ามาถึงสิ่งนี้ถึงแม้จะไม่มากนักก็คือความสามารถของ LISP ในการเพิ่มความหมายของภาษาใหม่ ๆ ผ่านมาโครได้อย่างง่ายดาย สิ่งนี้ทำให้เป็นไปได้จริง ๆ และกำหนด DSL ที่ AI ของคุณทำงานด้วยและสามารถพัฒนาด้วยศักยภาพของภาษานั้นในการเติบโตแก้ไขด้วยตนเองและพัฒนาในขณะที่ AI กำลังทำงานอยู่
เห็นด้วยกับ Quadrescence ประวัติศาสตร์การใช้งาน LISPs จะไปสู่ภาพ LISPs ที่ดีสำหรับ AI เหตุใด LISP ที่ใช้สำหรับ AI จึงครอบคลุมประวัติโดยละเอียดยิ่งขึ้น
บางโปรแกรมแรกในเสียงกระเพื่อมคือผู้พิสูจน์ทฤษฎีคณิตศาสตร์สัญลักษณ์ ELIZA แบบคลาสสิกเป็นต้นนอกจากหนังสือ PAIP ของ Peter Norvig รวมถึงความจริงที่เสียงกระเพื่อมนั้นมาจากห้องแล็บ MIT AI มันจัดเรียงภาพนั้น เสียงกระเพื่อมนั้นดีสำหรับ AI
DARPA ยังให้ทุนสนับสนุนมหาวิทยาลัยเพื่อการวิจัยใน AI และซื้อฮาร์ดแวร์จำนวนมากจาก Symbolics การขาดแคลนเงินทุนในที่สุดนำไปสู่สิ่งที่เรียกว่า "AI winter"
ในที่สุดภาษาดั้งเดิมเช่น Fortran (หรือ "languages" เช่น ASM) ถูกนำมาใช้เป็นหลักในการคำนวณเชิงตัวเลข คุณทำงานกับตัวเลขและอาร์เรย์ของพวกเขา วันนี้เรามีสัญลักษณ์หรือความสามารถในการสร้างเกือบทุกสิ่งที่เราต้องการในภาษาที่ทันสมัยที่สุด
ดังนั้นเหตุผลที่เสียงกระเพื่อมนั้นดีกว่าสำหรับ AI ในคราวเดียวก็ไม่เป็นเช่นนั้นอีกต่อไป อย่างไรก็ตามความคิดที่ว่า "เสียงกระเพื่อมเป็นสิ่งที่ดีสำหรับ AI" ยังคงอืดอาดอยู่
ไม่ว่าเสียงกระเพื่อมเป็นภาษาที่ดีกว่าเนื่องจากคุณสมบัติและโครงสร้างของมันเป็นอีกกรณีหนึ่งโดยสิ้นเชิง (เนื่องจากจริงๆแล้วสิ่งนี้มีผลกับพื้นที่อื่น ๆ มากกว่า AI เพียงอย่างเดียว
ลองดูที่โปรแกรม AI ปัจจุบัน: (1) หุ่นยนต์เช่นรถยนต์ขับเคลื่อนด้วยตัวเอง ในความท้าทายที่ยิ่งใหญ่ของ DARPA ซอฟต์แวร์ขับรถที่เหนือชั้นไม่ใช่ Lisp ค่อนข้างจะเป็นภาษาเชิงโพรซีเดอร์เช่น C ++ หรือ Java (2) การแปลโดยใช้ภาษาธรรมชาติ เสียงกระเพื่อมไม่ได้ถูกใช้เพื่อจุดประสงค์นี้โดยระบบการผลิตที่ใช้กันอย่างแพร่หลาย (3) การเล่นเกมเช่นโปรแกรมหมากรุก Lisp ไม่ได้ถูกใช้เพื่อจุดประสงค์นี้โดยใช้โปรแกรมหมากรุกที่เหนือกว่าเช่น Fritz
Lisp ถูกคิดค้นและพัฒนาโดยห้องปฏิบัติการ AI ของสหรัฐในปี 1960 เพื่อที่จะสร้างโปรแกรมตรรกะเชิงสัญลักษณ์ที่รวดเร็วซึ่งโครงสร้างข้อมูล LIS ดั้งเดิมนั้นเหมาะสมกับระดับของ Abstraction เชิงสัญลักษณ์ที่จำเป็น - เช่นคำภาษาอังกฤษอาจเป็นสัญลักษณ์ในรายการ แสดงเป็นรายการของตัวดำเนินการและตัวถูกดำเนินการ
แต่สำหรับโปรแกรมการผลิตข้อได้เปรียบทางวิศวกรรมซอฟต์แวร์ของภาษาที่พิมพ์แบบคงที่และไลบรารีของบุคคลที่สามที่หลากหลายหมายความว่า Lisp ไม่ได้ถูกพิจารณาสำหรับระบบที่ทันสมัยขนาดใหญ่ที่ทำงานของ AI
@ สตีเฟนรี้ดพูดดีมาก ฉันสามารถเพิ่มได้ว่าฉันอยู่ใน MIT AI Lab ในยุค 70 ฉันได้ยินเรื่องราวเกี่ยวกับต้นกำเนิดของ Lisp ฉันไม่สามารถสาบานได้เลยว่ามันเป็นเรื่องจริง แต่มันจะเป็นเช่นนี้:
John McCarthy อยู่ที่ MIT ในยุค 50 และเขาทำงานเพื่อพิสูจน์คุณสมบัติของโปรแกรมและด้วยเหตุนี้เขาจึงใช้ไวยากรณ์อย่างง่ายคล้ายกับแลมบ์ดาแคลคูลัส
เรื่องนี้เป็นเรื่องที่นักศึกษาระดับบัณฑิตศึกษาคนหนึ่งต้องการทำโครงงาน (การเปรียบเทียบหรือการพิสูจน์ทฤษฎีบทหรือคณิตศาสตร์เชิงสัญลักษณ์ฉันจำไม่ได้ว่าอันไหน) และถาม McCarthy ว่าจะใช้ภาษาใด คำตอบ - Fortran แน่นอน (มีไม่มากนักและการประมวลผลรายการนั้นค่อนข้างเป็นที่รู้จักกันดี แต่เป็นเพียงแพ็คเกจย่อยที่ไม่ใช่ภาษา) อย่างใดที่นำไปสู่โปรแกรมที่จะประมวลผลสัญลักษณ์ในโครงสร้างรายการแบบซ้อน ร่วมกับวิธีการอ่านและพิมพ์จากนั้นeval
ฟังก์ชั่นและ Voila '- ภาษา ภาษาการประมวลผลรายการ มันออกไปจากที่นั่น
สำหรับชนิดของอัลกอริทึมที่เราทำในสมัยนั้น (และยังมีคนน้อยมากที่ต้องทำ) จำเป็นต้องใช้ภาษาที่สามารถจัดการกับการแสดงออกของสัญลักษณ์ได้อย่างง่ายดาย นั่นคือสิ่งที่ Lisp ทำได้ดี แนวคิดพื้นฐานพื้นฐานมีการเปลี่ยนแปลงมากมายโดยใช้ชื่อที่แตกต่างกันเช่น Prolog, Scheme และอื่น ๆ
ดังนั้น AI หมายถึงหลายสิ่งหลายอย่างสำหรับผู้คนจำนวนมากและภาษาต่าง ๆ นั้นดีสำหรับสิ่งต่าง ๆ แต่สำหรับปัญหาที่สามารถอธิบายได้ว่าเป็นการจัดการสัญลักษณ์มันยากที่จะหาภาษาที่มีประโยชน์ที่ไม่ได้สืบทอดมาจาก Lisp
เสียงกระเพื่อมมีข้อได้เปรียบสำหรับสิ่งต่าง ๆ ที่เรียกว่า AI - อย่างน้อยตรรกะการค้นหาและการแยกวิเคราะห์สิ่งที่เกี่ยวข้องซึ่งเป็น AI ส่วนใหญ่จนถึงประมาณ 90 ปี
ข้อได้เปรียบที่สำคัญของ Lisp คือการรองรับแมโคร - โค๊ดเป็นข้อมูล
Standard ML (SML) เป็นอีกภาษาหนึ่งที่มีการใช้กันอย่างแพร่หลายใน AI เช่นตั้งแต่ยุค 80 วัตถุประสงค์ CAML และ F # เป็นวิวัฒนาการของ SML
ข้อได้เปรียบที่สำคัญของตระกูล ML (และ Haskell ฯลฯ ) คือการจับคู่รูปแบบ นี่อาจมีให้ใน Lisp ด้วยเช่นกัน แต่ผ่านห้องสมุด metaprogramming แทนที่จะสร้างเป็นภาษา นอกจากนี้ยังมีใน Haskell ด้วย แต่อย่างน้อยในขณะนี้การจับคู่รูปแบบไม่ได้เกิดขึ้นนอกเหนือจากภาษาโปรแกรมที่ใช้งานได้
ฉันเคยเห็นการอ้างว่า LISP นั้นเป็นแคลคูลัสแลมบ์ดาที่ไม่มีการพิมพ์ส่วนขยายและ ML นั้นเป็นแลมบ์ดาแลปดาพิมพ์ที่ขยายออกไปโดยทั่วไป ฉันไม่มีความรู้เกี่ยวกับแคลคูลัสแลมบ์ดาที่จะพูดอย่างแน่นอน
AI ก็กลายเป็นวิชาที่กว้างมากขึ้นในช่วงหลายปีที่ผ่านมาจนถึงจุดที่มันเกือบจะหายไปอย่างสมบูรณ์ การขุดข้อมูลอาจถือได้ว่าเป็นหนึ่งในสาขาย่อยของ AI สิ่ง AI หลายอย่าง (OCR, การรู้จำลายมือ) เกือบจะหยุดการเป็น AI เลย - มันเป็นแค่แอปพลิเคชั่นเหมือนกับสิ่งอื่นใด และ AI นั้นขึ้นอยู่กับการประมวลผลสัญญาณและการบีบอัดตัวเลขอื่น ๆ มากกว่าที่เคยเป็นมา
สำหรับ OCR และการรู้จำเสียงเอไอนั้นขึ้นอยู่กับการประมวลผลสัญญาณและการบีบอัดจำนวนแน่นอน ใช่มีข้อโต้แย้งบางประการในเรื่องนี้ ;-) ฉันไม่สามารถให้น้ำหนักกับสิ่งต่าง ๆ ได้เพราะฉันไม่รู้จริงๆ
ด้วยเหตุนี้อาจไม่มีภาษาเดียวที่เหมาะสมสำหรับการใช้งาน AI สมัยใหม่ทั้งหมด - ฉันเดา (ไม่มีความรู้มือแรก) ว่ามีการพัฒนาหลายภาษาใน AI สมัยใหม่ และฉันเกือบจะรับประกันได้ว่าคุณจะพบ C และ C ++ ในบางโครงการเพื่อให้ได้ประสิทธิภาพที่ดีที่สุด ฉันจะไม่แปลกใจถ้ามีงูหลามมากมายด้วยเหตุผลที่คล้ายกัน - ด้วยห้องสมุดตัวเลขที่ดีงูหลามสามารถจัดการงานที่มีจำนวนมากได้อย่างง่ายดาย
ในหนึ่งในรถยนต์ที่ขับด้วยตนเองฉันจินตนาการว่าระบบการมองเห็นนั้นเขียนด้วยภาษาที่แตกต่างกัน (และทำงานบนฮาร์ดแวร์ที่แตกต่างกัน) ไปยังระบบวางแผนเส้นทาง