# Self-Organizing Maps clarity

I have spent sometime reading on self organizing maps. However i am still confused around a few areas.

Broadly i understand its a visual technique to reduce high dimensional data - using artificial neural networks and is unsupervised. In terms of its purpose it is pretty much similar to Tsne(Stochastic Neighbor embedding) {Please correct or add here if i am wrong or missing something}

Steps in Self Organizing broadly ( here is where i am not very confident ), please help correct/add :

1. Initialize the weights of each node
2. Choose a random input vector or data point from the train data
3. Calculate best matching unit for the data point (Euclidean distance is used - distance between input vector and node is calculated)
4. Check for neighborhood around BMU , it reduces exponentially until you reach just BMU
5. Re-adjust weights of the BMU and the neighboring nodes so that it gets more similar to the input data point.

1.What exactly is the output of this algorithm ? i have gone through multiple sources which give multiple graphs . As a final output does it also have a graph like Tsne giving natural clusters ? or it has multiple graphs which can help in interpretation of data ? how exactly do we understand the graphs generated here ?

2.Also does it use something like elbow curve to give optimal number of clusters ?