Stéphane Breuils
Vectors
Multivectors \( \mathbf{a},\mathbf{b} \)
Geometric product
\(\mathbf{a} \mathbf{b} \)
\( \mathbf{a} \mathbf{b} = \mathbf{a}\cdot \mathbf{b} + \mathbf{a} \wedge \mathbf{b} \)
\(\bullet \) invertible product and defined for vectors as:
\(\bullet \) \( \mathbf{a}\cdot \mathbf{b} \) inner product
\(\bullet \) \( \mathbf{a} \wedge \mathbf{b} \) outer product
\( \mathbf{a} = a_x \mathbf{e}_1 + a_y \mathbf{e}_2 + a_z \mathbf{e}_3 \)
\( \mathbf{b} = b_x \mathbf{e}_1 + b_y \mathbf{e}_2 + b_z \mathbf{e}_3 \)
Multivector
Grade
\( \mathbf{A}^{(2)} =a_{xy} \mathbf{e}_{12} + a_{xz} \mathbf{e}_{13} + a_{yz} \mathbf{e}_{23} \)
\(\bullet \) Scalar product generalisation
\(\hookrightarrow \) vector \( \cdot \) vector \(=\) scalar
\(\hookrightarrow \) \(k\)-vector \( \cdot \) \(k'\)-vector
\( \color{gray} \left \lVert \mathbf{p} \right \rVert^2 = \mathbf{p} \cdot \mathbf{p} \)
\(\bullet \) noted as \(\mathbf{p}^{-1}\)
\( \color{gray} \mathbf{p}^{-1} = \displaystyle \frac{\mathbf{p}}{\left \lVert \mathbf{p} \right \rVert^2} \)
\(\bullet \) vectors not contained in \( \mathbf{p} \)
\(\bullet \) noted \(\mathbf{p}^*\)
\( \color{gray} \mathrm{p}^* = \mathrm{p}\mathbf{I}_n^{-1} = \displaystyle\frac{\mathrm{p}\widetilde{\mathbf{I}}_n}{\mathbf{I}_n\cdot \widetilde{\mathbf{I}}_n} = \pm\mathrm{p}\mathbf{I}_n\)
\( {\color{red}\mathbf{i}_1^{*}} = \mathbf{l}^{*} \wedge \mathbf{s}^{*} \)
\( {\color{red}\mathbf{i}_2^{*}} = \mathbf{l}^{*} \wedge \mathbf{\pi}^{*} \)
\( {\color{red}\mathbf{i}_1^{*}} = \mathbf{l}^{*} \wedge \mathbf{s}^{*} \)
\( \mathbf{y} = -\mathbf{m} \mathbf{x} \mathbf{m}^{-1} \)
\( {\color{green}\mathbf{y}} = -{\color{blue}\mathbf{m}} {\color{red}\mathbf{x}} {\color{blue}\mathbf{m}^{-1}} \)
\( \mathbf{Q} = \color{blue}\mathbf{m}\mathbf{n} = \cos{\frac{\theta}{2}} + \sin{\frac{\theta}{2}} \mathbf{e}_{12} \) \( (2D)\)
\( \bullet \) holds for any dimension
Reflection of \( \mathbf{x} \) with respect to the hyperplane with normal vector \(\mathbf{m} \) :
\( \mathbf{y} = -\mathbf{m} \mathbf{x} \mathbf{m}^{-1} \)
Product of \(\mathbf{m} \mathbf{n} \) is a rotation of \( \mathbf{x} \) :
\( \mathbf{Q} = \color{blue}\mathbf{m}\mathbf{n} = \cosh{\frac{\theta}{2}} + \sinh{\frac{\theta}{2}} \mathbf{e}_{12} \) \( \)
Signature of the bilinear form (1,3)
\( \mathbf{y} = -\mathbf{m} \mathbf{x} \mathbf{m}^{-1} \)
Product of \(\mathbf{m} \mathbf{n} \) is a hyperbolic rotation of \( \mathbf{x} \) :
Rotation
\( \mathbf{\widetilde{q}} = \mathbf{r} + \frac{\epsilon}{2}\mathbf{t}\mathbf{r}\)
Translation
\( \mathbf{r} = \cos(\frac{\theta}{2}) + \mathbf{u} \sin(\frac{\theta}{2}) \)
Rotation and translation
\( \mathbf{\widetilde{t}} = 1 + \frac{\epsilon}{2}\mathbf{t}\)
Transformation of points \( 1+ \epsilon \mathbf{p} \)
\( \mathbf{\widetilde{l}'} = \mathbf{\widetilde{q}} (\mathbf{\widetilde{l}}) \mathbf{\widetilde{q}}^* \)
Transformation of line : \( \mathbf{\widetilde{l}} = \mathbf{l} + \epsilon \mathbf{m} \) ( \( \mathbf{m} \) moment of the line )
\( \mathbf{\widetilde{p}}'= \mathbf{\widetilde{q}} (1+ \epsilon \mathbf{p} ) \mathbf{\widetilde{q}}^* \)
Interpolation (blending) of \( n \) nodes (5 in the implementation )
\( \mathbf{w}(v, n) \in \mathbb{R} \)
\( x ^{(l+1)} = ψ(z^{(l+1)}) = ψ(W^{(l)}x^{(l)} + b^{(l)} ) \)
\( \bullet W^{(l)}\) Unit dual quaternion weights
\( \bullet x^{(l)},b^{(l)}\) Dual quaternions
\( \bullet \psi \) Dual quaternion function or split activation function
Dual quaternion and pytorch implementation
https://github.com/sbreuils/ga-dq-pytorch.git
Queries : Dual quaternion nodes
Keys : Reference dual quaternions
In Vector Valued Neural network, attention score is computed as the softmax of the dot product between keys and the query
\( \hookrightarrow \) Key idea : relative error between dual quaternions \(\mathbf{\tilde{q}_1},\mathbf{\tilde{q}_2} : \)
Quaternion Convolutional Neural Network (QCNN)
Quaternion Kernel : \( \mathbf{w} (L \times L)\)
Input quaternion : \( \mathbf{x} (N \times N)\)
Quaternion convolution
\( \mathbf{x}'_{kk'} = \sum_{l=1}^L \sum_{l'=1}^L w_{l,l'} (x_{k+l,k'+l'})w_{l,l'}^* \)
DQNN
\( \mathbf{\widetilde{q}} \mathbf{\widetilde{x}}\mathbf{\widetilde{q}}^* \)
DQNN
\( \mathbf{\widetilde{x}} \)
\( \mathbf{\widetilde{f}}(\mathbf{\widetilde{x}}) \)
\( \mathbf{\widetilde{q}}\mathbf{\widetilde{f}}(\mathbf{\widetilde{x}})\mathbf{\widetilde{q}}^* \)
\( J(x,y,bDQ) = \sum_i |SDF(y_i)| + \lambda \sum_j ||bDq_j || \)
Ours
Ground truth
Kitamura et al.
Dual quaternion does not represent composition of reflections with respect to planes
Equivariance to both grade projection \( (\_ )^{(m)}\) and polynomials \( F \)
Bijective digitized transformations
\( \bullet \) Reflections \( \mathcal{U}^{m} \)
\( \bullet \) Digitized operator \( \mathcal{D} \)
\( \bullet \) Digitized Reflections \( \mathcal{R}^{\mathbf{m}}\)
Voronoi cell equivalent definition
\( \mathcal{C}_{1}(\mathbf{0})\)
\( \mathcal{C}_{1}(\mathbf{t})\)
\( \mathbf{t} = 3 \mathbf{e}_1 + 2 \mathbf{e}_2\)
\( \bullet \) Reflection
\(\mathcal{C}_{\frac{\mathbf{m}}{||\mathbf{m} || }} (\mathbf{0}) \)
Voronoi cell equivalent definition
Motivation : Sparse angular distribution of bijective digitized reflection and rotations
Angular distribution of the composition of bijective digitized reflections
2 bijective digitized reflections
4 bijective digitized reflections
For each rotation angle \(\theta\), we thus compute the composition that minimizes the Linf error with respect to the real rotation
Several composition leads the same resulting rotation angle but can induce
different L2 and Linf errors
\( \bullet \) characterisation of 3D bijective digitized reflections is the extension of 2D bijective digitized reflections
\( \bullet \) Any bijective digitized rotation in 3D can be defined as the composition of one bijective digitized reflections and one reflection with respect to