อัลกอริธึมมาบรรจบกันหมายความว่าอะไร?


12

ฉันเจอคำศัพท์นี้ตลอดเวลาเมื่ออ่านเกี่ยวกับการเรียนรู้การเสริมแรงเช่นในประโยคนี้:

หากปัญหานั้นเป็นแบบอย่างด้วยความระมัดระวังอัลกอริธึมการเรียนรู้การเสริมแรงบางอย่างสามารถมาบรรจบกันเพื่อให้เกิดประโยชน์สูงสุดในระดับโลก

http://reinforcementlearning.ai-depot.com/

หรือที่นี่:

สำหรับนโยบายคงที่ Pi ใด ๆ อัลกอริทึม TD ที่อธิบายไว้ข้างต้นได้รับการพิสูจน์แล้วว่ามาบรรจบกับ VPi

http://webdocs.cs.ualberta.ca/~sutton/book/ebook/node62.html

ความเข้าใจของฉันเกี่ยวกับคำว่ามาบรรจบกันก็คือมันหมายถึงหลายสิ่งที่มารวมกันในจุดเดียวกัน แต่สิ่งเดียว (อัลกอริทึม) จะทำเช่นนั้นได้อย่างไร?


7
ในกรณีของอัลกอริทึมซ้ำพวกเขาบอกว่าจะมาบรรจบกันเมื่อผู้สมัครของพวกเขาสำหรับการแก้ปัญหาแต่ละครั้งมีแนวโน้มที่จะเข้ามาใกล้และใกล้ชิดกับโซลูชันที่ต้องการ
MetaFight

6
มันอาจช่วยให้จำได้ว่าข้อ จำกัด ในวิชาคณิตศาสตร์ก็บอกว่าจะมาบรรจบกันหรือแตกต่างแม้ว่า "ขีด จำกัด " เป็น "สิ่งเดียว"
Ixrec

@Ixrec: "จำกัด " ถูกตั้งชื่อตามค่าที่มัน con / diverges ถึง / จาก เช่นเดียวกับใน "มันแปลงเป็น 1" หมายถึงการพูดว่า "ไม่เคยไปเกิน 1" หมายถึงการพูดว่า "1 เป็นค่าผลลัพธ์สูงสุด" และ "จำกัด " ของความคาดหวังของคุณ ดังนั้นเอกพจน์
Flater

คำตอบ:


14

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

ในบางสถานการณ์อัลกอริทึมจะไม่มาบรรจบกันมีผลลัพธ์ที่แตกต่างกันไปตามจำนวน มันยังสามารถแยกออกจากกันซึ่งผลผลิตจะได้รับการแกว่งขึ้นของมูลค่าที่มากขึ้นและใหญ่ขึ้นไม่เคยได้ผลลัพธ์ที่มีประโยชน์ แม่นยำยิ่งขึ้นไม่ว่าคุณจะดำเนินการต่อไปนานแค่ไหนค่าฟังก์ชั่นจะไม่ปรับตัวในช่วงของค่า "ขั้นสุดท้าย" ใด ๆ

วลี "มาบรรจบกันเป็นคำที่เหมาะสมที่สุดในโลก" ในประโยคแรกของคุณคือการอ้างอิงถึงอัลกอริธึมที่อาจมาบรรจบกัน แต่ไม่ถึงค่า "ดีที่สุด" (เช่นอัลกอริธึมการปีนเขาซึ่งขึ้นอยู่กับฟังก์ชันและเงื่อนไขเริ่มต้น สูงสุดในท้องถิ่นไม่เคยไปถึงค่าสูงสุดทั่วโลก)


3

โดยทั่วไปแล้วการบรรจบกันคืออะไร

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

คำจำกัดความที่เป็นทางการมีลักษณะดังนี้:

กำหนดลำดับ (อนันต์) ของจำนวนจริงที่X0, X1, X2, ... Xn ...เราบอกว่าXn converges to a given number Lสำหรับทุกข้อผิดพลาดเชิงบวกที่คุณคิดว่ามีXmองค์ประกอบที่ทุกองค์ประกอบXnที่มาหลังจากXmแตกต่างจากLโดยน้อยกว่าข้อผิดพลาดนั้น

ตัวอย่าง:

ลองนึกภาพลำดับเช่น:

  • X0 = 1
  • X1 = 0.1
  • X2 = 0.01
  • X3 = 0.001
  • X4 = 0.0001
  • ...
  • Xn = 1 / (10 ^ n)

Xn มารวมกันที่ศูนย์หรือไม่ ใช่ ทำไม?

คิดถึงข้อผิดพลาด E (ตัวอย่างเช่นE = 0.0025) มีองค์ประกอบในลำดับที่หลังจากนั้นทุกองค์ประกอบอยู่ด้านล่าง0.025? ใช่ X3 = 0.001องค์ประกอบที่เป็น หลังจาก X2 ทุกด้านล่างXN 0.0025สามารถทำได้กับทุก E> 0 หรือไม่ ใช่. สำหรับข้อผิดพลาดในเชิงบวกทุกข้อที่เราเลือกเราสามารถเห็นจำนวนศูนย์ที่มีก่อนหน้าจุดทศนิยมแรกและลำดับจะลดลงว่าเริ่มต้นจากองค์ประกอบที่มีเลขศูนย์เท่ากัน

Xn = 1/(10^5) converges to 0ซึ่งหมายความว่า เช่นเดียวกับใน "มันสามารถเข้าใกล้ศูนย์มากกว่า" ได้มากเท่าที่เราต้องการ


อัลกอริธึมมาบรรจบกันหมายความว่าอะไร?

"ทางเทคนิค" สิ่งที่ลู่เข้ามาไม่ใช่อัลกอริธึม แต่คุณค่าของอัลกอริธึมกำลังจัดการหรือวนซ้ำ ตัวอย่างเช่นสมมติว่าเรากำลังเขียนอัลกอริทึมที่พิมพ์ตัวเลขทั้งหมดของ PI

อัลกอริทึมเริ่มพิมพ์ตัวเลขเช่น:

  • X0 = 3.14
  • X1 = 3.141
  • X2 = 3.1415
  • X3 = 3.14159
  • ...

เราสามารถถามตัวเองได้: อัลกอริทึมพิมพ์หมายเลขทุกอันใกล้กับ PI มากขึ้นหรือไม่? กล่าวอีกนัยหนึ่งลำดับX0, X1, ... XN ...ที่อัลกอริทึมของเราพิมพ์เข้าหา PI หรือไม่

ถ้าเป็นเช่นนั้นเราพูดว่าอัลกอริทึมของเราแปรสภาพเป็น PI


เรามักจะสนใจในการพิสูจน์ความถูกต้องของอัลกอริทึม

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

โดยทั่วไปขั้นตอนวิธีการมีสิ่งที่เราเรียกว่าตัวชี้วัด ตัวชี้วัดคือจำนวนที่เราให้กับผลลัพธ์ที่กำหนดที่อัลกอริทึมสร้าง ตัวอย่างเช่นใน AI / Machine Learning อัลกอริทึมการวนซ้ำมันเป็นเรื่องธรรมดามากที่เราจะติดตาม "ข้อผิดพลาด" ที่อัลกอริทึมนั้นสร้างขึ้นตามอินพุต ข้อผิดพลาดนี้เป็นตัวชี้วัด

ในอัลกอริทึมซ้ำเหล่านั้นทุกขั้นตอนสร้างข้อผิดพลาดที่แตกต่างกัน และสิ่งที่อัลกอริทึมพยายามทำคือลดข้อผิดพลาดนั้นให้เล็กลงเรื่อย ๆ เราบอกว่าอัลกอริทึมมาบรรจบกันถ้ามันลำดับข้อผิดพลาดมาบรรจบ

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

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

นอกจากนี้โปรดทราบว่าการระบุว่าอัลกอริธึมมาบรรจบต้องมีการพิสูจน์ (อย่างที่เราทำสำหรับ 0.001, 0.0001, ... , ตัวอย่าง)


ตัวอย่างเช่นลักษณนาม

ตัวอย่างนี้อาจเป็นกรณีของลักษณนาม สมมติว่าเราต้องการจัดหมวดหมู่หากตัวเลขเป็นเลขคี่หรือแม้กระทั่งใช้อัลกอริทึมการเรียนรู้ของเครื่องและเรามีชุดข้อมูลต่อไปนี้:

  • (1, คี่)
  • (2 แม้)
  • (3 คี่)
  • (77, คี่)
  • (4 แม้)

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

ดังนั้นหากอัลกอริทึมของเราคายต่อไปนี้:

  • (1, คู่) // ผิด
  • (2 แม้)
  • (3, คู่) // ผิด
  • (77, คู่) // ผิด
  • (4 แม้)

3/5 = 0.6ตัวชี้วัดข้อผิดพลาดของเราจะเป็น ตอนนี้สมมติว่าเรารันอัลกอริทึมอีกครั้งและตอนนี้ก็ถุย:

  • (1, คู่) // ผิด
  • (2 แม้)
  • (3 คี่)
  • (77, คี่)
  • (4 แม้)

1/5 = 0.2ตัวชี้วัดข้อผิดพลาดของเราจะเป็น

ให้บอกว่ามันทำงานได้มากขึ้นเรื่อย ๆ และลำดับข้อผิดพลาดของเรามีลักษณะดังนี้:

0.6, 0.2, 0.1, 0.01, 0.000456, 0.00000543, 0.000000000444 ....

ดังนั้นคำถามใหญ่คือ: อัลกอริทึมของเราจะเป็นศูนย์หรือไม่ มันจะรวมกันเป็นศูนย์หรือไม่? อัลกอริทึมของเราจะมาบรรจบกันหรือไม่? เราสามารถพิสูจน์ได้ว่าในที่สุดมันจะทำให้ถูกต้อง (หรือใกล้เคียงที่สุดเท่าที่จะทำได้)?

หวังว่าอย่างนั้น :)

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