Google'ın TensorFlow'u kullanan MNist eğitiminde , bir adımın bir matrisin bir vektörle çarpılmasına eşdeğer olduğu bir hesaplama gösterilir. Google önce, hesaplamayı gerçekleştirecek her sayısal çarpma ve eklemenin tam olarak yazıldığı bir resim gösterir. Daha sonra, hesaplamanın bu sürümünün daha hızlı olduğunu veya en azından daha hızlı olabileceğini iddia ederek bunun yerine matris çarpımı olarak ifade edildiği bir resim gösterirler:
Bunu denklemler olarak yazarsak:
Bu işlemi bir matris çarpımına ve vektör eklemesine dönüştürerek "vektörleştirebiliriz". Bu, hesaplama verimliliği için yararlıdır. (Aynı zamanda düşünmenin de yararlı bir yoludur.)
Bunun gibi denklemlerin genellikle makine öğrenme uygulayıcıları tarafından matris çarpma formatında yazıldığını biliyorum ve elbette bunu kod tersliği veya matematiği anlamak açısından yapmanın avantajlarını görebiliyorum. Anlamadığım şey, Google'ın uzun el formundan matris formuna dönüştürmenin "hesaplama verimliliği için yararlı" iddiasıdır.
Hesaplamaları matris çarpımı olarak ifade ederek yazılımda performans iyileştirmelerini ne zaman, neden ve nasıl elde etmek mümkün olabilir? İkinci (matris tabanlı) görüntüdeki matris çarpımını kendim hesaplayacak olsaydım, bir insan olarak, bunu ilk (skaler) görüntüde gösterilen her bir farklı hesaplamayı sırayla yaparak yapardım. Bana göre, bunlar aynı hesaplama dizisi için iki gösterimden başka bir şey değildir. Bilgisayarım için neden farklı? Bir bilgisayar neden matris hesaplamasını skaler olandan daha hızlı yapabilir?