फ़ंक्शन वेक्टर हैं
(thenumb.at)- फ़ंक्शनों को अनंत-आयामी वेक्टर की तरह देखने पर linear algebra की भाषा में image/geometry processing, curve fitting, machine learning जैसी समस्याओं को समझाया जा सकता है
- real-valued function space, फ़ंक्शनों के मान जोड़कर और output values को scalar से scale करके vector space axioms को satisfy करता है, और polynomials को (1,x,x^2,\dots) जैसे basis से व्यक्त किया जा सकता है
- differentiation linear combinations को preserve करता है, इसलिए यह linear operator बनता है, और polynomial basis में इसे coefficient vector पर काम करने वाली infinite matrix की तरह देखा जा सकता है
- inner product को integral से define करने पर function space में भी length, orthogonality, orthonormal basis को संभाला जा सकता है, और self-adjoint operator spectral theorem से जुड़ता है
- Laplacian को diagonalize करने का दृष्टिकोण Fourier series, 2D image compression, spherical harmonics, और mesh Laplacian आधारित geometry processing के basis transform और compression को एक साथ समझाता है
फ़ंक्शनों को वेक्टर की तरह देखने का तरीका
- वेक्टर आम तौर पर real numbers की list से शुरू होते हैं, लेकिन vector space में complex numbers की list, graph cycles, magic squares जैसी दूसरी चीज़ें भी हो सकती हैं
- (N)-dimensional vector लंबाई (N) की list होने के साथ-साथ, index से value तक जाने वाली mapping के रूप में भी समझा जा सकता है
- natural numbers जैसे countably infinite domain में फ़ंक्शन को infinitely long list से दिखाया जा सकता है
- उदाहरण: (\mathbf{v}_i=i), (x\in\mathbb{N}) पर (f(x)=x) को दिखा सकता है
- real numbers जैसे uncountably infinite domain में हर element को integer index देना संभव नहीं, इसलिए list representation संभव नहीं है
- ऐसे में वेक्टर किसी arbitrary function के करीब हो जाता है
- functional analysis, फ़ंक्शनों को infinite-dimensional vectors के रूप में व्यक्त करने की सटीक definitions से जुड़ा है
- लक्ष्य infinite-dimensional results को rigorously prove करना नहीं, बल्कि finite-dimensional linear algebra से analogy बनाकर intuition तैयार करना है
function space कैसे vector space बनता है
- real-valued function space में scalar field (\mathbb{R}) है, vector set (\mathbb{R}\to\mathbb{R}) functions हैं, और zero vector वह function है जो हर input पर 0 लौटाता है
- function addition एक ही input पर दो functions के values को जोड़ता है
- ((f+g)[x]=f[x]+g[x])
- यह vector के element-wise addition को function-index perspective में generalize करता है
- scalar multiplication function result को scale करता है
- ((\alpha f)[x]=\alpha f[x])
- यह हर index के value को scale करने वाले vector operation से मेल खाता है
- इन definitions से addition की commutative और associative laws, zero vector, additive inverse, scalar multiplication की identity और associative laws, तथा distributive laws prove की जा सकती हैं
- functions का standard basis, हर index (\alpha) पर सिर्फ 1 और बाकी जगह 0 होने वाले basis function (\mathbf{e}_\alpha) की तरह सोचा जा सकता है
- पूरे real line में uncountably many basis functions होते हैं, इसलिए simple sum के रूप में लिखना मुश्किल है, लेकिन यह intuition देता है कि किसी खास input (x) पर सिर्फ (\mathbf{e}_x) बचता है
linear operators और differentiation
- matrix, linear combinations को preserve करने वाले linear transformation को encode करती है, और columns को नए basis define करने के रूप में समझा जा सकता है
- functions को भी vectors की तरह देखें तो matrix के equivalent infinite-dimensional object के बारे में सोचा जा सकता है, जिसे linear operator (\mathcal{L}) लिखा जाता है
- वास्तव में uncountably infinite-dimensional operator को पूरी तरह matrix के रूप में नहीं लिखा जा सकता
- फिर भी यह structure उपयोगी है कि हर “column” function space के नए basis function को दिखाता है
- differentiation linearity satisfy करता है
- (\frac{\partial}{\partial x}(\alpha f[x]+\beta g[x])=\alpha\frac{\partial f}{\partial x}+\beta\frac{\partial g}{\partial x})
- polynomial space (\mathcal{P}) में (1,x,x^2,x^3,\dots) countably infinite basis बनते हैं
- (p[x]=a+bx+cx^2+dx^3+\cdots) को coefficient vector ([a,b,c,d,\dots]^T) के रूप में लिखा जा सकता है
- differentiation को coefficient vector को ([b,2c,3d,\dots]^T) में बदलने वाली infinite matrix से व्यक्त किया जाता है
- analytic functions को 0 के आसपास Taylor series से व्यक्त किया जाता है, इसलिए वे polynomial basis के linear combination के रूप में दिखाए जा सकते हैं
- Taylor expansion, power basis में basis transform के equivalent है
diagonalization और eigenfunctions
- finite dimensions में matrix (\mathbf{A}), अगर उसके पास पर्याप्त linearly independent eigenvectors और real eigenvalues हों, तो diagonalize की जा सकती है
- (\mathbf{A}=\mathbf{U\Lambda U^{-1}})
- यह eigenbasis में बदलने, eigenvalues से scale करने, और फिर standard basis में लौटने की प्रक्रिया है
- function space में भी linear operator (\mathcal{L}) के लिए (\mathcal{L}f=\psi f) satisfy करने वाले eigenfunctions सोचे जा सकते हैं
- differentiation operator के eigenfunctions (p_0e^{\psi x}) के form में होते हैं
- coefficient condition (p_i=\frac{\psi^i}{i!}p_0) से exponential function की series सामने आती है
- लेकिन सभी real analytic functions पर differentiation को exponential-function basis से diagonalize नहीं किया जा सकता
- अगर मान लें कि (f[x]=x) को exponential functions के linear combination से व्यक्त किया जा सकता है, तो दो बार differentiate करने पर contradiction पैदा होता है
- जिन non-constant functions का (n)-th derivative 0 हो जाता है, या sine/cosine जैसे periodic functions, उनमें भी ऐसी ही समस्या है
- complex function space तक extend करने पर अधिक operators को diagonalize किया जा सकता है
- differentiation को (\mathbb{C}\to\mathbb{C}) function space में Laplace transform से diagonalize किया जा सकता है
- Laplace transform differential equations solve करने में उपयोगी है, लेकिन inverse transform आसान नहीं होता, इसलिए इसे आगे नहीं लिया गया है
function inner product और spectral theorem
- Euclidean inner product बताता है कि एक vector दूसरे vector की direction में कितना measured है, और स्वयं के साथ inner product length का square देता है
- function space में finite sum को उसके continuous counterpart, यानी integral, से बदलकर inner product define किया जाता है
- real-valued functions: (\langle f,g\rangle=\int_a^b f[x]g[x]\,dx)
- complex-valued functions: (\langle f,g\rangle=\int_a^b f[x]\overline{g[x]}\,dx)
- सभी functions integrable नहीं होते, इसलिए inner product space को interval ([a,b]) पर square-integrable functions तक सीमित किया जाता है
- ([a,b]), ([-\infty,\infty]) भी हो सकता है
- complex function inner product को conjugate symmetry, पहले argument में linearity, और positive definiteness satisfy करनी चाहिए
- positive definiteness के rigorous handling के लिए उन functions की equivalence classes इस्तेमाल की जाती हैं जो 0 “almost everywhere” पर 0 हैं
- spectral theorem function spaces तक generalize होता है, और self-adjoint operator के पास real eigenvalues और orthonormal eigenbasis होता है
- finite dimensions में symmetric matrix के पास orthonormal eigenbasis होता है, और इसका converse भी सही है
- infinite dimensions में rigorous conditions और proofs अधिक complex होते हैं
Laplacian का diagonalization
- 1-dimensional functions में Laplacian second derivative है
- (\Delta f=\frac{\partial^2 f}{\partial x^2})
- integration by parts को दो बार इस्तेमाल करके देखा जा सकता है कि Laplacian में self-adjoint जैसी property होती है
- boundary term ((f^\prime[x]g[x]-f[x]g^\prime[x])|_a^b) 0 होना चाहिए
- इसके लिए domain को period (b-a) वाले periodic functions तक restrict किया जाता है
- simplification के लिए interval ([0,1]) रखा जाता है
- Laplacian के periodic eigenfunctions (e^{2\pi \xi i x}) हैं, और (\xi) integer है
- Euler formula के अनुसार sine/cosine perspective और complex exponential perspective correspond करते हैं
- eigenvalue (-(2\pi\xi)^2) है
- ये eigenfunctions ([0,1]) पर एक-दूसरे के orthogonal हैं और norm 1 है
- जब (\xi_1-\xi_2) non-zero integer हो, तो inner product 0 हो जाता है
- उसी function के साथ inner product 1 होता है
- Laplacian के orthonormal eigenbasis में transform करना Fourier coefficients calculate करने जैसा है
- (\hat{f}[\xi]=\int_0^1 f[x]e^{-2\pi\xi i x}\,dx)
- inverse transform (f[x]=\sum_{\xi=-\infty}^{\infty}\hat{f}[\xi]e^{2\pi\xi i x}) है
- पूरा Laplacian real-valued functions को real-valued functions में map करता है, लेकिन intermediate representation में complex values हो सकते हैं
Fourier series और signal processing applications
- Fourier transform, Laplacian के eigenbasis में बदलने वाला basis transform है
- (\hat{f}[\xi]) मापता है कि function (f) integer frequency (\xi) की wave से कितना represent होता है
- यह representation function को frequency domain में ले जाता है
- orthonormal basis होने के कारण Fourier series coefficients को फिर waves के साथ combine करके आसानी से inverse transform कर सकती है
- किसी threshold से बड़े Fourier coefficients को छोड़ देने पर function का smooth reconstruction बनाया जा सकता है
- इस technique को low-pass filter कहा जाता है
- कुछ ही Fourier coefficients store करके function को approximately reconstruct किया जा सकता है, इसलिए computationally यह compression के लिए useful है
image compression और spherical harmonics
- जहाँ Laplacian define किया जा सकता है, वहाँ corresponding Fourier transform खोजा जा सकता है
- 2 dimensions में Laplacian second partial derivatives का sum है
- (\Delta f[x,y]=\frac{\partial^2 f}{\partial x^2}+\frac{\partial^2 f}{\partial y^2})
- ([0,1]\times[0,1]) पर eigenfunctions (e^{2\pi i(nx+my)}) के form में होते हैं, और (n,m) integers हैं
- जैसे 1D function को 1D waves के collection में decompose किया जाता है, वैसे 2D image को 2D waves के collection में decompose किया जाता है
- 2D Fourier transform का एक variant, JPEG सहित कई image compression algorithms के core में है
- unit sphere पर भी Laplacian define किया जा सकता है, और उसका orthonormal eigenbasis spherical harmonics है
- (Y_\ell^m[\theta,\phi]=N_\ell^mP_\ell^m[\cos[\theta]]e^{im\phi})
- (\ell\ge0), (m\in[-\ell,\ell])
- game engines में इसका अक्सर diffuse environment map और global illumination probe को compress करने में इस्तेमाल होता है
- spherical harmonics को electron orbitals के रूप में भी देखा जा सकता है, और quantum mechanics मुख्यतः linear operators के eigenfunctions से जुड़ी है
geometry processing और आगे की खोज
- functions को vectors के रूप में represent करने का तरीका image compression ही नहीं, modern geometry processing algorithms की भी foundation है
- discrete differential geometry, 3D geometry processing algorithms बनाते समय इस perspective का इस्तेमाल करती है
- computer graphics में mesh पर functions texture, unwrapping, displacement, simulation parameters को represent कर सकते हैं
- mesh के हर vertex से value जोड़कर function को vector के रूप में encode किया जा सकता है
- mesh Laplacian finite-dimensional matrix है, इसलिए numerical linear algebra से eigenfunctions खोजे जा सकते हैं
- यह continuous domain के sine/cosine को नए domain में generalize करने वाले functions की तरह काम करता है
- mesh का eigenbasis, mesh पर functions को transform और compress करने में useful है
- vertex positions को function की तरह interpret करें तो geometry itself को smooth या sharpen भी किया जा सकता है
- आगे explore करने के topics के रूप में geometry, simulation, light transport, machine learning, splines देखे जा सकते हैं
- Geometry: Distances, Parallel Transport, Flattening, Non-manifold Meshes, Polygonal Meshes
- Simulation: Finite Element Method, Monte Carlo PDEs, Minimal Surfaces, Fluid Cohomology
- Light Transport: Radiosity, Operator Formulation, Low-Rank Approximation, Inverse Rendering
- Machine Learning: DiffusionNet, MeshCNN, Kinematics, Fourier Features, Inverse Geometry
- Splines: C2 Interpolation, Quadratic Approximation, Simplification
1 टिप्पणियां
Hacker News टिप्पणियां
इस लेख को दो बार upvote करने का मन करता है; अब तक देखे गए functional analysis के बुनियादी concepts के introductions में यह सबसे अच्छा है
थोड़ा और गणितीय गहराई में जाने वाला अच्छा overview https://arxiv.org/abs/1904.02539 भी है
वेबसाइट ने जिस शानदार application का ज़िक्र नहीं किया, वह Koopman operator है। control theory में autonomous drones, cars, robotic arms जैसे real systems को ज़्यादातर मुश्किल nonlinear dynamics से describe किया जाता है, और Koopman operator nonlinear systems के लिए globally useful linear approximation देता है
यानी nonlinear system को काफी high accuracy के साथ linear system की तरह handle किया जा सकता है, जिससे computation के लिहाज़ से control और estimation काफी सरल हो जाते हैं। इस तरह की linearization data से भी सीखी जा सकती है
Steve Brunton के Koopman theory resources https://youtube.com/playlist?list=PLMrJAkhIeNNSVXUvppZTYNHKQ..., https://arxiv.org/abs/2102.12086 अच्छे हैं, और soft robot control जैसे applications भी हैं https://arxiv.org/abs/1902.02827
उस समय research funding ढूंढते-ढूंढते थक गया था, और फिर से अकेले सूखी किताबें पढ़ते-पढ़ते academia से ऊबकर छोड़ दिया
अच्छे YouTube educators जबरदस्त future opportunities बना रहे हैं और आखिरकार सभी को इसका फायदा मिलेगा। control theory कई क्षेत्रों के बीच connections दिखाती है, इसलिए जिन्हें हर जगह patterns और structure देखना पसंद है, उनके लिए यह बहुत आनंददायक हो सकती है। मुझे याद है Steve ने हाल में social models के लिए control theory पर भी video डाला था
यह एहसास कि functions को infinite-dimensional abstract vector space के elements की तरह treat किया जा सकता है, गणित के इतिहास में एक turning point था, और इसी से functional analysis नाम के subfield का उदय हुआ
इस perspective shift का महत्व यह था कि 3-dimensional Euclidean space जैसे finite-dimensional spaces के अध्ययन से मिली geometric intuition को functions से जुड़ी कठिन समस्याओं—जैसे कुछ differential equations के solutions के अस्तित्व—पर लागू किया जा सका
इस बदलाव का इतिहास 19वीं सदी के अंत और 20वीं सदी की शुरुआत तक जाता है और बहुत रोचक है। उस समय mathematics की axiomatic foundations पर काम, mathematical objects की structure को axioms की संक्षिप्त सूची में capture करके व्यवस्थित करने की दिशा बना रहा था
उदाहरण के लिए abstract vector space का concept भी इसी तरह पैदा हुआ, और इसमें Euclidean spaces के साथ-साथ infinite-dimensional function spaces भी शामिल हो गए
इस perspective shift को शुरुआती रूप में ही दिखाने वाला एक source Vito Volterra का 1889 memoir है https://projecteuclid.org/journals/acta-mathematica/volume-1...
Maurice Fréchet की 1906 doctoral thesis https://zenodo.org/record/1428464/files/article.pdf ने इस नए paradigm को crystallize करके modern form में पेश किया, और इसे 20वीं सदी के पहले आधे हिस्से का key reference बनने वाला सबसे प्रभावशाली काम माना जा सकता है
बेशक उस समय के अनेक works में ये सिर्फ दो examples हैं, और बाद के विकास को देखें तो Stefan Banach की 1932 की किताब को भी नज़रअंदाज़ करना मुश्किल है http://kielich.amu.edu.pl/Stefan_Banach/pdf/teoria-operacji-...
इसलिए मुझे लगता है core बात यह है कि ये vector spaces वास्तव में topological हैं
मुझे यह viewpoint हमेशा बहुत पसंद रहा है। मैं Vito Volterra के Madrid में दिए गए differential equations और integro-differential equations lectures मज़े से पढ़ रहा हूं; उन्होंने साथ-साथ functional analysis बनाने में भी योगदान दिया था
यहां functional, dual vector के corresponding concept है। Volterra finite-variable constructions से infinite, यहां तक कि uncountable variables तक जाने की analogy method का लगातार उपयोग करते हैं
यहां तक कि एक जगह वे खुद इस बात पर थोड़ा संकोच करते दिखते हैं कि कहीं वही idea बहुत बार repeat तो नहीं कर रहे। जो लोग पढ़ाते हैं, वे इसे साथ में एक बार देख सकते हैं
https://searchworks.stanford.edu/view/526111
ऐसे index function को vector space के transfinite basis के रूप में इस्तेमाल होते मैंने नहीं देखा। वह function basis functions की किसी finite sequence का limit point होने के बजाय, ज़्यादातर 0 वाले items के किसी अजीब transfinite sum जैसा लगता है
सभी functions के लिए Fourier transform संभव होगा, ऐसा भी नहीं लगता। diagonalization तरीके से यह आसानी से खारिज किया जा सकता है कि इससे कोई उपयोगी नतीजा नहीं मिलता
Hilbert space तक आम तौर पर सिर्फ integers से indexed होता है। ऐसा basis continuity या differentiability की कोई condition नहीं देता
मैंने जितनी functional analysis देखी है, वह सब किसी continuity condition और countable basis का इस्तेमाल करती थी। इसके अलावा functions को देखने का यह एक बहुत उपयोगी नजरिया है, और quantum mechanics के formalism को समझने के लिए यह एक शुरुआती बिंदु जैसा है
introductory level पर पढ़ाई जाने वाली quantum mechanics में भी यह आम समस्या है। हालांकि यह लेख भी introductory quantum mechanics lecture की तरह functional analysis concepts के लिए motivation देने पर केंद्रित लगता है, और rigorous न होने पर भी explanation के लिए उपयोगी है
इस subspace के हर function का Fourier transform होता है
यह लेख शायद अच्छे कारण से, functional analysis में आम तौर पर काफी कठिन choice—“कौन-सा vector space इस्तेमाल किया जाए”—को पूरी तरह नजरअंदाज करता है
यहां की तरह functions को pointwise define किया गया vector space लगभग हमेशा सबसे कम उपयोगी choice होता है। हालांकि अगर मकसद topic की पूरी रूपरेखा सिखाना था, तो यह अपने-आप में काफी valuable है
“सभी functions का Fourier transform संभव नहीं हो सकता” वाली बात पर, ऐसे space में उपयोगी distance concept भी पाना मुश्किल है
यह function की असली definition से जुड़ा है। function sets के बीच mapping है, जिसमें पहले set का हर element दूसरे set के ठीक एक element पर जाता है
vectors इस्तेमाल करने के तरीके की समस्या यह है कि vector, set जितना general नहीं होता, इसलिए ऐसे functions होते हैं जिन्हें vector से represent नहीं किया जा सकता
उदाहरण के लिए, vector undefined values या non-numeric elements को handle नहीं कर सकता
definition के अनुसार domain की हर value को codomain की किसी चीज़ से map होना ही चाहिए, इसलिए उस अर्थ में undefined value नहीं होती
function space को हमेशा vector space के रूप में न देख पाने की वजह यह है कि functions के addition या scalar multiplication का concept मौजूद न भी हो सकता है, और मौजूद हो तो भी वह functions द्वारा satisfy किए जाने वाले additive structure से अच्छी तरह मेल न खा सकता है
यह सिर्फ तब सही है जब codomain में vector operations के लिए जरूरी structure हो। function, vector से ज्यादा general है
सचमुच शानदार लगता है और बाद में और detail में पढ़ना चाहूंगा। सामान्य physics degree course में शायद इनमें से ज्यादातर चीजें cover होती होंगी
फिर भी अच्छी film या book की तरह, concept खुद इतना दिलचस्प है कि इसे एक से ज्यादा बार फिर देखने लायक है
programmer के नजरिये से इनमें से कुछ techniques काफी hacking जैसी लगती हैं। शुरुआत में बहुत reasonable integer index से शुरू करते हैं, फिर समझ आता है कि index को generalize किया जा सकता है और original intention से कहीं ज्यादा information index में ठूंस देते हैं
सच में हैरान करने वाली बात यह है कि ऐसी मूर्खतापूर्ण और misuse जैसी दिखने वाली ideas बाद में हमेशा insightful और useful किसी चीज़ में बदल जाती हैं। थोड़ा magic जैसा है
Pyro और NumPyro probabilistic programming languages में इस्तेमाल के लिए Eli Bingham के साथ बनाई गई Funsor library का परिचय देना चाहूंगा
“functions are tensors” वाला perspective लेकर, मुख्यतः probability distributions की log density functions के लिए NumPy जैसी function library बनाने की कोशिश की थी
paper: "Functional Tensors for Probabilistic Programming" (2019) https://arxiv.org/abs/1910.10775
code: https://github.com/pyro-ppl/funsor
मुझे लगता है यह लेख उल्टी दिशा में जाता है, इसलिए खराब intuition देता है। function को vector space बनाने वाली चीज़ input नहीं, output है
किसी set X से field F में जाने वाले functions, X unordered हो तब भी vector space बना सकते हैं
जितना follow कर पा रहा हूं, उसमें यह बहुत दिलचस्प perspective है, लेकिन अफसोस कि ज्यादा follow नहीं कर पा रहा
सोचता हूं कि क्या ऐसी formal logic, vectors को explain करने वाले function derive करने में मदद करती है
big data analysis, जैसे neural network training में सबसे बड़ी inefficiency और bottleneck अब भी expected vector जैसी output को approximate करने वाला function खोजने की method तक सिमटती लगती है
चाहे वह method symbolic regression हो या transformation की कई layers। अगर input और output के बीच relation को किसी तरह extract या compress किए बिना, सिर्फ function as vector पर operations कर पाना संभव हो, तो वह “magic” जैसा होगा
यही मूल रूप से MP3 और JPEG compression का basic idea है। बेशक यह space और time का trade-off है, इसलिए original vector का approximation पाने के लिए पहले inverse Fourier transform apply करना होगा
यह लेख abstract vector space, उसकी properties जैसे vector addition और scalar multiplication आदि से deal करता है, और खास तौर पर यह बताता है कि functions उस definition को satisfy करके functions का vector space, यानी function space बनाते हैं
उदाहरण के लिए, दो functions f, g और scalar b हों तो उन्हें इस तरह treat किया जा सकता है
f + g = g + f
b(f + g) = bf + bg
साथ ही (-f) मौजूद होता है जिससे f + (-f) = 0 होता है, जहां 0 zero function है, और function space में यह zero function भी मौजूद होना चाहिए