-Makefile
--Changes the makefile to use the compiler on my computer that supports
  openmp. This change probably should not be merged.
--Adds output_layer.cpp to the sources in the Makefile.

-hidden_layer.cpp
--Moves the omp pragma to the inner loop on the updateWeights function
  to better utilize parallelism for small outputs.
--Adds a pragma omp to another loop in the function mentioned just
  above.

-hidden_layer.h
--changes the private members of this class to protected so that the
  inheriting output_layer class can utilize that data.
--removes virtual keyword from the encode function (causes undefined
  symbol issues for some reason...)
--declares the softMaxTransform function, though hidden layer does not
  use it.

-neural_network.cpp
--Changes the output layer from an instance of hidden_layer to an
  instance of output_layer so that I could use the output layer
  function.
--Changes the squared_loss function in the backprop function to a
  cross entropy loss function.

-neural_network.h
--Adds output_layer.h header because it is needed with my changes.
--Ensure that the output layer o is indeed an instance of output_layer.

-output_layer.cpp
--Changes the softMaxTransform function... what was in there was not
  what any reference I could find had as the softmax function. The one
  that was there has been kept, but commented out, however.
--Creates a compute_delta_output function for the output layer. This
  delta is computed in a different way due to the fact that we use the
  cross entropy loss here. Note that like the sigmoid function, the
  softmax function satisifies the same dericative properties, i.e.
  s' = s(1-s).
--Implements the cross_entropy_loss function. Notes that this function
  is not exactly the cross entropy loss, but rather is thresholded so
  that overflow/underflow doesn't result in computing log(0) which
  results in a -inf. This can then cause nan's later on.

-output_layer.h
--Adds the necessary declarations
Lowered learning rate. Moves weight update parallel loop to outside only
Using older style constructor inheritance
Adds flag for specifiying whether to use cross entropy or square loss
function.
Fixes flag option for different network
Flag didn't work. Creates a new class for the cross entropy neural network
Merge branch 'master' of https://github.com/jasonzliang/autoencoder