The thought process should not be: “I have some data, why don’t we try neural networks”
But it should be: “Given the problem, does it make sense to use neural networks?”
Drop-in question: "I tried deep learning on my data and it didn't perform better than this other simpler method"
from tensorflow.keras.layers import Dense
from tensorflow.keras.models import Sequential
model = Sequential()
model.add(Dense(1000, input_dim=5000))
model.add(Dense(500))
model.add(Dense(2, activation="softmax"))
model.summary()
Model: "sequential_2" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= dense_4 (Dense) (None, 1000) 5001000 _________________________________________________________________ dense_5 (Dense) (None, 500) 500500 _________________________________________________________________ dense_6 (Dense) (None, 2) 1002 ================================================================= Total params: 5,502,502 Trainable params: 5,502,502 Non-trainable params: 0 _________________________________________________________________
... is Deep Learning the right choice?
The tasks were Deep Learning shine are those that require feature extraction:
Deep Learning makes feature extraction automatic and seem to work best when there is a hierarchy to these features
Is your data made that way?
All these different types of layers need to be there for a reason
source: datarobot
... you need a few more things:
And therein lies the main issue:
(https://www.datarobot.com/blog/identifying-leakage-in-computer-vision-on-medical-images/)
Jupyter notebook (download from canvas module page)
Visualize the layers of a NN for Natural Language Processing:
Train, validation and test sets cannot be too similar to each other, or you will not be able to tell if the network is generalizing or just memorizing
Jupyter notebook:
session_goodPracticesDatasetDesign/lab_validation/rigorous_train_validation_splitting.ipynb
Two different strategies will be tested:
Which works best? Different groups test different networks on each strategy