Комментарии 13
Отличный пост
0
Зашёл в статью, чтобы посмотреть мультик в конце игры.
+2
Отличная статья! Крутяк
0
Насколько я помню, в классическом генетическом алгоритме помимо мутаций большую роль играет скрещивание популяции. Интересно было бы попробовать на этом примере.
0
Собственно, существует две больших группы методов обучения нейронной сети. Обучение с учителем и обучение без учителя.Скорее это две группы методов машинного обучения (а нейросети — это подмножество ML). Как раз сети обычно учат в supervised/self-supervised парадигме, а под unsupervised часто имеют в виду кластеризацию и другие менее модные методы.
Пример с погодой, который мы рассмотрели выше, относится к группе методов обучения с подкреплением (без учителя).Unsupervised learning и reinforcement learning — две сильно разные вещи.
Наконец, стоит отметить, что подбирать веса для нейросети генетическим алгоритмом — неоптимально (не говоря уже о том, что для этого и Tensorflow не нужен). Почти любая неигрушечная модель слишком сложна для этого, потому обычно используются какие-то вариации на тему SGD.
+1
Спасибо за замечание, поправил, а могли бы Вы развернуть в чем принципиальная разница между unsupervised learning и reinforcement learning, что мы не можем обобщить их в одну сущность по признаку отсутствия учителя?
0
В unsupervised learning у нас обычно есть просто какие-то данные, и мы ищем в них структуру — например, кластера или какое-то более компактное представление.
В reinforcement learning сценарий предполагает, что есть агент, который взаимодействует со средой и получает какое-то вознаграждение; модель стремится выбирать такие действия, которые максимизируют вознаграждение.
В reinforcement learning сценарий предполагает, что есть агент, который взаимодействует со средой и получает какое-то вознаграждение; модель стремится выбирать такие действия, которые максимизируют вознаграждение.
+2
Залипательно)
0
Очень доступно! Спасибо за статью
0
Отличная статья!
Залип на демку)
Залип на демку)
0
Большое спасибо за интересную статью. Всё очень доходчиво рассказано.
А не могли бы Вы пожалуйста на этом примере показать, как можно сохранить обученную модель например в localeStorage, и при обновлении страницы её снова загрузить?
Буду Вам очень благодарен
0
Почитать про сохранение/загрузку модели можно здесь.
В двух словах. Как только мы определились какой дино самый лучший сохранить его мозг можно таким образом.
Лучше всегда указывать версию вашей модели, чтобы отследить прогресс.
Потом, в конструкторе дино можно проверить, что если у нас есть сохраненная модель, то использовать ее, иначе создавать новую. Загрузить модель можно так:
В двух словах. Как только мы определились какой дино самый лучший сохранить его мозг можно таким образом.
await dino[k].brain.save('localstorage://dino-brain-v0');
Лучше всегда указывать версию вашей модели, чтобы отследить прогресс.
Потом, в конструкторе дино можно проверить, что если у нас есть сохраненная модель, то использовать ее, иначе создавать новую. Загрузить модель можно так:
const dinoBrain = await tf.loadLayersModel('localstorage://dino-brain-v0');
0
Большое спасибо.
Сохранение модели в 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 ) === '{}'
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Фронтендер пишет нейронки. Уровень сложности «хочу на ручки»