Why is my neural network not learning? I am using the Keras library (with Python 3.6) to create a neural network.

My network maintains a constant overall maximum accuracy of 62.5%, over 16 training samples.

In what ways can I increase this accuracy? 

Should I increase the number of training samples, or will restricting some of the data in the training samples help? Or something else that I might not know of?

Any help is greatly appreciated.

Here are the layers of my neural network:

# Build neural network
# Neural net with multiple layers
model = Sequential()

model.add(Dense(32, input_dim=17, init='uniform', activation='sigmoid'))
model.add(Dense(64, init='uniform', activation='relu'))
model.add(Dense(64, init='uniform', activation='relu'))
model.add(Dense(64, init='uniform', activation='relu'))
model.add(Dense(32, init='uniform', activation='relu'))
model.add(Dense(16, init='uniform', activation='sigmoid'))
model.add(Dense(4, init='uniform', activation='sigmoid'))
model.add(Dense(1, init='uniform', activation='sigmoid'))

# Compile model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# Fit model
history = model.fit(X, Y, validation_split=0.46, nb_epoch=150, batch_size=3)
A neural network is the wrong approach for a problem with a small training set. Even if you only have 2 features that are very representative of your function then 16 feature are not sufficient. 

As a very general rule of thumb I use 100 examples for each feature in my dataset. This then increases exponentially with every single different class you expect. 16 instances is not enough to train a neural network. You will always have huge error margins when applying your model on a testing set. Even more problematic is the fact that you are using a very deep neural network. This will require even more training instances to properly learn the function. 

I suggest you use a general machine learning technique such as SVM. This will likely result in better result. Try these techniques instead and see what results you get: k-NN, kernel SVM, k-means clustering.  

But, be warned 16 training instances is still very little.