Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision

Target

Select target project
  • a23marmo/nonnegative-factorization
1 result
Select Git revision
Show changes
Commits on Source (3)
%% Cell type:code id: tags:
``` python
# Python classics
import numpy as np
import tensorly as tl
```
%% Cell type:markdown id: tags:
# NMF
%% Cell type:code id: tags:
``` python
# Optimization
import nn_fac.nmf as nmf
```
%% Cell type:markdown id: tags:
## HALS
%% Cell type:code id: tags:
``` python
rank = 2
U_lines = 500
V_col = 250
# Normalize columnwise ? easier to recompute probably
U_0 = np.random.rand(U_lines, rank)
V_0 = np.random.rand(rank, V_col)
M = U_0@V_0 + 1e-2 * np.random.rand(U_lines, V_col)
U, V, errors, toc = nmf.nmf(M, rank, init = "random", n_iter_max = 1000, tol = 1e-8,update_rule = "hals",
sparsity_coefficients = [None, None], fixed_modes = [], normalize = [False, False],
verbose=True, return_costs = True)
```
%% Output
Normalized cost function value=0.017174855443732515
Normalized cost function value=0.010633252899347854, variation=0.006541602544384661.
Normalized cost function value=0.0017630483776207703, variation=0.008870204521727085.
Normalized cost function value=0.0009474025824071074, variation=0.0008156457952136629.
Normalized cost function value=0.000560095857992611, variation=0.0003873067244144964.
Normalized cost function value=0.0003639206341439124, variation=0.00019617522384869862.
Normalized cost function value=0.00025595245878224114, variation=0.00010796817536167126.
Normalized cost function value=0.00019150574746267361, variation=6.444671131956752e-05.
Normalized cost function value=0.00014778145969293453, variation=4.3724287769739085e-05.
Normalized cost function value=0.00011698261103658031, variation=3.0798848656354215e-05.
Normalized cost function value=9.5196870506199e-05, variation=2.1785740530381315e-05.
Normalized cost function value=7.89154108803513e-05, variation=1.6281459625847706e-05.
Normalized cost function value=6.625068122645915e-05, variation=1.2664729653892142e-05.
Normalized cost function value=5.6645214994742445e-05, variation=9.605466231716707e-06.
Normalized cost function value=4.930572713732003e-05, variation=7.339487857422414e-06.
Normalized cost function value=4.368419829604666e-05, variation=5.621528841273371e-06.
Normalized cost function value=3.931104415784803e-05, variation=4.373154138198631e-06.
Normalized cost function value=3.608366369234307e-05, variation=3.2273804655049616e-06.
Normalized cost function value=3.3675057679218706e-05, variation=2.408606013124361e-06.
Normalized cost function value=3.1869924360921305e-05, variation=1.8051333182974016e-06.
Normalized cost function value=3.0722429532975535e-05, variation=1.1474948279457703e-06.
Normalized cost function value=2.9638389082703227e-05, variation=1.0840404502723076e-06.
Normalized cost function value=2.8829043869420664e-05, variation=8.09345213282563e-07.
Normalized cost function value=2.839015649271945e-05, variation=4.3888737670121463e-07.
Normalized cost function value=2.8007264228034748e-05, variation=3.828922646847017e-07.
Normalized cost function value=2.754791758098079e-05, variation=4.5934664705395717e-07.
Normalized cost function value=2.7152520856965028e-05, variation=3.9539672401576247e-07.
Normalized cost function value=2.7004350805097415e-05, variation=1.481700518676129e-07.
Normalized cost function value=2.6671730335050556e-05, variation=3.3262047004685864e-07.
Normalized cost function value=2.6377969751720547e-05, variation=2.9376058333000944e-07.
Normalized cost function value=2.6153768310103166e-05, variation=2.2420144161738108e-07.
Normalized cost function value=2.589962862786552e-05, variation=2.5413968223764736e-07.
Normalized cost function value=2.5665908993937865e-05, variation=2.3371963392765306e-07.
Normalized cost function value=2.5518924859544003e-05, variation=1.4698413439386256e-07.
Normalized cost function value=2.531029676961048e-05, variation=2.086280899335232e-07.
Normalized cost function value=2.515199304392998e-05, variation=1.5830372568049832e-07.
Normalized cost function value=2.4970338736287788e-05, variation=1.816543076421931e-07.
Normalized cost function value=2.4801323190105305e-05, variation=1.6901554618248293e-07.
Normalized cost function value=2.4642481100106163e-05, variation=1.5884208999914203e-07.
Normalized cost function value=2.4493361695922068e-05, variation=1.4911940418409547e-07.
Normalized cost function value=2.4355170521342333e-05, variation=1.3819117457973494e-07.
Normalized cost function value=2.4268550623829628e-05, variation=8.661989751270461e-08.
Normalized cost function value=2.414246427508554e-05, variation=1.2608634874408835e-07.
Normalized cost function value=2.402550464485371e-05, variation=1.1695963023182889e-07.
Normalized cost function value=2.3915694965455362e-05, variation=1.0980967939834885e-07.
Normalized cost function value=2.3812629332877164e-05, variation=1.03065632578198e-07.
Normalized cost function value=2.374856638730896e-05, variation=6.406294556820293e-08.
Normalized cost function value=2.365478261473544e-05, variation=9.378377257352247e-08.
Normalized cost function value=2.359733823277896e-05, variation=5.744438195647768e-08.
Normalized cost function value=2.351309106522715e-05, variation=8.424716755181112e-08.
Normalized cost function value=2.3435048578310176e-05, variation=7.804248691697425e-08.
Normalized cost function value=2.3361916886039646e-05, variation=7.313169227053e-08.
Normalized cost function value=2.329340369815997e-05, variation=6.851318787967669e-08.
Normalized cost function value=2.3229234002457294e-05, variation=6.416969570267485e-08.
Normalized cost function value=2.3169147540711197e-05, variation=6.008646174609751e-08.
Normalized cost function value=2.3112898173031848e-05, variation=5.624936767934882e-08.
Normalized cost function value=2.306025325678669e-05, variation=5.264491624515846e-08.
Normalized cost function value=2.301099303819154e-05, variation=4.926021859514822e-08.
Normalized cost function value=2.2964910057994518e-05, variation=4.608298019702321e-08.
Normalized cost function value=2.2921808572450368e-05, variation=4.3101485544149896e-08.
Normalized cost function value=2.288150399055786e-05, variation=4.0304581892506604e-08.
Normalized cost function value=2.286630016807483e-05, variation=1.5203822483029827e-08.
Normalized cost function value=2.28289664416078e-05, variation=3.7333726467030456e-08.
Normalized cost function value=2.2794752962393017e-05, variation=3.421347921478459e-08.
Normalized cost function value=2.2762965744802518e-05, variation=3.1787217590498813e-08.
Normalized cost function value=2.2733447380592476e-05, variation=2.9518364210041735e-08.
Normalized cost function value=2.2706038398199756e-05, variation=2.740898239271975e-08.
Normalized cost function value=2.2680589911525227e-05, variation=2.5448486674529308e-08.
Normalized cost function value=2.265696315756266e-05, variation=2.3626753962568275e-08.
Normalized cost function value=2.263502885179059e-05, variation=2.1934305772067128e-08.
Normalized cost function value=2.261466657948776e-05, variation=2.0362272302830572e-08.
Normalized cost function value=2.2595764221881784e-05, variation=1.89023576059766e-08.
Normalized cost function value=2.2578217415616333e-05, variation=1.7546806265451658e-08.
Normalized cost function value=2.2561929044030186e-05, variation=1.6288371586146392e-08.
Normalized cost function value=2.254680875875805e-05, variation=1.5120285272135454e-08.
Normalized cost function value=2.2532772530187526e-05, variation=1.4036228570524879e-08.
Normalized cost function value=2.25197422253364e-05, variation=1.303030485112533e-08.
Normalized cost function value=2.250764521175005e-05, variation=1.2097013586352125e-08.
Normalized cost function value=2.2496413986059337e-05, variation=1.1231225690711401e-08.
Normalized cost function value=2.248598582587947e-05, variation=1.0428160179868734e-08.
Normalized cost function value=2.2476302463778652e-05, variation=9.68336210081607e-09.
Converged in 80 iterations.
%% Cell type:code id: tags:
``` python
errors[-1], len(errors)
```
%% Output
(2.2476302463778652e-05, 81)
%% Cell type:markdown id: tags:
## MU with Beta-divergence
### Beta = 2 (Frobenius norm)
%% Cell type:code id: tags:
``` python
rank = 2
U_lines = 500
V_col = 250
U_0 = np.random.rand(U_lines, rank)
V_0 = np.random.rand(rank, V_col)
M = U_0@V_0 + 1e-2 * np.random.rand(U_lines, V_col)
U, V, errors, toc = nmf.nmf(M, rank, init = "random", n_iter_max = 1000, tol = 1e-8,update_rule = "mu",beta = 2,
sparsity_coefficients = [None, None], fixed_modes = [], normalize = [False, False],
verbose=True, return_costs = True)
```
%% Output
Normalized cost function value=0.029014219355208874
Normalized cost function value=0.024384300920136992, variation=0.0046299184350718815.
Normalized cost function value=0.021263158306064612, variation=0.00312114261407238.
Normalized cost function value=0.019094303225586546, variation=0.002168855080478066.
Normalized cost function value=0.017551743196026693, variation=0.001542560029559853.
Normalized cost function value=0.016430123665612507, variation=0.0011216195304141856.
Normalized cost function value=0.015597415453818831, variation=0.0008327082117936761.
Normalized cost function value=0.014967010399912845, variation=0.0006304050539059861.
Normalized cost function value=0.014480896074129706, variation=0.00048611432578313934.
Normalized cost function value=0.014099384657588605, variation=0.00038151141654110127.
Normalized cost function value=0.013794739769019439, variation=0.0003046448885691659.
Normalized cost function value=0.013547145984049179, variation=0.00024759378497025974.
Normalized cost function value=0.013342105920003289, variation=0.0002050400640458902.
Normalized cost function value=0.013168719955367864, variation=0.00017338596463542522.
Normalized cost function value=0.013018518809791203, variation=0.00015020114557666095.
Normalized cost function value=0.012884645612025217, variation=0.0001338731977659855.
Normalized cost function value=0.012761259437818253, variation=0.00012338617420696446.
Normalized cost function value=0.012643078109660739, variation=0.0001181813281575135.
Normalized cost function value=0.01252500678536803, variation=0.00011807132429270985.
Normalized cost function value=0.012401818033033201, variation=0.00012318875233482789.
Normalized cost function value=0.012267863563257243, variation=0.00013395446977595808.
Normalized cost function value=0.012116811118403377, variation=0.00015105244485386603.
Normalized cost function value=0.011941415159143568, variation=0.0001753959592598088.
Normalized cost function value=0.01173334950588352, variation=0.00020806565326004882.
Normalized cost function value=0.011483155703656673, variation=0.0002501938022268467.
Normalized cost function value=0.01118039196395632, variation=0.00030276373970035235.
Normalized cost function value=0.010814098199944598, variation=0.0003662937640117221.
Normalized cost function value=0.010373707485035893, variation=0.0004403907149087057.
Normalized cost function value=0.009850504774899757, variation=0.000523202710136136.
Normalized cost function value=0.009239621697333401, variation=0.0006108830775663557.
Normalized cost function value=0.008542333585905908, variation=0.000697288111427493.
Normalized cost function value=0.00776811707166219, variation=0.0007742165142437182.
Normalized cost function value=0.006935661436669582, variation=0.0008324556349926081.
Normalized cost function value=0.006072030451870644, variation=0.0008636309847989375.
Normalized cost function value=0.005209636350221521, variation=0.000862394101649123.
Normalized cost function value=0.004381545583535639, variation=0.0008280907666858824.
Normalized cost function value=0.0036164510597784375, variation=0.0007650945237572013.
Normalized cost function value=0.002934864422466546, variation=0.0006815866373118917.
Normalized cost function value=0.0023475154038247255, variation=0.0005873490186418203.
Normalized cost function value=0.0018559756194179006, variation=0.0004915397844068249.
Normalized cost function value=0.0014547642512034542, variation=0.0004012113682144464.
Normalized cost function value=0.0011339733974128645, variation=0.0003207908537905897.
Normalized cost function value=0.0008816708554345968, variation=0.00025230254197826764.
Normalized cost function value=0.000685707103204622, variation=0.00019596375222997488.
Normalized cost function value=0.0005348566444651756, variation=0.0001508504587394464.
Normalized cost function value=0.00041939491886591073, variation=0.00011546172559926483.
Normalized cost function value=0.00033127254434406984, variation=8.812237452184089e-05.
Normalized cost function value=0.00026404321550282467, variation=6.722932884124517e-05.
Normalized cost function value=0.00021266710600594002, variation=5.1376109496884654e-05.
Normalized cost function value=0.00017327145815997154, variation=3.939564784596848e-05.
Normalized cost function value=0.00014291587398262992, variation=3.0355584177341622e-05.
Normalized cost function value=0.00011938540612201777, variation=2.353046786061215e-05.
Normalized cost function value=0.00010101930049827697, variation=1.83661056237408e-05.
Normalized cost function value=8.65749070215705e-05, variation=1.4444393476706471e-05.
Normalized cost function value=7.512245396594356e-05, variation=1.1452453055626935e-05.
Normalized cost function value=6.596518086069825e-05, variation=9.157273105245308e-06.
Normalized cost function value=5.857946609538277e-05, variation=7.385714765315482e-06.
Normalized cost function value=5.2570300126813104e-05, variation=6.009165968569667e-06.
Normalized cost function value=4.7638326306868645e-05, variation=4.93197381994446e-06.
Normalized cost function value=4.3555498557894274e-05, variation=4.08282774897437e-06.
Normalized cost function value=4.0147109568841596e-05, variation=3.408388989052678e-06.
Normalized cost function value=3.727850812342269e-05, variation=2.868601445418907e-06.
Normalized cost function value=3.4845260866217614e-05, variation=2.4332472572050756e-06.
Normalized cost function value=3.2765843471021234e-05, variation=2.07941739519638e-06.
Normalized cost function value=3.097619119747337e-05, variation=1.7896522735478634e-06.
Normalized cost function value=2.9425619109976353e-05, variation=1.5505720874970179e-06.
Normalized cost function value=2.807375406055065e-05, variation=1.3518650494257013e-06.
Normalized cost function value=2.688821659255197e-05, variation=1.185537467998682e-06.
Normalized cost function value=2.5842860808982245e-05, variation=1.045355783569724e-06.
Normalized cost function value=2.491643109893971e-05, variation=9.264297100425369e-07.
Normalized cost function value=2.4091531658347708e-05, variation=8.248994405920007e-07.
Normalized cost function value=2.3353831781069458e-05, variation=7.376998772782495e-07.
Normalized cost function value=2.269144968796489e-05, variation=6.62382093104567e-07.
Normalized cost function value=2.2094472193490664e-05, variation=5.969774944742278e-07.
Normalized cost function value=2.1554578217139883e-05, variation=5.398939763507808e-07.
Normalized cost function value=2.1064742066293528e-05, variation=4.898361508463545e-07.
Normalized cost function value=2.0618998296988598e-05, variation=4.457437693049307e-07.
Normalized cost function value=2.0212254342333353e-05, variation=4.067439546552442e-07.
Normalized cost function value=1.984014037903532e-05, variation=3.7211396329803293e-07.
Normalized cost function value=1.9498888368179182e-05, variation=3.4125201085613834e-07.
Normalized cost function value=1.918523406703088e-05, variation=3.1365430114830127e-07.
Normalized cost function value=1.8896337218561086e-05, variation=2.888968484697953e-07.
Normalized cost function value=1.8629716198086992e-05, variation=2.666210204740934e-07.
Normalized cost function value=1.8383194215961862e-05, variation=2.4652198212513006e-07.
Normalized cost function value=1.8154854803961456e-05, variation=2.2833941200040597e-07.
Normalized cost function value=1.7943004797246534e-05, variation=2.118500067149218e-07.
Normalized cost function value=1.774614339839585e-05, variation=1.968613988506859e-07.
Normalized cost function value=1.7562936200911813e-05, variation=1.8320719748403524e-07.
Normalized cost function value=1.739219327652239e-05, variation=1.7074292438942358e-07.
Normalized cost function value=1.723285060834182e-05, variation=1.5934266818057015e-07.
Normalized cost function value=1.708395429173849e-05, variation=1.4889631660332817e-07.
Normalized cost function value=1.6944647035178832e-05, variation=1.3930725655965896e-07.
Normalized cost function value=1.6814156580945708e-05, variation=1.304904542331248e-07.
Normalized cost function value=1.669178573537975e-05, variation=1.2237084556595597e-07.
Normalized cost function value=1.6576903754195807e-05, variation=1.1488198118394434e-07.
Normalized cost function value=1.646893887324e-05, variation=1.0796488095580822e-07.
Normalized cost function value=1.6367371811339188e-05, variation=1.0156706190081092e-07.
Normalized cost function value=1.6271730101201522e-05, variation=9.564171013766603e-08.
Normalized cost function value=1.618158312823007e-05, variation=9.014697297145269e-08.
Normalized cost function value=1.6096537776675577e-05, variation=8.504535155449223e-08.
Normalized cost function value=1.601623459852838e-05, variation=8.030317814719843e-08.
Normalized cost function value=1.5940344433802836e-05, variation=7.589016472554289e-08.
Normalized cost function value=1.5868565421776902e-05, variation=7.177901202593402e-08.
Normalized cost function value=1.5800620351818994e-05, variation=6.794506995790758e-08.
Normalized cost function value=1.573625431002099e-05, variation=6.436604179800554e-08.
Normalized cost function value=1.567523258416199e-05, variation=6.102172585899799e-08.
Normalized cost function value=1.5617338794876532e-05, variation=5.789378928545871e-08.
Normalized cost function value=1.5562373225342797e-05, variation=5.4965569533735196e-08.
Normalized cost function value=1.5510151325629472e-05, variation=5.2221899713324595e-08.
Normalized cost function value=1.546050237103257e-05, variation=4.964895459690056e-08.
Normalized cost function value=1.5413268256474905e-05, variation=4.723411455766704e-08.
Normalized cost function value=1.5368302411371145e-05, variation=4.496584510375992e-08.
Normalized cost function value=1.5325468821361432e-05, variation=4.283359000971284e-08.
Normalized cost function value=1.5284641145025e-05, variation=4.0827676336430173e-08.
Normalized cost function value=1.5245701915178433e-05, variation=3.8939229846568415e-08.
Normalized cost function value=1.5208541815592381e-05, variation=3.7160099586052393e-08.
Normalized cost function value=1.517305902512464e-05, variation=3.548279046774044e-08.
Normalized cost function value=1.5139158622159441e-05, variation=3.390040296519932e-08.
Normalized cost function value=1.5106752043116269e-05, variation=3.240657904317257e-08.
Normalized cost function value=1.5075756589489917e-05, variation=3.099545362635177e-08.
Normalized cost function value=1.5046094978519163e-05, variation=2.966161097075416e-08.
Normalized cost function value=1.5017694933141638e-05, variation=2.8400045377524776e-08.
Normalized cost function value=1.4990488807353752e-05, variation=2.7206125787885923e-08.
Normalized cost function value=1.496441324354302e-05, variation=2.6075563810731687e-08.
Normalized cost function value=1.4939408858720548e-05, variation=2.500438482247195e-08.
Normalized cost function value=1.4915419956903458e-05, variation=2.3988901817090732e-08.
Normalized cost function value=1.4892394265192311e-05, variation=2.3025691711146576e-08.
Normalized cost function value=1.4870282691363822e-05, variation=2.2111573828488556e-08.
Normalized cost function value=1.4849039100980259e-05, variation=2.124359038356346e-08.
Normalized cost function value=1.4828620112270252e-05, variation=2.0418988710007265e-08.
Normalized cost function value=1.4808984907170624e-05, variation=1.9635205099627492e-08.
Normalized cost function value=1.4790095057106823e-05, variation=1.888985006380124e-08.
Normalized cost function value=1.477191436222032e-05, variation=1.818069488650357e-08.
Normalized cost function value=1.4754408702863483e-05, variation=1.750565935683606e-08.
Normalized cost function value=1.473754590233017e-05, variation=1.6862800533312642e-08.
Normalized cost function value=1.4721295599848229e-05, variation=1.6250302481941935e-08.
Normalized cost function value=1.4705629132979683e-05, variation=1.5666466868545704e-08.
Normalized cost function value=1.46905194286525e-05, variation=1.5109704327183118e-08.
Normalized cost function value=1.467594090210048e-05, variation=1.4578526552020757e-08.
Normalized cost function value=1.4661869363071059e-05, variation=1.4071539029420621e-08.
Normalized cost function value=1.4648281928728346e-05, variation=1.3587434342712191e-08.
Normalized cost function value=1.463515694268805e-05, variation=1.3124986040295616e-08.
Normalized cost function value=1.4622473899728572e-05, variation=1.2683042959479114e-08.
Normalized cost function value=1.4610213375712892e-05, variation=1.2260524015679665e-08.
Normalized cost function value=1.4598356962322256e-05, variation=1.1856413390635515e-08.
Normalized cost function value=1.4586887206246018e-05, variation=1.146975607623868e-08.
Normalized cost function value=1.4575787552456267e-05, variation=1.1099653789750755e-08.
Normalized cost function value=1.4565042291291985e-05, variation=1.0745261164282386e-08.
Normalized cost function value=1.4554636509051758e-05, variation=1.0405782240226959e-08.
Normalized cost function value=1.4544556041829986e-05, variation=1.0080467221771538e-08.
Normalized cost function value=1.453478743237028e-05, variation=9.768609459706218e-09.
Converged in 150 iterations.
%% Cell type:code id: tags:
``` python
errors[-1], len(errors)
```
%% Output
(1.453478743237028e-05, 151)
%% Cell type:markdown id: tags:
### Beta = 1 (Kullback-Leibler Divergence)
%% Cell type:code id: tags:
``` python
```
%% Cell type:code id: tags:
``` python
rank = 2
U_lines = 500
V_col = 250
U_0 = np.random.rand(U_lines, rank)
V_0 = np.random.rand(rank, V_col)
M = U_0@V_0 + 1e-2 * np.random.rand(U_lines, V_col)
U, V, errors, toc = nmf.nmf(M, rank, init = "random", n_iter_max = 1000, tol = 1e-8,update_rule = "mu",beta = 1,
sparsity_coefficients = [None, None], fixed_modes = [], normalize = [False, False],
verbose=True, return_costs = True)
```
%% Output
(500, 250)
(250, 500)
Normalized cost function value=2050.7570419346625
(500, 250)
(250, 500)
Normalized cost function value=1632.9051452196315, variation=417.851896715031.
(500, 250)
(250, 500)
Normalized cost function value=1404.0117096948297, variation=228.89343552480182.
(500, 250)
(250, 500)
Normalized cost function value=1266.5052176631855, variation=137.50649203164426.
(500, 250)
(250, 500)
Normalized cost function value=1178.223196153716, variation=88.28202150946959.
(500, 250)
(250, 500)
Normalized cost function value=1118.5169818964832, variation=59.70621425723266.
(500, 250)
(250, 500)
Normalized cost function value=1076.3913720625499, variation=42.12560983393337.
(500, 250)
(250, 500)
Normalized cost function value=1045.5868726574656, variation=30.804499405084243.
(500, 250)
(250, 500)
Normalized cost function value=1022.3346629606391, variation=23.252209696826526.
(500, 250)
(250, 500)
Normalized cost function value=1004.2504031990444, variation=18.084259761594694.
(500, 250)
(250, 500)
Normalized cost function value=989.7538255413219, variation=14.496577657722469.
(500, 250)
(250, 500)
Normalized cost function value=977.7474425431151, variation=12.006382998206846.
(500, 250)
(250, 500)
Normalized cost function value=967.4300266203857, variation=10.317415922729424.
(500, 250)
(250, 500)
Normalized cost function value=958.1834130771238, variation=9.246613543261901.
(500, 250)
(250, 500)
Normalized cost function value=949.5007506055572, variation=8.682662471566573.
(500, 250)
(250, 500)
Normalized cost function value=940.9390072399835, variation=8.561743365573648.
(500, 250)
(250, 500)
Normalized cost function value=932.0862249718398, variation=8.852782268143756.
(500, 250)
(250, 500)
Normalized cost function value=922.538279370145, variation=9.547945601694778.
(500, 250)
(250, 500)
Normalized cost function value=911.8824484935036, variation=10.655830876641403.
(500, 250)
(250, 500)
Normalized cost function value=899.6867763399601, variation=12.195672153543455.
(500, 250)
(250, 500)
Normalized cost function value=885.4954533318839, variation=14.19132300807621.
(500, 250)
(250, 500)
Normalized cost function value=868.8314117087851, variation=16.664041623098797.
(500, 250)
(250, 500)
Normalized cost function value=849.208054625549, variation=19.6233570832361.
(500, 250)
(250, 500)
Normalized cost function value=826.1523508626685, variation=23.055703762880512.
(500, 250)
(250, 500)
Normalized cost function value=799.2411228438239, variation=26.911228018844668.
(500, 250)
(250, 500)
Normalized cost function value=768.1508157997745, variation=31.090307044049382.
(500, 250)
(250, 500)
Normalized cost function value=732.7179894398055, variation=35.432826359969.
(500, 250)
(250, 500)
Normalized cost function value=693.0032175304971, variation=39.71477190930841.
(500, 250)
(250, 500)
Normalized cost function value=649.3458323133025, variation=43.65738521719459.
(500, 250)
(250, 500)
Normalized cost function value=602.3929858375348, variation=46.95284647576773.
(500, 250)
(250, 500)
Normalized cost function value=553.0866876343208, variation=49.30629820321394.
(500, 250)
(250, 500)
Normalized cost function value=502.5992371918722, variation=50.48745044244862.
(500, 250)
(250, 500)
Normalized cost function value=452.22059653685784, variation=50.37864065501435.
(500, 250)
(250, 500)
Normalized cost function value=403.21645790176467, variation=49.00413863509317.
(500, 250)
(250, 500)
Normalized cost function value=356.6861455885837, variation=46.53031231318096.
(500, 250)
(250, 500)
Normalized cost function value=313.45017650791664, variation=43.235969080667076.
(500, 250)
(250, 500)
Normalized cost function value=273.9894174773792, variation=39.46075903053742.
(500, 250)
(250, 500)
Normalized cost function value=238.44657590981598, variation=35.542841567563244.
(500, 250)
(250, 500)
Normalized cost function value=206.68910646202218, variation=31.757469447793795.
(500, 250)
(250, 500)
Normalized cost function value=178.4182715983954, variation=28.27083486362679.
(500, 250)
(250, 500)
Normalized cost function value=153.29130107368863, variation=25.126970524706763.
(500, 250)
(250, 500)
Normalized cost function value=131.0126496468486, variation=22.278651426840042.
(500, 250)
(250, 500)
Normalized cost function value=111.3635681579605, variation=19.649081488888086.
(500, 250)
(250, 500)
Normalized cost function value=94.17628365390777, variation=17.187284504052727.
(500, 250)
(250, 500)
Normalized cost function value=79.28979050672163, variation=14.886493147186144.
(500, 250)
(250, 500)
Normalized cost function value=66.52175029919087, variation=12.76804020753076.
(500, 250)
(250, 500)
Normalized cost function value=55.66579899456885, variation=10.855951304622018.
(500, 250)
(250, 500)
Normalized cost function value=46.50400993594915, variation=9.161789058619703.
(500, 250)
(250, 500)
Normalized cost function value=38.821476220238466, variation=7.682533715710683.
(500, 250)
(250, 500)
Normalized cost function value=32.41631721191154, variation=6.405159008326926.
(500, 250)
(250, 500)
Normalized cost function value=27.104432680635544, variation=5.311884531275997.
(500, 250)
(250, 500)
Normalized cost function value=22.7208283343908, variation=4.383604346244745.
(500, 250)
(250, 500)
Normalized cost function value=19.119339736929415, variation=3.6014885974613833.
(500, 250)
(250, 500)
Normalized cost function value=16.171788509384584, variation=2.9475512275448317.
(500, 250)
(250, 500)
Normalized cost function value=13.766946183787525, variation=2.404842325597059.
(500, 250)
(250, 500)
Normalized cost function value=11.809366601244328, variation=1.9575795825431968.
(500, 250)
(250, 500)
Normalized cost function value=10.218074522212499, variation=1.5912920790318292.
(500, 250)
(250, 500)
Normalized cost function value=8.925124172504999, variation=1.2929503497074997.
(500, 250)
(250, 500)
Normalized cost function value=7.874079639844604, variation=1.051044532660395.
(500, 250)
(250, 500)
Normalized cost function value=7.018487320880937, variation=0.8555923189636667.
(500, 250)
(250, 500)
Normalized cost function value=6.320407449459184, variation=0.6980798714217533.
(500, 250)
(250, 500)
Normalized cost function value=5.749055883699201, variation=0.5713515657599828.
(500, 250)
(250, 500)
Normalized cost function value=5.279587612296734, variation=0.4694682714024676.
(500, 250)
(250, 500)
Normalized cost function value=4.89203547100022, variation=0.3875521412965135.
(500, 250)
(250, 500)
Normalized cost function value=4.570403808826039, variation=0.32163166217418127.
(500, 250)
(250, 500)
Normalized cost function value=4.301907707419928, variation=0.2684961014061109.
(500, 250)
(250, 500)
Normalized cost function value=4.076343189876248, variation=0.22556451754368023.
(500, 250)
(250, 500)
Normalized cost function value=3.8855716616340286, variation=0.1907715282422191.
(500, 250)
(250, 500)
Normalized cost function value=3.723101634420493, variation=0.16247002721353576.
(500, 250)
(250, 500)
Normalized cost function value=3.58375180308834, variation=0.13934983133215262.
(500, 250)
(250, 500)
Normalized cost function value=3.4633811961698795, variation=0.12037060691846069.
(500, 250)
(250, 500)
Normalized cost function value=3.3586740153928907, variation=0.10470718077698882.
(500, 250)
(250, 500)
Normalized cost function value=3.266968676311865, variation=0.09170533908102563.
(500, 250)
(250, 500)
Normalized cost function value=3.1861223261139293, variation=0.08084635019793573.
(500, 250)
(250, 500)
Normalized cost function value=3.114403680458583, variation=0.07171864565534625.
(500, 250)
(250, 500)
Normalized cost function value=3.0504083679245015, variation=0.06399531253408153.
(500, 250)
(250, 500)
Normalized cost function value=2.992992103001721, variation=0.05741626492278051.
(500, 250)
(250, 500)
Normalized cost function value=2.9412179448691336, variation=0.051774158132587456.
(500, 250)
(250, 500)
Normalized cost function value=2.8943146635892334, variation=0.04690328127990018.
(500, 250)
(250, 500)
Normalized cost function value=2.851643853287929, variation=0.042670810301304485.
(500, 250)
(250, 500)
Normalized cost function value=2.8126739276012116, variation=0.03896992568671731.
(500, 250)
(250, 500)
Normalized cost function value=2.7769595279293595, variation=0.03571439967185208.
(500, 250)
(250, 500)
Normalized cost function value=2.74412518868934, variation=0.03283433924001944.
(500, 250)
(250, 500)
Normalized cost function value=2.7138523516969815, variation=0.03027283699235861.
(500, 250)
(250, 500)
Normalized cost function value=2.6858690172226436, variation=0.027983334474337873.
(500, 250)
(250, 500)
Normalized cost function value=2.659941472906141, variation=0.025927544316502793.
(500, 250)
(250, 500)
Normalized cost function value=2.635867662307284, variation=0.024073810598856937.
(500, 250)
(250, 500)
Normalized cost function value=2.6134718493824085, variation=0.022395812924875358.
(500, 250)
(250, 500)
Normalized cost function value=2.5926003091887835, variation=0.020871540193625027.
(500, 250)
(250, 500)
Normalized cost function value=2.573117833036773, variation=0.019482476152010264.
(500, 250)
(250, 500)
Normalized cost function value=2.5549048816271687, variation=0.01821295140960455.
(500, 250)
(250, 500)
Normalized cost function value=2.5378552551613196, variation=0.017049626465849066.
(500, 250)
(250, 500)
Normalized cost function value=2.521874177161089, variation=0.015981078000230742.
(500, 250)
(250, 500)
Normalized cost function value=2.50687671045952, variation=0.014997466701568651.
(500, 250)
(250, 500)
Normalized cost function value=2.4927864408504474, variation=0.01409026960907278.
(500, 250)
(250, 500)
Normalized cost function value=2.4795343772405603, variation=0.013252063609887177.
(500, 250)
(250, 500)
Normalized cost function value=2.467058027635961, variation=0.012476349604599424.
(500, 250)
---------------------------------------------------------------------------
KeyboardInterrupt Traceback (most recent call last)
<ipython-input-3-5ad0142627b2> in <module>
8 U, V, errors, toc = nmf.nmf(M, rank, init = "random", n_iter_max = 1000, tol = 1e-8,update_rule = "mu",beta = 1,
9 sparsity_coefficients = [None, None], fixed_modes = [], normalize = [False, False],
---> 10 verbose=True, return_costs = True)
~\Desktop\Projects\Master's internship\Decomposition toolbox\nn_fac\nmf.py in nmf(data, rank, init, U_0, V_0, n_iter_max, tol, update_rule, beta, sparsity_coefficients, fixed_modes, normalize, verbose, return_costs)
184 update_rule = update_rule, beta = beta,
185 sparsity_coefficients = sparsity_coefficients, fixed_modes = fixed_modes, normalize = normalize,
--> 186 verbose=verbose, return_costs=return_costs)
187
188 # Author : Jeremy Cohen, modified by Axel Marmoret
~\Desktop\Projects\Master's internship\Decomposition toolbox\nn_fac\nmf.py in compute_nmf(data, rank, U_in, V_in, n_iter_max, tol, update_rule, beta, sparsity_coefficients, fixed_modes, normalize, verbose, return_costs)
288 # One pass of least squares on each updated mode
289 U, V, cost = one_nmf_step(data, rank, U, V, norm_data, update_rule, beta,
--> 290 sparsity_coefficients, fixed_modes, normalize)
291
292 toc.append(time.time() - tic)
~\Desktop\Projects\Master's internship\Decomposition toolbox\nn_fac\nmf.py in one_nmf_step(data, rank, U_in, V_in, norm_data, update_rule, beta, sparsity_coefficients, fixed_modes, normalize)
405
406 elif update_rule == "mu":
--> 407 U = mu.mu_betadivmin(U, V, data, beta)
408
409 if 1 not in fixed_modes:
~\Desktop\Projects\Master's internship\Decomposition toolbox\nn_fac\mu.py in mu_betadivmin(U, V, M, beta)
71
72 if beta == 1:
---> 73 K_inverted = K**(-1)
74 line = np.sum(V.T,axis=0)
75 denom = np.array([line for i in range(np.shape(K)[0])])
KeyboardInterrupt:
%% Cell type:code id: tags:
``` python
```
%% Cell type:code id: tags:
``` python
errors[-1], len(errors)
```
%% Output
(5.6530556473010726e-05, 133)
%% Cell type:markdown id: tags:
### Beta = 0 (Itakura-Saito Divergence)
%% Cell type:code id: tags:
``` python
rank = 2
U_lines = 500
V_col = 250
U_0 = np.random.rand(U_lines, rank)
V_0 = np.random.rand(rank, V_col)
M = U_0@V_0 + 1e-2 * np.random.rand(U_lines, V_col)
U, V, errors, toc = nmf.nmf(M, rank, init = "random", n_iter_max = 1000, tol = 1e-8,update_rule = "mu",beta = 0,
sparsity_coefficients = [None, None], fixed_modes = [], normalize = [False, False],
verbose=True, return_costs = True)
```
%% Output
Normalized cost function value=0.5918066516750823
Normalized cost function value=0.2462625291209958, variation=0.3455441225540865.
Normalized cost function value=0.15874727517331486, variation=0.08751525394768095.
Normalized cost function value=0.13214057457504233, variation=0.026606700598272526.
Normalized cost function value=0.12166228608569024, variation=0.010478288489352089.
Normalized cost function value=0.11606062059319645, variation=0.0056016654924937875.
Normalized cost function value=0.11233506471718407, variation=0.003725555876012379.
Normalized cost function value=0.10957030291628253, variation=0.002764761800901544.
Normalized cost function value=0.10741401318463671, variation=0.002156289731645819.
Normalized cost function value=0.10568876449775742, variation=0.0017252486868792882.
Normalized cost function value=0.10428538569574686, variation=0.0014033788020105659.
Normalized cost function value=0.10312901385812774, variation=0.0011563718376191162.
Normalized cost function value=0.10216553280330137, variation=0.0009634810548263678.
Normalized cost function value=0.10135470042972851, variation=0.0008108323735728645.
Normalized cost function value=0.10066602585370225, variation=0.0006886745760262547.
Normalized cost function value=0.10007605811868218, variation=0.0005899677350200694.
Normalized cost function value=0.0995665175746499, variation=0.0005095405440322803.
Normalized cost function value=0.09912297285158717, variation=0.00044354472306273873.
Normalized cost function value=0.0987338860339185, variation=0.0003890868176686657.
Normalized cost function value=0.09838991218059602, variation=0.00034397385332247954.
Normalized cost function value=0.09808337722810984, variation=0.00030653495248618434.
Normalized cost function value=0.09780788234374832, variation=0.0002754948843615157.
Normalized cost function value=0.09755799853698209, variation=0.00024988380676622957.
Normalized cost function value=0.09732902584493708, variation=0.00022897269204501247.
Normalized cost function value=0.09711679850975681, variation=0.00021222733518026782.
Normalized cost function value=0.09691752240273302, variation=0.00019927610702379084.
Normalized cost function value=0.09672763425483207, variation=0.00018988814790095454.
Normalized cost function value=0.09654367450447872, variation=0.00018395975035334633.
Normalized cost function value=0.09636216708987655, variation=0.00018150741460216946.
Normalized cost function value=0.09617950051191881, variation=0.00018266657795773522.
Normalized cost function value=0.09599180512872815, variation=0.00018769538319066137.
Normalized cost function value=0.09579482203093616, variation=0.00019698309779199452.
Normalized cost function value=0.095583759087647, variation=0.0002110629432891531.
Normalized cost function value=0.09535312994585887, variation=0.00023062914178813287.
Normalized cost function value=0.0950965720260815, variation=0.00025655791977736986.
Normalized cost function value=0.09480664003280741, variation=0.00028993199327409513.
Normalized cost function value=0.09447457239346986, variation=0.00033206763933754657.
Normalized cost function value=0.09409002963476086, variation=0.000384542758709.
Normalized cost function value=0.09364080638583729, variation=0.0004492232489235748.
Normalized cost function value=0.09311252297648749, variation=0.0005282834093497946.
Normalized cost function value=0.09248830912513804, variation=0.0006242138513494477.
Normalized cost function value=0.09174850175255893, variation=0.0007398073725791154.
Normalized cost function value=0.0908703923031318, variation=0.0008781094494271224.
Normalized cost function value=0.08982807670826218, variation=0.0010423155948696278.
Normalized cost function value=0.08859248328455609, variation=0.0012355934237060912.
Normalized cost function value=0.08713167912056344, variation=0.001460804163992649.
Normalized cost function value=0.08541158023737351, variation=0.0017200988831899272.
Normalized cost function value=0.08339720777012986, variation=0.002014372467243647.
Normalized cost function value=0.08105462962876205, variation=0.002342578141367818.
Normalized cost function value=0.07835368775438002, variation=0.0027009418743820235.
Normalized cost function value=0.07527151609308208, variation=0.0030821716612979416.
Normalized cost function value=0.07179668937520206, variation=0.0034748267178800196.
Normalized cost function value=0.06793361050260847, variation=0.0038630788725935866.
Normalized cost function value=0.06370648030335045, variation=0.004227130199258022.
Normalized cost function value=0.05916197612079524, variation=0.004544504182555212.
Normalized cost function value=0.05436970800978045, variation=0.00479226811101479.
Normalized cost function value=0.04941973114722172, variation=0.004949976862558728.
Normalized cost function value=0.04441690865929522, variation=0.005002822487926502.
Normalized cost function value=0.03947265049869649, variation=0.004944258160598729.
Normalized cost function value=0.0346952787136648, variation=0.004777371785031695.
Normalized cost function value=0.030180709896341435, variation=0.004514568817323362.
Normalized cost function value=0.026005103859245433, variation=0.004175606037096002.
Normalized cost function value=0.022220600599976183, variation=0.00378450325926925.
Normalized cost function value=0.018854462572969365, variation=0.003366138027006818.
Normalized cost function value=0.01591116690494942, variation=0.002943295668019947.
Normalized cost function value=0.013376502719938102, variation=0.002534664185011316.
Normalized cost function value=0.011222601970206626, variation=0.002153900749731477.
Normalized cost function value=0.009412987196614648, variation=0.001809614773591978.
Normalized cost function value=0.007907009387474838, variation=0.0015059778091398093.
Normalized cost function value=0.006663349971221501, variation=0.0012436594162533376.
Normalized cost function value=0.005642505370434943, variation=0.0010208446007865576.
Normalized cost function value=0.0048083379031696825, variation=0.0008341674672652606.
Normalized cost function value=0.004128865887039069, variation=0.0006794720161306137.
Normalized cost function value=0.003576493846998422, variation=0.0005523720400406468.
Normalized cost function value=0.0031278709890477712, variation=0.0004486228579506507.
Normalized cost function value=0.0027635321133096078, variation=0.0003643388757381635.
Normalized cost function value=0.0024674349212748417, variation=0.00029609719203476607.
Normalized cost function value=0.0022264704646186282, variation=0.00024096445665621347.
Normalized cost function value=0.0020299935225796544, variation=0.00019647694203897385.
Normalized cost function value=0.0018693978531211979, variation=0.00016059566945845647.
Normalized cost function value=0.0017377466262695415, variation=0.00013165122685165637.
Normalized cost function value=0.001629459334751758, variation=0.00010828729151778353.
Normalized cost function value=0.0015400514746211583, variation=8.940786013059967e-05.
Normalized cost function value=0.0014659209391542501, variation=7.413053546690817e-05.
Normalized cost function value=0.0014041743490114168, variation=6.174659014283337e-05.
Normalized cost function value=0.001352486737310494, variation=5.1687611700922684e-05.
Normalized cost function value=0.001308988655735342, variation=4.349808157515212e-05.
Normalized cost function value=0.0012721755848275095, variation=3.6813070907832464e-05.
Normalized cost function value=0.0012408353596993166, variation=3.1340225128192924e-05.
Normalized cost function value=0.0012139900821828424, variation=2.684527751647416e-05.
Normalized cost function value=0.0011908496499246715, variation=2.3140432258170933e-05.
Normalized cost function value=0.0011707745865025012, variation=2.0075063422170334e-05.
Normalized cost function value=0.0011532463117335566, variation=1.752827476894452e-05.
Normalized cost function value=0.0011378433607629002, variation=1.540295097065647e-05.
Normalized cost function value=0.0011242223581785804, variation=1.3621002584319813e-05.
Normalized cost function value=0.0011121027922842367, variation=1.2119565894343643e-05.
Normalized cost function value=0.0011012548260111203, variation=1.0847966273116452e-05.
Normalized cost function value=0.0010914895341151208, variation=9.765291895999463e-06.
Normalized cost function value=0.0010826510788749502, variation=8.838455240170592e-06.
Normalized cost function value=0.0010746104345867864, variation=8.040644288163793e-06.
Normalized cost function value=0.0010672603496183401, variation=7.350084968446276e-06.
Normalized cost function value=0.0010605112975412302, variation=6.74905207710989e-06.
Normalized cost function value=0.0010542882190251511, variation=6.223078516079134e-06.
Normalized cost function value=0.0010485278962518942, variation=5.76032277325696e-06.
Normalized cost function value=0.0010431768335996809, variation=5.351062652213289e-06.
Normalized cost function value=0.0010381895438718112, variation=4.987289727869651e-06.
Normalized cost function value=0.0010335271596946059, variation=4.662384177205351e-06.
Normalized cost function value=0.0010291563059287806, variation=4.37085376582525e-06.
Normalized cost function value=0.001025048181860929, variation=4.1081240678515415e-06.
Normalized cost function value=0.001021177812236041, variation=3.8703696248879906e-06.
Normalized cost function value=0.0010175234343931861, variation=3.6543778428549476e-06.
Normalized cost function value=0.0010140659953012103, variation=3.4574390919757825e-06.
Normalized cost function value=0.001010788737500264, variation=3.27725780094627e-06.
Normalized cost function value=0.001007676857109244, variation=3.1118803910201547e-06.
Normalized cost function value=0.001004717220374416, variation=2.959636734827919e-06.
Normalized cost function value=0.0010018981278822063, variation=2.8190924922096797e-06.
Normalized cost function value=0.0009992091176755009, variation=2.689010206705436e-06.
Normalized cost function value=0.0009966408002061737, variation=2.568317469327187e-06.
Normalized cost function value=0.000994184719412873, variation=2.456080793300725e-06.
Normalized cost function value=0.0009918332353006938, variation=2.3514841121792095e-06.
Normalized cost function value=0.0009895794242725665, variation=2.2538110281272727e-06.
Normalized cost function value=0.0009874169941641638, variation=2.162430108402667e-06.
Normalized cost function value=0.0009853402114992148, variation=2.0767826649490707e-06.
Normalized cost function value=0.0009833438389377986, variation=1.996372561416165e-06.
Normalized cost function value=0.0009814230812579831, variation=1.920757679815463e-06.
Normalized cost function value=0.0009795735385088264, variation=1.8495427491567636e-06.
Normalized cost function value=0.0009777911652138615, variation=1.7823732949649035e-06.
Normalized cost function value=0.0009760722346998272, variation=1.71893051403426e-06.
Normalized cost function value=0.0009744133077847502, variation=1.6589269150770044e-06.
Normalized cost function value=0.000972811205189141, variation=1.602102595609162e-06.
Normalized cost function value=0.0009712629831401051, variation=1.54822204903593e-06.
Normalized cost function value=0.0009697659117250374, variation=1.4970714150676964e-06.
Normalized cost function value=0.0009683174556227226, variation=1.4484561023148015e-06.
Normalized cost function value=0.0009669152568984454, variation=1.4021987242772253e-06.
Normalized cost function value=0.0009655571195979891, variation=1.3581373004562924e-06.
Normalized cost function value=0.0009642409959155637, variation=1.316123682425425e-06.
Normalized cost function value=0.0009629649737439327, variation=1.2760221716309923e-06.
Normalized cost function value=0.0009617272654427158, variation=1.2377083012169018e-06.
Normalized cost function value=0.000960526197683957, variation=1.2010677587587183e-06.
Normalized cost function value=0.0009593602022535449, variation=1.1659954304121638e-06.
Normalized cost function value=0.0009582278077032661, variation=1.1323945502787758e-06.
Normalized cost function value=0.0009571276317621798, variation=1.1001759410863253e-06.
Normalized cost function value=0.000956058374427585, variation=1.0692573345947405e-06.
Normalized cost function value=0.0009550188116658491, variation=1.0395627617359625e-06.
Normalized cost function value=0.0009540077896617882, variation=1.0110220040608804e-06.
Normalized cost function value=0.0009530242195625873, variation=9.835700992008936e-07.
Normalized cost function value=0.000952067072668483, variation=9.571468941043e-07.
Normalized cost function value=0.0009511353760278143, variation=9.316966406686762e-07.
Normalized cost function value=0.0009502282083987278, variation=9.071676290865792e-07.
Normalized cost function value=0.0009493446965438605, variation=8.835118548672187e-07.
Normalized cost function value=0.0009484840118279059, variation=8.606847159546051e-07.
Normalized cost function value=0.0009476453670910131, variation=8.386447368928561e-07.
Normalized cost function value=0.0009468280137737519, variation=8.173533172611521e-07.
Normalized cost function value=0.0009460312392717364, variation=7.967745020155377e-07.
Normalized cost function value=0.0009452543645001297, variation=7.768747716066808e-07.
Normalized cost function value=0.0009444967416501678, variation=7.576228499619206e-07.
Normalized cost function value=0.00094375775212145, variation=7.389895287177733e-07.
Normalized cost function value=0.0009430368046153222, variation=7.209475061277634e-07.
Normalized cost function value=0.0009423333333759187, variation=7.034712394035202e-07.
Normalized cost function value=0.0009416467965667352, variation=6.865368091835437e-07.
Normalized cost function value=0.0009409766747715545, variation=6.701217951806358e-07.
Normalized cost function value=0.0009403224696096545, variation=6.54205161900053e-07.
Normalized cost function value=0.0009396837024559783, variation=6.387671536761588e-07.
Normalized cost function value=0.0009390599132578274, variation=6.23789198150892e-07.
Normalized cost function value=0.0009384506594402974, variation=6.092538175300841e-07.
Normalized cost function value=0.0009378555148933646, variation=5.951445469327358e-07.
Normalized cost function value=0.0009372740690341121, variation=5.814458592525535e-07.
Normalized cost function value=0.0009367059259380935, variation=5.681430960185942e-07.
Normalized cost function value=0.0009361507035343903, variation=5.552224037031579e-07.
Normalized cost function value=0.0009356080328592803, variation=5.42670675110035e-07.
Normalized cost function value=0.000935077557363927, variation=5.304754953532661e-07.
Normalized cost function value=0.00093455893227181, variation=5.186250921169816e-07.
Normalized cost function value=0.0009340518239820093, variation=5.071082898006974e-07.
Normalized cost function value=0.0009335559095147177, variation=4.959144672915918e-07.
Normalized cost function value=0.000933070875995704, variation=4.850335190137835e-07.
Normalized cost function value=0.0009325964201766671, variation=4.744558190369029e-07.
Normalized cost function value=0.0009321322479886737, variation=4.6417218799339743e-07.
Normalized cost function value=0.0009316780741261217, variation=4.5417386255195216e-07.
Normalized cost function value=0.0009312336216588394, variation=4.444524672823349e-07.
Normalized cost function value=0.0009307986216701437, variation=4.349999886956932e-07.
Normalized cost function value=0.0009303728129188462, variation=4.258087512974554e-07.
Normalized cost function value=0.0009299559415233541, variation=4.168713954921582e-07.
Normalized cost function value=0.000929547760666165, variation=4.081808571890612e-07.
Normalized cost function value=0.0009291480303171816, variation=3.9973034898343335e-07.
Normalized cost function value=0.0009287565169744143, variation=3.915133427672508e-07.
Normalized cost function value=0.0009283729934207171, variation=3.8352355369720807e-07.
Normalized cost function value=0.0009279972384953694, variation=3.757549253477618e-07.
Normalized cost function value=0.0009276290368793423, variation=3.682016160270899e-07.
Normalized cost function value=0.0009272681788932274, variation=3.608579861149111e-07.
Normalized cost function value=0.0009269144603068817, variation=3.5371858634562076e-07.
Normalized cost function value=0.0009265676821598899, variation=3.4677814699185603e-07.
Normalized cost function value=0.0009262276505920598, variation=3.400315678300965e-07.
Normalized cost function value=0.0009258941766831733, variation=3.334739088864565e-07.
Normalized cost function value=0.0009255670763013578, variation=3.2710038181554303e-07.
Normalized cost function value=0.0009252461699593828, variation=3.209063419749381e-07.
Normalized cost function value=0.0009249312826783632, variation=3.1488728101966394e-07.
Normalized cost function value=0.0009246222438583017, variation=3.09038820061518e-07.
Normalized cost function value=0.0009243188871549798, variation=3.0335670332182815e-07.
Normalized cost function value=0.0009240210503627603, variation=2.978367922195149e-07.
Normalized cost function value=0.0009237285753028667, variation=2.9247505989359393e-07.
Normalized cost function value=0.0009234413077167863, variation=2.872675860804289e-07.
Normalized cost function value=0.0009231590971643983, variation=2.8221055238801963e-07.
Normalized cost function value=0.0009228817969265441, variation=2.7730023785413425e-07.
Normalized cost function value=0.0009226092639117336, variation=2.725330148105115e-07.
Normalized cost function value=0.0009223413585666802, variation=2.679053450534586e-07.
Normalized cost function value=0.0009220779447904647, variation=2.634137762154605e-07.
Normalized cost function value=0.0009218188898520417, variation=2.59054938423018e-07.
Normalized cost function value=0.0009215640643109063, variation=2.548255411354396e-07.
Normalized cost function value=0.0009213133419407229, variation=2.507223701833433e-07.
Normalized cost function value=0.0009210665996557094, variation=2.467422850134819e-07.
Normalized cost function value=0.0009208237174396337, variation=2.428822160757075e-07.
Normalized cost function value=0.0009205845782772533, variation=2.3913916238037236e-07.
Normalized cost function value=0.0009203490680880597, variation=2.3551018919364033e-07.
Normalized cost function value=0.0009201170756621902, variation=2.3199242586951618e-07.
Normalized cost function value=0.000919888492598397, variation=2.2858306379322253e-07.
Normalized cost function value=0.0009196632132439388, variation=2.2527935445815044e-07.
Normalized cost function value=0.0009194411346363195, variation=2.220786076193547e-07.
Normalized cost function value=0.0009192221564467456, variation=2.1897818957390073e-07.
Normalized cost function value=0.0009190061809252368, variation=2.1597552150875738e-07.
Normalized cost function value=0.000918793112847302, variation=2.1306807793477524e-07.
Normalized cost function value=0.0009185828594620909, variation=2.102533852110875e-07.
Normalized cost function value=0.000918375330441969, variation=2.0752902012198624e-07.
Normalized cost function value=0.0009181704378334252, variation=2.0489260854378733e-07.
Normalized cost function value=0.0009179680960092862, variation=2.0234182413901743e-07.
Normalized cost function value=0.0009177682216221511, variation=1.9987438713506018e-07.
Normalized cost function value=0.0009175707335589798, variation=1.9748806317132408e-07.
Normalized cost function value=0.0009173755528968494, variation=1.9518066213036409e-07.
Normalized cost function value=0.0009171826028597519, variation=1.9295003709748123e-07.
Normalized cost function value=0.000916991808776453, variation=1.9079408329896342e-07.
Normalized cost function value=0.0009168030980393247, variation=1.8871073712825506e-07.
Normalized cost function value=0.0009166164000641585, variation=1.8669797516616352e-07.
Normalized cost function value=0.0009164316462508837, variation=1.8475381327479144e-07.
Normalized cost function value=0.0009162487699451864, variation=1.8287630569732358e-07.
Normalized cost function value=0.0009160677064009744, variation=1.8106354421202394e-07.
Normalized cost function value=0.0009158883927436824, variation=1.7931365729197905e-07.
Normalized cost function value=0.0009157107679343681, variation=1.7762480931428088e-07.
Normalized cost function value=0.0009155347727345901, variation=1.7599519977799186e-07.
Normalized cost function value=0.0009153603496720279, variation=1.744230625622253e-07.
Normalized cost function value=0.000915187443006833, variation=1.7290666519495946e-07.
Normalized cost function value=0.0009150159986986856, variation=1.7144430814733033e-07.
Normalized cost function value=0.0009148459643745198, variation=1.7003432416587156e-07.
Normalized cost function value=0.0009146772892969312, variation=1.6867507758859968e-07.
Normalized cost function value=0.0009145099243332071, variation=1.6736496372409156e-07.
Normalized cost function value=0.0009143438219249936, variation=1.6610240821343138e-07.
Normalized cost function value=0.00091417893605856, variation=1.6488586643368264e-07.
Normalized cost function value=0.0009140152222356556, variation=1.637138229043959e-07.
Normalized cost function value=0.0009138526374449341, variation=1.6258479072143832e-07.
Normalized cost function value=0.0009136911401339345, variation=1.6149731099960544e-07.
Normalized cost function value=0.0009135306901816056, variation=1.604499523288937e-07.
Normalized cost function value=0.0009133712488713363, variation=1.594413102693707e-07.
Normalized cost function value=0.000913212778864513, variation=1.5847000682327715e-07.
Normalized cost function value=0.0009130552441745637, variation=1.5753468994930426e-07.
Normalized cost function value=0.0009128986101414636, variation=1.5663403310007314e-07.
Normalized cost function value=0.0009127428434067273, variation=1.557667347363038e-07.
Normalized cost function value=0.0009125879118888372, variation=1.549315178900985e-07.
Normalized cost function value=0.0009124337847590882, variation=1.541271297490418e-07.
Normalized cost function value=0.0009122804324178904, variation=1.5335234119779988e-07.
Normalized cost function value=0.000912127826471431, variation=1.5260594645935804e-07.
Normalized cost function value=0.0009119759397087551, variation=1.5188676267586815e-07.
Normalized cost function value=0.0009118247460792052, variation=1.5119362954988617e-07.
Normalized cost function value=0.0009116742206702269, variation=1.5052540897834542e-07.
Normalized cost function value=0.0009115243396855153, variation=1.498809847115751e-07.
Normalized cost function value=0.0009113750804234865, variation=1.492592620287985e-07.
Normalized cost function value=0.000911226421256071, variation=1.4865916741547448e-07.
Normalized cost function value=0.0009110783416077997, variation=1.4807964827132179e-07.
Normalized cost function value=0.0009109308219351733, variation=1.4751967262647495e-07.
Normalized cost function value=0.0009107838437062926, variation=1.4697822888062526e-07.
Normalized cost function value=0.0009106373893807561, variation=1.464543255365238e-07.
Normalized cost function value=0.0009104914423897809, variation=1.4594699097522645e-07.
Normalized cost function value=0.0009103459871165392, variation=1.4545527324163858e-07.
Normalized cost function value=0.0009102010088767205, variation=1.4497823981878422e-07.
Normalized cost function value=0.0009100564938992568, variation=1.4451497746365786e-07.
Normalized cost function value=0.0009099124293072387, variation=1.4406459201813954e-07.
Normalized cost function value=0.000909768803098977, variation=1.4362620826165184e-07.
Normalized cost function value=0.0009096256041292279, variation=1.431989697490716e-07.
Normalized cost function value=0.0009094828220905081, variation=1.4278203871987381e-07.
Normalized cost function value=0.0009093404474945633, variation=1.4237459594471698e-07.
Normalized cost function value=0.0009091984716538993, variation=1.4197584066407733e-07.
Normalized cost function value=0.0009090568866634278, variation=1.4158499047148016e-07.
Normalized cost function value=0.0009089156853821484, variation=1.4120128127934756e-07.
Normalized cost function value=0.0009087748614149187, variation=1.408239672297685e-07.
Normalized cost function value=0.0009086344090942451, variation=1.4045232067357374e-07.
Normalized cost function value=0.0009084943234621161, variation=1.400856321290278e-07.
Normalized cost function value=0.0009083546002518552, variation=1.3972321026090376e-07.
Normalized cost function value=0.0009082152358699727, variation=1.3936438188243486e-07.
Normalized cost function value=0.0009080762273780348, variation=1.3900849193796729e-07.
Normalized cost function value=0.0009079375724745162, variation=1.3865490351857267e-07.
Normalized cost function value=0.0009077992694766192, variation=1.3830299789695938e-07.
Normalized cost function value=0.0009076613173020991, variation=1.3795217452009997e-07.
Normalized cost function value=0.0009075237154510346, variation=1.376018510645255e-07.
Normalized cost function value=0.0009073864639875813, variation=1.3725146345334744e-07.
Normalized cost function value=0.0009072495635216732, variation=1.3690046590808264e-07.
Normalized cost function value=0.0009071130151906978, variation=1.3654833097532463e-07.
Normalized cost function value=0.0009069768206411145, variation=1.3619454958333898e-07.
Normalized cost function value=0.0009068409820100496, variation=1.3583863106494e-07.
Normalized cost function value=0.0009067055019068405, variation=1.354801032090987e-07.
Normalized cost function value=0.0009065703833945446, variation=1.3511851229585422e-07.
Normalized cost function value=0.0009064356299714234, variation=1.3475342312125032e-07.
Normalized cost function value=0.0009063012455523947, variation=1.3438441902866895e-07.
Normalized cost function value=0.0009061672344504665, variation=1.340111019282374e-07.
Normalized cost function value=0.0009060336013581562, variation=1.3363309231027246e-07.
Normalized cost function value=0.0009059003513289209, variation=1.332500292353057e-07.
Normalized cost function value=0.0009057674897585803, variation=1.3286157034058874e-07.
Normalized cost function value=0.0009056350223667757, variation=1.3246739180463978e-07.
Normalized cost function value=0.000905502955178451, variation=1.3206718832469225e-07.
Normalized cost function value=0.0009053712945053953, variation=1.316606730556542e-07.
Normalized cost function value=0.0009052400469278349, variation=1.3124757756045186e-07.
Normalized cost function value=0.0009051092192761212, variation=1.3082765171364402e-07.
Normalized cost function value=0.0009049788186125035, variation=1.3040066361772167e-07.
Normalized cost function value=0.0009048488522130261, variation=1.2996639947734055e-07.
Normalized cost function value=0.0009047193275495513, variation=1.295246634748547e-07.
Normalized cost function value=0.0009045902522719392, variation=1.290752776121314e-07.
Normalized cost function value=0.0009044616341904077, variation=1.2861808153144094e-07.
Normalized cost function value=0.0009043334812580682, variation=1.2815293233949063e-07.
Normalized cost function value=0.0009042058015536934, variation=1.2767970437486346e-07.
Normalized cost function value=0.00090407860326471, variation=1.2719828898337133e-07.
Normalized cost function value=0.0009039518946704375, variation=1.2670859427248334e-07.
Normalized cost function value=0.0009038256841256227, variation=1.2621054481479644e-07.
Normalized cost function value=0.0009036999800442457, variation=1.2570408137698493e-07.
Normalized cost function value=0.0009035747908836572, variation=1.2518916058857667e-07.
Normalized cost function value=0.0009034501251290437, variation=1.246657546134398e-07.
Normalized cost function value=0.0009033259912782537, variation=1.2413385079004455e-07.
Normalized cost function value=0.0009032023978269772, variation=1.235934512764953e-07.
Normalized cost function value=0.000903079353254341, variation=1.2304457263614867e-07.
Normalized cost function value=0.0009029568660088855, variation=1.2248724545554056e-07.
Normalized cost function value=0.0009028349444949877, variation=1.219215138978033e-07.
Normalized cost function value=0.0009027135970596965, variation=1.21347435291211e-07.
Normalized cost function value=0.0009025928319800365, variation=1.2076507965993674e-07.
Normalized cost function value=0.0009024726574507775, variation=1.201745292590383e-07.
Normalized cost function value=0.0009023530815726611, variation=1.195758781163828e-07.
Normalized cost function value=0.000902234112341137, variation=1.1896923152415577e-07.
Normalized cost function value=0.0009021157576355673, variation=1.1835470556961856e-07.
Normalized cost function value=0.0009019980252089648, variation=1.1773242660254816e-07.
Normalized cost function value=0.0009018809226782023, variation=1.1710253076252508e-07.
Normalized cost function value=0.0009017644575147651, variation=1.1646516343715753e-07.
Normalized cost function value=0.0009016486370360179, variation=1.1582047874719378e-07.
Normalized cost function value=0.0009015334683969611, variation=1.1516863905678808e-07.
Normalized cost function value=0.0009014189585825451, variation=1.1450981441600387e-07.
Normalized cost function value=0.000901305114400477, variation=1.1384418206815232e-07.
Normalized cost function value=0.0009011919424745569, variation=1.1317192592005115e-07.
Normalized cost function value=0.000901079449238515, variation=1.1249323604188219e-07.
Normalized cost function value=0.0009009676409303737, variation=1.1180830814135328e-07.
Normalized cost function value=0.000900856523587299, variation=1.1111734307472313e-07.
Normalized cost function value=0.0009007461030409524, variation=1.1042054634655043e-07.
Normalized cost function value=0.0009006363849133271, variation=1.097181276252723e-07.
Normalized cost function value=0.0009005273746130706, variation=1.0901030025650595e-07.
Normalized cost function value=0.0009004190773322619, variation=1.0829728080876799e-07.
Normalized cost function value=0.0009003114980436606, variation=1.0757928860130432e-07.
Normalized cost function value=0.0009002046414983789, variation=1.0685654528168505e-07.
Normalized cost function value=0.0009000985122240173, variation=1.0612927436154905e-07.
Normalized cost function value=0.0008999931145231818, variation=1.0539770083550695e-07.
Normalized cost function value=0.0008998884524724302, variation=1.0466205075158018e-07.
Normalized cost function value=0.0008997845299216025, variation=1.0392255082771872e-07.
Normalized cost function value=0.0008996813504935148, variation=1.0317942808772598e-07.
Normalized cost function value=0.0008995789175840237, variation=1.0243290949111215e-07.
Normalized cost function value=0.0008994772343624273, variation=1.0168322159634108e-07.
Normalized cost function value=0.00089937630377219, variation=1.0093059023730429e-07.
Normalized cost function value=0.0008992761285319798, variation=1.0017524021020338e-07.
Normalized cost function value=0.0008991767111370005, variation=9.941739497929761e-08.
Normalized cost function value=0.000899078053860593, variation=9.865727640758805e-08.
Normalized cost function value=0.0008989801587561025, variation=9.789510449042908e-08.
Normalized cost function value=0.0008988830276589893, variation=9.713109711320927e-08.
Normalized cost function value=0.0008987866621891617, variation=9.636546982757198e-08.
Normalized cost function value=0.0008986910637535237, variation=9.559843563804443e-08.
Normalized cost function value=0.0008985962335487169, variation=9.483020480677284e-08.
Normalized cost function value=0.0008985021725640372, variation=9.406098467972489e-08.
Normalized cost function value=0.0008984088815845325, variation=9.329097950465208e-08.
Normalized cost function value=0.0008983163611942189, variation=9.252039031367072e-08.
Normalized cost function value=0.000898224611779466, variation=9.174941475282531e-08.
Normalized cost function value=0.0008981336335324796, variation=9.09782469864619e-08.
Normalized cost function value=0.0008980434264548981, variation=9.020707758143533e-08.
Normalized cost function value=0.0008979539903614962, variation=8.943609340194159e-08.
Normalized cost function value=0.0008978653248839411, variation=8.866547755509088e-08.
Normalized cost function value=0.0008977774294746554, variation=8.789540928574001e-08.
Normalized cost function value=0.0008976903034107037, variation=8.712606395166415e-08.
Normalized cost function value=0.0008976039457977572, variation=8.635761294647007e-08.
Normalized cost function value=0.0008975183555740678, variation=8.559022368940464e-08.
Normalized cost function value=0.0008974335315144948, variation=8.482405957298787e-08.
Normalized cost function value=0.000897349472234534, variation=8.405927996084448e-08.
Normalized cost function value=0.0008972661761943607, variation=8.329604017328403e-08.
Normalized cost function value=0.0008971836417028721, variation=8.253449148860198e-08.
Normalized cost function value=0.0008971018669217324, variation=8.177478113971862e-08.
Normalized cost function value=0.0008970208498693952, variation=8.101705233716418e-08.
Normalized cost function value=0.0008969405884251065, variation=8.026144428870292e-08.
Normalized cost function value=0.000896861080332893, variation=7.950809221353612e-08.
Normalized cost function value=0.0008967823232055068, variation=7.87571273862123e-08.
Normalized cost function value=0.000896704314528339, variation=7.800867716774382e-08.
Normalized cost function value=0.0008966270516632933, variation=7.726286504572237e-08.
Normalized cost function value=0.0008965505318526157, variation=7.65198106775786e-08.
Normalized cost function value=0.0008964747522226727, variation=7.577962994305756e-08.
Normalized cost function value=0.0008963997097876731, variation=7.504243499962138e-08.
Normalized cost function value=0.0008963254014533516, variation=7.430833432148058e-08.
Normalized cost function value=0.0008962518240205765, variation=7.357743277505453e-08.
Normalized cost function value=0.0008961789741889018, variation=7.284983167469943e-08.
Normalized cost function value=0.0008961068485600688, variation=7.212562883301531e-08.
Normalized cost function value=0.0008960354436414309, variation=7.140491863793282e-08.
Normalized cost function value=0.0008959647558493222, variation=7.068779210865801e-08.
Normalized cost function value=0.0008958947815123542, variation=6.997433696798866e-08.
Normalized cost function value=0.0008958255168746477, variation=6.926463770649902e-08.
Normalized cost function value=0.000895756958099009, variation=6.855877563870152e-08.
Normalized cost function value=0.0008956891012700183, variation=6.785682899075867e-08.
Normalized cost function value=0.0008956219423970626, variation=6.715887295566901e-08.
Normalized cost function value=0.0008955554774173028, variation=6.646497975983708e-08.
Normalized cost function value=0.0008954897021985685, variation=6.577521873430553e-08.
Normalized cost function value=0.0008954246125421812, variation=6.508965638728822e-08.
Normalized cost function value=0.0008953602041857244, variation=6.440835645675404e-08.
Normalized cost function value=0.0008952964728057321, variation=6.37313799922842e-08.
Normalized cost function value=0.0008952334140203239, variation=6.305878540819806e-08.
Normalized cost function value=0.0008951710233917655, variation=6.23906285584716e-08.
Normalized cost function value=0.0008951092964289719, variation=6.172696279354954e-08.
Normalized cost function value=0.0008950482285899455, variation=6.106783902637327e-08.
Normalized cost function value=0.0008949878152841518, variation=6.041330579374671e-08.
Normalized cost function value=0.0008949280518748281, variation=5.976340932366524e-08.
Normalized cost function value=0.0008948689336812463, variation=5.9118193581828016e-08.
Normalized cost function value=0.0008948104559809032, variation=5.847770034308683e-08.
Normalized cost function value=0.0008947526140116624, variation=5.7841969240777363e-08.
Normalized cost function value=0.0008946954029738196, variation=5.721103784283015e-08.
Normalized cost function value=0.0008946388180321532, variation=5.6584941666407325e-08.
Normalized cost function value=0.000894582854317871, variation=5.596371428220285e-08.
Normalized cost function value=0.0008945275069305417, variation=5.53473873292961e-08.
Normalized cost function value=0.0008944727709399513, variation=5.47359905903955e-08.
Normalized cost function value=0.0008944186413879239, variation=5.4129552027400336e-08.
Normalized cost function value=0.0008943651132900819, variation=5.352809784200767e-08.
Normalized cost function value=0.0008943121816375678, variation=5.293165251409309e-08.
Normalized cost function value=0.0008942598413987003, variation=5.2340238867521795e-08.
Normalized cost function value=0.0008942080875206103, variation=5.175387808998948e-08.
Normalized cost function value=0.0008941569149308096, variation=5.117258980067655e-08.
Normalized cost function value=0.0008941063185387246, variation=5.059639208505103e-08.
Normalized cost function value=0.0008940562932371913, variation=5.002530153324931e-08.
Normalized cost function value=0.0008940068339038918, variation=4.94593332994904e-08.
Normalized cost function value=0.0008939579354027754, variation=4.8898501116387445e-08.
Normalized cost function value=0.0008939095925854131, variation=4.834281736238507e-08.
Normalized cost function value=0.0008938618002923318, variation=4.779229308127502e-08.
Normalized cost function value=0.0008938145533543037, variation=4.7246938028057926e-08.
Normalized cost function value=0.0008937678465935956, variation=4.670676070808299e-08.
Normalized cost function value=0.0008937216748251919, variation=4.617176840371936e-08.
Normalized cost function value=0.0008936760328579674, variation=4.56419672245547e-08.
Normalized cost function value=0.000893630915495843, variation=4.511736212441716e-08.
Normalized cost function value=0.0008935863175388932, variation=4.459795694973078e-08.
Normalized cost function value=0.0008935422337844293, variation=4.4083754463910066e-08.
Normalized cost function value=0.000893498659028046, variation=4.357475638335547e-08.
Normalized cost function value=0.0008934555880646441, variation=4.307096340184797e-08.
Normalized cost function value=0.0008934130156894153, variation=4.2572375228821374e-08.
Normalized cost function value=0.0008933709366987971, variation=4.207899061820213e-08.
Normalized cost function value=0.0008933293458914069, variation=4.1590807390201774e-08.
Normalized cost function value=0.0008932882380689397, variation=4.1107822467204014e-08.
Normalized cost function value=0.0008932476080370449, variation=4.063003189479827e-08.
Normalized cost function value=0.0008932074506061688, variation=4.015743087604044e-08.
Normalized cost function value=0.0008931677605923797, variation=3.9690013789125435e-08.
Normalized cost function value=0.000893128532818161, variation=3.922777421872057e-08.
Normalized cost function value=0.0008930897621131846, variation=3.87707049763486e-08.
Normalized cost function value=0.0008930514433150522, variation=3.8318798132480104e-08.
Normalized cost function value=0.000893013571270024, variation=3.7872045028134425e-08.
Normalized cost function value=0.0008929761408337186, variation=3.7430436305454194e-08.
Normalized cost function value=0.0008929391468717879, variation=3.6993961930690406e-08.
Normalized cost function value=0.0008929025842605785, variation=3.656261120938125e-08.
Normalized cost function value=0.0008928664478877607, variation=3.613637281779398e-08.
Normalized cost function value=0.0008928307326529498, variation=3.5715234810947995e-08.
Normalized cost function value=0.0008927954334682984, variation=3.529918465134622e-08.
Normalized cost function value=0.0008927605452590746, variation=3.4888209223828646e-08.
Normalized cost function value=0.0008927260629642161, variation=3.448229485844903e-08.
Normalized cost function value=0.0008926919815368731, variation=3.408142734305161e-08.
Normalized cost function value=0.0008926582959449272, variation=3.368559194593095e-08.
Normalized cost function value=0.000892625001171499, variation=3.3294773428191836e-08.
Normalized cost function value=0.0008925920922154318, variation=3.290895606716804e-08.
Normalized cost function value=0.0008925595640917698, variation=3.2528123661951756e-08.
Normalized cost function value=0.0008925274118322116, variation=3.215225955822184e-08.
Normalized cost function value=0.0008924956304855562, variation=3.178134665539952e-08.
Normalized cost function value=0.000892464215118124, variation=3.1415367432235594e-08.
Normalized cost function value=0.0008924331608141845, variation=3.105430393943783e-08.
Normalized cost function value=0.0008924024626763429, variation=3.0698137841629614e-08.
Normalized cost function value=0.0008923721158259432, variation=3.034685039967743e-08.
Normalized cost function value=0.0008923421154034316, variation=3.000042251167373e-08.
Normalized cost function value=0.0008923124565687413, variation=2.965883469027708e-08.
Normalized cost function value=0.0008922831345016299, variation=2.932206711139286e-08.
Normalized cost function value=0.0008922541444020325, variation=2.899009959736812e-08.
Normalized cost function value=0.0008922254814904022, variation=2.8662911630327262e-08.
Normalized cost function value=0.0008921971410080277, variation=2.834048237450662e-08.
Normalized cost function value=0.0008921691182173569, variation=2.8022790670833436e-08.
Normalized cost function value=0.0008921414084023057, variation=2.7709815051128912e-08.
Normalized cost function value=0.0008921140068685655, variation=2.7401533740276617e-08.
Normalized cost function value=0.00089208690894389, variation=2.709792467541286e-08.
Normalized cost function value=0.0008920601099784004, variation=2.6798965489663665e-08.
Normalized cost function value=0.0008920336053448547, variation=2.650463354564661e-08.
Normalized cost function value=0.0008920073904389398, variation=2.6214905914979415e-08.
Normalized cost function value=0.0008919814606795421, variation=2.592975939768715e-08.
Normalized cost function value=0.0008919558115090204, variation=2.5649170521660145e-08.
Normalized cost function value=0.0008919304383934776, variation=2.53731155427624e-08.
Normalized cost function value=0.0008919053368230198, variation=2.5101570457842018e-08.
Normalized cost function value=0.0008918805023120359, variation=2.4834510983914523e-08.
Normalized cost function value=0.000891855930399445, variation=2.4571912590905763e-08.
Normalized cost function value=0.0008918316166489687, variation=2.431375047628158e-08.
Normalized cost function value=0.0008918075566493917, variation=2.405999957697403e-08.
Normalized cost function value=0.0008917837460148266, variation=2.3810634565153005e-08.
Normalized cost function value=0.0008917601803849743, variation=2.356562985223777e-08.
Normalized cost function value=0.0008917368554253961, variation=2.332495957827179e-08.
Normalized cost function value=0.0008917137668277787, variation=2.3088597617343734e-08.
Normalized cost function value=0.0008916909103102031, variation=2.2856517575635914e-08.
Normalized cost function value=0.0008916682816174317, variation=2.2628692771366546e-08.
Normalized cost function value=0.0008916458765211657, variation=2.2405096266014772e-08.
Normalized cost function value=0.0008916236908203546, variation=2.2185700811086333e-08.
Normalized cost function value=0.0008916017203414611, variation=2.1970478893541638e-08.
Normalized cost function value=0.0008915799609387763, variation=2.1759402684729846e-08.
Normalized cost function value=0.0008915584084947065, variation=2.1552444069879162e-08.
Normalized cost function value=0.0008915370589200861, variation=2.134957462034126e-08.
Normalized cost function value=0.0008915159081544917, variation=2.115076559445865e-08.
Normalized cost function value=0.0008914949521665696, variation=2.0955987922060583e-08.
Normalized cost function value=0.0008914741869543615, variation=2.0765212208149336e-08.
Normalized cost function value=0.0008914536085456466, variation=2.0578408714902463e-08.
Normalized cost function value=0.0008914332129982927, variation=2.0395547353866533e-08.
Normalized cost function value=0.0008914129964006143, variation=2.021659767836772e-08.
Normalized cost function value=0.0008913929548717426, variation=2.004152887169399e-08.
Normalized cost function value=0.0008913730845620028, variation=1.9870309739830963e-08.
Normalized cost function value=0.0008913533816533115, variation=1.9702908691295734e-08.
Normalized cost function value=0.0008913338423595747, variation=1.9539293736811625e-08.
Normalized cost function value=0.0008913144629271002, variation=1.937943247445461e-08.
Normalized cost function value=0.0008912952396350284, variation=1.92232920718724e-08.
Normalized cost function value=0.0008912761687957679, variation=1.9070839260429753e-08.
Normalized cost function value=0.0008912572467554445, variation=1.892204032339067e-08.
Normalized cost function value=0.0008912384698943689, variation=1.877686107564381e-08.
Normalized cost function value=0.0008912198346275096, variation=1.8635266859257267e-08.
Normalized cost function value=0.0008912013374049819, variation=1.8497222527757637e-08.
Normalized cost function value=0.0008911829747125545, variation=1.8362692427373317e-08.
Normalized cost function value=0.000891164743072159, variation=1.8231640395516627e-08.
Normalized cost function value=0.00089114663904242, variation=1.810402973899134e-08.
Normalized cost function value=0.0008911286592192003, variation=1.7979823219681224e-08.
Normalized cost function value=0.0008911108002361547, variation=1.7858983045659568e-08.
Normalized cost function value=0.0008910930587652899, variation=1.7741470864792407e-08.
Normalized cost function value=0.0008910754315175568, variation=1.7627247733079804e-08.
Normalized cost function value=0.000891057915243432, variation=1.751627412473894e-08.
Normalized cost function value=0.0008910405067335339, variation=1.740850989816016e-08.
Normalized cost function value=0.0008910232028192263, variation=1.730391430761636e-08.
Normalized cost function value=0.0008910060003732574, variation=1.7202445968893774e-08.
Normalized cost function value=0.0008909888963103987, variation=1.710406285864146e-08.
Normalized cost function value=0.0008909718875880857, variation=1.7008722313070247e-08.
Normalized cost function value=0.0008909549712070845, variation=1.6916381001172952e-08.
Normalized cost function value=0.0008909381442121624, variation=1.6826994922122286e-08.
Normalized cost function value=0.0008909214036927619, variation=1.674051940050037e-08.
Normalized cost function value=0.000890904746783685, variation=1.6656909076866178e-08.
Normalized cost function value=0.0008908881706657864, variation=1.6576117898648227e-08.
Normalized cost function value=0.000890871672566678, variation=1.6498099108326787e-08.
Normalized cost function value=0.0008908552497614221, variation=1.64228052559022e-08.
Normalized cost function value=0.0008908388995732435, variation=1.63501881786203e-08.
Normalized cost function value=0.0008908226193742472, variation=1.6280198996310342e-08.
Normalized cost function value=0.0008908064065861161, variation=1.6212788131117484e-08.
Normalized cost function value=0.0008907902586808393, variation=1.6147905276819863e-08.
Normalized cost function value=0.0008907741731814126, variation=1.6085499426692594e-08.
Normalized cost function value=0.0008907581476625526, variation=1.602551885995524e-08.
Normalized cost function value=0.0008907421797514078, variation=1.5967911144807584e-08.
Normalized cost function value=0.0008907262671282523, variation=1.591262315545159e-08.
Normalized cost function value=0.0008907104075271856, variation=1.5859601066778826e-08.
Normalized cost function value=0.0008906945987368224, variation=1.5808790363152497e-08.
Normalized cost function value=0.0008906788386009629, variation=1.5760135859549385e-08.
Normalized cost function value=0.0008906631250192582, variation=1.5713581704704035e-08.
Normalized cost function value=0.0008906474559478723, variation=1.5669071385879252e-08.
Normalized cost function value=0.0008906318294001076, variation=1.5626547764644762e-08.
Normalized cost function value=0.0008906162434470292, variation=1.5585953078395103e-08.
Normalized cost function value=0.0008906006962180704, variation=1.5547228958889478e-08.
Normalized cost function value=0.0008905851859016032, variation=1.5510316467163068e-08.
Normalized cost function value=0.0008905697107455024, variation=1.5475156100791185e-08.
Normalized cost function value=0.0008905542690576813, variation=1.5441687821102744e-08.
Normalized cost function value=0.0008905388592065844, variation=1.5409851096873615e-08.
Normalized cost function value=0.0008905234796216785, variation=1.5379584905952925e-08.
Normalized cost function value=0.0008905081287938877, variation=1.5350827790774207e-08.
Normalized cost function value=0.0008904928052760119, variation=1.5323517875811057e-08.
Normalized cost function value=0.0008904775076831044, variation=1.5297592907475774e-08.
Normalized cost function value=0.0008904622346928067, variation=1.5272990297704285e-08.
Normalized cost function value=0.0008904469850456594, variation=1.5249647147266496e-08.
Normalized cost function value=0.0008904317575453528, variation=1.522750030659003e-08.
Normalized cost function value=0.0008904165510589485, variation=1.5206486404383164e-08.
Normalized cost function value=0.0008904013645170585, variation=1.518654188991872e-08.
Normalized cost function value=0.0008903861969139569, variation=1.5167603101664054e-08.
Normalized cost function value=0.0008903710473076668, variation=1.5149606290049307e-08.
Normalized cost function value=0.0008903559148199855, variation=1.513248768132691e-08.
Normalized cost function value=0.0008903407986364587, variation=1.511618352679437e-08.
Normalized cost function value=0.0008903256980062983, variation=1.510063016036539e-08.
Normalized cost function value=0.0008903106122422533, variation=1.5085764045082162e-08.
Normalized cost function value=0.0008902955407204165, variation=1.5071521836758014e-08.
Normalized cost function value=0.0008902804828799747, variation=1.5057840441765405e-08.
Normalized cost function value=0.0008902654382229049, variation=1.5044657069836556e-08.
Normalized cost function value=0.000890250406313605, variation=1.503190929987453e-08.
Normalized cost function value=0.0008902353867784614, variation=1.50195351435959e-08.
Normalized cost function value=0.0008902203793053679, variation=1.5007473093560895e-08.
Normalized cost function value=0.0008902053836431632, variation=1.499566220470542e-08.
Normalized cost function value=0.0008901903996010261, variation=1.4984042137058604e-08.
Normalized cost function value=0.0008901754270477806, variation=1.4972553245514754e-08.
Normalized cost function value=0.0008901604659111746, variation=1.496113660596262e-08.
Normalized cost function value=0.0008901455161770562, variation=1.4949734118393024e-08.
Normalized cost function value=0.0008901305778885157, variation=1.4938288540509125e-08.
Normalized cost function value=0.0008901156511449484, variation=1.492674356730686e-08.
Normalized cost function value=0.0008901007361010602, variation=1.4915043888212402e-08.
Normalized cost function value=0.00089008583296582, variation=1.490313524020806e-08.
Normalized cost function value=0.0008900709420013292, variation=1.4890964490773748e-08.
Normalized cost function value=0.000890056063521655, variation=1.4878479674207759e-08.
Normalized cost function value=0.0008900411978915925, variation=1.4865630062533587e-08.
Normalized cost function value=0.0008900263455253731, variation=1.4852366219384773e-08.
Normalized cost function value=0.0008900115068853142, variation=1.4838640058877084e-08.
Normalized cost function value=0.0008899966824804191, variation=1.4824404895156552e-08.
Normalized cost function value=0.0008899818728649287, variation=1.4809615490321212e-08.
Normalized cost function value=0.0008899670786368062, variation=1.4794228122508996e-08.
Normalized cost function value=0.0008899523004362016, variation=1.4778200604654429e-08.
Normalized cost function value=0.0008899375389438433, variation=1.4761492358322803e-08.
Normalized cost function value=0.0008899227948794123, variation=1.4744064430948986e-08.
Normalized cost function value=0.0008899080689998578, variation=1.4725879554492761e-08.
Normalized cost function value=0.0008898933620976873, variation=1.4706902170483899e-08.
Normalized cost function value=0.0008898786749992187, variation=1.468709846861975e-08.
Normalized cost function value=0.0008898640085628038, variation=1.4666436414954506e-08.
Normalized cost function value=0.000889849363677021, variation=1.4644885782798961e-08.
Normalized cost function value=0.0008898347412588563, variation=1.4622418164646732e-08.
Normalized cost function value=0.0008898201422518444, variation=1.4599007011964482e-08.
Normalized cost function value=0.0008898055676242124, variation=1.4574627631939313e-08.
Normalized cost function value=0.0008897910183669952, variation=1.4549257217185904e-08.
Normalized cost function value=0.0008897764954921557, variation=1.452287483956656e-08.
Normalized cost function value=0.0008897620000306855, variation=1.4495461470140532e-08.
Normalized cost function value=0.0008897475330307158, variation=1.4466999969731456e-08.
Normalized cost function value=0.0008897330955556167, variation=1.4437475099118857e-08.
Normalized cost function value=0.0008897186886821217, variation=1.4406873494968858e-08.
Normalized cost function value=0.0008897043134984359, variation=1.4375183685771953e-08.
Normalized cost function value=0.0008896899711023802, variation=1.4342396055739073e-08.
Normalized cost function value=0.0008896756625995377, variation=1.4308502842524766e-08.
Normalized cost function value=0.0008896613891014249, variation=1.4273498112724221e-08.
Normalized cost function value=0.0008896471517236942, variation=1.4237377730756673e-08.
Normalized cost function value=0.0008896329515843411, variation=1.4200139353119125e-08.
Normalized cost function value=0.0008896187898019722, variation=1.4161782368863653e-08.
Normalized cost function value=0.0008896046674941026, variation=1.4122307869565004e-08.
Normalized cost function value=0.0008895905857754123, variation=1.408171869030344e-08.
Normalized cost function value=0.0008895765457561835, variation=1.4040019228819811e-08.
Normalized cost function value=0.0008895625485406755, variation=1.3997215507965607e-08.
Normalized cost function value=0.000889548595225578, variation=1.3953315097531976e-08.
Normalized cost function value=0.0008895346868985064, variation=1.390832707164058e-08.
Normalized cost function value=0.0008895208246365549, variation=1.3862261951497722e-08.
Normalized cost function value=0.000889507009504888, variation=1.3815131666905164e-08.
Normalized cost function value=0.0008894932425554054, variation=1.3766949482534388e-08.
Normalized cost function value=0.0008894795248254429, variation=1.3717729962581596e-08.
Normalized cost function value=0.0008894658573365484, variation=1.3667488894439882e-08.
Normalized cost function value=0.0008894522410933008, variation=1.3616243247607969e-08.
Normalized cost function value=0.0008894386770822089, variation=1.3564011091941365e-08.
Normalized cost function value=0.0008894251662706519, variation=1.3510811556994781e-08.
Normalized cost function value=0.0008894117096058947, variation=1.3456664757212182e-08.
Normalized cost function value=0.000889398308014162, variation=1.3401591732620927e-08.
Normalized cost function value=0.0008893849623997754, variation=1.3345614386598564e-08.
Normalized cost function value=0.00088937167364436, variation=1.3288755415399693e-08.
Normalized cost function value=0.0008893584426061028, variation=1.3231038257198457e-08.
Normalized cost function value=0.0008893452701190872, variation=1.3172487015652296e-08.
Normalized cost function value=0.0008893321569926864, variation=1.311312640081292e-08.
Normalized cost function value=0.0008893191040110147, variation=1.3052981671663605e-08.
Normalized cost function value=0.0008893061119324502, variation=1.2992078564561839e-08.
Normalized cost function value=0.000889293181489208, variation=1.2930443242173406e-08.
Normalized cost function value=0.0008892803133869939, variation=1.2868102214108786e-08.
Normalized cost function value=0.0008892675083046835, variation=1.2805082310360198e-08.
Normalized cost function value=0.0008892547668940996, variation=1.2741410583940252e-08.
Normalized cost function value=0.0008892420897798146, variation=1.267711428496951e-08.
Normalized cost function value=0.0008892294775590256, variation=1.2612220789010725e-08.
Normalized cost function value=0.0008892169308014798, variation=1.2546757545786082e-08.
Normalized cost function value=0.0008892044500494427, variation=1.2480752037110146e-08.
Normalized cost function value=0.0008891920358177313, variation=1.2414231711404058e-08.
Normalized cost function value=0.0008891796885937868, variation=1.2347223944447414e-08.
Normalized cost function value=0.0008891674088377932, variation=1.2279755993624929e-08.
Normalized cost function value=0.0008891551969828458, variation=1.2211854947402623e-08.
Normalized cost function value=0.0008891430534351537, variation=1.214354769215123e-08.
Normalized cost function value=0.0008891309785742898, variation=1.2074860863899202e-08.
Normalized cost function value=0.0008891189727534804, variation=1.2005820809409852e-08.
Normalized cost function value=0.0008891070362999148, variation=1.1936453565581512e-08.
Normalized cost function value=0.0008890951695151135, variation=1.1866784801225876e-08.
Normalized cost function value=0.0008890833726753054, variation=1.1796839808177542e-08.
Normalized cost function value=0.0008890716460318428, variation=1.1726643462587998e-08.
Normalized cost function value=0.000889059989811646, variation=1.1656220196736358e-08.
Normalized cost function value=0.0008890484042176705, variation=1.1585593975502184e-08.
Normalized cost function value=0.0008890368894293937, variation=1.151478827684984e-08.
Normalized cost function value=0.0008890254456033242, variation=1.1443826069493929e-08.
Normalized cost function value=0.0008890140728735345, variation=1.1372729789697368e-08.
Normalized cost function value=0.0008890027713521921, variation=1.130152134235559e-08.
Normalized cost function value=0.0008889915411301343, variation=1.1230222057845296e-08.
Normalized cost function value=0.000888980382277423, variation=1.1158852711323254e-08.
Normalized cost function value=0.0008889692948439358, variation=1.108743348716447e-08.
Normalized cost function value=0.0008889582788599473, variation=1.1015983988503161e-08.
Normalized cost function value=0.0008889473343367299, variation=1.0944523217391866e-08.
Normalized cost function value=0.0008889364612671496, variation=1.0873069580330866e-08.
Normalized cost function value=0.0008889256596262734, variation=1.0801640876233545e-08.
Normalized cost function value=0.0008889149293719696, variation=1.0730254303798967e-08.
Normalized cost function value=0.0008889042704455173, variation=1.0658926452296151e-08.
Normalized cost function value=0.0008888936827722107, variation=1.0587673306551408e-08.
Normalized cost function value=0.0008888831662619569, variation=1.051651025377881e-08.
Normalized cost function value=0.0008888727208098744, variation=1.044545208249599e-08.
Normalized cost function value=0.0008888623462968878, variation=1.0374512986644109e-08.
Normalized cost function value=0.0008888520425903142, variation=1.0303706573610953e-08.
Normalized cost function value=0.0008888418095444417, variation=1.023304587247087e-08.
Normalized cost function value=0.0008888316470010963, variation=1.016254334536889e-08.
Normalized cost function value=0.0008888215547902106, variation=1.0092210885786004e-08.
Normalized cost function value=0.0008888115327303753, variation=1.002205983523588e-08.
Normalized cost function value=0.000888801580629372, variation=9.952101003322597e-09.
Converged in 690 iterations.
%% Cell type:code id: tags:
``` python
errors[-1], len(errors)
```
%% Output
(0.000888801580629372, 691)
%% Cell type:markdown id: tags:
# NTF (PARAFAC)
%% Cell type:code id: tags:
``` python
import nn_fac.ntf as ntf
```
%% Cell type:code id: tags:
``` python
rank = 2
U_lines = 500
V_lines = 250
W_lines = 50
factors_0 = []
factors_0.append(np.random.rand(U_lines, rank))
factors_0.append(np.random.rand(V_lines, rank))
factors_0.append(np.random.rand(W_lines, rank))
T = ntf.tl.kruskal_tensor.kruskal_to_tensor(([1,1],factors_0)) + 1e-2 * np.random.rand(U_lines, V_lines, W_lines)
T = tl.random.random_cp((U_lines, V_lines, W_lines), rank, full=True)
T = tl.abs(T)
T = T + 1e-2 * np.random.rand(U_lines, V_lines, W_lines)
factors, errors, toc = ntf.ntf(T, rank, init = "random", n_iter_max = 1000, tol = 1e-8, update_rule = "hals",
sparsity_coefficients = [None, None, None], fixed_modes = [], normalize = [False, False, False],
verbose = True, return_costs = True)
```
%% Output
Normalized cost function value=0.055296460439296855
Normalized cost function value=0.04014405446004204, variation=0.015152405979254817.
Normalized cost function value=0.013636033007004066, variation=0.02650802145303797.
Normalized cost function value=0.004332634694852851, variation=0.009303398312151216.
Normalized cost function value=0.001001737872355094, variation=0.003330896822497757.
Normalized cost function value=0.00028041925943719033, variation=0.0007213186129179036.
Normalized cost function value=0.00020013375100392245, variation=8.028550843326788e-05.
Normalized cost function value=0.00019037607866639774, variation=9.757672337524706e-06.
Normalized cost function value=0.000187299894124919, variation=3.0761845414787464e-06.
Normalized cost function value=0.00018550608881085192, variation=1.793805314067074e-06.
Normalized cost function value=0.00018409940035473866, variation=1.4066884561132645e-06.
Normalized cost function value=0.00018289847425478908, variation=1.2009260999495779e-06.
Normalized cost function value=0.00018186052316396454, variation=1.0379510908245428e-06.
Normalized cost function value=0.000180960758304994, variation=8.997648589705444e-07.
Normalized cost function value=0.00018018057137499815, variation=7.801869299958449e-07.
Normalized cost function value=0.00017950397308098937, variation=6.765982940087824e-07.
Normalized cost function value=0.00017891714546793187, variation=5.868276130574967e-07.
Normalized cost function value=0.0001784091564053436, variation=5.079890625882732e-07.
Normalized cost function value=0.00017796847025129767, variation=4.4068615404592383e-07.
Normalized cost function value=0.00017758501117225682, variation=3.834590790408542e-07.
Normalized cost function value=0.00017725243753265822, variation=3.325736395986005e-07.
Normalized cost function value=0.000176963849823024, variation=2.8858770963422213e-07.
Normalized cost function value=0.0001767134275512128, variation=2.504222718111926e-07.
Normalized cost function value=0.00017649610842668094, variation=2.1731912453186886e-07.
Normalized cost function value=0.00017630750592062435, variation=1.886025060565807e-07.
Normalized cost function value=0.00017614381672169524, variation=1.6368919892911955e-07.
Normalized cost function value=0.0001760020317688003, variation=1.417849528949442e-07.
Normalized cost function value=0.00017587896089170404, variation=1.2307087709625074e-07.
Normalized cost function value=0.00017577181473102965, variation=1.071461606743881e-07.
Normalized cost function value=0.0001756788416953203, variation=9.297303570936417e-08.
Normalized cost function value=0.00017559854757454984, variation=8.029412077044905e-08.
Normalized cost function value=0.00017552833859225085, variation=7.020898229898606e-08.
Normalized cost function value=0.00017546748180049973, variation=6.085679175112275e-08.
Normalized cost function value=0.00017541463822409427, variation=5.2843576405457986e-08.
Normalized cost function value=0.00017536876102312502, variation=4.587720096925572e-08.
Normalized cost function value=0.0001753289297468112, variation=3.9831276313806625e-08.
Normalized cost function value=0.00017529434697678936, variation=3.4582770021848817e-08.
Normalized cost function value=0.00017526432048244492, variation=3.00264943444361e-08.
Normalized cost function value=0.00017523824946933305, variation=2.6071013111870437e-08.
Normalized cost function value=0.00017521561246161291, variation=2.2637007720139463e-08.
Normalized cost function value=0.00017519595680888777, variation=1.9655652725147086e-08.
Normalized cost function value=0.0001751788895932269, variation=1.7067215660876694e-08.
Normalized cost function value=0.00017516406973047335, variation=1.4819862753537132e-08.
Normalized cost function value=0.00017515120112172468, variation=1.2868608748674596e-08.
Normalized cost function value=0.000175140026720778, variation=1.1174400946684137e-08.
Normalized cost function value=0.00017513032335864524, variation=9.703362132757387e-09.
Converged in 45 iterations.
%% Cell type:code id: tags:
``` python
errors[-1], len(errors)
```
%% Output
(0.00017513032335864524, 46)
%% Cell type:markdown id: tags:
## MU
### Beta = 2
%% Cell type:code id: tags:
``` python
rank = 2
U_lines = 500
V_lines = 250
W_lines = 50
factors_0 = []
factors_0.append(np.random.rand(U_lines, rank))
factors_0.append(np.random.rand(V_lines, rank))
factors_0.append(np.random.rand(W_lines, rank))
T = ntf.tl.kruskal_tensor.kruskal_to_tensor(([1,1],factors_0)) + 1e-2 * np.random.rand(U_lines, V_lines, W_lines)
T = tl.random.random_cp((U_lines, V_lines, W_lines), rank, full=True)
T = tl.abs(T)
T = T + 1e-2 * np.random.rand(U_lines, V_lines, W_lines)
factors, errors, toc = ntf.ntf(T, rank, init = "random", n_iter_max = 1000, tol = 1e-8, update_rule = "mu",beta = 2,
sparsity_coefficients = [None, None, None], fixed_modes = [], normalize = [False, False, False],
verbose = True, return_costs = True)
```
%% Output
Normalized cost function value=0.06205488327665974
Normalized cost function value=0.04616022530157245, variation=0.015894657975087295.
Normalized cost function value=0.03838272197718023, variation=0.0077775033243922195.
Normalized cost function value=0.034012587071037895, variation=0.0043701349061423325.
Normalized cost function value=0.031342966271618575, variation=0.00266962079941932.
Normalized cost function value=0.029574419985154574, variation=0.0017685462864640011.
Normalized cost function value=0.028284371642121924, variation=0.0012900483430326494.
Normalized cost function value=0.02722178320961526, variation=0.0010625884325066656.
Normalized cost function value=0.026212938740668323, variation=0.0010088444689469352.
Normalized cost function value=0.025114599222725152, variation=0.0010983395179431713.
Normalized cost function value=0.023792094646213225, variation=0.0013225045765119271.
Normalized cost function value=0.022117687340994858, variation=0.0016744073052183672.
Normalized cost function value=0.01999312579131303, variation=0.0021245615496818283.
Normalized cost function value=0.017398323070509324, variation=0.002594802720803705.
Normalized cost function value=0.014447478620690722, variation=0.002950844449818602.
Normalized cost function value=0.011400785324245032, variation=0.0030466932964456905.
Normalized cost function value=0.008582006323224681, variation=0.002818779001020351.
Normalized cost function value=0.006235943833355124, variation=0.0023460624898695567.
Normalized cost function value=0.004442649111992029, variation=0.001793294721363095.
Normalized cost function value=0.003146131164339459, variation=0.0012965179476525702.
Normalized cost function value=0.00223479335895634, variation=0.000911337805383119.
Normalized cost function value=0.0015998820735891707, variation=0.0006349112853671693.
Normalized cost function value=0.0011571749891436736, variation=0.0004427070844454971.
Normalized cost function value=0.0008475173109438184, variation=0.0003096576781998552.
Normalized cost function value=0.0006305454178324589, variation=0.00021697189311135955.
Normalized cost function value=0.0004784574790236319, variation=0.00015208793880882698.
Normalized cost function value=0.00037173692005273583, variation=0.00010672055897089608.
Normalized cost function value=0.0002965587056484759, variation=7.517821440425993e-05.
Normalized cost function value=0.0002431723775252892, variation=5.338632812318668e-05.
Normalized cost function value=0.00020478398832983867, variation=3.838838919545054e-05.
Normalized cost function value=0.0001767223291183554, variation=2.8061659211483267e-05.
Normalized cost function value=0.0001558089114599801, variation=2.0913417658375313e-05.
Normalized cost function value=0.00013989296160767502, variation=1.5915949852305072e-05.
Normalized cost function value=0.0001275194731506295, variation=1.237348845704552e-05.
Normalized cost function value=0.00011769936061601391, variation=9.820112534615589e-06.
Normalized cost function value=0.00010975400664711548, variation=7.945353968898428e-06.
Normalized cost function value=0.00010321179161524258, variation=6.542215031872902e-06.
Normalized cost function value=9.773984812439399e-05, variation=5.471943490848588e-06.
Normalized cost function value=9.309919033557044e-05, variation=4.640657788823556e-06.
Normalized cost function value=8.911515499632151e-05, variation=3.984035339248923e-06.
Normalized cost function value=8.565780801098975e-05, variation=3.457346985331761e-06.
Normalized cost function value=8.262882994323878e-05, variation=3.0289780677509746e-06.
Normalized cost function value=7.995262784842375e-05, variation=2.6762020948150304e-06.
Normalized cost function value=7.757022355862267e-05, variation=2.382404289801078e-06.
Normalized cost function value=7.54349844516049e-05, variation=2.135239107017774e-06.
Normalized cost function value=7.350959228010653e-05, variation=1.925392171498366e-06.
Normalized cost function value=7.176385583934087e-05, variation=1.7457364407656603e-06.
Normalized cost function value=7.017310765482606e-05, variation=1.5907481845148073e-06.
Normalized cost function value=6.871701130050391e-05, variation=1.4560963543221525e-06.
Normalized cost function value=6.73786620034738e-05, variation=1.3383492970301086e-06.
Normalized cost function value=6.614389992651125e-05, variation=1.2347620769625518e-06.
Normalized cost function value=6.500077989903932e-05, variation=1.1431200274719287e-06.
Normalized cost function value=6.393915777139595e-05, variation=1.0616221276433694e-06.
Normalized cost function value=6.295036476720162e-05, variation=9.887930041943316e-07.
Normalized cost function value=6.202694897017881e-05, variation=9.234157970228071e-07.
Normalized cost function value=6.11624685406451e-05, variation=8.644804295337044e-07.
Normalized cost function value=6.035132515151662e-05, variation=8.111433891284884e-07.
Normalized cost function value=5.958862895020247e-05, variation=7.626962013141455e-07.
Normalized cost function value=5.887008841549773e-05, variation=7.185405347047397e-07.
Normalized cost function value=5.819192000694765e-05, variation=6.781684085500813e-07.
Normalized cost function value=5.755077364859989e-05, variation=6.411463583477599e-07.
Normalized cost function value=5.694367095435441e-05, variation=6.071026942454781e-07.
Normalized cost function value=5.6367953762054066e-05, variation=5.757171923003468e-07.
Normalized cost function value=5.5821241050791076e-05, variation=5.467127112629904e-07.
Normalized cost function value=5.530139270874306e-05, variation=5.198483420480174e-07.
Normalized cost function value=5.480647892504327e-05, variation=4.949137836997888e-07.
Normalized cost function value=5.4334754219325054e-05, variation=4.7172470571821555e-07.
Normalized cost function value=5.3884635311951675e-05, variation=4.5011890737337913e-07.
Normalized cost function value=5.345468218809198e-05, variation=4.299531238596957e-07.
Normalized cost function value=5.3043581828430596e-05, variation=4.1110035966138397e-07.
Normalized cost function value=5.265013417505727e-05, variation=3.9344765337332837e-07.
Normalized cost function value=5.227323997808428e-05, variation=3.768941969729887e-07.
Normalized cost function value=5.1911890230696856e-05, variation=3.6134974738742225e-07.
Normalized cost function value=5.156515695073637e-05, variation=3.4673327996048763e-07.
Normalized cost function value=5.123218510792766e-05, variation=3.3297184280871165e-07.
Normalized cost function value=5.091218552933982e-05, variation=3.1999957858783775e-07.
Normalized cost function value=5.060442864312652e-05, variation=3.077568862133002e-07.
Normalized cost function value=5.0308238943149216e-05, variation=2.9618969997730304e-07.
Normalized cost function value=5.002299007570527e-05, variation=2.852488674439475e-07.
Normalized cost function value=4.9748100464985654e-05, variation=2.7488961071961453e-07.
Normalized cost function value=4.9483029406668487e-05, variation=2.650710583171673e-07.
Normalized cost function value=4.922727356968925e-05, variation=2.5575583697923747e-07.
Normalized cost function value=4.8980363855110824e-05, variation=2.469097145784248e-07.
Normalized cost function value=4.8741862568436544e-05, variation=2.3850128667427987e-07.
Normalized cost function value=4.851136086795391e-05, variation=2.3050170048263385e-07.
Normalized cost function value=4.828847645692143e-05, variation=2.2288441103247896e-07.
Normalized cost function value=4.807285149185031e-05, variation=2.1562496507111935e-07.
Normalized cost function value=4.786415068285517e-05, variation=2.0870080899514066e-07.
Normalized cost function value=4.766205956522369e-05, variation=2.020911176314817e-07.
Normalized cost function value=4.7466282924047955e-05, variation=1.9577664117573495e-07.
Normalized cost function value=4.7276543356046686e-05, variation=1.897395680012693e-07.
Normalized cost function value=4.709257995467747e-05, variation=1.83963401369214e-07.
Normalized cost function value=4.691414710630915e-05, variation=1.7843284836832423e-07.
Normalized cost function value=4.674101338666936e-05, variation=1.7313371963978527e-07.
Normalized cost function value=4.657296054802644e-05, variation=1.6805283864292124e-07.
Normalized cost function value=4.6409782588635465e-05, variation=1.6317795939097576e-07.
Normalized cost function value=4.625128489691095e-05, variation=1.5849769172451687e-07.
Normalized cost function value=4.6097283463596416e-05, variation=1.5400143331453228e-07.
Normalized cost function value=4.594760415590664e-05, variation=1.4967930768977877e-07.
Normalized cost function value=4.580208204823707e-05, variation=1.4552210766957061e-07.
Normalized cost function value=4.5660560804572736e-05, variation=1.4152124366433082e-07.
Normalized cost function value=4.552289210821016e-05, variation=1.3766869636257364e-07.
Normalized cost function value=4.5388935134826426e-05, variation=1.33956973383736e-07.
Normalized cost function value=4.5258556065295405e-05, variation=1.3037906953102088e-07.
Normalized cost function value=4.5131627634998104e-05, variation=1.2692843029730137e-07.
Normalized cost function value=4.500802871665461e-05, variation=1.2359891834349353e-07.
Normalized cost function value=4.488764393397601e-05, variation=1.2038478267859855e-07.
Normalized cost function value=4.477036330367598e-05, variation=1.1728063030003004e-07.
Normalized cost function value=4.465608190358711e-05, variation=1.1428140008887174e-07.
Normalized cost function value=4.4544699564824735e-05, variation=1.1138233876237496e-07.
Normalized cost function value=4.443612058611357e-05, variation=1.0857897871116535e-07.
Normalized cost function value=4.433025346854832e-05, variation=1.0586711756525066e-07.
Normalized cost function value=4.4227010669204956e-05, variation=1.032427993433635e-07.
Normalized cost function value=4.412630837214737e-05, variation=1.0070229705758799e-07.
Normalized cost function value=4.402806627549199e-05, variation=9.824209665537691e-08.
Normalized cost function value=4.393220739330269e-05, variation=9.585888218929909e-08.
Normalized cost function value=4.383865787118705e-05, variation=9.354952211564446e-08.
Normalized cost function value=4.374734681455202e-05, variation=9.131105663502881e-08.
Normalized cost function value=4.365820612856244e-05, variation=8.914068598957653e-08.
Normalized cost function value=4.3571170368922644e-05, variation=8.703575963979785e-08.
Normalized cost function value=4.3486176602667254e-05, variation=8.499376625539025e-08.
Normalized cost function value=4.340316427821337e-05, variation=8.301232445388188e-08.
Normalized cost function value=4.3322075103986055e-05, variation=8.10891742273164e-08.
Normalized cost function value=4.324285293497724e-05, variation=7.922216900881367e-08.
Normalized cost function value=4.316544366665781e-05, variation=7.74092683194293e-08.
Normalized cost function value=4.3089795135696286e-05, variation=7.564853096152664e-08.
Normalized cost function value=4.301585702698822e-05, variation=7.39381087080628e-08.
Normalized cost function value=4.2943580786535644e-05, variation=7.227624045257937e-08.
Normalized cost function value=4.2872919539751105e-05, variation=7.066124678453911e-08.
Normalized cost function value=4.280382801479496e-05, variation=6.90915249561478e-08.
Normalized cost function value=4.273626247058277e-05, variation=6.75655442121872e-08.
Normalized cost function value=4.267018062912933e-05, variation=6.608184145343683e-08.
Normalized cost function value=4.2605541611920795e-05, variation=6.463901720853756e-08.
Normalized cost function value=4.25423058800286e-05, variation=6.323573189219315e-08.
Normalized cost function value=4.2480435177703185e-05, variation=6.187070232541652e-08.
Normalized cost function value=4.241989247920104e-05, variation=6.054269850214758e-08.
Normalized cost function value=4.2360641938625237e-05, variation=5.92505405758013e-08.
Normalized cost function value=4.2302648842564146e-05, variation=5.7993096061091046e-08.
Normalized cost function value=4.2245879565342834e-05, variation=5.676927722131136e-08.
Normalized cost function value=4.219030152670324e-05, variation=5.557803863959638e-08.
Normalized cost function value=4.213588315175304e-05, variation=5.4418374950199666e-08.
Normalized cost function value=4.2082593833026915e-05, variation=5.328931872612279e-08.
Normalized cost function value=4.2030403894520025e-05, variation=5.2189938506890595e-08.
Normalized cost function value=4.19792845575656e-05, variation=5.111933695442494e-08.
Normalized cost function value=4.1929207908430826e-05, variation=5.007664913477401e-08.
Normalized cost function value=4.1880146867522124e-05, variation=4.9061040908702244e-08.
Normalized cost function value=4.183207516009377e-05, variation=4.8071707428355974e-08.
Normalized cost function value=4.178496728836488e-05, variation=4.710787172888478e-08.
Normalized cost function value=4.173879850495392e-05, variation=4.616878341095966e-08.
Normalized cost function value=4.169354478754755e-05, variation=4.525371740637501e-08.
Normalized cost function value=4.1649182814727705e-05, variation=4.4361972819842834e-08.
Normalized cost function value=4.160568994288452e-05, variation=4.3492871843184625e-08.
Normalized cost function value=4.1563044184146943e-05, variation=4.2645758737577225e-08.
Normalized cost function value=4.152122418527363e-05, variation=4.181999887331562e-08.
Normalized cost function value=4.148020920744036e-05, variation=4.1014977833265826e-08.
Normalized cost function value=4.143997910687649e-05, variation=4.023010056387362e-08.
Normalized cost function value=4.140051431629548e-05, variation=3.946479058100676e-08.
Normalized cost function value=4.1361795827077665e-05, variation=3.871848921781684e-08.
Normalized cost function value=4.132380517215874e-05, variation=3.799065491892368e-08.
Normalized cost function value=4.1286524409584344e-05, variation=3.728076257439669e-08.
Normalized cost function value=4.124993610669593e-05, variation=3.65883028884172e-08.
Normalized cost function value=4.121402332490841e-05, variation=3.59127817875141e-08.
Normalized cost function value=4.1178769605052644e-05, variation=3.525371985576908e-08.
Normalized cost function value=4.114415895324572e-05, variation=3.461065180692535e-08.
Normalized cost function value=4.1110175827267775e-05, variation=3.398312597794326e-08.
Normalized cost function value=4.1076805123412646e-05, variation=3.3370703855129414e-08.
Normalized cost function value=4.10440321637924e-05, variation=3.277295962024896e-08.
Normalized cost function value=4.10118426840687e-05, variation=3.218947972369557e-08.
Normalized cost function value=4.098022282159383e-05, variation=3.1619862474873024e-08.
Normalized cost function value=4.0949159103936545e-05, variation=3.1063717657283166e-08.
Normalized cost function value=4.091863843777735e-05, variation=3.0520666159192396e-08.
Normalized cost function value=4.088864809815394e-05, variation=2.999033962341406e-08.
Normalized cost function value=4.085917571804059e-05, variation=2.9472380113347053e-08.
Normalized cost function value=4.083020927824737e-05, variation=2.8966439793224306e-08.
Normalized cost function value=4.080173709762116e-05, variation=2.847218062620988e-08.
Normalized cost function value=4.077374782353988e-05, variation=2.7989274081278146e-08.
Normalized cost function value=4.07462304226829e-05, variation=2.7517400856979406e-08.
Normalized cost function value=4.071917417206864e-05, variation=2.7056250614258587e-08.
Normalized cost function value=4.069256865034608e-05, variation=2.66055217225622e-08.
Normalized cost function value=4.066640372933183e-05, variation=2.6164921014246222e-08.
Normalized cost function value=4.064066956578099e-05, variation=2.5734163550842433e-08.
Normalized cost function value=4.061535659338457e-05, variation=2.5312972396419507e-08.
Normalized cost function value=4.059045551498196e-05, variation=2.4901078402612823e-08.
Normalized cost function value=4.0565957294984855e-05, variation=2.44982199971034e-08.
Normalized cost function value=4.0541853151999524e-05, variation=2.4104142985330876e-08.
Normalized cost function value=4.0518134551645644e-05, variation=2.3718600353880208e-08.
Normalized cost function value=4.049479319956051e-05, variation=2.3341352085130547e-08.
Normalized cost function value=4.047182103458554e-05, variation=2.2972164974973742e-08.
Normalized cost function value=4.044921022212693e-05, variation=2.2610812458610156e-08.
Normalized cost function value=4.042695314768675e-05, variation=2.225707444017985e-08.
Normalized cost function value=4.0405042410557884e-05, variation=2.1910737128865094e-08.
Normalized cost function value=4.0383470817677335e-05, variation=2.157159288054941e-08.
Normalized cost function value=4.036223137763556e-05, variation=2.123944004177379e-08.
Normalized cost function value=4.034131729483562e-05, variation=2.0914082799940593e-08.
Normalized cost function value=4.032072196379693e-05, variation=2.059533103868777e-08.
Normalized cost function value=4.030043896360354e-05, variation=2.0283000193391807e-08.
Normalized cost function value=4.02804620524887e-05, variation=1.997691111484286e-08.
Normalized cost function value=4.026078516255509e-05, variation=1.9676889933611063e-08.
Normalized cost function value=4.0241402394626466e-05, variation=1.9382767928620892e-08.
Normalized cost function value=4.022230801322795e-05, variation=1.909438139851736e-08.
Normalized cost function value=4.020349644169024e-05, variation=1.881157153770782e-08.
Normalized cost function value=4.0184962257378345e-05, variation=1.8534184311895562e-08.
Normalized cost function value=4.016670018703794e-05, variation=1.8262070340403216e-08.
Normalized cost function value=4.014870510226076e-05, variation=1.7995084777181565e-08.
Normalized cost function value=4.0130972015062105e-05, variation=1.7733087198655605e-08.
Normalized cost function value=4.011349607357302e-05, variation=1.747594148908372e-08.
Normalized cost function value=4.009627255784129e-05, variation=1.722351573173089e-08.
Normalized cost function value=4.00792968757389e-05, variation=1.697568210239325e-08.
Normalized cost function value=4.006256455897743e-05, variation=1.6732316761465787e-08.
Normalized cost function value=4.0046071259225736e-05, variation=1.6493299751695273e-08.
Normalized cost function value=4.002981274432797e-05, variation=1.6258514897762833e-08.
Normalized cost function value=4.001378489462356e-05, variation=1.6027849704416367e-08.
Normalized cost function value=3.9997983699363174e-05, variation=1.5801195260383132e-08.
Normalized cost function value=3.9982405253221535e-05, variation=1.5578446141638585e-08.
Normalized cost function value=3.99670457529039e-05, variation=1.535950031763644e-08.
Normalized cost function value=3.99519014938444e-05, variation=1.5144259059497083e-08.
Normalized cost function value=3.993696886699755e-05, variation=1.4932626846854262e-08.
Normalized cost function value=3.992224435571512e-05, variation=1.4724511282426746e-08.
Normalized cost function value=3.990772453271424e-05, variation=1.4519823000877573e-08.
Normalized cost function value=3.98934060571285e-05, variation=1.4318475585743836e-08.
Normalized cost function value=3.9879285671644904e-05, variation=1.4120385483594976e-08.
Normalized cost function value=3.9865360199723495e-05, variation=1.39254719214098e-08.
Normalized cost function value=3.9851626542897745e-05, variation=1.3733656825749212e-08.
Normalized cost function value=3.9838081678154e-05, variation=1.3544864743744972e-08.
Normalized cost function value=3.982472265539145e-05, variation=1.335902276255026e-08.
Normalized cost function value=3.981154659495595e-05, variation=1.3176060435498725e-08.
Normalized cost function value=3.979855068525173e-05, variation=1.2995909704218117e-08.
Normalized cost function value=3.978573218042455e-05, variation=1.2818504827181358e-08.
Normalized cost function value=3.977308839811877e-05, variation=1.2643782305784288e-08.
Normalized cost function value=3.9760616717305275e-05, variation=1.2471680813493048e-08.
Normalized cost function value=3.9748314576177634e-05, variation=1.2302141127640991e-08.
Normalized cost function value=3.973617947011792e-05, variation=1.2135106059714483e-08.
Normalized cost function value=3.972420894972748e-05, variation=1.1970520390436291e-08.
Normalized cost function value=3.971240061892448e-05, variation=1.1808330803005844e-08.
Normalized cost function value=3.970075213310419e-05, variation=1.1648485820290038e-08.
Normalized cost function value=3.9689261197362024e-05, variation=1.149093574216313e-08.
Normalized cost function value=3.9677925564777144e-05, variation=1.133563258487951e-08.
Normalized cost function value=3.9666743034756454e-05, variation=1.1182530020690412e-08.
Normalized cost function value=3.96557114514366e-05, variation=1.103158331985265e-08.
Normalized cost function value=3.964482870214189e-05, variation=1.0882749294710895e-08.
Normalized cost function value=3.9634092715898646e-05, variation=1.0735986243244622e-08.
Normalized cost function value=3.962350146200331e-05, variation=1.0591253895332337e-08.
Normalized cost function value=3.9613052948643444e-05, variation=1.044851335986962e-08.
Normalized cost function value=3.960274522157039e-05, variation=1.0307727073052679e-08.
Normalized cost function value=3.9592576362820605e-05, variation=1.016885874978576e-08.
Normalized cost function value=3.958254448948774e-05, variation=1.0031873332865958e-08.
Normalized cost function value=3.9572647752540584e-05, variation=9.896736947155333e-09.
Converged in 246 iterations.
%% Cell type:code id: tags:
``` python
errors[-1], len(errors)
```
%% Output
(3.9572647752540584e-05, 247)
%% Cell type:markdown id: tags:
### Beta = 1
%% Cell type:code id: tags:
``` python
rank = 2
U_lines = 500
V_lines = 250
W_lines = 50
factors_0 = []
factors_0.append(np.random.rand(U_lines, rank))
factors_0.append(np.random.rand(V_lines, rank))
factors_0.append(np.random.rand(W_lines, rank))
T = ntf.tl.kruskal_tensor.kruskal_to_tensor(([1,1],factors_0)) + 1e-2 * np.random.rand(U_lines, V_lines, W_lines)
T = tl.random.random_cp((U_lines, V_lines, W_lines), rank, full=True)
T = tl.abs(T)
T = T + 1e-2 * np.random.rand(U_lines, V_lines, W_lines)
factors, errors, toc = ntf.ntf(T, rank, init = "random", n_iter_max = 1000, tol = 1e-8, update_rule = "mu",beta = 1,
sparsity_coefficients = [None, None, None], fixed_modes = [], normalize = [False, False, False],
verbose = True, return_costs = True)
```
%% Output
Normalized cost function value=0.19578924543454446
Normalized cost function value=0.15693180718232494, variation=0.03885743825221952.
Normalized cost function value=0.13945313906333628, variation=0.017478668118988655.
Normalized cost function value=0.1295320502494523, variation=0.009921088813883983.
Normalized cost function value=0.12226476541469254, variation=0.00726728483475976.
Normalized cost function value=0.11526700853258338, variation=0.006997756882109157.
Normalized cost function value=0.10695518655481985, variation=0.008311821977763534.
Normalized cost function value=0.09616194121970663, variation=0.010793245335113222.
Normalized cost function value=0.0824185034514818, variation=0.013743437768224828.
Normalized cost function value=0.06650756814401274, variation=0.015910935307469065.
Normalized cost function value=0.05047210142691588, variation=0.016035466717096852.
Normalized cost function value=0.03651794009063496, variation=0.013954161336280926.
Normalized cost function value=0.02571289764207691, variation=0.010805042448558046.
Normalized cost function value=0.01782736461686769, variation=0.00788553302520922.
Normalized cost function value=0.012139518313801249, variation=0.005687846303066442.
Normalized cost function value=0.00808487916535666, variation=0.004054639148444589.
Normalized cost function value=0.005313485800028935, variation=0.002771393365327725.
Normalized cost function value=0.003529252138785572, variation=0.001784233661243363.
Normalized cost function value=0.0024406481421024476, variation=0.0010886039966831245.
Normalized cost function value=0.001798994234435872, variation=0.0006416539076665756.
Normalized cost function value=0.0014254419803982768, variation=0.0003735522540375951.
Normalized cost function value=0.001206185387441296, variation=0.00021925659295698075.
Normalized cost function value=0.001074128434681294, variation=0.00013205695276000216.
Normalized cost function value=0.0009913690219989914, variation=8.275941268230257e-05.
Normalized cost function value=0.0009369047704705914, variation=5.446425152839994e-05.
Normalized cost function value=0.0008991256374036445, variation=3.777913306694694e-05.
Normalized cost function value=0.0008715471034813837, variation=2.7578533922260787e-05.
Normalized cost function value=0.0008504731440729024, variation=2.1073959408481296e-05.
Normalized cost function value=0.0008337369947806148, variation=1.6736149292287568e-05.
Normalized cost function value=0.0008200246189148038, variation=1.3712375865811057e-05.
Normalized cost function value=0.0008085087552772327, variation=1.15158636375711e-05.
Normalized cost function value=0.0007986481080015154, variation=9.860647275717282e-06.
Normalized cost function value=0.0007900748822266983, variation=8.573225774817137e-06.
Normalized cost function value=0.0007825301875690488, variation=7.5446946576494985e-06.
Normalized cost function value=0.000775825853766744, variation=6.704333802304762e-06.
Normalized cost function value=0.0007698211543465425, variation=6.004699420201543e-06.
Normalized cost function value=0.0007644081678135636, variation=5.412986532978893e-06.
Normalized cost function value=0.0007595022873190142, variation=4.905880494549377e-06.
Normalized cost function value=0.000755035890216482, variation=4.466397102532234e-06.
Normalized cost function value=0.0007509540037297723, variation=4.081886486709632e-06.
Normalized cost function value=0.0007472112665266382, variation=3.742737203134088e-06.
Normalized cost function value=0.0007437697530612501, variation=3.441513465388124e-06.
Normalized cost function value=0.0007405973855170227, variation=3.172367544227437e-06.
Normalized cost function value=0.0007376667541592142, variation=2.9306313578084282e-06.
Normalized cost function value=0.0007349542267693263, variation=2.7125273898879294e-06.
Normalized cost function value=0.0007324392661016373, variation=2.5149606676889633e-06.
Normalized cost function value=0.0007301038993213932, variation=2.3353667802440995e-06.
Normalized cost function value=0.00072793230007144, variation=2.171599249953292e-06.
Normalized cost function value=0.0007259104551396602, variation=2.021844931779761e-06.
Normalized cost function value=0.0007240258955049212, variation=1.8845596347390062e-06.
Normalized cost function value=0.0007222674769911202, variation=1.7584185138010133e-06.
Normalized cost function value=0.0007206251996122393, variation=1.642277378880873e-06.
Normalized cost function value=0.0007190900574456621, variation=1.5351421665772214e-06.
Normalized cost function value=0.0007176539128596535, variation=1.4361445860085892e-06.
Normalized cost function value=0.000716309390371686, variation=1.3445224879675161e-06.
Normalized cost function value=0.0007150497864830466, variation=1.2596038886393806e-06.
Normalized cost function value=0.0007138689926307778, variation=1.1807938522687914e-06.
Normalized cost function value=0.0007127614289961267, variation=1.1075636346510789e-06.
Normalized cost function value=0.0007117219873633468, variation=1.0394416327799217e-06.
Normalized cost function value=0.0007107459815719346, variation=9.760057914122433e-07.
Normalized cost function value=0.0007098291043764842, variation=9.168771954503946e-07.
Normalized cost function value=0.0007089673897411951, variation=8.617146352891004e-07.
Normalized cost function value=0.0007081571797647248, variation=8.102099764703075e-07.
Normalized cost function value=0.0007073950955661312, variation=7.6208419859359e-07.
Normalized cost function value=0.00070667801157208, variation=7.170839940512028e-07.
Normalized cost function value=0.0007060030327343114, variation=6.749788377685305e-07.
Normalized cost function value=0.0007053674742796009, variation=6.355584547105587e-07.
Normalized cost function value=0.0007047688436551156, variation=5.986306244852319e-07.
Normalized cost function value=0.0007042048243822871, variation=5.640192728285486e-07.
Normalized cost function value=0.000703673261574665, variation=5.315628076221334e-07.
Normalized cost function value=0.0007031721489106086, variation=5.011126640563348e-07.
Normalized cost function value=0.00070269961688163, variation=4.725320289786575e-07.
Normalized cost function value=0.0007022539221624889, variation=4.4569471914111466e-07.
Normalized cost function value=0.0007018334379707368, variation=4.204841917520132e-07.
Normalized cost function value=0.000701436645301554, variation=3.967926691828428e-07.
Normalized cost function value=0.0007010621249393429, variation=3.7452036221114534e-07.
Normalized cost function value=0.00070070855016087, variation=3.5357477847289265e-07.
Normalized cost function value=0.0007003746800559643, variation=3.338701049056996e-07.
Normalized cost function value=0.0007000593534014781, variation=3.1532665448620167e-07.
Normalized cost function value=0.0006997614830325516, variation=2.9787036892646793e-07.
Normalized cost function value=0.0006994800506621718, variation=2.814323703798213e-07.
Normalized cost function value=0.0006992141021061875, variation=2.6594855598424585e-07.
Normalized cost function value=0.0006989627428760301, variation=2.513592301573884e-07.
Normalized cost function value=0.0006987251341058509, variation=2.376087701792774e-07.
Normalized cost function value=0.0006985004887846435, variation=2.2464532120733578e-07.
Normalized cost function value=0.0006982880682671423, variation=2.1242051750122292e-07.
Normalized cost function value=0.0006980871790401591, variation=2.0088922698317628e-07.
Normalized cost function value=0.000697897169723396, variation=1.9000931676313709e-07.
Normalized cost function value=0.0006977174282859439, variation=1.7974143745212376e-07.
Normalized cost function value=0.0006975473794615151, variation=1.7004882442873265e-07.
Normalized cost function value=0.0006973864823469339, variation=1.608971145812153e-07.
Normalized cost function value=0.0006972342281700254, variation=1.5225417690847842e-07.
Normalized cost function value=0.0006970901382140502, variation=1.440899559752764e-07.
Normalized cost function value=0.0006969537618870644, variation=1.3637632698571423e-07.
Normalized cost function value=0.0006968246749254973, variation=1.2908696156715017e-07.
Normalized cost function value=0.0006967024777221097, variation=1.2219720338759506e-07.
Normalized cost function value=0.0006965867937692466, variation=1.1568395286306286e-07.
Normalized cost function value=0.00069647726820907, variation=1.0952556017663172e-07.
Normalized cost function value=0.0006963735664829727, variation=1.0370172609725555e-07.
Normalized cost function value=0.000696275373073075, variation=9.819340989771462e-08.
Normalized cost function value=0.0006961823903291293, variation=9.2982743945722e-08.
Normalized cost function value=0.0006960943373747175, variation=8.805295441177349e-08.
Normalized cost function value=0.0006960109490870384, variation=8.3388287679142e-08.
Normalized cost function value=0.0006959319751449892, variation=7.897394204922376e-08.
Normalized cost function value=0.0006958571791406469, variation=7.479600434227417e-08.
Normalized cost function value=0.0006957863377495924, variation=7.084139105450332e-08.
Normalized cost function value=0.0006957192399558775, variation=6.7097793714937e-08.
Normalized cost function value=0.0006956556863276794, variation=6.355362819809775e-08.
Normalized cost function value=0.0006955954883400798, variation=6.01979875995912e-08.
Normalized cost function value=0.0006955384677415367, variation=5.702059854308366e-08.
Normalized cost function value=0.0006954844559609863, variation=5.4011780550367906e-08.
Normalized cost function value=0.0006954332935526661, variation=5.1162408320234824e-08.
Normalized cost function value=0.000695384829675984, variation=4.846387668207188e-08.
Normalized cost function value=0.0006953389216079915, variation=4.5908067992494334e-08.
Normalized cost function value=0.0006952954342861247, variation=4.348732186680582e-08.
Normalized cost function value=0.0006952542398791509, variation=4.119440697380409e-08.
Normalized cost function value=0.0006952152173843337, variation=3.902249481717041e-08.
Normalized cost function value=0.0006951782522490108, variation=3.696513532292292e-08.
Normalized cost function value=0.0006951432360149188, variation=3.5016234091987675e-08.
Normalized cost function value=0.0006951100659837278, variation=3.3170031191035766e-08.
Normalized cost function value=0.000695078644902335, variation=3.1421081392790304e-08.
Normalized cost function value=0.0006950488806666264, variation=2.9764235708593968e-08.
Normalized cost function value=0.0006950206860424529, variation=2.8194624173555338e-08.
Normalized cost function value=0.000694993978402717, variation=2.6707639735846708e-08.
Normalized cost function value=0.0006949686794795254, variation=2.529892319160648e-08.
Normalized cost function value=0.0006949447151304103, variation=2.3964349115139158e-08.
Normalized cost function value=0.0006949220151177589, variation=2.270001265138131e-08.
Normalized cost function value=0.0006949005129006111, variation=2.1502217147756873e-08.
Normalized cost function value=0.0006948801454380386, variation=2.0367462572512714e-08.
Normalized cost function value=0.0006948608530034175, variation=1.9292434621088865e-08.
Normalized cost function value=0.0006948425790089108, variation=1.827399450672878e-08.
Normalized cost function value=0.0006948252698395641, variation=1.730916934664182e-08.
Normalized cost function value=0.0006948088746964187, variation=1.6395143145452734e-08.
Normalized cost function value=0.000694793345448132, variation=1.552924828670827e-08.
Normalized cost function value=0.0006947786364905943, variation=1.470895753764509e-08.
Normalized cost function value=0.0006947647046140839, variation=1.3931876510406803e-08.
Normalized cost function value=0.0006947515088775306, variation=1.3195736553364007e-08.
Normalized cost function value=0.0006947390104894721, variation=1.2498388058442694e-08.
Normalized cost function value=0.0006947271726953496, variation=1.1837794122553091e-08.
Normalized cost function value=0.0006947159606707588, variation=1.1212024590766083e-08.
Normalized cost function value=0.0006947053414203531, variation=1.0619250405668329e-08.
Normalized cost function value=0.0006946952836820687, variation=1.00577382844717e-08.
Normalized cost function value=0.0006946857578363887, variation=9.525845679966838e-09.
Converged in 142 iterations.
%% Cell type:code id: tags:
``` python
errors[-1], len(errors)
```
%% Output
(0.0006946857578363887, 143)
%% Cell type:markdown id: tags:
### Beta = 0
%% Cell type:code id: tags:
``` python
rank = 2
U_lines = 500
V_lines = 250
W_lines = 50
factors_0 = []
factors_0.append(np.random.rand(U_lines, rank))
factors_0.append(np.random.rand(V_lines, rank))
factors_0.append(np.random.rand(W_lines, rank))
T = ntf.tl.kruskal_tensor.kruskal_to_tensor(([1,1],factors_0)) + 1e-2 * np.random.rand(U_lines, V_lines, W_lines)
T = tl.random.random_cp((U_lines, V_lines, W_lines), rank, full=True)
T = tl.abs(T)
T = T + 1e-2 * np.random.rand(U_lines, V_lines, W_lines)
factors, errors, toc = ntf.ntf(T, rank, init = "random", n_iter_max = 1000, tol = 1e-8, update_rule = "mu",beta = 0,
sparsity_coefficients = [None, None, None], fixed_modes = [], normalize = [False, False, False],
verbose = True, return_costs = True)
```
%% Output
%% Cell type:code id: tags:
Normalized cost function value=3.189643746429902
Normalized cost function value=1.3862047423840669, variation=1.8034390040458352.
Normalized cost function value=0.9041431160144388, variation=0.4820616263696281.
Normalized cost function value=0.7557584480409153, variation=0.14838466797352345.
Normalized cost function value=0.6950356679831158, variation=0.06072278005779952.
Normalized cost function value=0.661509263989924, variation=0.033526403993191733.
Normalized cost function value=0.6389454365907349, variation=0.022563827399189162.
Normalized cost function value=0.6220868726722957, variation=0.016858563918439207.
Normalized cost function value=0.6086771880052846, variation=0.01340968466701109.
Normalized cost function value=0.5974302635173442, variation=0.011246924487940402.
Normalized cost function value=0.5874462726814291, variation=0.009983990835915058.
Normalized cost function value=0.5780011675717418, variation=0.009445105109687324.
Normalized cost function value=0.5684444296545743, variation=0.00955673791716749.
Normalized cost function value=0.5581359233370354, variation=0.01030850631753888.
Normalized cost function value=0.5464036372465587, variation=0.011732286090476718.
Normalized cost function value=0.5325206942056017, variation=0.013882943040957052.
Normalized cost function value=0.5157088789503012, variation=0.01681181525530051.
Normalized cost function value=0.49518261973375044, variation=0.020526259216550713.
Normalized cost function value=0.47024992166187773, variation=0.024932698071872705.
Normalized cost function value=0.4404779143994204, variation=0.029772007262457323.
Normalized cost function value=0.4059011563104704, variation=0.03457675808895.
Normalized cost function value=0.367202173224383, variation=0.038698983086087435.
Normalized cost function value=0.32575696929878384, variation=0.04144520392559914.
Normalized cost function value=0.2834658838099771, variation=0.04229108548880672.
Normalized cost function value=0.24239577085141414, variation=0.04107011295856297.
Normalized cost function value=0.20437147513085605, variation=0.0380242957205581.
Normalized cost function value=0.17067754698323906, variation=0.033693928147616986.
Normalized cost function value=0.14195287899431916, variation=0.0287246679889199.
Normalized cost function value=0.1182578061684789, variation=0.023695072825840255.
Normalized cost function value=0.0992367186505389, variation=0.019021087517940002.
Normalized cost function value=0.08429877840670079, variation=0.014937940243838113.
Normalized cost function value=0.07276777005873938, variation=0.011531008347961405.
Normalized cost function value=0.06398334823140296, variation=0.008784421827336422.
Normalized cost function value=0.05735681994473696, variation=0.006626528286666003.
Normalized cost function value=0.052393415959279814, variation=0.004963403985457145.
Normalized cost function value=0.04869377405955576, variation=0.0036996418997240557.
Normalized cost function value=0.04594460299925251, variation=0.00274917106030325.
Normalized cost function value=0.04390509192991645, variation=0.0020395110693360585.
Normalized cost function value=0.04239282671028759, variation=0.0015122652196288625.
Normalized cost function value=0.041271057935667606, variation=0.0011217687746199814.
Normalized cost function value=0.040438011550690774, variation=0.0008330463849768321.
Normalized cost function value=0.03981831394921292, variation=0.000619697601477856.
Normalized cost function value=0.039356316394276496, variation=0.0004619975549364219.
Normalized cost function value=0.039011003218102636, variation=0.0003453131761738601.
Normalized cost function value=0.0387521627617187, variation=0.0002588404563839339.
Normalized cost function value=0.03855753621964583, variation=0.00019462654207286906.
Normalized cost function value=0.03841070906964123, variation=0.00014682715000460117.
Normalized cost function value=0.03829955880719748, variation=0.00011115026244375159.
Normalized cost function value=0.03821511553482739, variation=8.444327237008831e-05.
Normalized cost function value=0.03815072696828101, variation=6.438856654638475e-05.
Normalized cost function value=0.038101446927041684, variation=4.9280041239323225e-05.
Normalized cost function value=0.03806358743673202, variation=3.7859490309662125e-05.
Normalized cost function value=0.03803439042065188, variation=2.919701608013886e-05.
Normalized cost function value=0.038011786744929374, variation=2.260367572250871e-05.
Normalized cost function value=0.037994219075782196, variation=1.7567669147178222e-05.
Normalized cost function value=0.03798051138322817, variation=1.3707692554022766e-05.
Normalized cost function value=0.037969772583107214, variation=1.0738800120958791e-05.
Normalized cost function value=0.0379613252028844, variation=8.447380222813272e-06.
Normalized cost function value=0.03795465242562528, variation=6.672777259117413e-06.
Normalized cost function value=0.037949358661473226, variation=5.293764152057567e-06.
Normalized cost function value=0.03794514010085248, variation=4.218560620744549e-06.
Normalized cost function value=0.03794176265275395, variation=3.3774480985293565e-06.
Normalized cost function value=0.037939045362499875, variation=2.7172902540770205e-06.
Normalized cost function value=0.03793684790721278, variation=2.1974552870951403e-06.
Normalized cost function value=0.03793506113517696, variation=1.7867720358208383e-06.
Normalized cost function value=0.03793359988456149, variation=1.4612506154670912e-06.
Normalized cost function value=0.03793239751448103, variation=1.2023700804650317e-06.
Normalized cost function value=0.037931401726595065, variation=9.957878859614966e-07.
Normalized cost function value=0.037930571362510296, variation=8.303640847695526e-07.
Normalized cost function value=0.037929873941398774, variation=6.974211115215456e-07.
Normalized cost function value=0.03792928376093327, variation=5.901804655053522e-07.
Normalized cost function value=0.03792878042827904, variation=5.033326542294714e-07.
Normalized cost function value=0.03792834772043838, variation=4.3270784066268275e-07.
Normalized cost function value=0.03792797269760161, variation=3.750228367641051e-07.
Normalized cost function value=0.037927645011441545, variation=3.276861600676195e-07.
Normalized cost function value=0.037927356364056274, variation=2.886473852714566e-07.
Normalized cost function value=0.037927100083663186, variation=2.5628039308778217e-07.
Normalized cost function value=0.03792687079102765, variation=2.292926355382252e-07.
Normalized cost function value=0.0379266641365945, variation=2.06654433149156e-07.
Normalized cost function value=0.03792647659286154, variation=1.8754373296014926e-07.
Normalized cost function value=0.03792630529001993, variation=1.7130284160615794e-07.
Normalized cost function value=0.03792614788556804, variation=1.5740445188927588e-07.
Normalized cost function value=0.03792600246066127, variation=1.4542490676949793e-07.
Normalized cost function value=0.0379258674375531, variation=1.3502310817342655e-07.
Normalized cost function value=0.037925741513707215, variation=1.25923845885334e-07.
Normalized cost function value=0.03792562360911661, variation=1.1790459060467828e-07.
Normalized cost function value=0.03792551282410621, variation=1.1078501040151512e-07.
Normalized cost function value=0.03792540840547218, variation=1.0441863403098939e-07.
Normalized cost function value=0.03792530971926393, variation=9.868620824693419e-08.
Normalized cost function value=0.03792521622886856, variation=9.349039536976633e-08.
Normalized cost function value=0.0379251274773345, variation=8.875153405946135e-08.
Normalized cost function value=0.03792504307309057, variation=8.440424393435508e-08.
Normalized cost function value=0.0379249626783888, variation=8.039470176385288e-08.
Normalized cost function value=0.037924885999934835, variation=7.667845396824857e-08.
Normalized cost function value=0.03792481278128028, variation=7.321865455600651e-08.
Normalized cost function value=0.03792474279663271, variation=6.998464757018708e-08.
Normalized cost function value=0.03792467584581088, variation=6.69508218309467e-08.
Normalized cost function value=0.037924611750125785, variation=6.409568509280206e-08.
Normalized cost function value=0.037924550349009364, variation=6.140111642044532e-08.
Normalized cost function value=0.037924491497250704, variation=5.885175866082726e-08.
Normalized cost function value=0.037924435062724374, variation=5.643452632986268e-08.
Normalized cost function value=0.03792438092451821, variation=5.413820616112508e-08.
Normalized cost function value=0.037924328971387755, variation=5.195313045741612e-08.
Normalized cost function value=0.037924279100474405, variation=4.987091335034721e-08.
Normalized cost function value=0.03792423121624136, variation=4.788423304397105e-08.
Normalized cost function value=0.037924185229585655, variation=4.59866557056543e-08.
Normalized cost function value=0.037924141057095295, variation=4.417249035992832e-08.
Normalized cost function value=0.037924098620424854, variation=4.243667044157018e-08.
Normalized cost function value=0.03792405784576901, variation=4.0774655846176344e-08.
Normalized cost function value=0.03792401866341564, variation=3.9182353368805156e-08.
Normalized cost function value=0.03792398100736585, variation=3.765604978528403e-08.
Normalized cost function value=0.03792394481500788, variation=3.6192357971698286e-08.
Normalized cost function value=0.03792391002683729, variation=3.478817059421324e-08.
Normalized cost function value=0.037923876586213094, variation=3.344062419335936e-08.
Normalized cost function value=0.03792384443914741, variation=3.214706568305248e-08.
Normalized cost function value=0.037923813534119014, variation=3.0905028397532064e-08.
Normalized cost function value=0.03792378382191037, variation=2.97122086448387e-08.
Normalized cost function value=0.037923755255462585, variation=2.856644778365114e-08.
Normalized cost function value=0.037923727789745273, variation=2.74657173116033e-08.
Normalized cost function value=0.03792370138164082, variation=2.640810445320163e-08.
Normalized cost function value=0.03792367598983852, variation=2.5391802299656874e-08.
Normalized cost function value=0.03792365157473945, variation=2.4415099067476298e-08.
Normalized cost function value=0.037923628098368925, variation=2.3476370528130452e-08.
Normalized cost function value=0.0379236055242959, variation=2.2574073027525898e-08.
Normalized cost function value=0.03792358381755951, variation=2.1706736387516745e-08.
Normalized cost function value=0.037923562944599615, variation=2.0872959895223975e-08.
Normalized cost function value=0.03792354287319373, variation=2.007140588455858e-08.
Normalized cost function value=0.037923523572396436, variation=1.930079729373091e-08.
Normalized cost function value=0.03792350501248392, variation=1.8559912516591393e-08.
Normalized cost function value=0.037923487164901036, variation=1.7847582883812052e-08.
Normalized cost function value=0.03792347000221208, variation=1.7162688957517158e-08.
Normalized cost function value=0.037923453498053074, variation=1.650415900472657e-08.
Normalized cost function value=0.037923437627088295, variation=1.5870964778508245e-08.
Normalized cost function value=0.03792342236496698, variation=1.526212131675031e-08.
Normalized cost function value=0.037923407688284276, variation=1.467668270249689e-08.
Normalized cost function value=0.03792339357454241, variation=1.4113741862720186e-08.
Normalized cost function value=0.037923380002114565, variation=1.357242784827406e-08.
Normalized cost function value=0.03792336695020995, variation=1.3051904612648713e-08.
Normalized cost function value=0.0379233543988407, variation=1.2551369249491628e-08.
Normalized cost function value=0.0379233423287904, variation=1.2070050299517465e-08.
Normalized cost function value=0.037923330721583264, variation=1.160720713988539e-08.
Normalized cost function value=0.03792331955945574, variation=1.116212752089174e-08.
Normalized cost function value=0.03792330882532772, variation=1.0734128023937028e-08.
Normalized cost function value=0.03792329850277675, variation=1.0322550966779254e-08.
Normalized cost function value=0.037923288576011974, variation=9.926764778234176e-09.
Converged in 144 iterations.
``` python
errors[-1], len(errors)
```
%% Cell type:markdown id: tags:
# NTD
%% Cell type:code id: tags:
``` python
errors[-1], len(errors)
import nn_fac.ntd as ntd
```
%% Output
%% Cell type:code id: tags:
(0.037923288576011974, 145)
``` python
rank = 2
U_lines = 500
V_lines = 250
W_lines = 50
T = tl.random.random_tucker((U_lines, V_lines, W_lines), (4,3,2), full=True)#, nonegative=True)
T = tl.abs(T)
T = T + 1e-2 * np.random.rand(U_lines, V_lines, W_lines)
core, factors, cost_fct_vals, toc = ntd.ntd(T, [4,3,2], init = "random", n_iter_max = 1000, tol = 1e-8,
sparsity_coefficients = [None, None, None, None], fixed_modes = [], normalize = [False, False, False, False],
verbose = True, return_costs = True)
```
%% Cell type:markdown id: tags:
## MU
### Beta = 2
%% Cell type:code id: tags:
``` python
rank = 2
U_lines = 500
V_lines = 250
W_lines = 50
T = tl.random.random_tucker((U_lines, V_lines, W_lines), (4,3,2), full=True)#, nonegative=True)
T = tl.abs(T)
T = T + 1e-2 * np.random.rand(U_lines, V_lines, W_lines)
core, factors, cost_fct_vals, toc = ntd.ntd_mu(T, [4,3,2], init = "random", n_iter_max = 100, tol = 1e-8, beta = 2,
sparsity_coefficients = [None, None, None, None], fixed_modes = [], normalize = [False, False, False, False],
verbose = True, return_costs = True)
```
%% Cell type:markdown id: tags:
### Beta = 1
%% Cell type:code id: tags:
``` python
rank = 2
U_lines = 500
V_lines = 250
W_lines = 50
T = tl.random.random_tucker((U_lines, V_lines, W_lines), (4,3,2), full=True)#, nonegative=True)
T = tl.abs(T)
T = T + 1e-2 * np.random.rand(U_lines, V_lines, W_lines)
core, factors, cost_fct_vals, toc = ntd.ntd_mu(T, [4,3,2], init = "random", n_iter_max = 100, tol = 1e-8, beta = 1,
sparsity_coefficients = [None, None, None, None], fixed_modes = [], normalize = [False, False, False, False],
verbose = True, return_costs = True)
```
%% Cell type:markdown id: tags:
# PARAFAC2
%% Cell type:code id: tags:
``` python
import nn_fac.parafac2 as parafac2
```
%% Cell type:code id: tags:
``` python
rank = 3
W_lines = 5
H_lines = 5
Q_lines = 5
H_0 = np.random.rand(rank, H_lines)
Q_0 = np.random.rand(Q_lines, rank)
W_1 = np.random.rand(W_lines, rank)
tensor_slices = []
W_list = []
D_list = []
for i in range(Q_lines):
diag_Q = np.diag(Q_0[i,:])
W_k = np.roll(W_1, i, axis=0)
tensor_slices.append(W_k@diag_Q@H_0)
W_list.append(W_k)
D_list.append(diag_Q)
W_list, H, D_list, errors, toc = parafac2.parafac_2(tensor_slices, rank, init_with_P = True, init = "random",
tol_mu = 1e6, step_mu = 1.02, n_iter_max=1000, tol=1e-8,
sparsity_coefficient = None, fixed_modes = [], normalize = [False, False, False, False, False],
verbose=False, return_costs=True)
errors[-1], len(errors)
```
%% Output
(0.14098569378694756, 408)
......
......@@ -7,13 +7,15 @@ Created on Tue Jun 11 15:49:25 2019
import numpy as np
import time
import math
import warnings
import nn_fac.update_rules.nnls as nnls
import nn_fac.update_rules.mu as mu
import nn_fac.utils.beta_divergence as beta_div
import nn_fac.utils.errors as err
from nimfa.methods import seeding
import math
from nimfa.methods import seeding
def nmf(data, rank, init = "random", U_0 = None, V_0 = None, n_iter_max=100, tol=1e-8,
update_rule = "hals", beta = 2,
......@@ -171,6 +173,11 @@ def nmf(data, rank, init = "random", U_0 = None, V_0 = None, n_iter_max=100, tol
Learning the parts of objects by non-negative matrix factorization.
Nature, 401(6755), 788-791.
"""
if min(data.shape) < rank:
min_data = min(data.shape)
rank = min_data
warnings.warn(f"The rank is too high for the input matrix. It was set to {min_data} instead.")
if init.lower() == "random":
k, n = data.shape
if deterministic:
......@@ -182,7 +189,9 @@ def nmf(data, rank, init = "random", U_0 = None, V_0 = None, n_iter_max=100, tol
V_0 = np.random.rand(rank, n)
elif init.lower() == "nndsvd":
U_0, V_0 = seeding.Nndsvd().initialize(data, rank, {'flag': 0})
with warnings.catch_warnings():
warnings.simplefilter("ignore") # A warning arises from the nimfa toolbox, because of the sue of np.asmatrix.
U_0, V_0 = seeding.Nndsvd().initialize(data, rank, {'flag': 0})
U_0 = np.array(U_0 + 1e-12)
V_0 = np.array(V_0 + 1e-12)
......
......@@ -495,7 +495,10 @@ def one_ntd_step(tensor, ranks, in_core, in_factors, norm_tensor,
temp = tl.tenalg.multi_mode_dot(core, elemprod, skip=mode)
# this line can be computed with tensor contractions
con_modes = [i for i in range(tl.ndim(tensor)) if i != mode]
UtU = tl.tenalg.contract(temp, con_modes, core, con_modes)
# Depending on the version of tensorly, use different version of the API
UtU = tl.tenalg.contract(temp, con_modes, core, con_modes) # Tensorly v0.6.0
# UtU = tl.tenalg.tensordot(temp, core, con_modes) # Replacing contraction because they had been removed in Tensorly v0.9.0
#UtU = unfold(temp, mode)@tl.transpose(unfold(core, mode))
# UtM
......@@ -503,7 +506,10 @@ def one_ntd_step(tensor, ranks, in_core, in_factors, norm_tensor,
temp = tl.tenalg.multi_mode_dot(tensor, factors, skip=mode, transpose = True)
# again, computable by tensor contractions
#MtU = unfold(temp, mode)@tl.transpose(unfold(core, mode))
MtU = tl.tenalg.contract(temp, con_modes, core, con_modes)
# Depedning on the version of tensorly, use different version of the API
MtU = tl.tenalg.contract(temp, con_modes, core, con_modes) # Tensorly v0.6.0
# MtU = tl.tenalg.tensordot(temp, core, con_modes) # Replacing contraction because they had been removed in Tensorly v0.9.0
UtM = tl.transpose(MtU)
......@@ -529,7 +535,7 @@ def one_ntd_step(tensor, ranks, in_core, in_factors, norm_tensor,
# better implementation: reuse the computation of temp !
# Also reuse elemprod form last update
all_MtX = tl.tenalg.mode_dot(temp, tl.transpose(factors[modes_list[-1]]), modes_list[-1])
all_MtM = tl.copy(elemprod)
all_MtM = elemprod.copy()
all_MtM[modes_list[-1]] = factors[modes_list[-1]].T@factors[modes_list[-1]]
#all_MtM = np.array([fac.T@fac for fac in factors])
......
......@@ -8,6 +8,8 @@ Created on Tue Jun 11 16:52:21 2019
import numpy as np
import time
import tensorly as tl
import warnings
from nimfa.methods import seeding
import nn_fac.update_rules.nnls as nnls
......@@ -193,7 +195,9 @@ def ntf(tensor, rank, init = "random", factors_0 = [], n_iter_max=100, tol=1e-8,
if tensor.shape[mode] < rank:
current_factor = np.random.rand(tensor.shape[mode], rank)
else:
current_factor, useless_variable = seeding.Nndsvd().initialize(tl.unfold(tensor, mode), rank, {'flag': 0})
with warnings.catch_warnings():
warnings.simplefilter("ignore") # A warning arises from the nimfa toolbox, because of the sue of np.asmatrix.
current_factor, useless_variable = seeding.Nndsvd().initialize(tl.unfold(tensor, mode), rank, {'flag': 0})
factors.append(tl.tensor(current_factor))
elif init.lower() == "custom":
......
......@@ -5,6 +5,7 @@ Created on Tue Jun 11 17:12:33 2019
@author: amarmore
"""
import warnings
import numpy as np
import time
import nn_fac.update_rules.nnls as nnls
......@@ -194,7 +195,9 @@ def parafac_2(tensor_slices, rank, init_with_P, init = "random", W_list_in = Non
elif init.lower() == "nndsvd":
for k in range(nb_channel):
W_k, H = seeding.Nndsvd().initialize(tensor_slices[k], rank, {'flag': 0})
with warnings.catch_warnings():
warnings.simplefilter("ignore") # A warning arises from the nimfa toolbox, because of the sue of np.asmatrix.
W_k, H = seeding.Nndsvd().initialize(tensor_slices[k], rank, {'flag': 0})
W_list.append(W_k)
D_list.append(np.diag(np.random.rand(rank)))
D_list = np.array(D_list)
......
......@@ -26,7 +26,7 @@ setuptools.setup(
license='BSD',
install_requires=[
'nimfa',
'numpy >= 1.18.0, <1.24', # Starting from version 1.24, the NTD algorithm (and potentially the others) does not work anymore. Realted to issue #1 https://github.com/ax-le/nn-fac/issues/1. Should be fixed in the future.
'numpy >= 1.18.0', # Starting from version 1.24, the NTD algorithm (and potentially the others) does not work anymore. Realted to issue #1 https://github.com/ax-le/nn-fac/issues/1. Should be fixed in the future.
'scipy >= 0.13.0',
'tensorly == 0.6.0',
],
......
# -*- coding: utf-8 -*-
"""
Created on Tue Feb 25 13:47:27 2020
@author: amarmore
"""
# Tests on development of the NTD algorithm.
import unittest
import random
import numpy as np
from nn_fac.nmf import nmf
import nn_fac.utils.errors as err
class NMFTests(unittest.TestCase):
def setUp(self):
"""
setUp function, not to redefine the objects in each test function.
"""
np.random.seed(0)
random.seed(0)
self.random_rank = random.randint(3,10)
self.random_shape = (random.randint(20,100), random.randint(20,100))
self.U_0 = np.random.rand(self.random_shape[0], self.random_rank)
self.V_0 = np.random.rand(self.random_rank, self.random_shape[1])
self.data_init = self.U_0@self.V_0 + 1e-2 * np.random.rand(self.random_shape[0], self.random_shape[1])
# %% Testing a decomposition
def test_decomposition_hals(self):
# If this fails, determinism has failed. Hence, the rest of the test is bound to fail.
self.assertAlmostEqual(self.data_init[0][0], 2.143518599859098)
U, V, cost_fct_vals, toc = nmf(self.data_init, self.random_rank, init = "random", U_0 = None, V_0 = None, n_iter_max=10, tol=1e-8,
update_rule = "hals", beta = 2,
sparsity_coefficients = [None, None], fixed_modes = [], normalize = [False, False],
verbose=False, return_costs=True, deterministic=True)
# Checking factors
self.assertAlmostEqual(U[0][0], 0.36681975980591014)
self.assertAlmostEqual(V[0][0], 1.3067452788067433)
# Checking errors
self.assertAlmostEqual(cost_fct_vals[0], 66.88690297118416)
self.assertAlmostEqual(cost_fct_vals[-1], 1.3318257972164844)
def test_decomposition_mu_beta2(self):
# If this fails, determinism has failed. Hence, the rest of the test is bound to fail.
self.assertAlmostEqual(self.data_init[0][0], 2.143518599859098)
U, V, cost_fct_vals, toc = nmf(self.data_init, self.random_rank, init = "random", U_0 = None, V_0 = None, n_iter_max=10, tol=1e-8,
update_rule = "mu", beta = 2,
sparsity_coefficients = [None, None], fixed_modes = [], normalize = [False, False],
verbose=False, return_costs=True, deterministic=True)
# Checking factors
self.assertAlmostEqual(U[0][0], 0.35280947364767296)
self.assertAlmostEqual(V[0][0], 0.44719984549809116)
# Checking errors
self.assertAlmostEqual(cost_fct_vals[0], 111.43110252634743)
self.assertAlmostEqual(cost_fct_vals[-1], 68.8373870926001)
def test_decomposition_mu_beta1(self):
# If this fails, determinism has failed. Hence, the rest of the test is bound to fail.
self.assertAlmostEqual(self.data_init[0][0], 2.143518599859098)
U, V, cost_fct_vals, toc = nmf(self.data_init, self.random_rank, init = "random", U_0 = None, V_0 = None, n_iter_max=10, tol=1e-8,
update_rule = "mu", beta = 1,
sparsity_coefficients = [None, None], fixed_modes = [], normalize = [False, False],
verbose=False, return_costs=True, deterministic=True)
# Checking factors
self.assertAlmostEqual(U[0][0], 0.3718053134990678)
self.assertAlmostEqual(V[0][0], 0.4367362187193684)
# Checking errors
self.assertAlmostEqual(cost_fct_vals[0], 51.47596084683006)
self.assertAlmostEqual(cost_fct_vals[-1], 32.742423893466851)
def test_decomposition_mu_beta0(self):
# If this fails, determinism has failed. Hence, the rest of the test is bound to fail.
self.assertAlmostEqual(self.data_init[0][0], 2.143518599859098)
U, V, cost_fct_vals, toc = nmf(self.data_init, self.random_rank, init = "random", U_0 = None, V_0 = None, n_iter_max=10, tol=1e-8,
update_rule = "mu", beta = 0,
sparsity_coefficients = [None, None], fixed_modes = [], normalize = [False, False],
verbose=False, return_costs=True, deterministic=True)
# Checking factors
self.assertAlmostEqual(U[0][0], 0.32746152037135323)
self.assertAlmostEqual(V[0][0], 0.4098870587115991)
# Checking errors
self.assertAlmostEqual(cost_fct_vals[0], 71.40741383137126)
self.assertAlmostEqual(cost_fct_vals[-1], 20.041539547898314)
# %% Run tests
if __name__ == '__main__':
unittest.main()
\ No newline at end of file
......@@ -10,8 +10,8 @@ import unittest
import tensorly as tl
import random
import numpy as np
from nn_fac.ntd import ntd
import nn_fac.errors as err
from nn_fac.ntd import ntd, ntd_mu
import nn_fac.utils.errors as err
class NTDTests(unittest.TestCase):
......@@ -19,41 +19,45 @@ class NTDTests(unittest.TestCase):
"""
setUp function, not to redefine the objects in each test function.
"""
self.tensor = tl.tensor(np.random.rand(random.randint(20,100), random.randint(20,100), random.randint(20,100)))
self.random_ranks = (random.randint(20,40), random.randint(20,40), random.randint(20,40))
self.random_shape_tens = (random.randint(50,100), random.randint(50,100), random.randint(50,100))
self.factors_0 = random.randint(1,10) * np.random.rand(self.random_shape_tens[0], self.random_ranks[0])
self.factors_1 = random.randint(1,10) * np.random.rand(self.random_shape_tens[1], self.random_ranks[1])
self.factors_2 = random.randint(1,10) * np.random.rand(self.random_shape_tens[2], self.random_ranks[2])
np.random.seed(0)
random.seed(0)
self.random_ranks = (random.randint(3,10), random.randint(3,10), random.randint(3,10))
self.random_shape_tens = (random.randint(20,100), random.randint(20,100), random.randint(20,100))
self.factors_0 = np.random.rand(self.random_shape_tens[0], self.random_ranks[0])
self.factors_1 = np.random.rand(self.random_shape_tens[1], self.random_ranks[1])
self.factors_2 = np.random.rand(self.random_shape_tens[2], self.random_ranks[2])
self.core = np.random.rand(self.random_ranks[0],self.random_ranks[1],self.random_ranks[2])
self.init_by_product_tensor = tl.tenalg.multi_mode_dot(self.core, [self.factors_0, self.factors_1, self.factors_2])
self.random_tucker = tl.abs(tl.random.random_tucker(self.random_shape_tens, self.random_ranks, full=True, random_state=0)) + 1e-2 * np.random.rand(self.random_shape_tens[0], self.random_shape_tens[1], self.random_shape_tens[2])
# %% Normal computation
def test_invalid_ranks_values(self):
with self.assertRaises(err.InvalidRanksException):
core, facs, errs, toc = ntd(self.init_by_product_tensor, [30,10], init = "random", return_costs = True, verbose = False,
core, facs, errs, toc = ntd(self.init_by_product_tensor, [3,4], init = "random", return_costs = True, verbose = False,
sparsity_coefficients = [None, None, None, None], normalize = [False, False, False, False])
def test_invalid_init_values(self):
with self.assertRaises(err.InvalidInitializationType):
core, facs, errs, toc = ntd(self.init_by_product_tensor, [30,10,10], init = "string", return_costs = True, verbose = False,
core, facs, errs, toc = ntd(self.init_by_product_tensor, [2,4,5], init = "string", return_costs = True, verbose = False,
sparsity_coefficients = [None, None, None, None], normalize = [False, False, False, False])
def test_invalid_custom_init_values(self):
with self.assertRaises(err.CustomNotEngouhFactors):
core, facs, errs, toc = ntd(self.init_by_product_tensor, [30,10,10], init = "custom", factors_0 = [self.factors_0, self.factors_1], return_costs = True, verbose = False,
core, facs, errs, toc = ntd(self.init_by_product_tensor, [2,4,5], init = "custom", factors_0 = [self.factors_0, self.factors_1], return_costs = True, verbose = False,
sparsity_coefficients = [None, None, None, None], normalize = [False, False, False, False])
with self.assertRaises(err.CustomNotValidFactors):
core, facs, errs, toc = ntd(self.init_by_product_tensor, [30,10,10], init = "custom", factors_0 = [self.factors_0, self.factors_1, None], return_costs = True, verbose = False,
core, facs, errs, toc = ntd(self.init_by_product_tensor, [2,4,5], init = "custom", factors_0 = [self.factors_0, self.factors_1, None], return_costs = True, verbose = False,
sparsity_coefficients = [None, None, None, None], normalize = [False, False, False, False])
with self.assertRaises(err.CustomNotValidCore):
core, facs, errs, toc = ntd(self.init_by_product_tensor, [30,10,10], init = "custom", factors_0 = [self.factors_0,self.factors_1,self.factors_2], core_0 = None, return_costs = True, verbose = False,
core, facs, errs, toc = ntd(self.init_by_product_tensor, [2,4,5], init = "custom", factors_0 = [self.factors_0,self.factors_1,self.factors_2], core_0 = None, return_costs = True, verbose = False,
sparsity_coefficients = [None, None, None, None], normalize = [False, False, False, False])
# %% Good decomposition
# %% Check that update rules indeed decrease the loss
def strictly_decreasing(self, L):
return all(x>y for x, y in zip(L, L[1:]))
......@@ -97,38 +101,117 @@ class NTDTests(unittest.TestCase):
Verifies that the "determinist" argument is correct, meaning that the result is deterministic.
This is the "Light" test, relatively fast to compute, but less complete than "heavy testing" function.
"""
self.assertTrue(self.preserve_error_n_iterations(self.tensor, [5,5,5], nb_iter = 2,
self.assertTrue(self.preserve_error_n_iterations(self.random_tucker, [5,5,5], nb_iter = 2,
init = "random", deterministic = True))
self.assertTrue(self.preserve_error_n_iterations(self.tensor, [5,5,5], nb_iter = 2,
self.assertTrue(self.preserve_error_n_iterations(self.random_tucker, [5,5,5], nb_iter = 2,
init = "random", deterministic = True))
self.assertTrue(self.preserve_error_n_iterations(self.tensor, [5,5,5], nb_iter = 2,
self.assertTrue(self.preserve_error_n_iterations(self.random_tucker, [5,5,5], nb_iter = 2,
init = "tucker", deterministic = True))
self.assertTrue(self.preserve_error_n_iterations(self.tensor, [5,5,5], nb_iter = 2,
self.assertTrue(self.preserve_error_n_iterations(self.random_tucker, [5,5,5], nb_iter = 2,
init = "tucker", deterministic = True))
self.assertFalse(self.preserve_error_n_iterations(self.tensor, [5,5,5], nb_iter = 2,
self.assertFalse(self.preserve_error_n_iterations(self.random_tucker, [5,5,5], nb_iter = 2,
init = "random", deterministic = False))
self.assertFalse(self.preserve_error_n_iterations(self.tensor, [5,5,5], nb_iter = 2,
self.assertFalse(self.preserve_error_n_iterations(self.random_tucker, [5,5,5], nb_iter = 2,
init = "random", deterministic = False))
# # Heavy testing, long to compute, prefer it to be commented when running the tests.
# def test_heavy_determinism(self):
# """
# Verifies that the "determinist" argument is correct, meaning that the result is deterministic.
# This is the "Heavy" test, robuster and harder to verify (much confident that the result is correct",
# but long to compute.
# """
# self.assertTrue(self.preserve_error_n_iterations(self.tensor, [17,18,19], nb_iter = 5,
# init = "random", deterministic = True))
# self.assertTrue(self.preserve_error_n_iterations(self.tensor, [17,18,19], nb_iter = 5,
# init = "random", deterministic = True))
# self.assertTrue(self.preserve_error_n_iterations(self.tensor, [17,18,19], nb_iter = 5,
# init = "tucker", deterministic = True))
# self.assertTrue(self.preserve_error_n_iterations(self.tensor, [17,18,19], nb_iter = 5,
# init = "tucker", deterministic = True))
# self.assertFalse(self.preserve_error_n_iterations(self.tensor, [17,18,19], nb_iter = 5,
# init = "random", deterministic = False))
# self.assertFalse(self.preserve_error_n_iterations(self.tensor, [17,18,19], nb_iter = 5,
# init = "random", deterministic = False))
# # # Heavy testing, long to compute, prefer it to be commented when running the tests.
# # def test_heavy_determinism(self):
# # """
# # Verifies that the "determinist" argument is correct, meaning that the result is deterministic.
# # This is the "Heavy" test, robuster and harder to verify (much confident that the result is correct",
# # but long to compute.
# # """
# # self.assertTrue(self.preserve_error_n_iterations(self.random_tucker, [17,18,19], nb_iter = 5,
# # init = "random", deterministic = True))
# # self.assertTrue(self.preserve_error_n_iterations(self.random_tucker, [17,18,19], nb_iter = 5,
# # init = "random", deterministic = True))
# # self.assertTrue(self.preserve_error_n_iterations(self.random_tucker, [17,18,19], nb_iter = 5,
# # init = "tucker", deterministic = True))
# # self.assertTrue(self.preserve_error_n_iterations(self.random_tucker, [17,18,19], nb_iter = 5,
# # init = "tucker", deterministic = True))
# # self.assertFalse(self.preserve_error_n_iterations(self.random_tucker, [17,18,19], nb_iter = 5,
# # init = "random", deterministic = False))
# # self.assertFalse(self.preserve_error_n_iterations(self.random_tucker, [17,18,19], nb_iter = 5,
# # init = "random", deterministic = False))
# %% Test of NTD on one particular test
def test_decomposition_hals(self):
# If this fails, determinism has failed. Hence, the rest of the test is bound to fail.
self.assertAlmostEqual(self.random_tucker[0][0][0], 21.974433828159626)
core, factors, cost_fct_vals, toc = ntd(self.random_tucker, self.random_ranks, init = "random", n_iter_max = 10, tol = 1e-8,
deterministic = True,sparsity_coefficients = [None, None, None, None], fixed_modes = [], normalize = [False, False, False, False],
verbose = False, return_costs = True)
# Checking factors
self.assertAlmostEqual(factors[0][0][0], 0.15008560444598218)
self.assertAlmostEqual(factors[1][0][0], 0.5932534337969397)
self.assertAlmostEqual(factors[2][0][0], 0.5827772361357559)
self.assertAlmostEqual(core[0,0,0], 0.644143536068335)
# Checking errors
self.assertAlmostEqual(cost_fct_vals[0], 0.0009901099693517598)
self.assertAlmostEqual(cost_fct_vals[-1], 0.00012342263436269062)
def test_decomposition_mu_beta2(self):
# If this fails, determinism has failed. Hence, the rest of the test is bound to fail.
self.assertAlmostEqual(self.random_tucker[0][0][0], 21.974433828159626)
core, factors, cost_fct_vals, toc = ntd_mu(self.random_tucker, self.random_ranks, init = "random", n_iter_max = 10, tol = 1e-8, beta = 2,
deterministic = True,sparsity_coefficients = [None, None, None, None], fixed_modes = [], normalize = [False, False, False, False],
verbose = False, return_costs = True)
# Checking factors
self.assertAlmostEqual(factors[0][0][0], 0.4918486535796236)
self.assertAlmostEqual(factors[1][0][0], 0.7948442026225503)
self.assertAlmostEqual(factors[2][0][0], 0.5126011046374159)
self.assertAlmostEqual(core[0,0,0], 0.6401491933742705)
# Checking errors
self.assertAlmostEqual(cost_fct_vals[0], 45250.45478060806)
self.assertAlmostEqual(cost_fct_vals[-1], 42246.166217618826)
def test_decomposition_mu_beta1(self):
# If this fails, determinism has failed. Hence, the rest of the test is bound to fail.
self.assertAlmostEqual(self.random_tucker[0][0][0], 21.974433828159626)
core, factors, cost_fct_vals, toc = ntd_mu(self.random_tucker, self.random_ranks, init = "random", n_iter_max = 10, tol = 1e-8, beta = 1,
deterministic = True,sparsity_coefficients = [None, None, None, None], fixed_modes = [], normalize = [False, False, False, False],
verbose = False, return_costs = True)
# Checking factors
self.assertAlmostEqual(factors[0][0][0], 0.5590567522139028)
self.assertAlmostEqual(factors[1][0][0], 0.7579973274629266)
self.assertAlmostEqual(factors[2][0][0], 0.4717461273286412)
self.assertAlmostEqual(core[0,0,0], 0.6397194128224372)
# Checking errors
self.assertAlmostEqual(cost_fct_vals[0], 2636.709914183355)
self.assertAlmostEqual(cost_fct_vals[-1], 2474.7683618573797)
def test_decomposition_mu_beta0(self):
# If this fails, determinism has failed. Hence, the rest of the test is bound to fail.
self.assertAlmostEqual(self.random_tucker[0][0][0], 21.974433828159626)
core, factors, cost_fct_vals, toc = ntd_mu(self.random_tucker, self.random_ranks, init = "random", n_iter_max = 10, tol = 1e-8, beta = 0,
deterministic = True,sparsity_coefficients = [None, None, None, None], fixed_modes = [], normalize = [False, False, False, False],
verbose = False, return_costs = True)
# Checking factors
self.assertAlmostEqual(factors[0][0][0], 0.6112093668857077)
self.assertAlmostEqual(factors[1][0][0], 0.7871188331570661)
self.assertAlmostEqual(factors[2][0][0], 0.43120029540647997)
self.assertAlmostEqual(core[0,0,0], 0.6350545357176396)
# Checking errors
self.assertAlmostEqual(cost_fct_vals[0], 21192.73157719653)
self.assertAlmostEqual(cost_fct_vals[-1], 189.0160787574748)
# %% Run tests
if __name__ == '__main__':
......
......@@ -9,8 +9,8 @@ Created on Tue Feb 25 13:47:27 2020
import unittest
import random
import numpy as np
import nn_fac.nnls as nnls
import nn_fac.errors as err
import nn_fac.update_rules.nnls as nnls
import nn_fac.utils.errors as err
class NnlsTests(unittest.TestCase):
......