![]() |
De embedded layer levert een validation accuracy op van zo'n 75%! Dat schiet lekker op!
Een 2e 'slag' die we maken is het LSTM. Dat levert ook al verbeteringen maar met een bidirectionele LSTM komen we net bij de 82%
Toch moet het nog beter kunnen volgens de recente publicaties. Een LSTM zou feitelijk zijn afgeschreven en ingehaald door attention mechanismes. Ik vind een informele Keras attentie publicatie:
https://pypi.org/project/keras-self-attention/
Na wat gehannes lukt het me om die aan te passen voor deze casus. Met name moet ik een 'Flatten' layer toevoegen om weer op de juiste dimensies uit te komen. Eerst lukt dat niet omdat er in het voorbeeld uit wordt gegaan van 'masking' (mask_zero=True) en dat gata blijkbaar weer niet samen met de latere Flatten layer. Maar het lukt!!! We komen nu in 3 (lange) epochs uit op 84.1% (met een val_loss 0.797).
Leuk, ook weer gelukt!!
Met een conv1d layeripv een bi directioneel lstm gaat het ietjes minder goed (val acc 83.4%) maar wel veel sneller: 170seconden per epoch ipv 760 sec: