อ่าน 14 นาที
การเขียนโปรแกรมเชิงตรรกะแบบอุปนัย
การเขียนโปรแกรมเชิงตรรกะแบบอุปนัย (Inductive Logic ProgrammingหรือILP ) เป็นสาขาย่อยของปัญญาประดิษฐ์เชิงสัญลักษณ์ซึ่งใช้การเขียนโปรแกรมเชิงตรรกะเป็นตัวแทนที่เป็นเอกภาพสำหรับตัวอย่า...
การเขียนโปรแกรมเชิงตรรกะแบบอุปนัย

การเขียนโปรแกรมเชิงตรรกะแบบอุปนัย (Inductive Logic ProgrammingหรือILP ) เป็นสาขาย่อยของปัญญาประดิษฐ์เชิงสัญลักษณ์ซึ่งใช้การเขียนโปรแกรมเชิงตรรกะเป็นตัวแทนที่เป็นเอกภาพสำหรับตัวอย่าง ความรู้พื้นฐาน และสมมติฐาน คำว่า " อุปนัย " ในที่นี้หมายถึง อุปนัย เชิงปรัชญา (เช่น การเสนอทฤษฎีเพื่ออธิบายข้อเท็จจริงที่สังเกตได้) มากกว่า อุปนัย เชิงคณิตศาสตร์ (เช่น การพิสูจน์คุณสมบัติสำหรับสมาชิกทั้งหมดในเซตที่มีลำดับที่ดี) เมื่อมีรหัสของความรู้พื้นฐานที่ทราบและชุดของตัวอย่างที่แสดงเป็นฐานข้อมูล เชิงตรรกะ ของข้อเท็จจริง ระบบ ILP จะสร้างโปรแกรมเชิงตรรกะตามสมมติฐานซึ่งประกอบด้วยตัวอย่างเชิงบวกทั้งหมดและไม่มีตัวอย่างเชิงลบใดๆ
- โครงสร้าง: ตัวอย่างเชิงบวก + ตัวอย่างเชิงลบ + ความ รู้พื้นฐาน ⇒ สมมติฐาน
ชีวสารสนเทศและการออกแบบยาได้รับการเน้นย้ำว่าเป็นพื้นที่การประยุกต์ใช้หลักของเทคนิคการเขียนโปรแกรมตรรกะแบบอุปนัย[ 1 ]
ประวัติศาสตร์
จากการทำงานก่อนหน้านี้เกี่ยวกับการอนุมานแบบอุปนัยกอร์ดอน พล็อตคินเป็นคนแรกที่วางรูปแบบการอุปนัยใน บริบทของ ประโยคประมาณปี 1970 โดยใช้แนวทางการสรุปจากตัวอย่าง[ 2 ] [ 3 ]ในปี 1981 เอฮุด ชาปิโรได้นำเสนอแนวคิดหลายอย่างที่จะกำหนดรูปแบบของสาขานี้ในแนวทางใหม่ของเขาเกี่ยวกับการอนุมานแบบจำลอง ซึ่งเป็นอัลกอริทึมที่ใช้การปรับปรุงและการย้อนรอยเพื่อค้นหาสัจพจน์ที่สมบูรณ์ของตัวอย่างที่กำหนด[ 2 ] [ 4 ]การนำไปใช้ครั้งแรกของเขาคือระบบการอนุมานแบบจำลองในปี 1981: [ 5 ] [ 6 ]โปรแกรมPrologที่อนุมาน โปรแกรมตรรกะ ประโยค Horn แบบ อุปนัย จากตัวอย่างเชิงบวกและเชิงลบ[ 2 ]คำว่าการเขียนโปรแกรมตรรกะแบบอุปนัยได้รับการแนะนำครั้งแรกในบทความของสตีเฟน มักเกิลตันในปี 1990 โดยกำหนดเป็นจุดตัดระหว่างการเรียนรู้ของเครื่องและการเขียนโปรแกรมตรรกะ[ 2 ] Muggleton และ Wray Buntine ได้นำเสนอการประดิษฐ์ภาคแสดงและการแก้ปัญหาแบบผกผันในปี 1988 [ 2 ] [ 7 ]
ระบบการเขียนโปรแกรมเชิงตรรกะแบบอุปนัยหลายระบบที่พิสูจน์แล้วว่ามีอิทธิพลปรากฏขึ้นในช่วงต้นทศวรรษ 1990 FOILซึ่งแนะนำโดยRoss Quinlanในปี 1990 [ 8 ]มีพื้นฐานมาจากการปรับปรุง อัลกอริธึ มการเรียนรู้เชิงประพจน์AQและID3 [ 9 ] Golemซึ่งแนะนำโดย Muggleton และ Feng ในปี 1990 กลับไปใช้รูปแบบที่จำกัดของอัลกอริธึมการสรุปทั่วไปน้อยที่สุดของ Plotkin [ 9 ] [ 10 ]ระบบProgolซึ่งแนะนำโดย Muggleton ในปี 1995 เป็นระบบแรกที่ใช้การอนุมานแบบผกผัน และเป็นแรงบันดาลใจให้กับระบบอื่นๆ ในเวลาต่อมา[ 9 ] [ 11 ] [ 12 ] Alephซึ่งเป็นระบบที่สืบทอดมาจาก Progol ซึ่งแนะนำโดย Ashwin Srinivasan ในปี 2001 ยังคงเป็นหนึ่งในระบบที่ใช้กันอย่างแพร่หลายที่สุดในปี 2022 [ 13 ]
ในเวลาเดียวกันนั้นเอง การประยุกต์ใช้ในทางปฏิบัติครั้งแรกก็ปรากฏขึ้น โดยเฉพาะอย่างยิ่งในด้านชีวสารสนเทศซึ่งภายในปี 2000 การเขียนโปรแกรมเชิงตรรกะแบบอุปนัยได้ถูกนำไปประยุกต์ใช้ในการออกแบบยา การทำนายความเป็นสารก่อมะเร็งและการกลายพันธุ์ และการอธิบายโครงสร้างและหน้าที่ของโปรตีนได้สำเร็จ[ 14 ]แตกต่างจากการมุ่งเน้นไปที่การเขียนโปรแกรมอัตโนมัติซึ่งเป็นส่วนสำคัญของงานในยุคแรกๆ สาขาเหล่านี้ใช้เทคนิคการเขียนโปรแกรมเชิงตรรกะแบบอุปนัยจากมุมมองของการขุดข้อมูลเชิงสัมพันธ์ความสำเร็จของการประยุกต์ใช้ในระยะเริ่มต้นเหล่านั้นและการขาดความคืบหน้าในการกู้คืนโปรแกรมเชิงตรรกะแบบดั้งเดิมขนาดใหญ่ได้กำหนดจุดเน้นของสาขานี้[ 15 ]
เมื่อเร็วๆ นี้ งานคลาสสิกจากการเขียนโปรแกรมอัตโนมัติกลับมาได้รับความสนใจอีกครั้ง เนื่องจากการนำการเรียนรู้แบบเมตาอินเตอร์พรีทีฟมาใช้ทำให้การประดิษฐ์ภาคแสดงและการเรียนรู้โปรแกรมแบบเรียกซ้ำเป็นไปได้มากขึ้น เทคนิคนี้ได้รับการบุกเบิกโดย ระบบ Metagolที่นำเสนอโดย Muggleton, Dianhuan Lin, Niels Pahlavi และ Alireza Tamaddoni-Nezhad ในปี 2014 [ 16 ]ซึ่งช่วยให้ระบบ ILP ทำงานได้ด้วยตัวอย่างที่น้อยลง และประสบความสำเร็จในการเรียนรู้โปรแกรมการแปลงสตริง ไวยากรณ์ชุดคำตอบ และอัลกอริธึมทั่วไป[ 17 ]
การตั้งค่า
การเขียนโปรแกรมตรรกะแบบอุปนัยได้นำการตั้งค่าการเรียนรู้ที่แตกต่างกันหลายแบบมาใช้ ซึ่งที่พบได้บ่อยที่สุดคือการเรียนรู้จากการอนุมานและการเรียนรู้จากการตีความ[ 18 ]ในทั้งสองกรณี ข้อมูลนำเข้าจะถูกจัดเตรียมในรูปแบบของความรู้พื้นฐานBซึ่งเป็นทฤษฎีตรรกะ (โดยทั่วไปอยู่ในรูปแบบของข้อความที่ใช้ในการเขียนโปรแกรมตรรกะ ) รวมถึงตัวอย่างเชิงบวกและเชิงลบ ซึ่งแสดงด้วยและตามลำดับ ผลลัพธ์จะถูกกำหนดเป็นสมมติฐานHซึ่งเป็นทฤษฎีตรรกะที่โดยทั่วไปประกอบด้วยข้อความหนึ่งข้อความขึ้นไป
ทั้งสองแบบแตกต่างกันที่รูปแบบของตัวอย่างที่นำเสนอ
การเรียนรู้จากความสัมพันธ์เชิงอนุมาน
ณ ปี 2022 การเรียนรู้จากข้อสรุปถือเป็นการตั้งค่าที่ได้รับความนิยมมากที่สุดสำหรับการเขียนโปรแกรมตรรกะแบบอุปนัย[ 19 ]ในการตั้งค่านี้ ตัวอย่าง เชิงบวกและเชิงลบจะถูกกำหนดให้เป็นเซตจำกัดของตัวอักษรพื้นฐานเชิงบวกและเชิงลบตามลำดับสมมติฐานที่ถูกต้องHคือเซตของข้อความที่ตรงตามข้อกำหนดต่อไปนี้ โดยที่สัญลักษณ์ประตูหมุนหมายถึงข้อสรุปเชิงตรรกะ : [ 20 ] [ 21 ] [ 22 ] ความสมบูรณ์กำหนดให้สมมติฐานH ที่สร้างขึ้น ต้องอธิบายตัวอย่างเชิงบวกทั้งหมดและความสอดคล้องห้ามการสร้างสมมติฐาน H ใดๆที่ ไม่สอดคล้องกับตัวอย่างเชิงลบ โดยทั้งสองอย่างนี้กำหนดให้มีความรู้พื้นฐานB
ในบริบทการเรียนรู้แนวคิดของ Muggleton [ 23 ] "ความสมบูรณ์" ถูกเรียกว่า "ความเพียงพอ" และ "ความสอดคล้อง" ถูกเรียกว่า "ความสอดคล้องอย่างเข้มแข็ง" มีเงื่อนไขเพิ่มเติมอีกสองประการ ได้แก่ " ความจำเป็น " ซึ่งตั้งสมมติฐานว่าBไม่ได้บ่งชี้ถึงไม่ได้กำหนดข้อจำกัดใดๆ ต่อHแต่ห้ามการสร้างสมมติฐานใดๆ ตราบใดที่ข้อเท็จจริงเชิงบวกสามารถอธิบายได้โดยไม่ต้องใช้สมมติฐานนั้น "ความสอดคล้องอย่างอ่อน" ซึ่งระบุว่าไม่สามารถอนุมานความขัดแย้งใดๆ จาก ได้ห้ามการสร้างสมมติฐานH ใดๆ ที่ขัดแย้งกับความรู้พื้นฐานBความสอดคล้องอย่างอ่อนนั้นแฝงอยู่ในความสอดคล้องอย่างเข้มแข็ง หากไม่มีตัวอย่างเชิงลบ ข้อกำหนดทั้งสองจะตรงกัน ความสอดคล้องอย่างอ่อนมีความสำคัญอย่างยิ่งในกรณีของข้อมูลที่มีสัญญาณรบกวน ซึ่งไม่สามารถรับประกันความสมบูรณ์และความสอดคล้องอย่างเข้มแข็งได้[ 23 ]
การเรียนรู้จากการตีความ
ในการเรียนรู้จากการตีความ ตัวอย่าง เชิงบวกและเชิงลบจะถูกนำเสนอเป็นชุดของโครงสร้าง Herbrand ที่สมบูรณ์หรือบางส่วน ซึ่งแต่ละโครงสร้างนั้นเป็นชุดของตัวอักษรพื้นฐานที่มีจำนวนจำกัด โครงสร้างe ดัง กล่าวเรียกว่าเป็นแบบจำลองของชุดข้อความถ้าสำหรับการแทนที่ ใดๆ และข้อความใดๆในที่ ก็เป็นจริงเช่นกัน เป้าหมายคือการสร้างสมมติฐานที่สมบูรณ์หมายความว่าตัวอย่างเชิงบวกทุกตัวเป็นแบบจำลองของและสอดคล้องกันหมายความว่าไม่มีตัวอย่างเชิงลบใดเป็นแบบจำลองของ[ 24 ]
แนวทางสู่ ILP
ระบบการเขียนโปรแกรมเชิงตรรกะแบบอุปนัยคือโปรแกรมที่รับทฤษฎีตรรกะเป็นอินพุตและส่งออกสมมติฐานที่ถูกต้องHที่เกี่ยวข้องกับทฤษฎี เหล่านั้น ระบบจะสมบูรณ์ก็ต่อเมื่อ สำหรับทฤษฎีตรรกะอินพุตใดๆ ก็ตาม สามารถค้นหา สมมติฐานที่ถูกต้องHที่เกี่ยวข้องกับทฤษฎีอินพุตเหล่านั้นได้ด้วยกระบวนการค้นหาสมมติฐานของระบบ ระบบการเขียนโปรแกรมเชิงตรรกะแบบอุปนัยสามารถแบ่งออกได้เป็นสองประเภทใหญ่ๆ คือ ระบบแบบใช้การค้นหา และระบบแบบเมตาอินเตอร์พรีทีฟ
ระบบค้นหาใช้ประโยชน์จากข้อเท็จจริงที่ว่า พื้นที่ของข้อความที่เป็นไปได้นั้นก่อตัวเป็นโครงข่ายสมบูรณ์ภายใต้ ความสัมพันธ์ การครอบคลุมโดยที่ข้อความหนึ่งครอบคลุมข้อความอื่นหากมีการแทนที่ที่ทำให้ผลลัพธ์ของการนำไปใช้กับเป็นเซตย่อยของโครงข่ายนี้สามารถสำรวจได้ทั้งจากล่างขึ้นบนหรือจากบนลงล่าง
การค้นหาจากล่างขึ้นบน
วิธีการจากล่างขึ้นบนเพื่อค้นหาแลตทิซการครอบคลุมได้รับการศึกษามาตั้งแต่ผลงานชิ้นแรกของ Plotkin เกี่ยวกับการทำให้การเหนี่ยวนำเป็นทางการในตรรกะประโยคในปี 1970 [ 2 ] [ 3 ]เทคนิคที่ใช้ ได้แก่ การสรุปทั่วไปน้อยที่สุด โดยอิงจากการยกเลิกการรวมและการแก้ปัญหาแบบผกผัน โดยอิงจากการกลับกฎการอนุมาน การแก้ปัญหา
การสรุปทั่วไปที่น้อยที่สุด
อัลกอริทึมการสรุปทั่วไปที่น้อยที่สุดจะรับข้อความสองข้อความและ เป็นอินพุต และส่งออกการสรุปทั่วไปที่น้อยที่สุดของและนั่นคือ ข้อความที่ครอบคลุมและและถูกครอบคลุมโดยข้อความอื่น ๆ ทุกข้อความที่ครอบคลุมและการสรุปทั่วไปที่น้อยที่สุดสามารถคำนวณได้โดยการคำนวณการเลือก ทั้งหมด จากและ ก่อน ซึ่งเป็นคู่ของตัวอักษรที่ใช้สัญลักษณ์ภาคแสดงเดียวกันและสถานะปฏิเสธ/ไม่ปฏิเสธเดียวกัน จากนั้น การสรุปทั่วไปที่น้อยที่สุดจะได้รับเป็นการเชื่อมแบบเลือกของการสรุปทั่วไปที่น้อยที่สุดของการเลือกแต่ละรายการ ซึ่งสามารถหาได้โดย การต่อต้านการรวม ทางไวยากรณ์ลำดับแรก[ 25 ]
เพื่ออธิบายความรู้พื้นฐาน ระบบการเขียนโปรแกรมตรรกะแบบอุปนัยจะใช้การสรุปทั่วไปที่น้อยที่สุดแบบสัมพัทธ์ซึ่งกำหนดในแง่ของการครอบคลุมที่สัมพันธ์กับทฤษฎีพื้นฐาน โดยทั่วไปแล้ว การสรุปทั่วไปที่น้อยที่สุดแบบสัมพัทธ์ดังกล่าวไม่รับประกันว่าจะมีอยู่ อย่างไรก็ตาม หากทฤษฎีพื้นฐานBเป็นเซตจำกัดของตัวอักษรพื้นฐาน การปฏิเสธของBเองก็เป็นข้อความ ในกรณีนี้ การสรุปทั่วไปที่น้อยที่สุดแบบสัมพัทธ์สามารถคำนวณได้โดยการแยกการปฏิเสธของBออกจากทั้งและจากนั้นคำนวณการสรุปทั่วไปที่น้อยที่สุดของพวกมันดังเช่นก่อนหน้านี้[ 26 ]
การสรุปทั่วไปที่น้อยที่สุดเชิงสัมพัทธ์เป็นรากฐานของระบบโกเลมจาก ล่างขึ้นบน [ 9 ] [ 10 ]
การแก้ปัญหาแบบผกผัน
การแก้ปัญหาแบบผกผัน (Inverse resolution) เป็น เทคนิค การให้เหตุผลแบบอุปนัยที่เกี่ยวข้องกับการกลับตัวดำเนิน การแก้ปัญหา ( resolution operator )
การแก้ปัญหาแบบผกผันใช้ข้อมูลเกี่ยวกับตัวแก้ไขของขั้นตอนการแก้ปัญหาเพื่อคำนวณข้อความแก้ปัญหาที่เป็นไปได้ ตัวดำเนินการแก้ปัญหาแบบผกผันสองประเภทถูกใช้ในการเขียนโปรแกรมตรรกะแบบอุปนัย ได้แก่ ตัวดำเนินการ V และตัวดำเนินการ W ตัวดำเนินการ V รับข้อความและเป็นอินพุตและส่งคืนข้อความเช่นเป็นตัวแก้ไขของและตัวดำเนินการ W รับข้อความสองข้อความและและส่งคืนข้อความสามข้อความ, และเช่นเป็นตัวแก้ไขของและและ เป็นตัว แก้ไขของและ[ 27 ]
การแก้ปัญหาแบบผกผันได้รับการแนะนำครั้งแรกโดยStephen Muggletonและ Wray Buntine ในปี 1988 เพื่อใช้ในระบบการเขียนโปรแกรมตรรกะแบบอุปนัย Cigol [ 7 ]ภายในปี 1993 สิ่งนี้ได้ก่อให้เกิดการวิจัยอย่างมากมายเกี่ยวกับตัวดำเนินการแก้ปัญหาแบบผกผันและคุณสมบัติของตัวดำเนินการเหล่านั้น[ 27 ]
การค้นหาจากบนลงล่าง
ระบบ ILP Progol [ 12 ] Hail [ 28 ]และ Imparo [ 29 ]พบสมมติฐานHโดยใช้หลักการของการอนุมานแบบผกผัน[ 12 ]สำหรับทฤษฎีB , E , H : . ก่อนอื่นพวกเขาสร้างทฤษฎีระดับกลางFที่เรียกว่าทฤษฎีสะพานซึ่งตรงตามเงื่อนไขและ. จากนั้นเมื่อ, พวกเขาขยายการปฏิเสธของทฤษฎีสะพานFด้วยการอนุมานแบบผกผัน[ 30 ]อย่างไรก็ตาม การดำเนินการอนุมานแบบผกผันมีค่าใช้จ่ายในการคำนวณสูงกว่าเนื่องจากมีความไม่แน่นอนสูง ดังนั้นการค้นหาสมมติฐานทางเลือกสามารถทำได้โดยใช้การดำเนินการการครอบคลุมแบบผกผัน (การครอบคลุมแบบผกผัน) แทน ซึ่งมีความไม่แน่นอนน้อยกว่าการอนุมานแบบผกผัน
คำถามเกี่ยวกับความสมบูรณ์ของขั้นตอนการค้นหาสมมติฐานของระบบการเขียนโปรแกรมตรรกะอุปนัยเฉพาะเกิดขึ้น ตัวอย่างเช่น ขั้นตอนการค้นหาสมมติฐาน Progol ที่อิงตามกฎการอนุมานการอนุมานแบบผกผันไม่สมบูรณ์ตาม ตัวอย่าง ของYamamoto [ 31 ]ในทางกลับกัน Imparo สมบูรณ์ทั้งตามขั้นตอนการต่อต้านการอนุมาน[ 32 ]และขั้นตอน การครอบคลุมแบบผกผันที่ขยาย [ 33 ]
การเรียนรู้เชิงอภิปรัชญา
แทนที่จะค้นหากราฟสมมติฐานอย่างชัดเจน ระบบเมตาอินเตอร์พรีทีฟหรือ ระบบ ระดับเมตาจะเข้ารหัสโปรแกรมการเขียนโปรแกรมตรรกะแบบอุปนัยเป็นโปรแกรมตรรกะระดับเมตา จากนั้นจึงแก้ปัญหาเพื่อให้ได้สมมติฐานที่เหมาะสมที่สุด รูปแบบที่ใช้ในการแสดงข้อกำหนดของปัญหา ได้แก่Prologและการเขียนโปรแกรมชุดคำตอบโดยใช้ระบบ Prolog และตัวแก้ปัญหาชุดคำตอบที่มีอยู่เพื่อแก้ข้อจำกัด[ 34 ]
ตัวอย่างของระบบที่ใช้ Prolog คือMetagolซึ่งใช้meta-interpreter ใน Prologในขณะที่ ASPAL และ ILASP ใช้การเข้ารหัสปัญหาการเขียนโปรแกรมตรรกะแบบอุปนัยในการเขียนโปรแกรมชุดคำตอบ[ 35 ]
การเรียนรู้เชิงวิวัฒนาการ
อัลกอริทึมวิวัฒนาการใน ILP ใช้แนวทางตามประชากรเพื่อพัฒนาสมมติฐาน โดยปรับปรุงสมมติฐานเหล่านั้นผ่านการเลือก การผสมข้าม และการกลายพันธุ์ วิธีการเช่นEvoLearnerได้รับการพิสูจน์แล้วว่ามีประสิทธิภาพเหนือกว่าวิธีการแบบดั้งเดิมบนเกณฑ์มาตรฐานการเรียนรู้ของเครื่องจักรที่มีโครงสร้าง[ 36 ]
รายการการใช้งาน
- 1BC และ 1BC2: ตัวจำแนกแบบเบย์เซียนแบบง่ายลำดับที่หนึ่ง:
- ACE (เครื่องยนต์รวม)
- อเลฟ
- Atom ถูกเก็บถาวรเมื่อวันที่ 26 มีนาคม 2014 ที่Wayback Machine
- คลอเดียน
- DL-Learner เก็บถาวรเมื่อ 2019-08-15 ที่Wayback Machine
- ดีแม็กซ์
- FastLAS (Fast Learning from Answer Sets)
- FOIL (First Order Inductive Learner)
- โกเลม
- ILASP (การเรียนรู้แบบอุปนัยของโปรแกรมชุดคำตอบ)
- อิมปาโร[ 32 ]
- Inthelex (INcremental THEory Learner from EXamples) ถูกเก็บถาวรเมื่อวันที่ 28 พฤศจิกายน 2011 ที่Wayback Machine
- มะนาว
- เมทาโกล
- มิโอ
- MIS (ระบบอนุมานแบบจำลอง) โดย Ehud Shapiro
- ออนโทเลิร์น
- ป็อปเปอร์
- โปรโกล
- อาร์เอสดี
- Warmr (ปัจจุบันรวมอยู่ใน ACE แล้ว)
- โปรโกเลม[ 37 ] [ 38 ]
การเขียนโปรแกรมตรรกะอุปนัยเชิงความน่าจะเป็น
การเขียนโปรแกรมตรรกะแบบอุปนัยเชิงความน่าจะเป็นจะปรับการตั้งค่าของการเขียนโปรแกรมตรรกะแบบอุปนัยเพื่อการเรียนรู้โปรแกรมตรรกะเชิงความน่าจะเป็น ถือได้ว่าเป็นรูปแบบหนึ่งของการเรียนรู้ความสัมพันธ์เชิงสถิติภายในรูปแบบของการเขียนโปรแกรมตรรกะเชิงความน่าจะเป็น[ 39 ] [ 40 ]
ที่ให้ไว้
- ความรู้พื้นฐานเกี่ยวกับโปรแกรมตรรกะความน่าจะเป็นBและ
- ชุดตัวอย่างทั้งด้านบวกและด้านลบและ
เป้าหมายของการเขียนโปรแกรมตรรกะแบบอุปนัยเชิงความน่าจะเป็นคือการค้นหาโปรแกรมตรรกะเชิงความน่าจะเป็นเพื่อให้ความน่าจะเป็นของตัวอย่างเชิงบวกตามนั้นมีค่าสูงสุดและความน่าจะเป็นของตัวอย่างเชิงลบมีค่าต่ำสุด[ 40 ]
ปัญหานี้มีสองรูปแบบ ได้แก่ การเรียนรู้พารามิเตอร์และการเรียนรู้โครงสร้าง ในรูปแบบแรก จะได้รับโครงสร้าง (ข้อความ) ของHและเป้าหมายคือการอนุมานคำอธิบายความน่าจะเป็นของข้อความที่กำหนด ในขณะที่ในรูปแบบหลัง เป้าหมายคือการอนุมานทั้งโครงสร้างและพารามิเตอร์ความน่าจะเป็นของHเช่นเดียวกับการเขียนโปรแกรมตรรกะแบบอุปนัยแบบคลาสสิก ตัวอย่างสามารถให้เป็นตัวอย่างหรือเป็นการตีความ (บางส่วน) ได้[ 40 ]
การเรียนรู้พารามิเตอร์
การเรียนรู้พารามิเตอร์สำหรับภาษาที่ปฏิบัติตามความหมายการกระจายได้ดำเนินการโดยใช้อัลกอริทึมการคาดการณ์-การเพิ่มประสิทธิภาพหรือโดยการลดระดับความ ชัน อัลก อริทึมการคาดการณ์-การเพิ่มประสิทธิภาพประกอบด้วยวงจรซึ่งขั้นตอนการคาดการณ์และการเพิ่มประสิทธิภาพจะถูกดำเนินการซ้ำๆ ในขั้นตอนการคาดการณ์ การกระจายของตัวแปรที่ซ่อนอยู่จะถูกคำนวณตามค่าปัจจุบันของพารามิเตอร์ความน่าจะเป็น ในขณะที่ในขั้นตอนการเพิ่มค่าสูงสุด ค่าใหม่ของพารามิเตอร์จะถูกคำนวณ วิธีการลดระดับความชันจะคำนวณความชันของฟังก์ชันเป้าหมายและปรับเปลี่ยนพารามิเตอร์ซ้ำๆ โดยเคลื่อนที่ไปในทิศทางของความชัน[ 40 ]
โครงสร้างการเรียนรู้
การเรียนรู้โครงสร้างได้รับการบุกเบิกโดยDaphne Kollerและ Avi Pfeffer ในปี 1997 [ 41 ]โดยผู้เขียนเรียนรู้โครงสร้างของ กฎ ลำดับแรก พร้อมพารามิเตอร์ความไม่แน่นอนเชิงความน่าจะเป็นที่เกี่ยวข้อง แนวทางของพวกเขาเกี่ยวข้องกับการสร้าง แบบจำลองกราฟิกพื้นฐานในขั้นตอนเบื้องต้น จากนั้นจึงใช้การคาดการณ์-การเพิ่มประสิทธิภาพ[ 40 ]
ในปี 2551 De Raedtและคณะได้นำเสนออัลกอริทึมสำหรับการบีบอัดทฤษฎีใน โปรแกรม ProbLogโดยการบีบอัดทฤษฎีหมายถึงกระบวนการลบข้อความออกจากทฤษฎีให้ได้มากที่สุดเท่าที่จะเป็นไปได้ เพื่อเพิ่มความน่าจะเป็นของชุดตัวอย่างบวกและลบที่กำหนด ไม่สามารถเพิ่มข้อความใหม่ลงในทฤษฎีได้[ 40 ] [ 42 ]
ในปีเดียวกัน Meert, W. และคณะ ได้นำเสนอวิธีการเรียนรู้พารามิเตอร์และโครงสร้างของโปรแกรมตรรกะความน่าจะเป็นพื้นฐาน โดยพิจารณา เครือข่ายเบย์เซียนที่เทียบเท่ากับโปรแกรมเหล่านั้น และใช้เทคนิคการเรียนรู้เครือข่ายเบย์เซียน[ 43 ] [ 40 ]
ProbFOIL ซึ่งนำเสนอโดย De Raedt และ Ingo Thon ในปี 2010 ได้รวมระบบการเขียนโปรแกรมตรรกะแบบอุปนัยFOILเข้ากับProbLogกฎตรรกะเรียนรู้จากข้อมูลความน่าจะเป็นในแง่ที่ว่าทั้งตัวอย่างเองและการจำแนกประเภทของตัวอย่างนั้นสามารถเป็นความน่าจะเป็นได้ ชุดของกฎต้องอนุญาตให้สามารถทำนายความน่าจะเป็นของตัวอย่างจากคำอธิบายได้ ในการตั้งค่านี้ พารามิเตอร์ (ค่าความน่าจะเป็น) จะคงที่และโครงสร้างจะต้องเรียนรู้[ 44 ] [ 40 ]
ในปี 2011 Elena Bellodi และ Fabrizio Riguzzi ได้นำเสนอ SLIPCASE ซึ่งทำการค้นหาแบบบีมในโปรแกรมตรรกะความน่าจะเป็นโดยการปรับปรุงทฤษฎีความน่าจะเป็นแบบวนซ้ำและปรับพารามิเตอร์ของแต่ละทฤษฎีให้เหมาะสมที่สุดโดยใช้การคาดการณ์-การทำให้สูงสุด[ 45 ] ส่วนขยาย SLIPCOVER ที่เสนอในปี 2014 ใช้ข้อความด้านล่างที่สร้างขึ้นเช่นเดียวกับในProgolเพื่อเป็นแนวทางในกระบวนการปรับปรุง จึงช่วยลดจำนวนการแก้ไขและสำรวจพื้นที่การค้นหาได้อย่างมีประสิทธิภาพมากขึ้น ยิ่งไปกว่านั้น SLIPCOVER ยังแยกการค้นหาข้อความที่มีแนวโน้มที่ดีออกจากการค้นหาทฤษฎี: พื้นที่ของข้อความจะถูกสำรวจด้วยการค้นหาแบบบีมในขณะที่พื้นที่ของทฤษฎีจะถูกค้นหาแบบโลภ[ 46 ] [ 40 ]
ดูเพิ่มเติม
- การใช้เหตุผลตามสามัญสำนึก
- การวิเคราะห์แนวคิดเชิงรูปแบบ
- การให้เหตุผลแบบอุปนัย
- การเขียนโปรแกรมแบบอุปนัย
- ความน่าจะเป็นแบบอุปนัย
- การเรียนรู้เชิงสัมพันธ์ทางสถิติ
- การเรียนรู้พื้นที่เวอร์ชัน
อ่านเพิ่มเติม
- Muggleton, S.; De Raedt, L. (1994). "การเขียนโปรแกรมเชิงตรรกะแบบอุปนัย: ทฤษฎีและวิธีการ"วารสารการเขียนโปรแกรมเชิงตรรกะ 19–20 : 629–679 . doi : 10.1016 /0743-1066(94) 90035-3
- Lavrac, N.; Dzeroski, S. (1994). การเขียนโปรแกรมเชิงตรรกะแบบอุปนัย: เทคนิคและการประยุกต์ใช้ . นิวยอร์ก: Ellis Horwood. ISBN 978-0-13-457870-5เก็บถาวรจากต้นฉบับเมื่อวันที่ 6 กันยายน 2547 เรียกดูเมื่อวันที่ 22 กันยายน 2547
- ตัวอย่างภาพประกอบของการใช้ระบบ Atom ในการแสดงความสัมพันธ์แบบปู่ย่าตายายhttp://john-ahlgren.blogspot.com/2014/03/inductive-reasoning-visualized.html เก็บถาวรเมื่อ 2014-03-26 ที่Wayback Machine
- Cropper, Andrew; Dumančić, Sebastijan (15 มิถุนายน 2022). "การเขียนโปรแกรมเชิงตรรกะแบบอุปนัยครบรอบ 30 ปี: บทนำใหม่"วารสารวิจัยปัญญาประดิษฐ์ 74 : 765-850. arXiv : 2008.07912 . doi : 10.1613/jair.1.13507 . ISSN 1076-9757 .
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ การเขียนโปรแกรมเชิงตรรกะแบบอุปนัย
การเขียนโปรแกรมเชิงตรรกะแบบอุปนัย (Inductive Logic ProgrammingหรือILP ) เป็นสาขาย่อยของปัญญาประดิษฐ์เชิงสัญลักษณ์ซึ่งใช้การเขียนโปรแกรมเชิงตรรกะเป็นตัวแทนที่เป็นเอกภาพสำหรับตัวอย่า...
ประวัติศาสตร์
จากการทำงานก่อนหน้านี้เกี่ยวกับ การอนุมานแบบอุปนัย กอ ร์ดอน พล็อตคิน เป็นคนแรกที่วางรูปแบบการอุปนัยใน บริบทของ ประโยค ประมาณปี 1970 โดยใช้แนวทางการสรุปจากตัวอย่าง [ 2 ] [ 3 ] ในปี 1981 เอฮุด ชาปิโร...
การตั้งค่า
การเขียนโปรแกรมตรรกะแบบอุปนัยได้นำการตั้งค่าการเรียนรู้ที่แตกต่างกันหลายแบบมาใช้ ซึ่งที่พบได้บ่อยที่สุดคือการเรียนรู้จาก การอนุมาน และการเรียนรู้จากการตีความ [ 18 ] ในทั้งสองกรณี ข้อมูลนำเข้าจะถูกจัดเตรียมในรูปแบบของ ความรู้พื้นฐาน B ซึ่งเป็นทฤษฎีตรรกะ...
การเรียนรู้จากความสัมพันธ์เชิงอนุมาน
ณ ปี 2022 การเรียนรู้จากข้อสรุปถือเป็นการตั้งค่าที่ได้รับความนิยมมากที่สุดสำหรับการเขียนโปรแกรมตรรกะแบบอุปนัย [ 19 ] ในการตั้งค่านี้ ตัวอย่าง เชิงบวก และ เชิงลบ จะถูกกำหนดให้เป็นเซตจำกัดของ ตัวอักษรพื้นฐาน เชิง บวกและเชิงลบตามลำดับ สมมติฐานที่ถูกต้อง H...