shannon_wavelet_expansion
Bases: discrete_wavelet_expansion
Shannon Wavelet Expansion.
Applies the Shannon wavelet function for feature expansion.
Notes
Formally, given the input variable \(\mathbf{x} \in R^{m}\), to approximate the underlying mapping \(f: R^m \to R^n\) with wavelet analysis, we can define the approximated output as
\[ \begin{equation} f(\mathbf{x}) \approx \sum_{s, t} \left \langle f(\mathbf{x}), \phi_{s, t} (\mathbf{x} | a, b) \right \rangle \cdot \phi_{s, t} (\mathbf{x} | a, b), \end{equation} \]
where \(\phi_{s, t} (\cdot | a, b)\) denotes the child wavelet defined by hyper-parameters \(a > 1\) and \(b > 0\):
\[ \begin{equation} \phi_{s, t}(x | a, b) = \frac{1}{\sqrt{a^s}} \phi \left( \frac{x - t \cdot b \cdot a^s}{a^s} \right). \end{equation} \]
Based on the wavelet mapping \(\phi_{s, t} (\cdot | a, b)\), we can introduce the \(1_{st}\)-order and \(2_{nd}\)-order wavelet data expansion functions as follows:
\[ \begin{equation} \kappa(\mathbf{x} | d=1) = \left[ \phi_{0, 0}(\mathbf{x}), \phi_{0, 1}(\mathbf{x}), \cdots, \phi_{s, t}(\mathbf{x}) \right] \in R^{D_1}. \end{equation} \]
and
\[ \begin{equation} \kappa(\mathbf{x} | d=2) = \kappa(\mathbf{x} | d=1) \otimes \kappa(\mathbf{x} | d=1) \in R^{D_2}. \end{equation} \]
The output dimensions of the order-1 and order-2 wavelet expansions are \(D_1 = s \cdot t \cdot m\) and \(D_2 = (s \cdot t \cdot m)^2\), respectively.
Specifically, the functions \(\left\{ \phi_{s, t}\right\}_{ s, t \in Z}\) defines the orthonormal basis of the space and the mapping \(\phi(\cdot)\) used in the child wavelet may have different representations.
For Shannon wavelet, it can be represented as follows:
Shannon Wavelet:
\[ \begin{equation} \begin{aligned} &\phi(\tau) = \frac{\sin(2\pi \tau) - \sin(\pi \tau)}{\pi \tau}. \end{aligned} \end{equation} \]
Attributes:
Name | Type | Description |
---|---|---|
wavelet |
callable
|
Shannon wavelet function used during the transformation. |
Methods:
Name | Description |
---|---|
Inherits all methods from `discrete_wavelet_expansion`. |
|
Source code in tinybig/expansion/wavelet_expansion.py
400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 |
|
__init__(name='shannon_wavelet_expansion', a=1.0, b=1.0, *args, **kwargs)
Initializes the Shannon wavelet expansion.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
name
|
str
|
Name of the transformation. Defaults to 'shannon_wavelet_expansion'. |
'shannon_wavelet_expansion'
|
a
|
float
|
The scaling factor for the wavelet. Defaults to 1.0. |
1.0
|
b
|
float
|
The translation factor for the wavelet. Defaults to 1.0. |
1.0
|
*args
|
tuple
|
Additional positional arguments. |
()
|
**kwargs
|
dict
|
Additional keyword arguments. |
{}
|