Close Menu
    Trending
    • Do You Really Need a Foundation Model?
    • xAI lanserar AI-sällskap karaktärer genom Grok-plattformen
    • How to more efficiently study complex treatment interactions | MIT News
    • Claude får nya superkrafter med verktygskatalog
    • How Metrics (and LLMs) Can Trick You: A Field Guide to Paradoxes
    • Så här påverkar ChatGPT vårt vardagsspråk
    • Deploy a Streamlit App to AWS
    • How to Ensure Reliability in LLM Applications
    ProfitlyAI
    • Home
    • Latest News
    • AI Technology
    • Latest AI Innovations
    • AI Tools & Technologies
    • Artificial Intelligence
    ProfitlyAI
    Home » Understanding Matrices | Part 2: Matrix-Matrix Multiplication
    Artificial Intelligence

    Understanding Matrices | Part 2: Matrix-Matrix Multiplication

    ProfitlyAIBy ProfitlyAIJune 19, 2025No Comments15 Mins Read
    Share Facebook Twitter Pinterest LinkedIn Tumblr Reddit Telegram Email
    Share
    Facebook Twitter LinkedIn Pinterest Email


    Within the first story [1] of this collection, now we have:

    • Addressed multiplication of a matrix by a vector,
    • Launched the idea of X-diagram for a given matrix,
    • Noticed conduct of a number of particular matrices, when being multiplied by a vector.

    Within the present 2nd story, we’ll grasp the bodily which means of matrix-matrix multiplication, perceive why multiplication is just not a symmetrical operation (i.e., why “A*B ≠ B*A“), and at last, we’ll see how a number of particular matrices behave when being multiplied over one another.

    So let’s begin, and we’ll do it by recalling the definitions that I take advantage of all through this collection:

    • Matrices are denoted with uppercase (like ‘A‘ and ‘B‘), whereas vectors and scalars are denoted with lowercase (like ‘x‘, ‘y‘ or ‘m‘, ‘n‘).
    • |x| – is the size of vector ‘x‘,
    • rows(A) – variety of rows of matrix ‘A‘,
    • columns(A) – variety of columns of matrix ‘A‘.

    The idea of multiplying matrices

    Multiplication of two matrices “A” and “B” might be the commonest operation in matrix evaluation. A recognized reality is that “A” and “B” will be multiplied provided that “columns(A) = rows(B)”. On the identical time, “A” can have any variety of rows, and “B” can have any variety of columns. Cells of the product matrix “C = A*B” are calculated by the next system:

    [
    begin{equation*}
    c_{i,j} = sum_{k=1}^{p} a_{i,k}*b_{k,j}
    end{equation*}
    ]

    the place “p = columns(A) = rows(B)”. The consequence matrix “C” may have the scale:

    rows(C) = rows(A),
    columns(C) = columns(B).

    Appearing upon the multiplication system, when calculating “A*B” we should always scan i-th row of “A” in parallel to scanning j-th column of “B“, and after summing up all of the merchandise “ai,ok*bok,j” we may have the worth of “ci,j“.

    The row and the column that needs to be scanned, to calculate cell “ci,j” of the product matrix “C = A*B”. Right here we scan the third row of “A” and the 2nd column of “B”, by which we receive the worth “c3,2“.

    One other well-known reality is that matrix multiplication is just not a symmetrical operation, i.e., “A*B ≠ B*A“. With out going into particulars, we will already see that when multiplying 2 rectangular matrices:

    Two matrices “A” and “B”, with sizes 2×4 and 4×2, respectively. Multiplying “A*B” will lead to a 2×2-sized matrix, whereas multiplying “B*A” will lead to a 4×4-sized matrix. The highlighted areas present instructions of scans – purple areas for calculating one cell of “A*B”, and inexperienced areas for calculating a cell of “B*A”.

    For newbies, the truth that matrix multiplication is just not a symmetrical operation usually appears unusual, as multiplication outlined for nearly another object is a symmetrical operation. One other reality that’s usually unclear is why matrix multiplication is carried out by such an odd system.

    On this story, I’m going to offer my solutions to each of those questions, and never solely to them…


    Derivation of the matrices multiplication system

    Multiplying “A*B” ought to produce such a matrix ‘C‘, that:

    y = C*x = (A*B)*x = A*(B*x).

    In different phrases, multiplying any vector ‘x‘ by the product matrix “C=A*B” ought to lead to the identical vector ‘y‘, which we’ll obtain if at first multiplying ‘B‘ by ‘x‘, after which multiplying ‘A‘ by that intermediate consequence.

    This already explains why in “C=A*B“, the situation that “columns(A) = rows(B)” needs to be stored. That’s due to the size of the intermediate vector. Let’s denote it as ‘t‘:

    t = B*x,
    y = C*x = (A*B)*x = A*(B*x) = A*t.

    Clearly, as “t = B*x“, we’ll obtain a vector ‘t‘ of size “|t| = rows(B)”. However later, matrix ‘A‘ goes to be multiplied by ‘t‘, which requires ‘t‘ to have the size “|t| = columns(A)”. From these 2 info, we will already determine that:

    rows(B) = |t| = columns(A), or
    rows(B) = columns(A).

    Within the first story [1] of this collection, now we have realized the “X-way interpretation” of matrix-vector multiplication “A*x“. Contemplating that for “y = (A*B)x“, vector ‘x‘ goes at first by means of the transformation of matrix ‘B‘, after which it continues by means of the transformation of matrix ‘A‘, we will broaden the idea of “X-way interpretation” and current matrix-matrix multiplication “A*B” as 2 adjoining X-diagrams:

    The transformation of vector ‘x’ (the precise stack), passing by means of the product matrix “C=A*B”, from proper to left. At first, it passes by means of matrix ‘B’, and an intermediate vector ‘t’ is produced (the center stack). Then ‘t’ passes by means of the transformation of ‘A’ and the ultimate vector ‘y’ is produced (the left stack).

    Now, what ought to a sure cell “ci,j” of matrix ‘C‘ be equal to? From half 1 – “matrix-vector multiplication” [1], we keep in mind that the bodily which means of “ci,j” is – how a lot the enter worth ‘xj‘ impacts the output worth ‘yi‘. Contemplating the image above, let’s see how some enter worth ‘xj‘ can have an effect on another output worth ‘yi‘. It may possibly have an effect on by means of the intermediate worth ‘t1‘, i.e., by means of arrows “ai,1” and “b1,j“. Additionally, the love can happen by means of the intermediate worth ‘t2‘, i.e., by means of arrows “ai,2” and “b2,j“. Usually, the love of ‘xj‘ on ‘yi‘ can happen by means of any worth ‘tok‘ of the intermediate vector ‘t‘, i.e., by means of arrows “ai,ok” and “bok,j“.

    Illustration of all doable methods during which the enter worth ‘x2‘ can affect the output worth ‘y3‘. The affect can undergo intermediate worth ‘t1‘ (as “a3,1*b1,2“), in addition to by means of intermediate worth ‘t2‘ (as “a3,2*b2,2“), or another k-th worth of the intermediate vector ‘t’ (as “a3,ok*bok,2“). All 4 doable methods are highlighted right here in purple.

    So there are ‘p‘ doable methods during which the worth ‘xj‘ influences ‘yi‘, the place ‘p‘ is the size of the intermediate vector: “p = |t| = |B*x|”. The influences are:

    [begin{equation*}
    begin{matrix}
    a_{i,1}*b_{1,j},
    a_{i,2}*b_{2,j},
    a_{i,3}*b_{3,j},
    dots
    a_{i,p}*b_{p,j}
    end{matrix}
    end{equation*}]

    All these ‘p‘ influences are impartial of one another, which is why within the system of matrices multiplication they take part as a sum:

    [begin{equation*}
    c_{i,j} =
    a_{i,1}*b_{1,j} + a_{i,2}*b_{2,j} + dots + a_{i,p}*b_{p,j} =
    sum_{k=1}^{p} a_{i,k}*b_{k,j}
    end{equation*}]

    That is my visible rationalization of the matrix-matrix multiplication system. By the best way, decoding “A*B” as a concatenation of X-diagrams of “A” and “B” explicitly exhibits why the situation “columns(A) = rows(B)” needs to be held. That’s easy, as a result of in any other case it won’t be doable to concatenate the 2 X-diagrams:

    Making an attempt to multiply such two matrices “C” and “D”, the place “columns(C) ≠ rows(D)”. Their X-diagrams will simply not match one another, and may’t be concatenated.

    Why is it that “A*B ≠ B*A”

    Deciphering matrix multiplication “A*B” as a concatenation of X-diagrams of “A” and “B” additionally explains why multiplication is just not symmetrical for matrices, i.e., why “A*B ≠ B*A“. Let me present that on two sure matrices:

    [begin{equation*}
    A =
    begin{bmatrix}
    0 & 0 & 0 & 0
    0 & 0 & 0 & 0
    a_{3,1} & a_{3,2} & a_{3,3} & a_{3,4}
    a_{4,1} & a_{4,2} & a_{4,3} & a_{4,4}
    end{bmatrix}
    , B =
    begin{bmatrix}
    b_{1,1} & b_{1,2} & 0 & 0
    b_{2,1} & b_{2,2} & 0 & 0
    b_{3,1} & b_{3,2} & 0 & 0
    b_{4,1} & b_{4,2} & 0 & 0
    end{bmatrix}
    end{equation*}]

    Right here, matrix ‘A‘ has its higher half full of zeroes, whereas ‘B‘ has zeroes on its proper half. Corresponding X-diagrams are:

    The X-diagrams which correspond to the matrices “A” and “B” talked about above. Observe, for the zero-cells, we simply don’t draw corresponding arrows.
    The truth that ‘A’ has zeroes on its higher rows leads to the higher gadgets of its left stack being disconnected.
    The truth that ‘B’ has zeroes on its proper columns leads to the decrease gadgets of its proper stack being disconnected.

    What’s going to occur if attempting to multiply “A*B“? Then A’s X-diagram needs to be positioned to the left of B’s X-diagram.

    Concatenation of X-diagrams of “A” and “B”, equivalent to “A*B”. There are 4 pairs of left and proper gadgets, which really can affect one another. An instance pair (y3, x1) is highlighted.

    Having such a placement, we see that enter values ‘x1‘ and ‘x2‘ can have an effect on each output values ‘y3‘ and ‘y4‘. Notably, because of this the product matrix “A*B” is non-zero.

    [
    begin{equation*}
    A*B =
    begin{bmatrix}
    0 & 0 & 0 & 0
    0 & 0 & 0 & 0
    c_{3,1} & c_{3,2} & 0 & 0
    c_{4,1} & c_{4,2} & 0 & 0
    end{bmatrix}
    end{equation*}
    ]

    Now, what is going to occur if we attempt to multiply these two matrices within the reverse order? For presenting the product “B*A“, B’s X-diagram needs to be drawn to the left of A’s diagram:

    Concatenation of X-diagrams of “B” and “A”, which corresponds to the product “B*A”. This leads to two disjoint elements, so there isn’t a method during which any merchandise ‘xj‘ of the precise stack can affect any merchandise ‘yi‘ of the left stack.

    We see that now there isn’t a linked path, by which any enter worth “xj” can have an effect on any output worth “yi“. In different phrases, within the product matrix “B*A” there isn’t a affection in any respect, and it’s really a zero-matrix.

    [begin{equation*}
    B*A =
    begin{bmatrix}
    0 & 0 & 0 & 0
    0 & 0 & 0 & 0
    0 & 0 & 0 & 0
    0 & 0 & 0 & 0
    end{bmatrix}
    end{equation*}]

    This instance clearly illustrates why order is essential for matrix-matrix multiplication. After all, many different examples can be discovered.


    Multiplying chain of matrices

    X-diagrams can be concatenated once we multiply 3 or extra matrices. For instance, for the case of:

    G = A*B*C,

    we will draw the concatenation within the following method:

    Concatenation of three X-diagrams, equivalent to matrices “A”, “B”, and “C”. Sizes of the matrices are 4×3, 3×2, and a pair of×4, respectively. The two intermediate vectors ‘t’ and ‘s’ are introduced with gentle inexperienced and teal gadgets.

    Right here we now have 2 intermediate vectors:

    t = C*x, and
    s = (B*C)*x = B*(C*x) = B*t

    whereas the consequence vector is:

    y = (A*B*C)*x = A*(B*(C*x)) = A*(B*t) = A*s.

    The variety of doable methods during which some enter worth “xj” can have an effect on some output worth “yi” grows right here by an order of magnitude.

    Two of six doable methods, highlighted with purple and light-weight blue, by which enter worth “x1” can affect output worth “y3“.

    Extra exactly, the affect of sure “xj” over “yi” can come by means of any merchandise of the primary intermediate stack “t“, and any merchandise of the second intermediate stack “s“. So the variety of methods of affect turns into “|t|*|s|”, and the system for “gi,j” turns into:

    [begin{equation*}
    g_{i,j} = sum_{v=1}^ sum_{u=1}^t a_{i,v}*b_{v,u}*c_{u,j}
    end{equation*}]


    Multiplying matrices of particular varieties

    We are able to already visually interpret matrix-matrix multiplication. Within the first story of this collection [1], we additionally realized about a number of particular sorts of matrices – the size matrix, shift matrix, permutation matrix, and others. So let’s check out how multiplication works for these sorts of matrices.

    Multiplication of scale matrices

    A scale matrix has non-zero values solely on its diagonal:

    The X-diagram of a 4×4 scale matrix. Each enter merchandise “xi” can have an effect on solely the corresponding output merchandise “yi“.

    From principle, we all know that multiplying two scale matrices leads to one other scale matrix. Why is it that method? Let’s concatenate X-diagrams of two scale matrices:

    Multiplication of two scale matrices “Q” and “S”, as a concatenation of their X-diagrams.

    The concatenation X-diagram clearly exhibits that any enter merchandise “xi” can nonetheless have an effect on solely the corresponding output merchandise “yi“. It has no method of influencing another output merchandise. Due to this fact, the consequence construction behaves the identical method as another scale matrix.

    Multiplication of shift matrices

    A shift matrix is one which, when multiplied over some enter vector ‘x‘, shifts upwards or downwards values of ‘x‘ by some ‘ok‘ positions, filling the emptied slots with zeroes. To attain that, a shift matrix ‘V‘ should have 1(s) on a line parallel to its primary diagonal, and 0(s) in any respect different cells.

    Instance of a shift matrix ‘V’ and its X-diagram. The matrix shifts upwards all values of the enter vector ‘x’ by 2 positions.

    The speculation says that multiplying 2 shift matrices ‘V1‘ and ‘V2‘ leads to one other shift matrix. Interpretation with X-diagrams offers a transparent rationalization of that. Multiplying the shift matrices ‘V1‘ and ‘V2‘ corresponds to concatenating their X-diagrams:

    The concatenation of X-diagrams of two shift matrices ‘V1’ and ‘V2’ behaves like one other shift matrix, as each worth of the enter vector ‘x’ continues to be being shifted by a sure variety of positions upwards.

    We see that if shift matrix ‘V1‘ shifts values of its enter vector by ‘k1‘ positions upwards, and shift matrix ‘V2‘ shifts values of the enter vector by ‘k2‘ positions upwards, then the outcomes matrix “V3 = V1*V2” will shift values of the enter vector by ‘k1+k2‘ positions upwards, which implies that “V3” can be a shift matrix.

    Multiplication of permutation matrices

    A permutation matrix is one which, when multiplied by an enter vector ‘x‘, rearranges the order of values in ‘x‘. To behave like that, the NxN-sized permutation matrix ‘P‘ should fulfill the next standards:

    • it ought to have N 1(s),
    • no two 1(s) needs to be on the identical row or the identical column,
    • all remaining cells needs to be 0(s).
    An instance of a 5×5-sized permutation matrix ‘P’, and corresponding X-diagram. We see that values of enter vector “(x1, x2, x3, x4, x5)” are being rearranged as “(x4, x1, x5, x3, x2)”.

    Upon principle, multiplying 2 permutation matrices ‘P1‘ and ‘P2‘ leads to one other permutation matrix ‘P3‘. Whereas the explanation for this won’t be clear sufficient if matrix multiplication within the extraordinary method (as scanning rows of ‘P1‘ and columns of ‘P2‘), it turns into a lot clearer if it by means of the interpretation of X-diagrams. Multiplying “P1*P2” is similar as concatenating X-diagrams of ‘P1‘ and ‘P2‘.

    The concatenation of X-diagrams of permutation matrices ‘P1’ and ‘P2’ behaves as one other rearrangement of values.

    We see that each enter worth ‘xj‘ of the precise stack nonetheless has just one path for reaching another place ‘yi‘ on the left stack. So “P1*P2” nonetheless acts as a rearrangement of all values of the enter vector ‘x‘, in different phrases, “P1*P2” can be a permutation matrix.

    Multiplication of triangular matrices

    A triangular matrix has all zeroes both above or under its primary diagonal. Right here, let’s think about upper-triangular matrices, the place zeroes are under the principle diagonal. The case of lower-triangular matrices is analogous.

    Instance of an upper-triangular matrix ‘B’ and its X-diagram.

    The truth that non-zero values of ‘B‘ are both on its primary diagonal or above, makes all of the arrows of its X-diagram both horizontal or directed upwards. This, in flip, implies that any enter worth ‘xj‘ of the precise stack can have an effect on solely these output values ‘yi‘ of the left stack, which have a lesser or equal index (i.e., “i ≤ j“). That is among the properties of an upper-triangular matrix.

    Based on principle, multiplying two upper-triangular matrices leads to one other upper-triangular matrix. And right here too, interpretation with X-diagrams offers a transparent rationalization of that reality. Multiplying two upper-triangular matrices ‘A‘ and ‘B‘ is similar as concatenating their X-diagrams:

    Concatenation of X-diagrams of two upper-triangular matrices ‘A’ and ‘B’.

    We see that placing two X-diagrams of triangular matrices ‘A‘ and ‘B‘ close to one another leads to such a diagram, the place each enter worth ‘xj‘ of the precise stack nonetheless can have an effect on solely these output values ‘yi‘ of the left stack, that are both on its stage or above it (in different phrases, “i ≤ j“). Which means that the product “A*B” additionally behaves like an upper-triangular matrix; thus, it should have zeroes under its primary diagonal.


    Conclusion

    Within the present 2nd story of this collection, we noticed how matrix-matrix multiplication will be introduced visually, with the assistance of so-called “X-diagrams”. Now we have realized that doing multiplication “C = A*B” is similar as concatenating X-diagrams of these two matrices. This technique clearly illustrates varied properties of matrix multiplications, like why it’s not a symmetrical operation (“A*B ≠ B*A“), in addition to explains the system:

    [begin{equation*}
    c_{i,j} = sum_{k=1}^{p} a_{i,k}*b_{k,j}
    end{equation*}]

    Now we have additionally noticed why multiplication behaves in sure methods when operands are matrices of particular varieties (scale, shift, permutation, and triangular matrices).

    I hope you loved studying this story!

    Within the coming story, we’ll deal with how matrix transposition “AT” will be interpreted with X-diagrams, and what we will acquire from such interpretation, so subscribe to my web page to not miss the updates!


    My gratitude to:
    – Roza Galstyan, for cautious evaluation of the draft ( https://www.linkedin.com/in/roza-galstyan-a54a8b352 )
    – Asya Papyan, for the exact design of all of the used illustrations ( https://www.behance.net/asyapapyan ).

    When you loved studying this story, be at liberty to observe me on LinkedIn, the place, amongst different issues, I can even publish updates ( https://www.linkedin.com/in/tigran-hayrapetyan-cs/ ).

    All used photographs, until in any other case famous, are designed by request of the creator.


    References

    [1] – Understanding matrices | Half 1: matrix-vector multiplication : https://towardsdatascience.com/understanding-matrices-part-1-matrix-vector-multiplication/



    Source link

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Previous ArticleFrom Configuration to Orchestration: Building an ETL Workflow with AWS Is No Longer a Struggle
    Next Article LLM-as-a-Judge: A Practical Guide | Towards Data Science
    ProfitlyAI
    • Website

    Related Posts

    Artificial Intelligence

    Do You Really Need a Foundation Model?

    July 16, 2025
    Artificial Intelligence

    How to more efficiently study complex treatment interactions | MIT News

    July 16, 2025
    Artificial Intelligence

    How Metrics (and LLMs) Can Trick You: A Field Guide to Paradoxes

    July 16, 2025
    Add A Comment
    Leave A Reply Cancel Reply

    Top Posts

    Top Rossum Alternatives for Document Processing in 2024

    April 5, 2025

    China built hundreds of AI data centers to catch the AI boom. Now many stand unused.

    April 3, 2025

    Making AI-generated code more accurate in any language | MIT News

    April 18, 2025

    Evaluating LLMs for Inference, or Lessons from Teaching for Machine Learning

    June 2, 2025

    How to Ensure Reliability in LLM Applications

    July 15, 2025
    Categories
    • AI Technology
    • AI Tools & Technologies
    • Artificial Intelligence
    • Latest AI Innovations
    • Latest News
    Most Popular

    OnePlus 13 kommer med omfattande AI-funktioner

    May 28, 2025

    Partiskhet i AI-benchmarking – studie anklagar LM Arena för att gynna teknikjättar

    May 2, 2025

    Creating an AI Agent to Write Blog Posts with CrewAI

    April 4, 2025
    Our Picks

    Do You Really Need a Foundation Model?

    July 16, 2025

    xAI lanserar AI-sällskap karaktärer genom Grok-plattformen

    July 16, 2025

    How to more efficiently study complex treatment interactions | MIT News

    July 16, 2025
    Categories
    • AI Technology
    • AI Tools & Technologies
    • Artificial Intelligence
    • Latest AI Innovations
    • Latest News
    • Privacy Policy
    • Disclaimer
    • Terms and Conditions
    • About us
    • Contact us
    Copyright © 2025 ProfitlyAI All Rights Reserved.

    Type above and press Enter to search. Press Esc to cancel.