Comments 13
Отличный пост
Зашёл в статью, чтобы посмотреть мультик в конце игры.
Отличная статья! Крутяк
Насколько я помню, в классическом генетическом алгоритме помимо мутаций большую роль играет скрещивание популяции. Интересно было бы попробовать на этом примере.
Собственно, существует две больших группы методов обучения нейронной сети. Обучение с учителем и обучение без учителя.Скорее это две группы методов машинного обучения (а нейросети — это подмножество ML). Как раз сети обычно учат в supervised/self-supervised парадигме, а под unsupervised часто имеют в виду кластеризацию и другие менее модные методы.
Пример с погодой, который мы рассмотрели выше, относится к группе методов обучения с подкреплением (без учителя).Unsupervised learning и reinforcement learning — две сильно разные вещи.
Наконец, стоит отметить, что подбирать веса для нейросети генетическим алгоритмом — неоптимально (не говоря уже о том, что для этого и Tensorflow не нужен). Почти любая неигрушечная модель слишком сложна для этого, потому обычно используются какие-то вариации на тему SGD.
Спасибо за замечание, поправил, а могли бы Вы развернуть в чем принципиальная разница между unsupervised learning и reinforcement learning, что мы не можем обобщить их в одну сущность по признаку отсутствия учителя?
В unsupervised learning у нас обычно есть просто какие-то данные, и мы ищем в них структуру — например, кластера или какое-то более компактное представление.
В reinforcement learning сценарий предполагает, что есть агент, который взаимодействует со средой и получает какое-то вознаграждение; модель стремится выбирать такие действия, которые максимизируют вознаграждение.
В reinforcement learning сценарий предполагает, что есть агент, который взаимодействует со средой и получает какое-то вознаграждение; модель стремится выбирать такие действия, которые максимизируют вознаграждение.
Залипательно)
Очень доступно! Спасибо за статью
Отличная статья!
Залип на демку)
Залип на демку)
Большое спасибо за интересную статью. Всё очень доходчиво рассказано.
А не могли бы Вы пожалуйста на этом примере показать, как можно сохранить обученную модель например в localeStorage, и при обновлении страницы её снова загрузить?
Буду Вам очень благодарен
Почитать про сохранение/загрузку модели можно здесь.
В двух словах. Как только мы определились какой дино самый лучший сохранить его мозг можно таким образом.
Лучше всегда указывать версию вашей модели, чтобы отследить прогресс.
Потом, в конструкторе дино можно проверить, что если у нас есть сохраненная модель, то использовать ее, иначе создавать новую. Загрузить модель можно так:
В двух словах. Как только мы определились какой дино самый лучший сохранить его мозг можно таким образом.
await dino[k].brain.save('localstorage://dino-brain-v0');
Лучше всегда указывать версию вашей модели, чтобы отследить прогресс.
Потом, в конструкторе дино можно проверить, что если у нас есть сохраненная модель, то использовать ее, иначе создавать новую. Загрузить модель можно так:
const dinoBrain = await tf.loadLayersModel('localstorage://dino-brain-v0');
Большое спасибо.
Сохранение модели в localStorage получается без проблем, но к сожалению после её последующей загрузки есть проблемы.
Вот так выглядит мой вариант:
После загрузки модели она имеет такое значение:
Сохранение модели в localStorage получается без проблем, но к сожалению после её последующей загрузки есть проблемы.
Вот так выглядит мой вариант:
async loadModel() {
const model = await tf.loadLayersModel('localstorage://dino-ml-model-v0');
return model;
}
async saveModel() {
await this.model.save('localstorage://dino-ml-model-v0');
}
После загрузки модели она имеет такое значение:
JSON.stringify( this.model ) === '{}'
Sign up to leave a comment.
Фронтендер пишет нейронки. Уровень сложности «хочу на ручки»