Free Field Operator: Building Quantum Fields

Free Field Operator: Building Quantum Fields How Quantum Fields Evolve Without Interactions ๐ŸŽฏ Our Goal We aim to construct the free scalar field operator \( A(x,t) \), which describes a quantum field with no interactions—just free particles moving across space-time. ๐Ÿง  Starting Expression This is the mathematical formula for our field \( A(x,t) \): \[ A(x, t) = \frac{1}{(2\pi)^{3/2}} \int_{\mathbb{R}^3} \frac{1}{\sqrt{k_0}} \left[ e^{i(k \cdot x - k_0 t)} a(k) + e^{-i(k \cdot x - k_0 t)} a^\dagger(k) \right] \, dk \] x: Spatial position t: Time k: Momentum vector k₀ = √(k² + m²): Relativistic energy of the particle a(k): Operator that removes a particle (annihilation) a†(k): Operator that adds a particle (creation) ๐Ÿงฉ What Does This Mean? The field is made up of wave patterns (Fourier modes) linked to momentum \( k \). It behaves like a system that decides when and where ...

SVD in Image Processing: Compression, Denoising & Machine Learning Applications

SVD in Image Processing: Compression, Denoising & Machine Learning Applications Matrix Space Toolkit in SageMath

The Magic of SVD in Image Processing: Compress, Denoise, and Discover

“Think of an image as a massive Lego structure. Singular Value Decomposition (SVD) is like breaking that structure down into a handful of core building blocks—some large and important, others tiny and disposable. With just the key blocks, we can rebuild a pretty good version of the original. That’s the essence of SVD.”

What You’ll Learn:

  • SVD basics through intuitive analogies
  • Image compression and denoising using SVD
  • Visualizing and interpreting singular values
  • Real-world applications: recognition, watermarking, feature extraction
  • Interactive exploration ideas (SageMath + Jupyter-ready!)
  • Quality vs. compression trade-offs with real metrics

SVD: A Building Block Perspective

Matrix decomposition helps us simplify complex data by breaking it into parts that are easier to work with. In the case of an image, it helps us reduce redundancy and uncover its essential features. SVD breaks a matrix ๐ด into three components: \[ ๐ด = UฮฃV^T \]

  • U: Left singular vectors (row patterns)
  • ฮฃ: Diagonal matrix of singular values (importance weights)
  • VT: Right singular vectors (column patterns)

Why SVD Works So Well on Images

Most images contain lots of redundancy. For instance, pixels near each other tend to have similar colors. SVD takes advantage of this by separating the most informative structure from the fine details or noise.

  • Large singular values capture dominant image features (edges, gradients)
  • Smaller values often encode fine texture or random noise

Visualizing Singular Values

Let's see how fast the singular values decay:


  	import matplotlib.pyplot as plt
	plt.plot(S.diagonal(), marker='o')
	plt.title("Singular Values of the Image")
	plt.xlabel("Index")
	plt.ylabel("Singular Value")
	plt.yscale('log')
	plt.grid(True)
	plt.show()
    

Observation: You’ll often see an elbow — a natural point where most image information is already captured, and additional singular values contribute very little.

How Much Can You Save? (Compression Math)

For an image of size ๐‘š×๐‘› :

  • Original size = ๐‘š×๐‘›
  • Compressed size = ๐‘˜(๐‘š+๐‘›+1)

Example: For a 300×300 image, and ๐‘˜=50:

  • Original: 90,000 values
  • Compressed: 50×(300+300+1)=30,050
  • Compression ratio ≈ 3:1

	def compression_ratio(m, n, k):
    	original = m * n
    	compressed = k * (m + n + 1)
    	return original / compressed
    

SVD in Action: Reconstructing Images with Different ๐‘˜


	for k in range(10, 100, 20):
    	A_approx = U[:, :k] * S[:k, :k] * V.T[:k, :]
    	matrix_plot(A_approx, title=f"{k} Singular Values")
    

๐Ÿ“ท Visual Insight:

  • Low ๐‘˜: blurry/blocky image
  • Higher ๐‘˜: improved quality, but lower compression

Denoising Images with SVD

Small singular values often represent noise. You can filter them out like this:


    threshold = 250
	S_clean = diagonal_matrix([s if s > threshold else 0 for s in S.diagonal()])
	denoised_img = U * S_clean * V.T
	matrix_plot(denoised_img, title="Denoised Image (SVD Thresholding)")
    

You'll see noise vanish without any fancy filters!

Side-by-Side Performance Comparison

Singular Values (k) Reconstructed Image PSNR (dB) MSE
5 Reconstructed Image for k=5 22.11 2520
25 Reconstructed Image for k=25 28.94 503
50 Reconstructed Image for k=50 33.51 151
100 Reconstructed Image for k=100 36.28 8

๐Ÿ“Œ Insight: PSNR increases rapidly up to about ๐‘˜=50, but plateaus afterward — most of the useful structure is already captured.

Real-World Applications

  • Denoising: Remove noise from low-light or compressed images by trimming small singular values.
  • Feature Extraction: Use top singular vectors as features for clustering, face recognition, or PCA.
  • Watermarking: Embed information in lower-rank components; robust to scaling and filtering.

Curious Questions for You

  • “What patterns in an image do you think are captured first?”
  • “How does the image visually evolve from 10 to 100 components?”
  • “Where would you place the elbow in the singular value plot?”
  • “Where else might there be hidden redundancy in your data?”

Final Thoughts

SVD reveals the hidden structure in your data. It compresses, cleans, and clarifies — offering a perfect example of how elegant math can unlock practical power in the real world.

Where Do We Go From Here?

You’ve just seen how singular vectors reveal the essential patterns in images—capturing edges, gradients, and structure with surprising efficiency. But did you know that in dynamical systems, a close cousin of these vectors plays a similar role?

๐Ÿ‘‰ Just as SVD decomposes data into interpretable components, eigenvalues and eigenvectors decompose the behavior of systems governed by differential equations.

  • Eigenvectors show the invariant directions in which a system evolves.
  • Eigenvalues tell us how fast or how chaotically those directions change.

In the next blog, we’ll explore how to solve systems of linear ordinary differential equations (ODEs) using eigenvalues and eigenvectors. If you’ve ever wondered why some systems oscillate while others decay or explode, this is where it all clicks

Interactive Denoising Challenge

Let’s use SVD to remove noise from an image by zeroing out the smallest singular values, which typically correspond to fine-grain noise.


   threshold = 250  # Try changing this!
	S_clean = diagonal_matrix([s if s > threshold else 0 for s in S.diagonal()])
	denoised_img = U * S_clean * V.T
	matrix_plot(denoised_img, title=f"Denoised Image (Threshold = {threshold})")
    

Challenge Your Curiosity:

๐Ÿ’ก Try tweaking the threshold—what’s the lowest value that removes most of the noise without blurring out important image details like edges or texture?

Ask Yourself:

  • Does increasing the threshold sharpen or blur the image?
  • At what point do essential features start disappearing?
  • Could this technique work differently on medical or satellite imagery?

๐Ÿ’ก Try It Yourself!

We've included an Active SageMath cell below. You can copy and run the code, or even modify the matrix values and explore how the results change in real-time. It's a hands-on way to deepen your understanding of SVD!

Comments

Popular posts from this blog

๐ŸŒŸ Illuminating Light: Waves, Mathematics, and the Secrets of the Universe

Spirals in Nature: The Beautiful Geometry of Life