Techniques for Enhancing the Efficiency and Trustworthiness of Neural Networks