FluxML / GeometricFlux.jl

Geometric Deep Learning for Flux
https://fluxml.ai/GeometricFlux.jl/stable/
MIT License
348 stars 30 forks source link

Add support for Geometric Algebra #270

Open ajahraus opened 2 years ago

ajahraus commented 2 years ago

Geometric Algebra, also known as Clifford Algebra, is a natural mathematical language for geometric applications (as the name would imply).

Although this is certainly a non-trivial addition to the package, there would be tremendous benefits to being able to specify a geometric system, and have a machine learning framework determine the necessary parameters to satisfy the system given the observations.

To learn more about geometric algebra, please see this website: bivector.net

For a quick introduction, see this video: A Swift Introduction to Geometric Algebra

To see more about geometric algebra's potential in machine learning, see this video GAME2020 4. Dr. Vincent Nozick Geometric Neurons

yuehhua commented 2 years ago

Geometric algebra sounds great! I viewed some youtube videos introduce this before. I am curious about some solid issues that can be resolved after introducing geometric algebra into this package. Would you like to share some benefits with me?

ajahraus commented 2 years ago

Let's say that there's a set of input data that can be represented as a collection of XYZ coordinates, and we're trying to determine a mapping of each input set to some output set. This could be done in geometric algebra in a single layer, if the activation function is "the sandwich product" and the value being estimated is what's known as a motor, a single element in geometric algebra which represents both translation and rotation.

ajahraus commented 2 years ago

That's obviously a very simple example, and there are other ways to solve that problem, but the point is that many operations that are hard to represent in linear algebra are trivial in geometric algebra.

HiperMaximus commented 2 years ago

I support this idea