To add a little to @Frank_Harrell's answer,
The class imbalance problem is often not because of imbalance per se, but because you have to few examples of the minority class to properly characterise it's distribution. Adding more data may resolve the imbalance problem if that is possible. Unless you have a very large dataset, undersampling is likely to make things worse by having too few examples to properly characterise the majority class as well. Given a choice between the two, I would choose differential weighting of examples of the two classes.
In most practical applications, where you do have to make a forced choice, especially things like medical screening tests, the false positive and false negative misclassification costs are differen. You may find that weighting the examples according to their misclassification costs is sufficient to deal with the problem (i.e. minimum risk classification). Accounting for misclassification costs is a good thing to do anyway, but if you have a probabilistic classifier that does not have an estimation issue in unbalanced settings, then as @Frank-Harrell suggests, it is better to apply them to well-calibrated probabilities from your classifier.
If you are going to weight the patterns, I suggest selecting the weights to exactly balance the positive and negative classes to avoid any bias in the estimation of the model parameters caused by the imbalance, but then scale the output probabilities from the model to reflect the operational class frequencies (because otherwise the model is likely to wildly over-predict the minority class in operational use).
I would also investigate the data with something simple, like regularised logistic regression before looking at deep learning (if you haven't already). There are far fewer pitfalls and DL may not necessarily work better (and could be a lot worse if you fall into one of the many pitfalls).
I would strongly recommend never use machine learning models with their default parameter settings.