ตอนนี้ Deep Learning เป็นพระเอกของปัญญาประดิษฐ์ ผมเลยคิดว่าจะชวนพวกเราคุยเรื่องที่ไม่ค่อยมีคนคุย นั่นก็คือ Big O ในการคำนวณ Deep Learning น่าจะอยู่ในคลาสไหน?
จริง ๆ แล้ว ไม่ว่าจะเป็น Perceptron หรือ Multi-layer Perceptron หรือ Deep Learning ผมก็วิเคราะห์ว่า Big O น่าจะเท่ากับ Big O(LXN + LXN) ซึ่งก็หมายความว่ามันเป็นสมาชิกของคลาส Big O(N ^ 3)
โดย L = จำนวน Hidden Layer + Output Layer, X = จำนวน Node ใน Layer ถัดไป และ N = จำนวน Node ใน Layer ปัจจุบัน
และที่ต้องเอา LXN มาบวกกับ LXN ก็เพราะว่า LXN แรกคือเวลาในการคำนวณผล ส่วน LXN หลังคือเวลาในการป้อนค่่าน้ำหนักย้อนกลับ!!!
ดังนั้น ถ้าเรามองดี ๆ เราจะเห็นว่ากรณี Perceptron ซึ่ง L = 0+1 (ไม่มี Hidden Layer) และ X = 1 (Output Layer มีเพียง Node เดียว) ดังนั้น Big O ของ Perceptron คือ Big O(1*1*N + 1*1*N) หรือ Big O(2N)
สำหรับการวนตามจำนวน epoch เพื่อเรียนรู้ตาม dataset ที่มี ผมไม่นับใน Big O นะ ผมนับเฉพาะในส่วนของ Model เท่านั้น เดี๋ยวจะเข้าใจผิดกันว่ามันต้องมีลูปใหญ่อีกชั้นนึงตอนสอน Deep Learning แล้วทำไมถึงไม่นับใน Big O ด้วย!!!
ทั้งหมดที่ผมเกริ่น ๆ ขึ้นมา ผมแค่อยากจะบอกว่าการคำนวณ Deep Learning มันใช้เวลาเป็น Polynomial และมันต้องวนลูป 3 ชั้นสองครั้งขึ้นไป ซึ่งมันเป็นสิ่งที่กระทำได้ตามสภาพที่ Digital Computer จะเอื้ออำนวย
ผมเคยเล่าเรื่องความเร็วของ Quantum Computer เอาไว้ ผมบอกว่า Quantum Computer โดยกำเนิดแล้ว สามารถคำนวณทุกปัญหาได้ในเวลา Polynomial โดยต้องมีอัลกอริทึมที่เหมาะสม
ดังนั้น ต่อให้เป็นปัญหาที่คำนวณบน Digital Computer ซึ่งต้องคำนวณด้วยเวลา Exponential หรือ Factorial แต่ถ้ามีอัลกอริทึมที่เหมาะสม ก็สามารถคำนวณด้วยเวลา Polynomial ได้บน Quantum Computer!!!
และไม่ใช่ Polynomial แบบ Big O(N) หรือ Big O(N^C) ด้วยนะ แต่ Quantum Computer สามารถลดความเร็วลงได้ถึงระดับ Big O((Log N) ^ 2 (Log Log N) (Log Log Log N)) เลยทีเดียว (อันนี้ผมอ้างอิงจาก Paper การแยกตัวประกอบเฉพาะบน Quantum Computer ของ Peter Shor นะ )!!!
ทีนี้เราย้อนกลับมาเปรียบเทียบ จะเห็นว่า Deep Learning ใช้เวลาคำนวณในคลาส Big O(N ^ 3) ดังนั้น หากคิดค้นอัลกอริทึมที่เหมาะสมได้ ก็อาจสามารถลดความเร็วในการคำนวณบน Quantum Computer ให้อยู่ในคลาส Big O(Log N) หรือ Big O(N Log N) ได้เลยทีเดียว!!!
สรุปแล้ว อัลกอริทึมเป็นสิ่งสำคัญที่สุด มันต้องมีคนคิดค้นอัลกอริทึมสำหรับ Deep Learning บน Quantum Computer ให้ได้ก่อน ศักยภาพแห่งความเร็วโคตร ๆ จึงจะเกิดขึ้นได้ และเมื่อนั้น การสอน Deep Learning รวมทั้งการทำนายด้วย Deep Learning บน Quantum Computer จึงจะเป็นอะไรที่น่าตื่นตะลึงในความเร็วอย่างถึงที่สุดครับ