250 likes | 357 Vues
Explore the encapsulated internals and interfaces of the intelligent compressor module in an ongoing software project, focusing on details of architecture, signaling, and feedback. Learn about compressing data from high to low dimensions while maintaining consistencies in mappings. Discover the mechanisms of compressors interacting through feedback loops and creating output.
E N D
Ongoing software project, not “theory” • Encapsulated internals & interfaces • Today: • Details of module internals • Details of architecture & signaling/feedback • Single, clean, simple inputs • (26 slides) • Not yet: • time • noise • robustness • multiple/partial hypotheses
One “compressor”: • Generic memory unit • Learns about low-dim structure in high-dim data • Converts live data between low-dim high-dim • Hierarchy of compressors: • Each learns from compressed & • combined output of those below • Bi-directional (feedback)
Quantizing & representing high-dim input Compressor Internals Compressing old: Matching to previous compression Bi-directional mapping P = p1 + p2 + … Probability estimation
X • “Point” = position, weight, radius Quantizing & representing high-dim input • Two point-clouds: mapping vs. learning (sync occasionally) Online updates: 3. Move it to absorb new point, preserving center of mass 2. Choose the lightest 1. Find 3 closest cloud-points 4. Increase weight 5. Update radius 6. (prune lightweight points) Result: Point-cloud approximates input cloud, with roughly equal weight per point
Compressing high to low (ISOMAP) 1. Find local distances in high-dim space 2. Create long-range distances from shortest piecewise path (“geodesic”) 3. Link “islands” until all Dij defined 4. Diagonalize F(Dij) to get low-dim cloud (arbitrary coordinates)
The low-dim mapping is not always unique… Keeping new maps consistent with old ones …so rotate & stretch new cloud to minimize distance from old one (SVD) Rotated new cloud Old cloud New cloud
1. Find new point’s closest 4-5 neighbors Mapping new points using point-clouds W2 2. Express it as their center-of-mass (SVD) W1 = W3 W4 3. Construct low-dim output from corresponding neighbors & weights W2 W1 = 4. Also works mapping lowhigh W3 W4
P = p1 + p2 + … P = p1 + p2 + … Each point is center of gaussian Prob. Estimation Ri Pi = exp ( -0.5 r2 / R2) / (RD Ptot) “Probability” of test point is sum over local gaussians Probability =“Closeness” to manifold = how much to trust this point … use it later in mixing estimates.
Creating forward output Compressors interacting Feedback mixed back in Settling
Creating output • Map from high to low dim • Expose result to all Compressors above • Re-map output backwards to high dim • Expose as feedback to Compressors below
Mix feedback into output 1. Average feedback from above 2. Get probabilities of feedback and own output P P 3. Create weighted mixture of them
Updating and settling 1. Expose mixture as updated output, and map downward as updated feedback 2. Iterate a few times to settle --- done with description of system --
General simulation results 3-layer hierarchy with 2-1 convergence Input is 9x6 “pixel” space with random illumination Display low-dim output in 2-D Ä color
Simple 1-dim illumination How does each module map the input space? ?
Toroidal 1-dim illumination How does each module map the circular input space? = ?
2-dim spot illumination How does each module map the 2-D input space? ?
“Hallucinating” spots driven from above • Force activity at a single • location in top module 2. Let feedback move down 3. Look at what lower modules think input ought to be ? ? ?
2-dim clustered spots (left & right) How does each module map the 2-D input space? ?
Next steps Architecture • Time • Reference problem • Reference platform • Integration method • Separate streams for transforms vs. objects • Get people involved! Algorithms • Noise • Multiple hypotheses • Distributed representation • “neurons” • Better quantization, mapping, robustness