Hidden Layers in ML5
De standaard instelling in ML5 is dat er één hidden layer is met 16 neurons. In deze afbeelding zie je dat er 4 inputs zijn en 2 outputs.
const options = {
task: 'classification',
debug: true
}
nn = ml5.neuralNetwork(options)
Dit kan je ook zien in het debug venster.
Een neural network kan effectiever worden met een afgestemde configuratie van hidden layers. De juiste afstemming kan je vinden door te testen! Let op dat de configuratie voor classification en regression er iets anders uit ziet.
In dit voorbeeld maken we 3 hidden layers die elk 32 neurons hebben.
In code ziet dit er als volgt uit. De laatste layer is de output layer. ML5 bedenkt zelf hoeveel output neurons er nodig zijn, gebaseerd op je data. De input layer hoef je helemaal niet mee te geven.
const options = {
task: 'classification',
debug: true,
layers: [
{
type: 'dense',
units: 32,
activation: 'relu',
}, {
type: 'dense',
units: 32,
activation: 'relu',
}, {
type: 'dense',
units: 32,
activation: 'relu',
},
{
type: 'dense',
activation: 'softmax',
},
]
}
nn = ml5.neuralNetwork(options)
In de model summary kan je zien of je instellingen goed zijn gegaan:
Bij regression moet je opletten dat activation
bij de output layer op sigmoid
staat. Dit zorgt ervoor dat je output een getal tussen 0 en 1 wordt. Je kan dit ook leeg laten, dan krijg je een getal dat niet wordt afgerond.
const options = {
task: 'regression',
debug: true,
layers: [
{
type: 'dense',
units: 32,
activation: 'relu',
}, {
type: 'dense',
units: 16,
activation: 'relu',
},
{
type: 'dense',
activation: 'sigmoid', // <-- opgelet!
},
]
}
nn = ml5.neuralNetwork(options)