บล็อกนี้เอาสั้น ๆ นะ สืบเนื่องจากคราวก่อนเขียนเรื่อง ทำไม DEEP LEARNING บน QUANTUM COMPUTER จึงทำงานเร็วมาก ๆ เอาไว้ แล้วเห็นว่ามันมีประเด็นเรื่อง Big O ที่ต้องขยายความอยู่นิดนึง เลยมาต่องานในบล็อกนี้
คือเวลาในการทำงานของ Deep Learning มันก็เหมือนโมเดลปัญญาประดิษฐ์ทั่วไป แบบว่าเวลาในการสอนกับเวลาในการใช้งาน มันไม่เท่ากัน ซึ่ง Big O มันก็จะไม่เท่ากัน เลยจะมาขยายความว่าถ้าเป็นเวลาในการสอน Big O จะเท่าไหร่ และเวลาในการใช้งาน Big O จะเท่าไหร่
มาเริ่มกันเลย!!!
1) เวลาในการสอน Deep Learning
สั้น ๆ ผมวิเคราะห์ว่ามันจะเป็นสมาชิกของ Big O(ED(LXN + LXN))
โดย E = จำนวน Epoch ในตอนที่สอน, D = จำนวน Dataset ที่ใช้สอน, L = จำนวน Hidden Layer + Output Layer ของโมเดล, X = จำนวน Node ใน Layer ถัดไปของโมเดล และ N = จำนวน Node ใน Layer ปัจจุบันของโมเดล
และที่ต้องเอา LXN มาบวกกับ LXN ก็เพราะว่า LXN แรกคือเวลาในการคำนวณผล ส่วน LXN หลังคือเวลาในการป้อนค่่าน้ำหนักย้อนกลับ!!!
2) เวลาในการใช้งาน Deep Learning
อันนี้สั้นยิ่งกว่า ผมวิเคราะห์ว่ามันจะเป็นสมาชิกของ Big O(LXN)
โดยตัวแปร L, X และ N อธิบายไว้แล้วในข้อที่ 1 ตรงนี้ไม่อธิบายเพิ่มนะ
ทีนี้พอลงในรายละเอียดอีกนิดนึง Big O(ED(LXN + LXN)) ก็ถือว่าเป็นสมาชิกของ Big O(N ^ 5) ส่วน Big O(LXN) ก็ถือว่าเป็นสมาชิกของ Big O(N ^ 3)
O(ED(LXN + LXN) ∈ O(N ^ 5)
O(LXN) ∈ O(N ^ 3)
หรือสรุปง่าย ๆ ก็คือ ตอนที่สอน Deep Learning ต้องวนลูป 5 ชั้น และในทางตรงกันข้าม ตอนที่ใช้งาน Deep Learning วนลูปเพียง 3 ชั้นก็พอ!!!
ดังนั้นผมถึงได้คิดว่า ถ้าสร้างอัลกอริทึมสำหรับสอนและใช้งาน Deep Learning บน Quantum Computer ได้เมื่อไหร่ จากที่ต้องสอนด้วยเวลา Big O(N ^ 5) และใช้งานด้วยเวลา Big O(N ^ 3) ก็อาจจะลดเวลาลงเหลือเท่ากับ Big O(Log N) ซึ่งมันเป็นอะไรที่เร็วมาก ๆ เลยล่ะ
สำหรับงานทาง Computer Science ใครก็ตามที่สามารถคิดค้นอัลกอริทึม ที่สามารถลดเวลาคำนวณให้เหลือแค่ Big O(Log N) ได้ ถือว่าโคตรสุดยอดครับ!!!