import%20marimo%0A%0A__generated_with%20%3D%20%220.24.0%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20import%20plotly.graph_objects%20as%20go%0A%20%20%20%20from%20plotly.subplots%20import%20make_subplots%0A%0A%20%20%20%20return%20go%2C%20make_subplots%2C%20mo%2C%20np%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%20Note%2004%3A%20Rank-One%20Matrices%2C%20Outer%20Products%2C%20and%20Low-Rank%20Decomposition%0A%0A%20%20%20%20%26larr%3B%20Previous%20Note%3A%20%5B03%20Hyperplanes%5D(03_hyperplanes.py)%20%7C%20Next%20Note%3A%20%5B05%20Orthogonality%5D(05_orthogonality.py)%20%26rarr%3B%0A%0A%20%20%20%20---%0A%0A%20%20%20%20%23%23%20%5Ba%5D%20Why%20do%20you%20need%20to%20know%20these%20concepts%3F%0A%0A%20%20%20%20Rank-one%20matrices%20are%20the%20fundamental%20atomic%20building%20blocks%20of%20all%20linear%20algebra.%20Any%20complex%20linear%20transformation%2C%20dataset%2C%20or%20neural%20network%20weight%20tensor%20can%20be%20expressed%20as%20a%20linear%20combination%20of%20rank-one%20matrices.%0A%0A%20%20%20%20Understanding%20rank-one%20structures%20gives%20you%20foundational%20insight%20into%3A%0A%0A%20%20%20%201.%20**Matrix%20Factorization**%3A%20Decomposing%20large%2C%20unwieldy%20data%20matrices%20into%20compact%20products%20of%20vectors.%0A%20%20%20%202.%20**Low-Rank%20Approximation**%3A%20Applying%20the%20Eckart-Young-Mirsky%20theorem%20to%20compress%20data%2C%20filter%20noise%2C%20and%20capture%20dominant%20latent%20patterns.%0A%20%20%20%203.%20**Parameter-Efficient%20Fine-Tuning%20(PEFT)**%3A%20Modern%20LLM%20adaptation%20techniques%20like%20LoRA%20(Low-Rank%20Adaptation)%20freeze%20billions%20of%20pre-trained%20parameters%20and%20train%20rank-one%20and%20low-rank%20factor%20updates.%0A%20%20%20%204.%20**Recommender%20Systems**%3A%20Factorizing%20sparse%20user-item%20rating%20grids%20into%20shared%20latent%20representation%20spaces.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20---%0A%0A%20%20%20%20%23%23%20%5Bb%5D%20Concept%20explanation%20with%20their%20role%20in%20ML%2FAI%2FStats%3F%0A%0A%20%20%20%20%23%23%23%20Definition%20of%20a%20Rank-One%20Matrix%0A%0A%20%20%20%20A%20non-zero%20matrix%20%24%5Cmathbf%7BA%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7Bm%20%5Ctimes%20n%7D%24%20has%20rank%201%20if%20and%20only%20if%20it%20can%20be%20written%20as%20the%20**outer%20product**%20of%20two%20non-zero%20vectors%20%24%5Cmathbf%7Bu%7D%20%5Cin%20%5Cmathbb%7BR%7D%5Em%24%20and%20%24%5Cmathbf%7Bv%7D%20%5Cin%20%5Cmathbb%7BR%7D%5En%24%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20%5Cmathbf%7BA%7D%20%3D%20%5Cmathbf%7Bu%7D%20%5Cmathbf%7Bv%7D%5ET%20%3D%20%5Cbegin%7Bbmatrix%7D%20u_1%20%5C%5C%20u_2%20%5C%5C%20%5Cvdots%20%5C%5C%20u_m%20%5Cend%7Bbmatrix%7D%20%5Cbegin%7Bbmatrix%7D%20v_1%20%26%20v_2%20%26%20%5Cdots%20%26%20v_n%20%5Cend%7Bbmatrix%7D%20%3D%20%5Cbegin%7Bbmatrix%7D%20u_1%20v_1%20%26%20u_1%20v_2%20%26%20%5Cdots%20%26%20u_1%20v_n%20%5C%5C%20u_2%20v_1%20%26%20u_2%20v_2%20%26%20%5Cdots%20%26%20u_2%20v_n%20%5C%5C%20%5Cvdots%20%26%20%5Cvdots%20%26%20%5Cddots%20%26%20%5Cvdots%20%5C%5C%20u_m%20v_1%20%26%20u_m%20v_2%20%26%20%5Cdots%20%26%20u_m%20v_n%20%5Cend%7Bbmatrix%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20Key%20structural%20properties%20of%20%24%5Cmathbf%7Bu%7D%5Cmathbf%7Bv%7D%5ET%24%3A%0A%20%20%20%20*%20**Collinear%20Rows**%3A%20Every%20row%20of%20%24%5Cmathbf%7BA%7D%24%20is%20a%20scalar%20multiple%20of%20%24%5Cmathbf%7Bv%7D%5ET%24%3A%20%24%5Ctext%7BRow%7D_i%20%3D%20u_i%20%5Cmathbf%7Bv%7D%5ET%24.%0A%20%20%20%20*%20**Collinear%20Columns**%3A%20Every%20column%20of%20%24%5Cmathbf%7BA%7D%24%20is%20a%20scalar%20multiple%20of%20%24%5Cmathbf%7Bu%7D%24%3A%20%24%5Ctext%7BCol%7D_j%20%3D%20v_j%20%5Cmathbf%7Bu%7D%24.%0A%20%20%20%20*%20**Dimensionality**%3A%20The%20column%20space%20%24%5Cmathcal%7BC%7D(%5Cmathbf%7BA%7D)%20%3D%20%5Ctext%7Bspan%7D(%5Cmathbf%7Bu%7D)%24%20has%20dimension%201.%20By%20the%20Rank-Nullity%20Theorem%2C%20the%20null%20space%20has%20dimension%20%24n%20-%201%24.%0A%20%20%20%20*%20**Eigenvalues%20and%20Trace**%3A%20The%20matrix%20%24%5Cmathbf%7Bu%7D%5Cmathbf%7Bv%7D%5ET%24%20has%20at%20most%20one%20non-zero%20eigenvalue%2C%20which%20equals%20the%20inner%20product%20of%20the%20vectors%3A%20%24%5Clambda%20%3D%20%5Cmathbf%7Bv%7D%5ET%20%5Cmathbf%7Bu%7D%20%3D%20%5Ctext%7Btr%7D(%5Cmathbf%7Bu%7D%5Cmathbf%7Bv%7D%5ET)%24.%0A%0A%20%20%20%20%23%23%23%20Outer%20Product%20vs%20Inner%20Product%0A%0A%20%20%20%20For%20two%20vectors%20%24%5Cmathbf%7Bu%7D%2C%20%5Cmathbf%7Bv%7D%20%5Cin%20%5Cmathbb%7BR%7D%5En%24%3A%0A%20%20%20%20*%20**Inner%20Product%20(Scalar)**%3A%20%24%5Cmathbf%7Bu%7D%5ET%20%5Cmathbf%7Bv%7D%20%3D%20%5Csum_%7Bi%3D1%7D%5En%20u_i%20v_i%20%5Cin%20%5Cmathbb%7BR%7D%24%20measures%20alignment%2C%20projection%2C%20and%20angle.%0A%20%20%20%20*%20**Outer%20Product%20(Matrix)**%3A%20%24%5Cmathbf%7Bu%7D%20%5Cmathbf%7Bv%7D%5ET%20%5Cin%20%5Cmathbb%7BR%7D%5E%7Bn%20%5Ctimes%20n%7D%24%20generates%20a%20rank-one%20directional%20mapping.%0A%0A%20%20%20%20%23%23%23%20Singular%20Value%20Decomposition%20as%20an%20Additive%20Sum%20of%20Rank-1%20Matrices%0A%0A%20%20%20%20The%20Singular%20Value%20Decomposition%20(SVD)%20states%20that%20any%20real%20matrix%20%24%5Cmathbf%7BA%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7Bm%20%5Ctimes%20n%7D%24%20of%20rank%20%24r%20%5Cle%20%5Cmin(m%2C%20n)%24%20can%20be%20factored%20into%20orthogonal%20matrices%20%24%5Cmathbf%7BU%7D%24%2C%20%24%5Cmathbf%7BV%7D%24%20and%20diagonal%20matrix%20%24%5Cmathbf%7B%5CSigma%7D%24%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20%5Cmathbf%7BA%7D%20%3D%20%5Cmathbf%7BU%7D%20%5Cmathbf%7B%5CSigma%7D%20%5Cmathbf%7BV%7D%5ET%20%3D%20%5Csum_%7Bi%3D1%7D%5Er%20%5Csigma_i%20%5Cmathbf%7Bu%7D_i%20%5Cmathbf%7Bv%7D_i%5ET%0A%20%20%20%20%24%24%0A%0A%20%20%20%20where%3A%0A%20%20%20%20*%20%24%5Csigma_1%20%5Cge%20%5Csigma_2%20%5Cge%20%5Cdots%20%5Cge%20%5Csigma_r%20%3E%200%24%20are%20the%20singular%20values.%0A%20%20%20%20*%20%24%5Cmathbf%7Bu%7D_i%20%5Cin%20%5Cmathbb%7BR%7D%5Em%24%20are%20the%20orthonormal%20left%20singular%20vectors%20(columns%20of%20%24%5Cmathbf%7BU%7D%24).%0A%20%20%20%20*%20%24%5Cmathbf%7Bv%7D_i%20%5Cin%20%5Cmathbb%7BR%7D%5En%24%20are%20the%20orthonormal%20right%20singular%20vectors%20(columns%20of%20%24%5Cmathbf%7BV%7D%24).%0A%20%20%20%20*%20Each%20term%20%24%5Csigma_i%20%5Cmathbf%7Bu%7D_i%20%5Cmathbf%7Bv%7D_i%5ET%24%20is%20an%20independent%20rank-one%20matrix%20weighted%20by%20%24%5Csigma_i%24.%0A%0A%20%20%20%20%23%23%23%20Eckart-Young-Mirsky%20Theorem%0A%0A%20%20%20%20The%20optimal%20rank-%24k%24%20approximation%20(%24k%20%3C%20r%24)%20of%20%24%5Cmathbf%7BA%7D%24%20under%20both%20the%20Frobenius%20norm%20and%20spectral%20norm%20is%20obtained%20by%20retaining%20the%20top%20%24k%24%20rank-one%20components%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20%5Cmathbf%7BA%7D_k%20%3D%20%5Csum_%7Bi%3D1%7D%5Ek%20%5Csigma_i%20%5Cmathbf%7Bu%7D_i%20%5Cmathbf%7Bv%7D_i%5ET%0A%20%20%20%20%24%24%0A%0A%20%20%20%20The%20approximation%20error%20is%20directly%20governed%20by%20the%20neglected%20singular%20values%3A%0A%0A%20%20%20%20%24%24%0A%20%20%20%20%5C%7C%5Cmathbf%7BA%7D%20-%20%5Cmathbf%7BA%7D_k%5C%7C_F%20%3D%20%5Csqrt%7B%5Csum_%7Bi%3Dk%2B1%7D%5Er%20%5Csigma_i%5E2%7D%0A%20%20%20%20%24%24%0A%0A%20%20%20%20%23%23%23%20Role%20in%20ML%2C%20AI%2C%20and%20Statistics%0A%0A%20%20%20%20**Low-Rank%20Adaptation%20(LoRA)**%3A%20In%20large%20language%20models%2C%20fine-tuning%20dense%20weight%20matrices%20%24%5Cmathbf%7BW%7D_0%20%5Cin%20%5Cmathbb%7BR%7D%5E%7Bd%20%5Ctimes%20k%7D%24%20directly%20is%20computationally%20prohibitive.%20LoRA%20reparameterizes%20the%20update%20as%20%24%5CDelta%20%5Cmathbf%7BW%7D%20%3D%20%5Cmathbf%7BB%7D%5Cmathbf%7BA%7D%24%2C%20where%20%24%5Cmathbf%7BB%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7Bd%20%5Ctimes%20r%7D%24%20and%20%24%5Cmathbf%7BA%7D%20%5Cin%20%5Cmathbb%7BR%7D%5E%7Br%20%5Ctimes%20k%7D%24%20with%20rank%20%24r%20%5Cll%20%5Cmin(d%2C%20k)%24.%20A%20rank-1%20or%20rank-4%20update%20adjusts%20weights%20with%20a%20tiny%20fraction%20of%20the%20memory%20footprint.%0A%0A%20%20%20%20**Principal%20Component%20Analysis%20(PCA)**%3A%20PCA%20finds%20the%20dominant%20rank-one%20projections%20of%20a%20centered%20empirical%20covariance%20matrix%20%24%5Cmathbf%7BS%7D%20%3D%20%5Cfrac%7B1%7D%7Bn%7D%20%5Cmathbf%7BX%7D%5ET%20%5Cmathbf%7BX%7D%24.%20The%20first%20principal%20component%20corresponds%20to%20the%20highest-energy%20rank-one%20approximation%20%24%5Csigma_1%20%5Cmathbf%7Bu%7D_1%20%5Cmathbf%7Bv%7D_1%5ET%24.%0A%0A%20%20%20%20**Recommender%20Systems%20and%20Matrix%20Completion**%3A%20Large%20interaction%20matrices%20(users%20%24%5Ctimes%24%20items)%20are%20extremely%20sparse.%20Assuming%20preferences%20depend%20on%20a%20small%20number%20of%20latent%20factors%20models%20the%20interaction%20matrix%20as%20a%20sum%20of%20low-rank%20outer%20products%2C%20enabling%20prediction%20of%20unobserved%20ratings.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20---%0A%0A%20%20%20%20%23%23%20%5Bc%5D%20Code%20examples%0A%0A%20%20%20%20Below%20are%20two%20concrete%20implementations%3A%0A%20%20%20%201.%20**Rank-1%20Outer%20Product%20%26%20SVD%20Decomposition**%3A%20Constructing%20an%20outer%20product%20from%20scratch%2C%20inspecting%20properties%2C%20and%20verifying%20exact%20additive%20SVD%20reconstruction%20on%20a%20%243%20%5Ctimes%202%24%20matrix.%0A%20%20%20%202.%20**Low-Rank%20Image%20%2F%20Surface%20Reconstruction**%3A%20Synthesizing%20a%202D%20surface%20pattern%20and%20interactively%20visualizing%20its%20progressive%20rank-%24k%24%20approximations%20via%20Plotly.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(np)%3A%0A%20%20%20%20%23%20Example%201%3A%20Numerical%20Mechanics%20of%20Rank-1%20Matrices%20and%20Additive%20SVD%20Reconstruction%0A%20%20%20%20%23%20Define%20two%20arbitrary%20vectors%20for%20an%20outer%20product%0A%20%20%20%20u_vec%20%3D%20np.array(%5B2.0%2C%20-1.0%2C%203.0%5D)%20%20%23%203%20x%201%0A%20%20%20%20v_vec%20%3D%20np.array(%5B1.0%2C%204.0%5D)%20%20%20%20%20%20%20%20%23%202%20x%201%0A%0A%20%20%20%20%23%20Outer%20product%20matrix%20A_rank1%20%3D%20u%20%40%20v.T%20(shape%3A%203%20x%202)%0A%20%20%20%20A_rank1%20%3D%20np.outer(u_vec%2C%20v_vec)%0A%20%20%20%20rank_calculated%20%3D%20np.linalg.matrix_rank(A_rank1)%0A%0A%20%20%20%20%23%20Singular%20Value%20Decomposition%20of%20a%203%20x%202%20matrix%0A%20%20%20%20A_test%20%3D%20np.array(%5B%0A%20%20%20%20%20%20%20%20%5B1.0%2C%202.0%5D%2C%0A%20%20%20%20%20%20%20%20%5B3.0%2C%204.0%5D%2C%0A%20%20%20%20%20%20%20%20%5B5.0%2C%206.0%5D%0A%20%20%20%20%5D)%0A%0A%20%20%20%20U%2C%20S%2C%20Vt%20%3D%20np.linalg.svd(A_test%2C%20full_matrices%3DFalse)%0A%0A%20%20%20%20%23%20Construct%20individual%20rank-1%20components%3A%20sigma_i%20*%20(u_i%20%40%20v_i.T)%0A%20%20%20%20rank1_comp_1%20%3D%20S%5B0%5D%20*%20np.outer(U%5B%3A%2C%200%5D%2C%20Vt%5B0%2C%20%3A%5D)%0A%20%20%20%20rank1_comp_2%20%3D%20S%5B1%5D%20*%20np.outer(U%5B%3A%2C%201%5D%2C%20Vt%5B1%2C%20%3A%5D)%0A%0A%20%20%20%20%23%20Reconstruct%20original%20matrix%20by%20adding%20the%20rank-1%20components%0A%20%20%20%20A_reconstructed%20%3D%20rank1_comp_1%20%2B%20rank1_comp_2%0A%20%20%20%20reconstruction_error%20%3D%20float(np.linalg.norm(A_test%20-%20A_reconstructed%2C%20ord%3D%22fro%22))%0A%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%22rank_of_outer_product%22%3A%20int(rank_calculated)%2C%0A%20%20%20%20%20%20%20%20%22singular_values%22%3A%20S.tolist()%2C%0A%20%20%20%20%20%20%20%20%22first_singular_value%22%3A%20float(S%5B0%5D)%2C%0A%20%20%20%20%20%20%20%20%22second_singular_value%22%3A%20float(S%5B1%5D)%2C%0A%20%20%20%20%20%20%20%20%22reconstruction_frobenius_error%22%3A%20reconstruction_error%0A%20%20%20%20%7D%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(go%2C%20make_subplots%2C%20np)%3A%0A%20%20%20%20%23%20Example%202%3A%20Interactive%20Low-Rank%20Surface%20Approximation%20with%20Plotly%0A%20%20%20%20%23%20Generate%20a%20synthetic%202D%20pattern%20(linear%20combinations%20of%20distinct%20spatial%20frequencies)%0A%20%20%20%20x_axis%20%3D%20np.linspace(-3%2C%203%2C%2040)%0A%20%20%20%20y_axis%20%3D%20np.linspace(-3%2C%203%2C%2040)%0A%20%20%20%20X_grid%2C%20Y_grid%20%3D%20np.meshgrid(x_axis%2C%20y_axis)%0A%0A%20%20%20%20%23%20Continuous%202D%20surface%20with%20distinct%20low-rank%20components%0A%20%20%20%20pattern%20%3D%20(%0A%20%20%20%20%20%20%20%201.5%20*%20np.outer(np.exp(-y_axis**2%20%2F%202)%2C%20np.exp(-x_axis**2%20%2F%202))%0A%20%20%20%20%20%20%20%20%2B%201.0%20*%20np.outer(np.sin(1.5%20*%20y_axis)%2C%20np.cos(1.5%20*%20x_axis))%0A%20%20%20%20%20%20%20%20%2B%200.5%20*%20np.outer(y_axis%20%2F%203%2C%20(x_axis%20%2F%203)**2)%0A%20%20%20%20)%0A%0A%20%20%20%20%23%20Perform%20full%20SVD%0A%20%20%20%20U_p%2C%20S_p%2C%20Vt_p%20%3D%20np.linalg.svd(pattern%2C%20full_matrices%3DFalse)%0A%0A%20%20%20%20%23%20Compute%20Rank-1%2C%20Rank-2%2C%20and%20Rank-3%20approximations%0A%20%20%20%20approx_rank_1%20%3D%20S_p%5B0%5D%20*%20np.outer(U_p%5B%3A%2C%200%5D%2C%20Vt_p%5B0%2C%20%3A%5D)%0A%20%20%20%20approx_rank_2%20%3D%20approx_rank_1%20%2B%20S_p%5B1%5D%20*%20np.outer(U_p%5B%3A%2C%201%5D%2C%20Vt_p%5B1%2C%20%3A%5D)%0A%20%20%20%20approx_rank_3%20%3D%20approx_rank_2%20%2B%20S_p%5B2%5D%20*%20np.outer(U_p%5B%3A%2C%202%5D%2C%20Vt_p%5B2%2C%20%3A%5D)%0A%0A%20%20%20%20total_energy%20%3D%20np.sum(S_p**2)%0A%20%20%20%20energy_r1%20%3D%20100.0%20*%20(S_p%5B0%5D**2)%20%2F%20total_energy%0A%20%20%20%20energy_r2%20%3D%20100.0%20*%20(S_p%5B0%5D**2%20%2B%20S_p%5B1%5D**2)%20%2F%20total_energy%0A%20%20%20%20energy_r3%20%3D%20100.0%20*%20np.sum(S_p%5B%3A3%5D**2)%20%2F%20total_energy%0A%0A%20%20%20%20%23%20Render%20side-by-side%20comparison%20heatmaps%0A%20%20%20%20fig%20%3D%20make_subplots(%0A%20%20%20%20%20%20%20%20rows%3D1%2C%0A%20%20%20%20%20%20%20%20cols%3D4%2C%0A%20%20%20%20%20%20%20%20subplot_titles%3D%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20f%22Rank%201%20(%7Benergy_r1%3A.1f%7D%25%20energy)%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20f%22Rank%202%20(%7Benergy_r2%3A.1f%7D%25%20energy)%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20f%22Rank%203%20(%7Benergy_r3%3A.1f%7D%25%20energy)%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22Original%20(Rank%2040)%22%0A%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20horizontal_spacing%3D0.04%0A%20%20%20%20)%0A%0A%20%20%20%20fig.add_trace(go.Heatmap(z%3Dapprox_rank_1%2C%20colorscale%3D%22Tealgrn%22%2C%20showscale%3DFalse)%2C%20row%3D1%2C%20col%3D1)%0A%20%20%20%20fig.add_trace(go.Heatmap(z%3Dapprox_rank_2%2C%20colorscale%3D%22Tealgrn%22%2C%20showscale%3DFalse)%2C%20row%3D1%2C%20col%3D2)%0A%20%20%20%20fig.add_trace(go.Heatmap(z%3Dapprox_rank_3%2C%20colorscale%3D%22Tealgrn%22%2C%20showscale%3DFalse)%2C%20row%3D1%2C%20col%3D3)%0A%20%20%20%20fig.add_trace(go.Heatmap(z%3Dpattern%2C%20colorscale%3D%22Tealgrn%22%2C%20showscale%3DFalse)%2C%20row%3D1%2C%20col%3D4)%0A%0A%20%20%20%20fig.update_layout(%0A%20%20%20%20%20%20%20%20title%3Ddict(%0A%20%20%20%20%20%20%20%20%20%20%20%20text%3D%22Low-Rank%20Matrix%20Approximations%3A%20Progressive%20Sum%20of%20Rank-1%20Outer%20Products%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20font%3Ddict(size%3D14)%0A%20%20%20%20%20%20%20%20)%2C%0A%20%20%20%20%20%20%20%20template%3D%22plotly_white%22%2C%0A%20%20%20%20%20%20%20%20width%3D920%2C%0A%20%20%20%20%20%20%20%20height%3D320%2C%0A%20%20%20%20%20%20%20%20margin%3Ddict(l%3D20%2C%20r%3D20%2C%20t%3D50%2C%20b%3D20)%0A%20%20%20%20)%0A%0A%20%20%20%20for%20i%20in%20range(1%2C%205)%3A%0A%20%20%20%20%20%20%20%20fig.update_xaxes(showticklabels%3DFalse%2C%20row%3D1%2C%20col%3Di)%0A%20%20%20%20%20%20%20%20fig.update_yaxes(showticklabels%3DFalse%2C%20row%3D1%2C%20col%3Di)%0A%0A%20%20%20%20fig%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20---%0A%0A%20%20%20%20%23%23%20%5Bd%5D%20Takeaway%0A%0A%20%20%20%20*%20**Atomic%20Linear%20Units**%3A%20Every%20rank-one%20matrix%20is%20formed%20by%20an%20outer%20product%20%24%5Cmathbf%7Bu%7D%5Cmathbf%7Bv%7D%5ET%24%2C%20constraining%20all%20rows%20to%20lie%20along%20%24%5Cmathbf%7Bv%7D%5ET%24%20and%20all%20columns%20to%20lie%20along%20%24%5Cmathbf%7Bu%7D%24.%0A%20%20%20%20*%20**Additive%20SVD%20Representation**%3A%20Any%20matrix%20%24%5Cmathbf%7BA%7D%24%20of%20rank%20%24r%24%20is%20an%20exact%20linear%20superposition%20of%20%24r%24%20orthogonal%20rank-one%20components%3A%20%24%5Cmathbf%7BA%7D%20%3D%20%5Csum_%7Bi%3D1%7D%5Er%20%5Csigma_i%20%5Cmathbf%7Bu%7D_i%20%5Cmathbf%7Bv%7D_i%5ET%24.%0A%20%20%20%20*%20**Optimal%20Compression**%3A%20Truncating%20the%20SVD%20to%20the%20top%20%24k%24%20rank-one%20components%20produces%20the%20best%20rank-%24k%24%20approximation%20under%20the%20Frobenius%20and%20spectral%20norms.%0A%20%20%20%20*%20**Modern%20AI%20Applications**%3A%20Low-rank%20structures%20enable%20efficient%20large%20language%20model%20fine-tuning%20(LoRA)%2C%20where%20rank-1%20and%20low-rank%20factor%20updates%20adapt%20billions%20of%20frozen%20model%20weights.%0A%0A%20%20%20%20---%0A%0A%20%20%20%20%26larr%3B%20Previous%20Note%3A%20%5B03%20Hyperplanes%5D(03_hyperplanes.py)%20%7C%20Next%20Note%3A%20%5B05%20Orthogonality%5D(05_orthogonality.py)%20%26rarr%3B%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
43a7dff45690e4adca91475ea39fbaa7