การวิเคราะห์ความแตกต่างที่สำคัญจากศาสดาพยากรณ์ ตรวจสอบองค์ประกอบหลัก เน้นข้อดีของ AR-Net และการบูรณาการอย่างราบรื่นภายในอัลกอริทึม

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

ไม่ว่าคุณจะทำงานด้านการเงิน การตลาด หรืออุตสาหกรรมอื่นๆ ที่ต้องอาศัยการคาดการณ์ NeuralProphet คือเครื่องมือที่คุณต้องการเพื่อยกระดับการคาดการณ์ของคุณไปอีกระดับ

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

ความแตกต่างกับศาสดา

ในฐานะนักวิทยาศาสตร์ข้อมูล คุณอาจคุ้นเคยกับ Prophet ซึ่งเป็นอัลกอริธึมที่รู้จักกันดีซึ่งพัฒนาโดย Facebook ในปี 2560 หากคุณต้องการเจาะลึกเรื่องนี้ ให้ตรวจสอบ "บทความ" นี้ NeuralProphet ถือได้ว่าเป็นวิวัฒนาการของอัลกอริธึมศาสดาซึ่งรวมเอาพลังของโครงข่ายประสาทเทียม ในย่อหน้านี้เราจะอธิบายความแตกต่างที่สำคัญระหว่างอัลกอริธึมทั้งสองอย่างรวดเร็ว

NeuralProphet ได้รับการพัฒนาในปี 2020 โดย Facebook [1, 2] ในทำนองเดียวกันกับ Prophet มันขึ้นอยู่กับอนุกรมเวลาแบบย่อยสลายได้ แต่ยิ่งไปกว่านั้นยังรวมองค์ประกอบการถดถอยอัตโนมัติตาม โครงข่ายประสาทเทียม: AR-net ส่วนหลังสามารถขยายเพื่อรวมตัวถดถอยภายนอกซึ่งจำลองด้วย AR-net ที่แตกต่างกันเมื่อเปรียบเทียบกับอนุกรมเวลาเป้าหมายชุดใดชุดหนึ่ง

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

  • เวอร์ชันสมัยใหม่ของ mini-batch stochastic gradient descent (SGD)
  • เครื่องมือเพิ่มประสิทธิภาพขั้นสูง (เช่น อดัม)
  • ความเป็นไปได้ที่จะปรับแต่งส่วนประกอบทั้งหมด ตั้งแต่เลเยอร์ไปจนถึงฟังก์ชันการสูญเสีย (คุณสามารถดูการใช้งานได้ในตอนท้ายของบทความ)

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

ส่วนประกอบหลักของ NeuralProphet

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

ตามที่กล่าวไว้ก่อนหน้านี้ NeuralProphet อิงตามอนุกรมเวลาที่ย่อยสลายได้ ตามแนวทางนี้ อนุกรมเวลาใดๆ ก็ตามสามารถแบ่งออกเป็นองค์ประกอบต่างๆ ที่ไม่สามารถสังเกตได้ซึ่งมีรูปแบบที่แตกต่างกันออกไป องค์ประกอบเหล่านี้ได้แก่ แนวโน้ม ฤดูกาล และ รูปแบบสุ่ม นอกจากนี้ NeuralProphet ยังมีข้อกำหนดเพิ่มเติมอื่นๆ ได้แก่ เหตุการณ์พิเศษ ตัวถดถอยในอนาคต ส่วนประกอบการถดถอยอัตโนมัติ และตัวถดถอยที่ล้าหลัง ดังนั้น การทำนาย ณ เวลา t จึงอธิบายได้ด้วยสูตรต่อไปนี้:

มาดูวิธีคำนวณแต่ละองค์ประกอบใน NeuralProphet กัน

แนวโน้ม

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

โดยที่ kแสดงถึงอัตราการเติบโต และ m แสดงถึงออฟเซ็ต

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

ดังนั้น ให้ Cเป็นเซตของจุดเปลี่ยน n𝒸 แนวโน้มสามารถอธิบายได้ด้วยสูตรต่อไปนี้:

เราไปทีละขั้นตอนเพื่อค้นหาความหมายของมัน

เทอมแรก (δ₀ + Γ(t)ᵀ δ) แสดงถึง อัตราการเติบโต ณ เวลา t ซึ่งถูกกำหนดโดยการบวกเข้ากับอัตราการเติบโตเริ่มต้น δ₀ ซึ่งเป็นผลรวมของ การปรับอัตราที่จุดเปลี่ยนทั้งหมดจนถึงขั้นตอนเวลา t

เทอมที่สอง (ρ₀ + Γ(t)ᵀ ρ) แสดงถึงออฟเซ็ตที่ขึ้นอยู่กับเวลา ขอย้ำอีกครั้งว่า ρ₀ แสดงถึงออฟเซ็ตของเซ็กเมนต์แรก และออฟเซ็ต ณ เวลา tถูกกำหนดโดยผลรวมของ ρ₀ และการปรับเปลี่ยนทั้งหมดในแต่ละจุดเปลี่ยนจนถึงเวลา t เวกเตอร์ค่าคงที่แบบแบ่งส่วน Γ(t) ∈ R แสดงว่าเวลา t เลยจุดเปลี่ยนแต่ละจุดไปแล้วหรือไม่

ในภาพต่อไปนี้ เราจะสังเกตได้ว่า NeuralProphet สร้างแบบจำลองแนวโน้มสำหรับอนุกรมเวลาตัวอย่างอย่างไร เส้นประแสดงถึงตำแหน่งจุดเปลี่ยนแปลง

ฤดูกาล

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

ในการสร้างแบบจำลองฤดูกาล เราจำเป็นต้องมีเทอมฟูริเยร์ (N) มากพอๆ กับวัฏจักรมหภาคของอนุกรม ดังที่แสดงในภาพต่อไปนี้:

ฤดูกาลคำนวณผ่านความสัมพันธ์ต่อไปนี้:

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

โดยที่ P แทนเซตของช่วงเวลาทั้งหมด NeuralProphet รองรับรูปแบบตามฤดูกาลทั้งแบบบวกและแบบทวีคูณ:

โดยที่ฤดูกาลคูณกับแนวโน้ม T(t)

NeuralProphet ช่วยให้ตามฤดูกาลรายปีรายสัปดาห์และรายวัน จำนวนเริ่มต้นของเงื่อนไขฟูเรียร์ตามฤดูกาลคือ k = 6 สำหรับ p = 365,25 (รายปี), k= 3 สำหรับ p = 7 (รายสัปดาห์) และ k= 6 สำหรับ p = 1 (รายวัน) อย่างไรก็ตาม คุณสามารถกำหนดจำนวนเงื่อนไขฟูเรียร์เองได้

กิจกรรมและวันหยุด

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

ไลบรารี NeuralProphet มีชุดวันหยุดที่กำหนดไว้ล่วงหน้าสำหรับแต่ละประเทศอยู่แล้ว แต่ผู้ใช้สามารถกำหนดและเพิ่มกิจกรรมเพิ่มเติมได้ นอกจากนี้ยังสามารถเลือกช่วงเวลาตามวันที่จัดงานได้อีกด้วย ตัวอย่างเช่น เมื่อพิจารณาถึงคริสต์มาส คุณอาจต้องการพิจารณากิจกรรมในวันก่อนและวันถัดไปด้วย ดังนั้น กิจกรรมคริสต์มาสของคุณจะรวมตั้งแต่วันที่ 24ᵗʰ ถึง 26ᵗʰ ด้วย

ผู้ถดถอยในอนาคต

ตัวถดถอยเป็นตัวแปรภายนอกที่มีผลกระทบต่อการเปลี่ยนแปลงของตัวแปรเป้าหมาย (ในกรณีอนุกรมเวลาของเรา) ใน NeuralProphet ตัวถดถอยที่ทราบค่าในอนาคตเรียกว่า ตัวถดถอยในอนาคต ในขณะที่ตัวถดถอยที่ไม่ทราบค่าในอนาคตเรียกว่า ตัวถดถอยที่ล่าช้า

มาเริ่มสำรวจผู้ถดถอยในอนาคตกันดีกว่า แสดงโดยสูตรต่อไปนี้:

ที่ไหน:

T(t) แสดงถึงแนวโน้ม และ Ff​(t) แสดงถึงผลกระทบของคุณลักษณะ f ณ เวลา t หากผลกระทบของตัวถดถอย f ถูกขยายออกไปตามแนวโน้มที่แตกต่างกัน ตัวถดถอยควรถูกจำลองเป็นการคูณ

ส่วนประกอบ NeuralProphet AutoRegressive (AR)

เออาร์เน็ต

ก่อนที่จะเจาะลึกองค์ประกอบของโมเดลตามการถดถอยอัตโนมัติ ขอแนะนำให้มุ่งเน้นไปที่ AR-net

แนวคิดของการใช้ประโยชน์จากโครงข่ายประสาทเทียมเพื่อทำการถดถอยอัตโนมัตินั้นมาจากงานล่าสุดโดยนักวิจัยจาก Stanford และ Facebook

พวกเขาเสนอกรอบการทำงานใหม่ซึ่งรวมแบบจำลองทางสถิติแบบดั้งเดิมเข้ากับโครงข่ายประสาทเทียม แตกต่างจาก NN ที่ใช้มากที่สุดในอนุกรมเวลา เช่น Recurrent Neural Networks (RNN), Convolutional Neural Networks (CNN) หรือโมเดลตามความสนใจ ผู้เขียนนำ Feed-Forward Neural Network (FFNN) แบบธรรมดามาใช้ ซึ่งโดยปกติจะไม่มีการซ่อนใดๆ ไว้ ชั้น

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

เพียงใช้ค่าในอดีตเป็นข้อมูลป้อนเข้าเพื่อทำนายมูลค่าในอนาคต NN จะเลียนแบบกระบวนการ AR แบบดั้งเดิม แต่มีข้อดีดังต่อไปนี้:

1. คงความสามารถในการตีความได้เช่นเดียวกับรุ่น AR แบบคลาสสิก

2. ความซับซ้อนในการคำนวณจะปรับขนาดเป็นเส้นตรง (ความซับซ้อนในการคำนวณของโมเดล AR คลาสสิกจะมีขนาดอย่างน้อยเป็นกำลังสอง) ดังนั้น AR-net จึงสามารถปรับขนาดได้ดีตามคำสั่งซื้อขนาดใหญ่ ทำให้สามารถประมาณค่าการพึ่งพาในระยะยาวได้

3. AR-net สามารถเลือกและเรียนรู้ค่าสัมประสิทธิ์แบบกระจายได้โดยอัตโนมัติ

นอกจากนี้ NN ยังเป็นแบบจำลองข้อมูลแบบไม่มีพารามิเตอร์ ซึ่งไม่จำเป็นต้องมีข้อสันนิษฐานที่เข้มงวด

เพื่ออธิบายข้อดีประการแรก ผู้เขียนได้จำลองกระบวนการ AR จากนั้นจึงติดตั้งทั้ง AR แบบคลาสสิกและ FFNN เมื่อดูที่รูปที่ 6 เราจะเห็นว่าแม้จะใช้เทคนิคการปรับให้เหมาะสมที่แตกต่างกัน (เช่น กำลังสองน้อยที่สุดสำหรับ AR และ SGD สำหรับ AR-net) น้ำหนักที่เรียนรู้จากทั้งสองรุ่นก็เกือบจะเท่ากัน ซึ่งค่อนข้างคล้ายกับ น้ำหนักที่แท้จริง

เพื่อแสดงให้เห็นข้อได้เปรียบประการที่สอง ผู้เขียนได้วัดเวลาการฝึกอบรมจริงของทั้ง AR แบบคลาสสิกและ AR-net สำหรับค่าหลายค่าของลำดับ p (เช่น จำนวนค่าก่อนหน้าของอนุกรมเวลาที่ใช้ คำนวณพยากรณ์) เวลาการฝึกของ AR แบบคลาสสิกนั้นเพิ่มขึ้นเกือบเท่าทวีคูณเมื่อเทียบกับเส้นแบนของ AR-net ดังที่เห็นในรูป 8. สิ่งนี้ทำให้ AR-net เป็นตัวเลือกเดียวที่เป็นไปได้เมื่อมีคำสั่งซื้อสูง

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

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

ในรูปที่ 8 คุณสามารถดูตัวอย่างของ Sparse AR ไม่ว่าลำดับจะเป็น p=7 ก็ตาม (เช่น มีจุดที่ผ่านมาเจ็ดจุดเป็นอินพุต) การทำให้เป็นมาตรฐานจะลดความล่าช้าบางส่วนลงเหลือ 0

ในรูปที่ 9 มีตัวอย่างที่นำมาจากเอกสารประกอบโดยตรง

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

สุดท้ายนี้ เพื่อเปรียบเทียบ AR-net กับ AR แบบคลาสสิก ผู้เขียนได้ติดตั้ง AR แบบคลาสสิกและ AR-net แบบเบาบางที่มีขนาดโมเดลที่แตกต่างกันกับกระบวนการ AR ของลำดับที่ 3 (รูปที่ 10) บนแกน y จะมีการวัดความแตกต่างระหว่างน้ำหนัก/สัมประสิทธิ์ที่เรียนรู้กับน้ำหนักจริงโดยไม่ต้องลงรายละเอียด ดังนั้น ยิ่งเมตริกต่ำ โมเดลก็จะยิ่งดีขึ้น Sparse AR-net สามารถรักษาประสิทธิภาพที่ดีไว้ได้ด้วยขนาดโมเดลที่ใหญ่ขึ้น ในขณะที่ประสิทธิภาพ AR แบบคลาสสิกจะลดลงทันทีที่ลำดับเบี่ยงเบนไปจากของจริง

Deep AR-net

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

ส่วนประกอบ AR ที่นำมาใช้ใน NeuralProphet

ส่วนประกอบ autoregressive ที่ใช้ใน NeuralProphet อาศัย AR-net อย่างมาก แต่ไม่ใช่สำเนาธรรมดา เช่น plug-and-play สำหรับผู้ใช้ส่วนใหญ่การเปลี่ยนแปลงดังกล่าวจะไม่เกี่ยวข้อง แต่เพื่อให้ข้อมูลทั้งหมดและตระหนักถึงเครื่องมือที่ใช้ เราจะอธิบายรูปแบบเหล่านั้นโดยย่อ ประการแรก เกี่ยวกับเวอร์ชัน Deep AR ฟังก์ชันการเปิดใช้งาน ReLU และอคติหลังจากลบเลเยอร์ที่ซ่อนอยู่แล้ว นอกจากนี้ยังมีการปรับเปลี่ยนฟังก์ชันการทำให้เป็นมาตรฐานตามพื้นฐานของ sparse AR โดยเฉพาะอย่างยิ่ง ผู้อ่านที่สนใจสามารถดูเอกสาร AR-net และ NeuralProphet ได้ สุดท้ายนี้ การพัฒนาที่สำคัญที่สุดเกี่ยวข้องกับขอบเขตการคาดการณ์ เช่น เราสามารถคาดการณ์ล่วงหน้าได้กี่ก้าว AR-net มาตรฐานสามารถคาดการณ์ได้ 1 จุด ไม่จำเป็นต้องเป็นก้าวแรกข้างหน้า ดังนั้น หากเราต้องการคาดการณ์วันพรุ่งนี้และมะรืนนี้ เราควรสร้าง NN สองรายการ สำหรับแต่ละขั้นตอน ผู้เขียน NeuralProphet สามารถสร้างการคาดการณ์ได้หลายรายการด้วย NN เดียวกัน ซึ่งสามารถคาดการณ์ทุกขั้นตอนได้ น่าเสียดายที่ไม่มีรายละเอียดว่าพวกเขาดูแลเรื่องนั้นอย่างไร โดยทั่วไป ไม่มีการเผยแพร่การศึกษาเกี่ยวกับความแตกต่างเหล่านั้นส่งผลต่อประสิทธิภาพการทำงานอย่างไร ขอย้ำอีกครั้ง เราเพียงต้องการแจ้งให้คุณทราบถึงโมเดลที่คุณใช้อยู่

ตามที่ระบุไว้โดยผู้เขียน สิ่งสำคัญคือต้องจำไว้ว่าในแต่ละจุดพยากรณ์นั้นจะต้องมีการคาดการณ์มากกว่าที่มาจากแหล่งกำเนิดที่แตกต่างกัน ดูรูปที่ 13 เป็นตัวอย่าง ขั้นตอนแรกจะถูกใช้เป็นความล่าช้า ดังนั้นจึงไม่มีการคาดการณ์ที่เกี่ยวข้อง การคาดการณ์แรกที่มีคือปี 2020–09–06 และได้จัดทำขั้นตอนก่อนหน้านี้ ซึ่งอยู่ในคอลัมน์ yhat1 ขั้นตอนต่อไป (2020–09–13) มีการคาดการณ์สองประการ yhat1 ทำขั้นตอนก่อนหน้า และ yhat2 ทำสองขั้นตอนก่อนหน้า ยิ่งก้าวไปข้างหน้ามากเท่าใดก็ยิ่งมีการคาดการณ์มากขึ้นเท่านั้น ขึ้นอยู่กับจำนวนขั้นตอนในการคาดการณ์

ตัวถดถอยที่ล่าช้า

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

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

ตัวอย่างของความยืดหยุ่นใหม่: การปรับแต่งฟังก์ชันการสูญเสีย

เราเน้นการปรับปรุงของ NeuralProphet เมื่อเปรียบเทียบกับ Prophet และส่วนประกอบหลัก ที่นี่เราอยากจะยกตัวอย่างในโลกแห่งความเป็นจริงเกี่ยวกับศักยภาพของ NeuralProphet ในแง่ของความยืดหยุ่น จริงๆ แล้ว โดยไม่จำเป็นต้องบิดโมเดล เราก็สามารถเสียบฟังก์ชันการสูญเสียแบบกำหนดเองเข้าไปได้ ตราบใดที่มันถูกเขียนด้วย PyTorch

ในกรณีการใช้งานตามอนุกรมเวลาที่เราพัฒนาขึ้น เนื่องจากความต้องการทางธุรกิจที่เฉพาะเจาะจง การถ่ายภาพเกินความจำเป็นมากกว่าการถ่ายภาพน้อยเกินไป เราจึงทดลองกับฟังก์ชันการสูญเสียที่ปรับแต่งเอง ดังที่คุณเห็นในสูตรด้านล่าง เราเริ่มต้นด้วยการกำหนดหน่วยวัดข้อผิดพลาดสัมพัทธ์ E จากนั้น ในกรณีที่ E ‹ -0.05 ซึ่งหมายความว่าเราประเมินค่าจริงต่ำเกินไปมากกว่า 5% ค่าที่สูญเสียคือ MSE คูณด้วยค่าคงที่ k . มิฉะนั้นการสูญเสียเป็นเพียง MSE ด้วยวิธีนี้ ฟังก์ชันการสูญเสียจะยังคงสร้างความแตกต่างได้ ขณะเดียวกันก็ลงโทษการถ่ายภาพที่ต่ำกว่า ทางด้านขวาของรูปที่ 14 คุณจะพบการนำฟังก์ชันนี้ไปใช้งานด้วย Python C ย่อมาจาก Condition เนื่องจากเป็นข้อผิดพลาดเมื่อเป้าหมายไม่ใช่ 0 มิฉะนั้นจะเป็นเป้าหมาย จากนั้น l จะถูกคูณด้วย MSE หาก c ต่ำกว่า -0.05 มิฉะนั้นจะแทนเพียง MSE

ในรูปที่ 14 มีตัวอย่างการทดลองที่เราดำเนินการต่อไป โดยเฉพาะอย่างยิ่ง มีการคาดการณ์ที่แตกต่างกันสามแบบที่ทำตามลำดับด้วยฟังก์ชันการสูญเสียเหล่านี้: การสูญเสีย MSE แบบคลาสสิก, การลงโทษ MSE ด้วย k = 2 และการลงโทษ MSE ด้วย k= 3 การเพิ่ม k ขยับเส้นโค้งการคาดการณ์ขึ้นเล็กน้อยตามที่คาดไว้

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

บทสรุป

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

บทความนี้เขียนขึ้นด้วยความร่วมมืออันมีค่าของ Riccardo Tambone

อ้างอิง

[1] O. Triebe, H. Hewamalage, P. Pilyugina, N. Laptev, C. Bergmeir และ R. Rajagopal, “NeuralProphet: การพยากรณ์ที่อธิบายได้ในขนาด” arXiv,2021

(2) “เอกสารนักประสาทวิทยา” [ออนไลน์] มีจำหน่าย: https://neuralprophet.com/.

[3] O. Triebe, N. Laptev และ R. Rajagopal, “AR-Net: เครือข่ายประสาทเทียมอัตโนมัติแบบถดถอยอย่างง่ายสำหรับอนุกรมเวลา” arXiv,2019

[4] P. Montero-Manso และ R. J. Hyndman, “หลักการและอัลกอริทึมสำหรับการคาดการณ์กลุ่มอนุกรมเวลา: ท้องถิ่นและระดับโลก” International Journal of Forecasting,vol. 37, ไม่ใช่. 4 หน้า 1632–1653, 2021.

[5] เอช. เฮวามาเลจ, ซี. เบิร์กเมียร์ และเค. บันดารา, “แบบจำลองระดับโลกสำหรับการพยากรณ์อนุกรมเวลา: การศึกษาแบบจำลอง,” การจดจำรูปแบบ,ฉบับที่ 124, 2022.