ในการสอน MNistของ Google โดยใช้ TensorFlowการคำนวณจะแสดงในขั้นตอนเดียวซึ่งเทียบเท่ากับการคูณเมทริกซ์ด้วยเวกเตอร์ Google แสดงภาพแรกซึ่งการคูณตัวเลขแต่ละตัวและการเพิ่มเติมที่จะนำไปใช้ในการคำนวณจะถูกเขียนออกมาทั้งหมด ถัดไปพวกเขาแสดงรูปภาพที่แสดงแทนการคูณเมทริกซ์โดยอ้างว่าการคำนวณรุ่นนี้หรืออย่างน้อยอาจเร็วกว่า:
ถ้าเราเขียนมันออกมาเป็นสมการเราจะได้:
เราสามารถ "vectorize" ขั้นตอนนี้โดยเปลี่ยนเป็นการคูณเมทริกซ์และการบวกเวกเตอร์ สิ่งนี้มีประโยชน์สำหรับประสิทธิภาพการคำนวณ (เป็นวิธีคิดที่มีประโยชน์ด้วย)
ฉันรู้ว่าสมการนี้มักเขียนในรูปแบบการคูณเมทริกซ์โดยผู้ฝึกการเรียนรู้ของเครื่องจักรและแน่นอนว่าสามารถเห็นข้อดีในการทำเช่นนั้นจากมุมมองของรหัสความบิดเบี้ยวหรือความเข้าใจคณิตศาสตร์ สิ่งที่ฉันไม่เข้าใจคือการกล่าวอ้างของ Google ว่าการแปลงจากแบบยาวเป็นแบบเมทริกซ์"มีประโยชน์สำหรับประสิทธิภาพการคำนวณ"
เมื่อใดทำไมและเป็นไปได้อย่างไรที่จะได้รับการปรับปรุงประสิทธิภาพในซอฟต์แวร์โดยแสดงการคำนวณเป็นการคูณเมทริกซ์ ถ้าฉันต้องคำนวณการคูณเมทริกซ์ในภาพที่สอง (อิงเมทริกซ์) ตัวฉันในฐานะมนุษย์ฉันจะทำโดยการคำนวณที่แตกต่างกันตามลำดับที่แสดงในภาพแรก (สเกลาร์) สำหรับฉันแล้วมันไม่ใช่แค่เครื่องหมายสองประการสำหรับลำดับการคำนวณเดียวกัน ทำไมคอมพิวเตอร์ของฉันถึงมีความแตกต่าง? ทำไมคอมพิวเตอร์จะสามารถทำการคำนวณเมทริกซ์ได้เร็วกว่าแบบสเกลาร์