Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
montyvesselinov authored Dec 15, 2023
1 parent 0513e98 commit 5bd5372
Showing 1 changed file with 22 additions and 22 deletions.
44 changes: 22 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<img src="logo/ntfk-logo.jpg" alt="ntfk" width=25% max-width=125px;/>
</div>

**NTFk** is one of the tools in the **SmartTensors** ML framework ([smarttensors.com](https://smarttensors.com)).
**NTFk** is a module of the **SmartTensors** ML framework ([smarttensors.com](https://smarttensors.com)).

<div style="text-align: left">
<img src="logo/SmartTensorsNewSmall.png" alt="SmartTensors" width=25% max-width=125px;/>
Expand All @@ -15,25 +15,25 @@
**NTFk** methodology allows for automatic identification of the optimal number of features (signals) present in multi-dimensional data arrays (tensors).
The number of features (tensor rank / multi-rank) along different dimensions can be estimated jointly and independently.

**NMFk** can be applied to perform various types of analyses of multi-dimensional data:
**SmartTensors** can be applied to perform various types of analyses of multi-dimensional data:
- Feature extraction (**FE**)
- Blind source separation (**BSS**)
- Detection of disruptions / anomalies
- Detection of disruptions/anomalies
- Image recognition
- Text mining
- Data classification
- Separation (deconstruction) of co-occurring (physics) processes
- Discovery of unknown dependencies and phenomena
- Development of reduced-order/surrogate models
- Identification of dependencies between model inputs and outputs
- Guiding the development of physics models representing the ML analyzed data
- Guiding the development of physics models representing the ML-analyzed data
- Blind predictions
- Optimization of data acquisition (optimal experimental design)
- Labeling of datasets for supervised ML analyses


**NTFk** provides high-performance computing capabilities to solve problems with Shared and Distributed Arrays in parallel.
The parallelization allows for utilization of multi-core / multi-processor environments.
The parallelization allows for the utilization of multi-core / multi-processor environments.
GPU and TPU accelerations are available through existing Julia packages.

**NTFk** can be employed to perform tensor decomposition using CP (Candecomp/Parafac) and Tucker methods.
Expand All @@ -44,15 +44,15 @@ GPU and TPU accelerations are available through existing Julia packages.
* Wotao Yin's [BCU](https://www.math.ucla.edu/~wotaoyin/papers/bcu/matlab.html)
* [TensorLab](https://www.tensorlab.net)

**NTFk** provides also interface to Jean Kossaifi's [Python TensorLy](http://tensorly.org/stable/index.html).
**NTFk** provides also an interface to Jean Kossaifi's [Python TensorLy](http://tensorly.org/stable/index.html).

**NTFk** can perform high-performance computing tensor decomposition analyses using TensorFlow, PyTorch and MXNET.
**NTFk** can perform high-performance computing tensor decomposition analyses using TensorFlow, PyTorch, and MXNET.

**NTFk** methodology and applications are discussed in the the papers and presentations listed below.
**NTFk** methodology and applications are discussed in the papers and presentations listed below.

Tensor network decompositions can be be performed using SmartTensors' [**NTNk**](https://github.com/SmartTensors/NTNk.jl) package.
Tensor network decompositions can be performed using SmartTensors' [**NTNk**](https://github.com/SmartTensors/NTNk.jl) package.

Matrix factorization can be be performed using SmartTensors' [**NMFk**](https://github.com/SmartTensors/NMFk.jl) package.
Matrix factorization can be performed using SmartTensors' [**NMFk**](https://github.com/SmartTensors/NMFk.jl) package.

## Awards

Expand All @@ -74,7 +74,7 @@ Pkg.add("NTFk")
```

to access the latest released version.
To utilize the latest updates (commits) use:
To utilize the latest updates (commits), use:

```julia
import Pkg
Expand Down Expand Up @@ -138,7 +138,7 @@ Some of the decomposition models can theoretically lead to unique solutions unde
When these conditions are not satisfied, additional minimization constraints can assist the factorization.
A popular approach is to add sparsity and nonnegative constraints.
Sparsity constraints on the elements of G reduce the number of features and their mixing (by having as many zero entries as possible).
Nonnegativity enforces parts-based representation of the original data which also allows the Tensor Decomposition results for <img src="https://latex.codecogs.com/svg.latex?\Large&space;G" /> and <img src="https://latex.codecogs.com/svg.latex?\Large&space;A_1,A_2,\ldots,A_n" /> to be easily interrelated [Cichocki et al, 2009](https://books.google.com/books?hl=en&lr=&id=KaxssMiWgswC&oi=fnd&pg=PR5&ots=Lta2adM6LV&sig=jNPDxjKlON1U3l46tZAYH92mvAE#v=onepage&q&f=false).
Nonnegativity enforces parts-based representation of the original data, which also allows the Tensor Decomposition results for <img src="https://latex.codecogs.com/svg.latex?\Large&space;G" /> and <img src="https://latex.codecogs.com/svg.latex?\Large&space;A_1,A_2,\ldots,A_n" /> to be easily interrelated [Cichocki et al, 2009](https://books.google.com/books?hl=en&lr=&id=KaxssMiWgswC&oi=fnd&pg=PR5&ots=Lta2adM6LV&sig=jNPDxjKlON1U3l46tZAYH92mvAE#v=onepage&q&f=false).

## Examples

Expand All @@ -153,7 +153,7 @@ tsize = (5, 10, 15)
tucker_orig = NTFk.rand_tucker(csize, tsize; factors_nonneg=true, core_nonneg=true)
```

After that, we can compose a tensor based on this Tucker decomposition:
After that, we can compose a tensor-based on this Tucker decomposition:

```julia
import TensorDecompositions
Expand All @@ -163,7 +163,7 @@ T_orig .*= 1000
```

Applying **NTFk**, we can find the unknown core size of the tensor using the tensor by itself as an input only.
To do this, we explore a series of core sizes and we identify the optimal one:
To do this, we explore a series of core sizes and identify the optimal one:

```julia
sizes = [csize, (1,3,4), (3,3,4), (2,2,4), (2,4,4), (2,3,3), (2,3,5)]
Expand All @@ -184,9 +184,9 @@ tucker_estimated, csize_estimated = NTFk.analysis(T_orig, sizes, 3; eigmethod=[f
[ Info: Estimated true core size based on the reconstruction: (2, 3, 4)
```

The final **NTFk** result is the estimated core size `(2,3,4)` which as expected matches the original unknown core size.
The final **NTFk** result is the estimated core size `(2,3,4)`, which, as expected, matches the original unknown core size.

**NTFk** also produces a Tucker deconstruction of this tensor with core size `(2,3,4)` which is stored as `tucker_estimated[ibest]`
**NTFk** also produces a Tucker deconstruction of this tensor with core size `(2,3,4)`, which is stored as `tucker_estimated[ibest]`

## Notebooks:

Expand Down Expand Up @@ -217,8 +217,8 @@ The analyzed datasets include model outputs, laboratory experimental data, and f
- Induced seismicity
- Phase separation of co-polymers
- Oil / Gas extraction from unconventional reservoirs
- Geothermal exploration and produciton
- Geologic carbon storages
- Geothermal exploration and production
- Geologic carbon storage
- Wildfires

## Videos:
Expand Down Expand Up @@ -291,7 +291,7 @@ Julia uses git for package management.

Julia uses git and curl to install the necessary packages.

It is important to set proxies if needed:
It is important to set proxies, if needed:

```bash
export ftp_proxy=http://proxyout.<your_site>:8080
Expand All @@ -312,7 +312,7 @@ export https_proxy=http://proxyout.lanl.gov:8080
export no_proxy=.lanl.gov
```

Proxies can be also set up directly in the Julia REPL as well:
Proxies can also be set up directly in the Julia REPL:

```julia
ENV["ftp_proxy"] = "http://proxyout.lanl.gov:8080"
Expand All @@ -332,7 +332,7 @@ ENV["https_proxy"] = ""
ENV["no_proxy"] = ""
```

In some situations, you may need to add in the `.gitconfig` file in your home directory:
In some situations, you may need to add the `.gitconfig` file in your home directory:

```
[url "[email protected]:"]
Expand All @@ -352,4 +352,4 @@ git config --global url."https://".insteadOf git://
git config --global url."http://".insteadOf git://
git config --global url."[email protected]:".insteadOf https://gitlab.com/
git config --global url."[email protected]:".insteadOf https://github.com/
```
```

0 comments on commit 5bd5372

Please sign in to comment.