การพยากรณ์อนุกรมเวลาด้วย TensorFlow: ส่วนประกอบ รุ่น และขั้นตอน
เผยแพร่แล้ว: 2021-05-02สารบัญ
การพยากรณ์อนุกรมเวลาคืออะไร?
คุณรู้หรือไม่ว่าเอเชียแปซิฟิกเป็นตลาดการเรียนรู้เชิงลึกที่เติบโตใหญ่ที่สุดในโลกด้วย CAGR (อัตราการเติบโตต่อปีแบบทบต้น) มากกว่า 40%? การทำนาย อนุกรมเวลาของ TensorFlow เป็นแนวคิดที่สำคัญในการเรียนรู้เชิงลึกและ ML โมเดลการเรียนรู้เชิงลึก/ML ทั้งหมดมีชุดข้อมูลที่เกี่ยวข้องกันซึ่งเป็นชุดของการสังเกต การสังเกตเหล่านี้มักประกอบด้วยองค์ประกอบของเวลา อนุกรมเวลาจัดเรียงการสังเกตตามลำดับเวลา จึงเป็นการเพิ่มมิติใหม่ให้กับชุดข้อมูล กล่าวคือ เวลา
อาจมีคนคิดว่าจะเพิ่มมิติข้อมูลของชุดข้อมูลได้อย่างไร การเพิ่มมิติเวลาให้กับชุดข้อมูลของคุณจะสร้างระดับการพึ่งพาอาศัยกันโดยละเอียดระหว่างการสังเกตการณ์ ผลลัพธ์จะถูกทำนายด้วยความช่วยเหลือของการคาดการณ์อนุกรมเวลาของการสังเกตก่อนหน้า
การใช้ข้อมูลอนุกรมเวลา (ข้อมูลทางประวัติศาสตร์) ในการทำนายอนาคตเรียกว่าการพยากรณ์อนุกรมเวลา เราควรตรวจสอบให้แน่ใจด้วยว่าอนาคตไม่ควรเป็นที่รู้จักอย่างสมบูรณ์และสามารถคาดการณ์ได้จากข้อมูลในอดีตเท่านั้น
ข้อมูลอนุกรมเวลาถูกวิเคราะห์เพื่อพัฒนาแบบจำลองที่อธิบายข้อมูลอย่างมีประสิทธิภาพ อนุกรมเวลาถูกแบ่งออกเป็นหลายองค์ประกอบสำหรับการพัฒนาแบบจำลองที่เหมาะสม เมื่อมีการพัฒนาแบบจำลองที่อธิบายข้อมูลในอดีตได้ดีที่สุดแล้ว ก็จะนำไปใช้ในการพยากรณ์ ไม่ควรสับสนระหว่างการวิเคราะห์อนุกรมเวลากับการคาดการณ์อนุกรมเวลา เนื่องจากอันหลังจะมีผลเฉพาะเมื่ออดีตเสร็จสิ้นเท่านั้น
ส่วนประกอบอนุกรมเวลา
ก่อนที่จะรู้เกี่ยวกับ การคาดการณ์ อนุกรมเวลาของ TensorFlow เราควรคุ้นเคยกับองค์ประกอบของอนุกรมเวลาก่อน อนุกรมเวลาถูกแบ่งออกเป็นสี่องค์ประกอบระหว่างการวิเคราะห์อนุกรมเวลา ส่วนประกอบเหล่านี้ช่วยในการทำความเข้าใจชุดข้อมูลอย่างถูกต้อง องค์ประกอบสี่ประการของอนุกรมเวลามีดังนี้:
- แนวโน้ม – พฤติกรรมของชุดข้อมูล/ชุดข้อมูลในช่วงเวลาหนึ่งจะอธิบายโดยแนวโน้ม พฤติกรรมการเพิ่มขึ้นและลดลงของอนุกรมเวลานั้นอธิบายโดยแนวโน้ม
- ระดับ – ระดับคือค่าพื้นฐานของอนุกรมเวลา โดยพิจารณาว่าการแสดงชุดข้อมูลเป็นเส้นตรง ผู้เชี่ยวชาญหลายคนยังกำหนดระดับเป็นค่าเฉลี่ยของชุดข้อมูล
- ฤดูกาล – พฤติกรรมของซีรีส์ที่เกิดซ้ำเมื่อเวลาผ่านไปเรียกว่าฤดูกาล ผู้เชี่ยวชาญบางคนยังถือว่าฤดูกาลเป็นความผันผวนเป็นระยะ
- สัญญาณรบกวน – ชุดข้อมูลแต่ละชุดมีจุดข้อมูล/ค่าผิดปกติที่แบบจำลองอนุกรมเวลาไม่สามารถอธิบายได้ ชุดข้อมูลเหล่านี้มีคุณสมบัติที่คาดเดาไม่ได้และไม่สามารถจับคู่ผ่านการวิเคราะห์/การคาดการณ์อนุกรมเวลาได้
หนึ่งควรสังเกตว่าอนุกรมเวลาต้องมีระดับและเสียงรบกวน อย่างไรก็ตาม เทรนด์และฤดูกาลในอนุกรมเวลานั้นเป็นทางเลือก
ทำไมต้อง TensorFlow?
แม้ว่าจะมีเฟรมเวิร์กมากมายในตลาดสำหรับการคาดการณ์อนุกรมเวลา แต่ผู้เชี่ยวชาญด้านเทคโนโลยีระดับลึกชอบ TensorFlow มากกว่าเฟรมเวิร์กที่มีอยู่ทั้งหมด TensorFlow เขียนด้วยภาษา Python, C++ และ CUDA ซึ่งเป็นภาษาโปรแกรมที่ใช้กันอย่างแพร่หลาย TensorFlow เป็นไลบรารีซอฟต์แวร์โอเพ่นซอร์สที่ออกแบบมาโดยเฉพาะสำหรับการเรียนรู้ของเครื่องและการเรียนรู้เชิงลึก
TensorFlow ช่วยเราในการสร้างแบบจำลอง ML ระหว่างการวิเคราะห์อนุกรมเวลาที่จะใช้สำหรับการคาดการณ์ เสนอให้ผู้ใช้สร้างโมเดลประเภทต่างๆ เช่น CNN (Convolutional Neural Network), RNN (Recurrent Neural Network) เป็นต้น TensorFlow สามารถช่วยคุณคาดการณ์ขั้นตอนเดียวหรือหลายขั้นตอนขึ้นอยู่กับผู้ใช้และชุดข้อมูล ในขณะที่ พยากรณ์ อนุกรมเวลา TensorFlow คุณสามารถ:
- คาดการณ์คุณลักษณะ/มิติเดียวสำหรับขั้นตอนเดียว
- คาดการณ์มิติทั้งหมดของชุดข้อมูลสำหรับขั้นตอนเดียว
- พยากรณ์หลายขั้นตอนในช็อตเดียว (ทำการคาดการณ์ทั้งหมดพร้อมกัน)
- การคาดการณ์หลายขั้นตอนโดยมีการทำนายทีละครั้ง (การถดถอยอัตโนมัติ)
การตั้งค่าข้อมูลสำหรับการพยากรณ์อนุกรมเวลา
ก่อนการพยากรณ์อนุกรมเวลา เราต้องเตรียมข้อมูลให้เหมาะสมก่อน การตั้งค่าสำหรับการคาดการณ์อนุกรมเวลาประกอบด้วยกระบวนการต่างๆ เช่น การดึงข้อมูล การสร้างภาพ การสำรวจ การ ทำความสะอาด ฯลฯ ให้เราดูขั้นตอนเบื้องหลังการตั้งค่าข้อมูลสำหรับการคาดการณ์อนุกรมเวลา:
- ขั้นตอนพื้นฐานคือการนำเข้าข้อมูลหรือแยกข้อมูล คุณต้องมีชุดข้อมูลที่จะดึงข้อมูลเชิงลึกแบบสมบูรณ์โดยใช้การคาดการณ์อนุกรมเวลา
- ขั้นตอนต่อไปคือการล้างข้อมูล ซึ่งคุณจะลบจุดข้อมูลที่ซ้ำกันหรือไม่เกี่ยวข้องออก ข้อมูลที่ขาดหายไปจะได้รับการจัดการในขั้นตอนนี้ด้วย หากพบสิ่งผิดปกติแต่เนิ่นๆ ให้ลบออกจากชุดข้อมูล ข้อผิดพลาดเชิงโครงสร้างสามารถแก้ไขได้ภายใต้การล้างข้อมูล
- ปริมาณในอนุกรมเวลาที่แปรผันตามเวลาเรียกว่าเป็นสัญญาณ สัญญาณเหล่านี้ยังแสดงถึงเหตุการณ์ทางกายภาพต่างๆ ในอนุกรมเวลาอีกด้วย ตัวอย่างเช่น หากมีชุดเวลาของคำอธิบายสภาพอากาศของสถานที่ใดๆ ในช่วงวันที่ต่างกัน สัญญาณก็จะเป็นเหตุการณ์ทางกายภาพ เช่น อุณหภูมิ ปริมาณน้ำฝน ฯลฯ ดำเนินการแปลงสัญญาณในรูปแบบบาป cos
- นอกจากการแปลงสัญญาณเป็นรูปแบบ sin cos แล้ว ให้แปลงเวลาและวันที่เป็นวินาที เมื่อคุณทำเสร็จแล้ว ให้พลอตเวลาและฟังก์ชัน sin cos
- ก่อนการคาดการณ์และฝึกอบรมข้อมูลของเรา เราจะแบ่งข้อมูลตามเวลาเพื่อให้เข้าใจง่ายขึ้น
- ข้อมูลจะถูกทำให้เป็นมาตรฐานก่อนการฝึก ขั้นตอนที่ง่ายที่สุดสำหรับการปรับข้อมูลให้เป็นมาตรฐานคือการลบค่าเฉลี่ยของชุดข้อมูลออกจากจุดข้อมูลแต่ละจุดแล้วหารด้วยค่าเบี่ยงเบนมาตรฐาน
- เมื่อคุณเสร็จสิ้นการปรับข้อมูลให้เป็นมาตรฐานแล้ว คุณต้องตรวจสอบความลำเอียงของข้อมูล ความลำเอียงของข้อมูลถูกกำหนดให้เป็นเงื่อนไขที่องค์ประกอบบางอย่างของชุดข้อมูลถูกแสดงอย่างหนักเมื่อเปรียบเทียบกับองค์ประกอบอื่นๆ ข้อมูลที่มีอคติส่งผลให้มีความแม่นยำลดลงพร้อมกับการวิเคราะห์แบบเบ้ คุณสามารถพล็อตพล็อตเรื่องไวโอลินเพื่อลบความลำเอียงของข้อมูลที่มีอยู่ในชุดข้อมูลของคุณ
หน้าต่างข้อมูล
คุณต้องสงสัยว่ามีกระบวนการมากมายที่เกี่ยวข้องก่อนการคาดการณ์อนุกรมเวลา ผู้ที่ชื่นชอบเทคโนโลยีรุ่นเยาว์ควรรู้ว่าการเตรียมข้อมูลเป็นขั้นตอนสำคัญก่อนที่จะฝึกอบรมหรือวิเคราะห์ข้อมูล กรอบเวลาข้อมูลเป็นขั้นตอนสุดท้ายในการตั้งค่าข้อมูลสำหรับ การคาดการณ์ TensorFlow ของอนุกรมเวลา Data windowing ช่วยในการนำข้อมูลไปใช้กับโมเดลต่างๆ โดยไม่ต้องกังวล
ตัวอย่างเช่น หากแบบจำลองคาดการณ์ล่วงหน้า 1 ชั่วโมง คุณจำเป็นต้องมีกรอบเวลาข้อมูลย้อนหลัง 6 ชั่วโมงจึงจะคาดการณ์ได้อย่างมีประสิทธิภาพ หน้าต่างข้อมูลในอดีตเรียกว่า 'ความกว้างของอินพุต' ในขณะที่หน้าต่างข้อมูลที่จะคาดการณ์เรียกว่า 'ออฟเซ็ต' ระหว่างการทำกรอบข้อมูล
ชำระเงิน: โครงการ Tensorflow ยอดนิยม
TensorFlow รุ่นขั้นตอนเดียว
เมื่อคุณมีชุดข้อมูลที่ง่ายที่สุดและคาดการณ์เพียงขั้นตอนเดียวในอนาคต คุณจะใช้แบบจำลองขั้นตอนเดียวของ TensorFlow ตัวอย่างเช่น หากคุณได้สร้างหน้าต่างข้อมูลเป็น 'ชั่วโมง' แล้ว เป็นการคาดคะเนหนึ่งขั้น หมายความว่าคุณกำลังคาดการณ์หนึ่งชั่วโมงในอนาคต ออบเจ็กต์ 'WindowGenerator' ถูกสร้างขึ้นใน TensorFlow เพื่อพัฒนาคู่แบบขั้นตอนเดียว กล่าวคือ อินพุตและป้ายกำกับ
นอกจากนี้ยังแนะนำให้สร้างแบบจำลองพื้นฐานก่อนการฝึกแบบจำลองของคุณ การสร้างแบบจำลองพื้นฐานจะช่วยคุณในการเปรียบเทียบแบบจำลองขั้นตอนเดียวเริ่มต้นกับแบบจำลองที่ซับซ้อนในอนาคต ตัวอย่างเช่น หากคุณกำลังคาดการณ์อุณหภูมิเป็นเวลา 1 ชั่วโมงในอนาคต ให้สร้างแบบจำลองพื้นฐานที่คืนค่าอุณหภูมิปัจจุบันเป็นการคาดคะเน (ไม่มีการเปลี่ยนแปลง)
เนื่องจากอุณหภูมิเปลี่ยนแปลงอย่างช้าๆ เมื่อเวลาผ่านไป จึงเป็นไปได้ที่อุณหภูมิจะไม่เปลี่ยนแปลงหลังจากผ่านไปหนึ่งชั่วโมง โปรดทราบว่าโมเดลพื้นฐานจะไม่มีผลเมื่อคาดการณ์หลายขั้นตอน
อีกตัวอย่างหนึ่งของการสร้างแบบจำลองขั้นตอนเดียวโดยใช้ TensorFlow คือการแทรกการแปลงเชิงเส้นระหว่างอินพุตและเอาต์พุต ตรวจสอบให้แน่ใจว่าผลลัพธ์ขึ้นอยู่กับขั้นตอนเดียวที่จะประเมินในขณะที่สร้างแบบจำลองเชิงเส้นโดยใช้ TensorFlow โมเดลหนาแน่นเป็นอีกหนึ่งโมเดลขั้นตอนเดียวที่สร้างโดยใช้ TensorFlow
Convolution neural network ผ่าน TensorFlow ยังสามารถใช้เพื่อคาดการณ์ขั้นตอนเดียว เลเยอร์ Convolution ใน TensorFlow จะใช้ขั้นตอนเวลาหลายขั้นตอนเป็นอินพุตสำหรับการทำนายขั้นตอนเวลา RNN ยังใช้กันอย่างแพร่หลายสำหรับการคาดการณ์อนุกรมเวลา
สถานะภายในของเครื่องยังข้ามจากขั้นตอนเวลาไปอีกขั้น เนื่องจาก RNN ประมวลผลอนุกรมเวลาทีละขั้นตอน (โดยค่าเริ่มต้น) การคาดการณ์ อนุกรมเวลา TensorFlow ผ่าน RNN เป็นตัวเลือกที่ดี เนื่องจากแบบจำลอง RNN มักจะจดจำประวัติอินพุตที่มีมาอย่างยาวนาน (ข้อมูลทางประวัติศาสตร์)
แบบจำลองหลายขั้นตอนของ TensorFlow
ในแบบจำลองหลายขั้นตอน การคาดคะเนจะทำในช่วงเวลาหนึ่ง แบบจำลองหลายขั้นตอนต่างจากแบบจำลองขั้นตอนเดียว ซึ่งคาดการณ์ช่วงของค่าในอนาคตโดยใช้ข้อมูลในอดีต โมเดลแบบหลายขั้นตอนสามารถทำนายอนุกรมเวลาในอนาคตทั้งหมดได้ในคราวเดียวผ่านการทำนายแบบนัดเดียว คุณยังสามารถใช้การคาดคะเนการถดถอยอัตโนมัติ โดยที่โมเดลจะทำการทำนายขั้นตอนเดียวในแต่ละครั้ง ผลลัพธ์ของการทำนายขั้นตอนเดียวในการทำนายการถดถอยอัตโนมัติทำงานเป็นอินพุตสำหรับการทำนายขั้นตอนในครั้งต่อไป
บทสรุป
การทำนาย อนุกรมเวลาของ TensorFlow ให้ผลลัพธ์ที่แม่นยำเมื่อเปรียบเทียบกับเฟรมเวิร์กอื่นๆ เราได้พูดถึงโมเดลขั้นตอนเดียวบางตัว (CNN, RNN, Dense เป็นต้น) ที่สามารถใช้สำหรับการคาดการณ์ขั้นตอนเดียวผ่าน TensorFlow
คุณยังสามารถคาดการณ์ช่วงของค่าในอนาคตได้โดยใช้แบบจำลองหลายขั้นตอน เราควรทราบด้วยว่าการเตรียมข้อมูลเป็นขั้นตอนสำคัญก่อน การคาดการณ์ อนุกรมเวลาของ TensorFlow คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับการคาดคะเนอนุกรมเวลาใน DL (การเรียนรู้เชิงลึก) และ ML โดยการเลือก โปรแกรมใบรับรองขั้นสูง ของ upGrad ใน DL & ML เริ่มเรียนรู้การพยากรณ์อนุกรมเวลาด้วย TensorFlow!
ข้อจำกัดของการใช้ TensorFlow คืออะไร?
แม้ว่า TensorFlow จะลดความยาวของโค้ด แต่ก็ทำให้โค้ดซับซ้อนขึ้นเล็กน้อยเช่นกัน เมื่อเปรียบเทียบกับคู่แข่ง TensorFlow นั้นช้าและใช้งานได้น้อยกว่า TensorFlow ล้าหลังเมื่อพูดถึงการนำเสนอการวนซ้ำสัญลักษณ์สำหรับลำดับที่ไม่แน่นอน TensorFlow รองรับ NVIDIA GPU เท่านั้นและรองรับการเขียนโปรแกรม Python GPU ไม่มีการสนับสนุนรูปแบบอื่น ไม่ได้มีข้อดีมากมายสำหรับผู้ใช้ระบบปฏิบัติการ Windows
แอมพลิจูดของความไม่ต่อเนื่องที่ขอบของลำดับจำกัดแต่ละลำดับที่บันทึกโดยดิจิไทเซอร์จะลดลงโดยการทำหน้าต่าง ระบบหน้าต่างช่วยให้แอปจำนวนมากสามารถแบ่งปันการแสดงผลกราฟิกและทรัพยากรการนำเสนอของคอมพิวเตอร์ได้ในเวลาเดียวกัน คุณอาจต้องการใช้หลายแอปพร้อมกันบนคอมพิวเตอร์ที่มีอินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI)
การเรียนรู้ TensorFlow ยากไหม
TensorFlow เป็นเรื่องง่ายสำหรับบางคน ในขณะที่บางคนคิดว่าการเรียนรู้เป็นเรื่องยาก หากคุณมีความรู้ภาษาการเขียนโปรแกรมต่างๆ มาก่อน และคุณคุ้นเคยกับเทคนิคการเรียนรู้ของเครื่องต่างๆ อยู่แล้ว การเรียนรู้ TensorFlow จะเป็นเรื่องง่ายสำหรับคุณ อย่างไรก็ตาม ระดับความยากก็ขึ้นอยู่กับความสนใจของคุณเช่นกัน หากคุณสนใจ TensorFlow จริงๆ การเรียนรู้มันจะไม่เป็นงานที่ยากมาก