Lineer Cebir

Lineer cebir (doğrusal cebir), vektörler, matrisler ve doğrusal dönüşümlerle ilgilenen matematiğin bir alt alanıdır. Lineer cebir, yüksek boyutlardaki düzlemlerin, koordinatlarını ve etkileşimlerini daha kesin olarak tanımlamaya ve üzerinde işlem yapmaya olanak sağlar. Lineer cebir kavramları, makine öğrenmesinin özellikle derin öğrenmenin arkasındaki teoriyi anlamak için çok önemlidir.

Makine öğrenmesine başlamadan önce lineer cebiri anlamanıza gerek yoktur ancak bir noktada, farklı makine öğrenmesi algoritmalarının gerçekte nasıl çalıştığını daha iyi anlamak isteyebilirsiniz. Lineer cebir, makine öğrenmesi algoritmalarının gerçekte nasıl çalıştığı konusunda bize bir fikir verir ve böylece biz de makine öğrenmesi sistemimizi geliştirirken daha iyi kararlar alabiliriz.

Lineer cebir, karmaşık sorunları basit, sezgisel ve verimli hesaplanabilen problemlere dönüş-türmeyi sağlar. Lineer cebirde veriler, vektörler ve matrisler şeklinde sunulan lineer denklemlerle ifade edilir. Derin öğrenmenin temelini oluşturan sinir ağları başta olmak üzere makine öğrenmesi algoritmalarının çoğunda veriler matrislerde saklanır. Lineer cebir, özellikle GPU’larda, makine öğrenmesi modellerinin eğitimini yaparken matrisler üzerindeki işlemleri çok daha hızlı ve kolay gerçekleştirmeyi sağlar. GPU’lar zaten vektör ve matris işlemlerini göz önünde bulundurularak oluşturulmuştur. Görüntülerin piksellerini birer birer işlemek yerine GPU’lar matrisleri paralel olarak işleyebilir. Son dönemlerde makine öğrenmesi sistemlerinin daha verimli ve hızlı gerçekleştirilebilmesi GPU’lar sayesinde sağlanabilmektedir.

Vektör İşlemleri

Vektör – Skaler Arasındaki İşlemler

Vektörlerdeki en basit işlemler, vektörlerle skalerler arasındaki ikili işlemlerdir. İkili işlemler, operatörün x+y durumundaki gibi iki giriş aldığı toplama + veya çıkarma - gibi operatörlere sahip olan işlemlerdir. Bir vektör ile bir skaler arasındaki tüm ikili işlemler, vektördeki her giriş üzerinde ayrı ayrı çalıştırılarak yerinde gerçekleştirilir. İşlemler bu şekilde tanımlandığından, skaler skaler ikili işlemleri için geçerli olan tüm kurallar vektör skaler ikili işlemleri için de geçerlidir. Örneğin, toplama ve çarpma her ikisi de değişme özelliğine sahiptir bu nedenle işlemlerden herhangi birinin sırasını değiştirirsek yine aynı sonucu elde ederiz. Bir vektör \mathbf{v} ve bir skaler s için şu ifadeler doğru olacaktır: \mathbf{v} + s = s + \mathbf{v} veya \mathbf{v} . s = s . \mathbf{v}. Çıkarma ve bölme işlemlerinde değişme özelliği olmadığı için aynı özellik geçerli olmayacaktır \mathbf{v} - s \neq s - \mathbf{v}. Bir skaler ile vektörün çarpımı vektörün büyüklüğünü değiştirirken, negatif bir skaler ile çarpım yönünü de değiştirecektir.

Vektör – Vektör Arasındaki İşlemler

Toplama ve Çıkarma

İki vektör arasında gerçekleşebilecek toplama ve çıkarma gibi ikili işlemlerin gerçekleşebilmesi için vektörlerin eşit boyutta olması gerekir. Vektör ve skaler arasındaki işlemlerde olduğu gibi vektör vektör arasındaki işlemlerde de her bir vektörün birbirine karşılık gelen elemanları ayrı ayrı çalıştırılarak işlemler gerçekleştirilir.

Hadamard Çarpımı

Vektörlerin Hadamard çarpımında, eşit boyuttaki vektörlerin konumsal olarak birbirlerine karşılık gelen değerleri çarpılır. Hadamard çarpımı daha yaygın olan matris çarpımları ile karıştırılmamalıdır. Hadamard çarpımı birleşme ve dağılma özelliğine sahiptir ve aynı zamanda matris çarpımından farklı olarak değişme özelliğine de sahiptir.

Nokta Çarpımı

İki vektörün nokta çarpımı bir skalerdir. Nokta çarpımının geometri ile derin bir ilişkisi vardır; hesaplamalı bilimlerin her alanında kullanışlıdır ve makine öğrenmesindeki en önemli işlemlerden biridir. Nokta çarpımı genelde sadece vektörlerden birinin bir satır matrisi diğerinin ise bir sütun matrisi olan gerçek bir matris-matris çarpımı olarak tanımlanır ancak genellikle herhangi iki vektörün satır veya sütun vektörü olmaksızın nokta çarpımının yapılabildiğini görebilirsiniz.

İki n boyutlu vektör arasındaki bir nokta çarpımının klasik gösterimi \mathbf{u},\mathbf{v} \: \epsilon \: \mathbb{R}^n \; \; \mathbf{u} \cdot \mathbf{v} şeklindedir. Makine öğrenmesi ve derin öğrenme kaynaklarında ise gösterim \mathbf{u}^T \mathbf{v} şeklindedir. Bu nedenle de \mathbf{u} ve \mathbf{v}‘nin her ikisinin de sütun vektörleri olduğu kabul edilir. İki sütun vektörü arasındaki bir matris matris çarpımı tanımlanmamıştır. Bu nedenle, vektörlerden birinin, matris matris çarpımına uygun şekilde tanımlanacağı bir satır vektörüne dönüştürülmesi gerekir. Bu sebeple, daha gelişmiş ders kitaplarında ve makalelerde \mathbf{u}^T \mathbf{v} gösterimi ile sık sık karşılaşırız.

Matris İşlemleri

Matris – Skaler Arasındaki İşlemler

Matrislerle skalerler arasındaki işlemler vektörlerde olduğu gibi çalışır. Matrisdeki her elemana yapılacak işlem verilen skalere göre yerinde uygulanır.

Matris – Matris Arasındaki İşlemler

Toplama ve Çıkarma

İki matrisin toplanması ve çıkartılması için matrislerin eşit boyutlara sahip olmaları gerekir. İşlemin gerçekleştirilebilmesi için matrislerde birbirleine karşılık gelen elemanları işleme göre birleştiririz.

Matris Matris Çarpımı

Matrislerde toplama için kurallar nispeten basit ve sezgiseldir ancak matrislerin çarpımı söz konusu olduğunda kurallar daha karmaşık hale gelir. Nokta çarpımı gibi bazı matris matris çarpım işlemlerini tanımlamak için bir matrisin transpozunu tanımlamak gerekir. m x n boyutundaki bir \mathbf{A} = [a_{ij}] matrisinin transpozu n x m boyutundaki \mathbf{A}^T ile ifade edilir ve elemanları \mathbf{A}^T=[a_{ji}]{\mathbb{n} \times \mathbb{m}} olarak gösterilir. Yani, indeksler i ve j yer değiştirmiştir. Bu, matrisi a{ii} köşegen çizgisi boyunca elemanları yansıtma etkisine sahiptir ve bu işlem kare olmayan matrislerin yanı sıra vektörler ve skalerler için de tanımlanmıştır. Bir skalerin transpozunun kendisine eşit olduğuna s={\mathbf{s}^T} dikkat edin. Buna ek olarak bir matrisin transpozunun transpozu da \mathbf{A}^{TT}=\mathbf{A} kendisine eşittir.

Matrislerin çarpımı matrislerin toplanmasından daha karmaşık bir işlemdir çünkü matris matris çarpımı toplamada olduğu gibi sadece matrislerin karşılık gelen elemanlarının işleme tabi tutulması ile yapılmaz. Bunun yerine, her bir eleman için, bir matrisin bir satırının tamamını ve diğerinin tüm bir sütununu içeren elemanlarına daha karmaşık bir prosedür uygulanır. Matris matris çarpımı sadece belirli boyuttaki matrisler için tanımlanmıştır. İlk matris, ikinci matrisin satırlarının sayısı kadar sütun içermelidir, aksi takdirde matris matris çarpımı tanımlanamaz. Matris matris çarpımı iki vektör için gerçekleştiriliyorsa buna nokta çarpımı denir. \mathbf{A}=[a_{ij}]{m \times n} matrisi ile \mathbf{B}=[b{ij}]{n\times p} matrislerinin çarpımı \mathbf{C}=\mathbf{A}\mathbf{B}=[c{ij}]{m\times p} şu şekilde c{ij}=\sum_{k=1}^n a_{ik}b_{kj} hesaplanır. Bu, \mathbf{C}=\mathbf{A}\mathbf{B} matrisinin c_{ij} elemanları, \mathbf{A} matrisinin i. satırındaki elemanları ile \mathbf{B} matrisinin j. kolonundaki elemanları ile çarpılıp toplanmasıyla elde edilir. Matris matris çarpımı değişme özelliğine \mathbf{A}\mathbf{B} \neq \mathbf{B}\mathbf{A} sahip değildir ancak birleşme \mathbf{A}(\mathbf{B}\mathbf{C}) = (\mathbf{A}\mathbf{B})\mathbf{C} ve dağılma \mathbf{A(\mathbf{B}+\mathbf{C}) = \mathbf{A}\mathbf{B}+\mathbf{A}\mathbf{C}} özelliğine sahiptir.

Matris matris ve matris vektör çarpımı, fizik alanında, hesaplamalı grafiklerde ve makine öğrenmesinde oldukça yaygın bir kullanım alanına sahiptir.

Hadamard Çarpımı

Matris-matris çarpımının tanımından farklı olarak matrislerde birbirlerine karşılık gelen elemanların çarpımını da tanımlamak mümkündür. \mathbf{A}=[a_{ij}]{m \times n} ve \mathbf{B}=[b{ij}]{m \times n} matrislerinin Hadamard çarpımı \mathbf{A} \odot \mathbf{B}=[a{ij}b_{ij}]_{m \times n} ile hesaplanır. Matris matris çarpımının aksine Hadamard çarpımı değişme özelliğine \mathbf{A} \odot \mathbf{B} = \mathbf{B} \odot \mathbf{A} sahiptir.

Hadamard çarpımı, şifreleme, sinyal işleme ve görüntüleri sıkıştırma algoritmaları da dahil olmak üzere geniş bir uygulama alanına sahiptir.

Background vector created by pikisuperstar – www.freepik.com