Context relevant self organizing map (CRSOM) is an artificial neural network proposed by Pitoyo Hartono. CRSOM consists of three layers, where the neurons in hidden layer are aligned in a 2D grid like in well-known SOM. Mathematical definition, properties and empirical experiments can be found in original paper.
git clone [email protected]:liskape/crsom.git --branch master --depth 1
- add to path in IDE (selected folders and subfolders)
metacentrum_run_batched('db_ep_acdc', 0.1, 2000, 4, 1)
Where db_ep_acdc is sample dataset consisting of songs of David Bowie, Elvis Presley and AC/DC. Each song is represented by timbre features from The Echo Nest API. 90 features are result of covariance matrix and mean over all 12-dim timbre vectors from segments provided by EchoNestAnalyzer. You can find more datasets in /dataset
folder. Other parameters are: learning rate, number of epochs, type of normalization and relative size of hidden layer to number of input vector.
Originally metacentrum_run_batched
was used to run computations on remote clusters. You can easily setup framework for your remote clusters with git repo -- take a look at param_space_sampling.sh
. Another way to work with CRSOM is directly call create_crsom
, you can find inspiration in train_problem.m
.
After training is finished, results are stored in /results
folder. You can load .mat
file to your workspace and investigate trained net further.
or load already computed result:
load('results/db_ep_acdc_ep=2000_norm=4_size=1.00_LR2=0.10_.mat')
With .mat
loaded in your workspace you can treat it the same way as result of matlab's trained selforgmap
e.g. call plotting functions (plotsompos
, plotsomhits
, plotsomnd
).
plotsompos(crsom, in)
plotsomhits(crsom, in)
plotsomnd(crsom)
plot_crsom_summary(crsom, us,uc, in, ta)
animate_map_formation( crsom, in, ta )
my_plot_som_no_confl(us, in, ta)
my_plot_som_no_confl(crsom, in, ta)
plot_crsom_crosses(crsom, in, ta)
plot_crsom_attrs(crsom)
plot_citizenship( crsom )
Context-relevant self organizing map implemented in Matlab
Copyright (C) 2016 Petr Liška
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.