Reducing Fine-Tuning Memory Overhead by Approximate and Memory-Sharing Backpropagation