Pull to refresh
20
0
Send message

World Models — обучение в воображении

Reading time10 min
Views4.9K

Обучение с подкреплением (Reinforcement Learning) плохо, а точнее, совсем не работает с высокими размерностями. А также сталкивается с проблемой, что физические симуляторы довольно медленные. Поэтому в последнее время стал популярен способ обойти эти ограничения с помощью обучения отдельной нейросети, которая имитирует физический движок. Получается что-то вроде аналога воображения, в котором и происходит дальнейшее основное обучение.


Давайте посмотрим, какой прогресс достигнут в этой сфере и рассмотрим основные архитектуры.

Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments10

Sample-efficient reinforcement learning: пытаемся воспроизвести обучение в воображении

Reading time20 min
Views4.1K

Одна из крупных проблем обучения с подкреплением - это неэффективность по данным. Да, мы можем обучить нейросеть, которая будет играть в Пакмена лучше человека. Для этого ей потребуется сделать огромное, прямо-таки астрономическое число попыток. Для сравнения: мой кот тоже умеет разрабатывать сложные стратегии, и при этом ему не нужны тысячи повторений, чтобы обучиться чему-то элементарному.

В 2020 году Google выпустил статью “Dream to control: learning behaviours by latent imagination”. В статье описывался новейший алгоритм обучения в подкреплением - Dreamer. Алгоритм примечателен тем, что относительно быстро выучивает выигрышную стратегию - совершая относительно мало взаимодействий со средой.

После этого я очень захотел свой собственный Dreamer - желательно не как у гугла, а лучше. Кроме того, по математическому описанию код можно написать сильно по-разному - я хотел понять, какие есть подводные камни.

Дисклеймер:

Я не пытаюсь сделать ИИ похожим на человека, я не утверждаю, что нейросети похожи на нервную систему каких-либо организмов. По моему опыту, машинное обучение обычно превосходит человека в тех задачах, где есть бигдата и легко проверяемая функция ошибки. Большинство известных мне исключений связаны с тем, что либо эволюция предобучила человека на огромном датасете, либо в детстве человек собрал огромную статистику. Как только задача требует непредвзятого универсального интеллекта - оказывается, что с хорошими шансами XGBoost работает точнее любого эксперта.

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments73

Обзор методов численной оптимизации. Безусловная оптимизация: метод линий

Reading time24 min
Views35K
image

Я работаю в американской компании, разрабатывающей софт для химической и нефтегазовой промышленности. Одной из наиболее востребованных тем в этой области является оптимизация чего-либо при заданных параметрах производства. Например, минимизация расходов на выработку какого-нибудь газа, максимизация прибыли при реализации топлива, максимизация давления в какой-нибудь трубе при вариабельных термодинамических параметрах на другой части проектируемого завода и заданных ограничениях и т.д. Я занимался реализацией методов оптимизации для подобных задач и, думаю, накопил ощутимый опыт в этой области. С этого поста хотел бы начать серию обзоров известных методов оптимизации.

Введение


Оптимизация — это процесс нахождения точки экстремального значения некоторой заданной целевой функции $f(\mathbf{x})$. Это один из крупнейших краеугольных камней прикладной математики, физики, инженерии, экономики, промышленности. Область её применений необъятна и может распространяться от минимизации физических величин на микро- и макроуровнях до максимизации прибыли или эффективности логистических цепочек. Машинное обучение также заострено на оптимизации: всевозможные регрессии и нейроные сети пытаются минимизировать ошибку между предсказанием и реальными данными.

Экстремум может быть как минимумом, так и максимумом, но обычно принято изучать любую оптимизацию исключительно как поиск минимума, поскольку любая максимизация эквивалентна минимизации из-за возможности поменять знак перед целевой функцией: $f(\mathbf{x})\to -f(\mathbf{x})$. Следовательно, в любом месте ниже под оптимизацией мы будем понимать именно минимизацию.
Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments13

Как я Keras на C++ запускал

Reading time3 min
Views15K

Не так давно передо мной встала производственная задача – запустить обученную модель нейронной сети Kesas на нативном C++ коде. Как ни странно, решение оказалось вообще не тривиальным. В результате чего появилась собственная библиотека, дающая такую возможность. О том, как же это – нейросети на чистых крестах и будет сегодняшняя небольшая статья.


Тем, кому не терпится – вот тут репозитарий на github, с подробным описанием использования. Ну а всех остальных прошу под кат…

Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments16

Information

Rating
Does not participate
Registered
Activity