An Optimization Methodology for Neural Network Weights and Architectures | Synapse