Усовершенствование модели машинного обучения для данных периодов c - PullRequest
0 голосов
/ 10 марта 2020

Я изучаю ML с помощью TensorFlow (tf js).
Моим первым тестом было обучение моей модели прогнозированию cos(x) как функции x (от 0 до 2 * Math.PI * 4 aka 4 периоды)

особенность: 2000 значений x (случайных)
метка: 2000 значений cos (x)

модель:

const model = tf.sequential({
    layers: [
        tf.layers.dense({ inputShape: [1], units: 22, activation: 'tanh' }),
        tf.layers.dense({ units: 1 }),
    ]
});

model.compile({
    optimizer: tf.train.adam(0.01),
    loss: 'meanSquaredError',
    metrics: ['mae']
});

...

await model.fit(feature, label, {
    epochs: 500,
    validationSplit: 0.2,
})

Результат довольно "fun":

enter image description here

Теперь я хотел бы узнать, как улучшить мою модель, чтобы она соответствовала периодической природе cos (x) (без использования математическая периодичность cos (x), подобная y = cos (x по модулю 2PI)).
Возможно ли, чтобы моя модель "поняла", что существует периодичность?

1 Ответ

1 голос
/ 10 марта 2020

Я думаю, что сеть, которую вы построили, слишком мала, чтобы узнать периодическое c поведение функции косинуса (попробуйте увеличить количество скрытых единиц и / или добавить скрытые слои), также я не думаю, что обычная ( полностью подключенная нейронная сеть) - это правильный выбор, если вы хотите изучить функцию, имеющую периодичность c, попробуйте использовать RNN или LSTM для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...