Вы знаете… я когда смотрю на некоторые «кластеры» с которыми сталкиваются как нейронные сети, так и человеческие детёныши — мне кажется то, что вы описали — обычное дело! ;)
Взять хотя бы тот факт, что какой-нибудь той-терьер и мастиф — один класс (собаки), а померанский шпиц и кошка — разные. ;)
А уж классификация более сложных концептов в голове у взрослых людей — вообще во многом необъяснима без ретроспективного анализа жизненного опыта конкретного человека…
И потом, я не говорю, что не нужно обучение — очень даже нужно! Нужно очень много обучающих, специально подготовленных данных, из которых система сможет извлечь и классифицировать процессы и объекты в нужных сочетаниях. Но! Подготовленных — не значит «размеченных». И не потому, что я резко против разметки — я только «за»! Но по задумке система должна уточнять классификацию постоянно, она должна доучиваться на обычных данных, а не размеченных. То же самое происходит и с человеком: первое время все процессы максимально просты и повторяются огромное количество раз для формирования некой основы, но потом мы просто познаем мир, как он есть.
Ну так я же вроде о том же, не? ;) первая часть за модель, вторая про взаимодействия…
Зеркальные нейроны — хорошо. Но тут вопрос: где граница? Т.е. обезьяна видит, как другая обезьяна что-то делает и повторяет — это понятно. А если что-то делает не обезьяна, а вомбат? Ну или классика: камень упал на голову другой обезьяне и наша обезьяна это видела. Может этот опыт быть использован для того, что бы расколоть голову кокос?
Я же предлагаю концепт, при котором обезьяна классифицирует и объекты и процессы. Поэтому упавший камень, это процесс имеющий какие-то близкие параллели с тем что обезьяна уже делала (роняла она уже что-то), а голова и кокос имеют некие общие метрики… с этой точки зрения зеркальные нейроны, как отдельный механизм, не очень нужны (ну или по крайней мере формируются естественным путем, как часть механизма кластеризации), т.к. обезьяна относит самое себя к некой категории «акторов» и то, что делают ей подобные расширяет список собственных действий.
Что важно: собственный опыт и его закрепление через RL ни разу не отменяется! Но основной камень преткновения: создание гипотез для проверки опытом. Рандом не катит!
И кстати, мы совсем упустили из виду такой важный навык естественного интеллекта, как целенаправленное изучение объектов, в отношении которых выдвигаются определенные теории. ;) т.е. та или иная форма сегментации может быть основой для гипотез об объектах, а дальше можно подойти ближе приблизится, посмотреть под другим углом, пощупать в конце концов! Тем более, что это нужно для пополнения классификатора, когда в поле зрения что-то необычное/неизвестное. В отношении известных и классифицированных объектов должна работать обычная нейронная сеть…
>> У Вас процессы существуют независимо от субъекта, созерцающего их. Но в комментариях, я вижу, Вы обсуждаете действия агента (RL). Человек («и все все все») познаёт мир через взаимодействия с ним.
Безусловно. Но вопрос ведь шире: RL предполагает или повторение наиболее подходящей стратегии, которая дала результаты ранее, или рандом. Но мы же видим: в реальной жизни происходит иначе! Чистый рандом все-таки применятся не так часто. Но зато не только человек, но и высшие животные способны пробовать инициировать процессы, которые они наблюдали! Иногда это объясняют неосознанным копированием поведения особей, которые выбраны молодым существом в качестве объекта для подражания. Типа это врожденная программа. Может быть, но это не обьясняет, как некоторые обезьяны и даже вороны умудряются использовать «орудия труда» — впервые а этой популяции.
>>>Так ваша идея основывается на классификации объектов, а не наоборот. У вас же в статье развертка во времени идет после классификации, а не является ее механизмом.
Ну, значит я не внятно описал… ( Классификация без выделения процессов может быть только по каким-то очень незначительным критериям, типа цвета/формы. Этого очевидно недостаточно. Основа именно процессы.
>>> Давайте я вам скину программку выделения черного движущегося квадрата…
Зачем вы так? ( при чем тут квадрат? Есть вполне себе интересные механизмы, как на основе сегментации (которые можно «улучшать» за счет стерео/саккад/лидара), либо на основе нейронных сетей, где можно работать над обучающей выборкой… вы же прекрасно понимаете, о чем я говорю…
>>>Надежный и простой способ есть, об этом свидетельствует наличие естественного интеллекта
Я лишь имел ввиду технической реализации на текущий момент…
Я не совсем понимаю: вам есть, что предложить? Вроде наши точки зрения на проблему весьма схожи, но я пока не замечаю конструктива.
Несомненно. Есть вот идея «плясать» от процессов, но сырая.
>>>Если оно будет работать недостаточно хорошо, то и нужного результата не будет
Наверное… но если есть не достаточно хороший результат — его можно улучшать. Т.е. есть с чем работать.
Просто одно дело: нельзя извлечь объекты. Это ставит крест на всей идее. Другое: объекты извлекаются криво/косо, с ошибками и через раз. Тут можно работать над улучшением технологии.
Мне тут накидали пару идей, куда можно копать… ;) с одной стороны — вы скорее правы, чем нет: надежного и простого способа видимо нет. С другой — есть кое-что, с чем можно эксперементировать
Последнее как раз фигня! ;) если признаки «извлекаемы», то и классификация по ним не проблема. Я же не говорил «по всем признакам на уровне человека».
А вот с первыми двумя я пока для себя не уяснил. Работать должно (хоть в каком-то виде), но когда пытаешься гуглить на эту тему — все забито поиском известных обьектов на основе ImageNet. Жто хорошо и круто, но немного не то.
У меня ограничен скорее не горизонт планирования, а количество вариантов! Потому, что мы танцуем от цели. Контрамоция, вот это вот все… в вашем примере система должна сначала найти точки с большой наградой, потом выстроить(найти) к ним переход, а не считать просто среднее улучшение в каждой точке.
Конечно при условии, что выбор между s3 и s4 из s2 определяется не вероятностью, действиями самой системы. Еще можно на это смотреть чуть иначе: что a=0 можно внести с коэффициентом близким к 100%, а=1 к нулю, потому, что а=1 на s2 абсолютно точно имеет огромный штраф.
В такой системе как раз наоборот: сильно снижена вариативность на каждом ходу (потому, что к цели мы идем кратчайшим путем, а не путем последовательного просчета всех вариантов в поиске лучшего… это вот то, о чем мы говорили с DesertFlow в первой части: у нас нет огромного числа вариантов — у нас скорее один, но просчитанный между сейчас и целью. Возможно далеко не лучший, но… мое глубокое убеждение, что так оно у нас в голове и работает! ;) Ну сами посудите: разве человек реально просчитывает варианты? Вернее он их просчитывает, но только потому, что ищет тот самый единственный: первый попавшийся! И только дополнительные ограничения заставляют считать другие. Но, учитывая проблему выбора из 100500 вариантов, я считаю, что это не баг — это фича!
Не очень понимаю почему так. Почему, если «ИИ никогда этого не делал — честный прогноз: не сделает и в этот раз»? В моем представлении ИИ должен определять себя (ту часть себя, которая действует), как часть системы и прогноз должен строится не на базе достигаемых ранее целей, а на базе возможных действий и заданных целей! Т.е. прогноз не должен быть чем-то, что ИИ раньше обязательно уже видел! Или, если хотите — он это мог видеть при моделировании, т.е. не в реальном мире, а воображаемом. В моем видении честный прогноз, значит не натягивание сову на глобус, т.е. избегании невозможных ситуаций, но не обязательно «повторение пройденого» или воспроизведение удачной стратегии. НЕ — в каждый конкретный момент времени ИИ должен моделировать что-то виденное ранее, но с поправкой на кластеризацию — если он видел, как это делал кто-то другой, а так же с чем-то другим, но имеющим нужные метрики процесса — он может это использовать при моделировании/достраивании… Взять хотя-бы ту штуку, которая дописывает текст — она же не повторяет что-то ранее виденное! Она подбирает то, что логично дополняло бы уже имеющееся…
>>> Но быстрее и качественнее мы её получим автоэнкодером, как я описал выше.
Я с этим уже практически согласен. ;) Согласится целиком и полностью мне пока мешает то, что я плаваю в теме (два из 4 минусов за статью — за слабый технический уровень и это, к сожалению, справедливо). Т.е. я уже совсем согласен с необходимостью предсказания (рассматриваю ваш экодер, как то самое что-то, что будет достраивать недостающие фреймы!), но пока не понимаю, как он будет «извлекать процессы», хотя вы объяснили, что это будет «что-то в скрытых слоях».
>>> тут нужно отталкиваться от метрик. Обычно используются одномерные метрики, типа количества очков.
Кажется начинаю понимать! Опять же пытаюсь уложить в голове… Да, скорее всего это так. Мы не задаем будущее в виде конкретного фрейма. Мы скорее размечаем все процессы (состояния?) метриками, как до этого объекты и именно эти метрики максимизируем/миниммизируем! Понимаю теперь о чем говорил MagneticFox! )) Респект ему. Хотя все равно — выгода это метрика процессов/состояний, но понимаю, почему он на это давил…
Я немного боюсь, что сейчас упущу что-то важное, что мне казалось я понимал… (
>>>— насколько я понял, здесь под словом «предсказание» подразумевается «целевое состояние» (предсказание: мы сейчас поранимся. Желание: уцелеть. Реальность: мы поранились. Прогноз=факт!=цель. Подкреплять?).
Предсказание = происходящие помимо нашей воли события+наши действия. Ну или можно иначе — из всех возможных предсказаний, включающих помимо прочего наши действия мы выбираем те, которые больше всего похожи на поставленную цель. Мы не выбираем невозможных вариантов. Мы понижаем значимость неконтролируемых нами факторов, если их вероятность мала или неизвестна (т.е. они не следуют напрямую из расклада, а могут произойти могут нет), но повышаем значимость наших действий, потому, что знаем — если они есть в прогнозе, то контроллер их выполнит. И дальше строим РЕАЛИСТИЧНЫЙ прогноз. И вот если он не попал в факт — это реально проблема самой прогнозной системы и ее надо ребалансировать. Но… Если наилучший прогноз всегда сбывался, а цели мы не достигли — это ведь может значить просто недостижимую цель, так ведь? И вот тут мне нужно подумать. Тут по всей видимости реально гибрид обычного алгоритма обучения с учителем и RL. И когда что балансировать — пока не знаю. Нужно понять разницу между неверной оценкой ситуации и неверной стратегией.
Ну я там выше написал… Мое глубокое убеждение, что награда/штраф только на основании одной метрики — соответствие предсказанию. Если соответствует — молодец, если нет — штраф (понять бы еще к чему). Тогда в ситуации заданного будущего, модель вынуждена строить предсказание в направлении победы, и получать штрафы, за нереалистичные предсказания. До тех пор пока они не станут реалистичными с поправкой на победу.
Единственное — все равно нужен период предобучения для понимания возможных процессов, причем что важно: не выигрышных, а вообще! Понимаете? система должна иметь достаточную «библиотеку» элементов, из которых можно строить переход из одного состояния в другое с любыми накладываемыми ограничениями… Я только пока не знаю, как сделать ограничения не жесткими, а рамочными — типа чтоб стремится к максимум жизней, максимуму убитых врагов, но не считать игру полностью провальной при недостижении абсолютной цели… Но думаю, это должно быть решаемо. Так же как возможность не задавать состояние полностью, а только в важных аспектах. Т.е. голубая мечта вполне может быть размыта и недостижима, но это не должно мешать к ней стремиться! ;)
Надо немного не так… нужно запустить сотни игр человека или как-то обученной сетки, что бы наша потенциальная сетка могла в каждой из этих игр выделить события/процессы (желательно сама), их корреляцию вдоль (причинно-следственная связь) и поперек (одновременность=связанность?) оси времени. И кормить сеть играми до тех пор, пока она не научится предсказывать развитие событий. А когда научится — можно попробовать задать ей цель в виде целевого состояния/состояний, при это проложив между ней и игрой блок управления, который будет воспринимать предсказания сети относительно управляемых сущностей, как руководство к действию. При этом мотивация/награда и в процессе обучения и в последствии — соответствие предсказания реальному раскладу.
>>>Если серьёзно то процессор подобного уровня проектируется на 3 курсе политеха ИТ шной специальности как курсовой.
ключевое слово — «проектируется». А не собирается в железе, не отлаживается до последней микрухи, не тестируется в реальных работающих программах и тп.
>>> Эмулятор на паскале писался на пару недель
Вы правда не видите разницу между эмулятором на паскале и работающим прототипом?
>>> никаких объёмных знаний тут нет, ни конвеера, ни матричных вычислителей.
Есть современные технологии, а есть — фундаментальные. Последние достижения органической химии не уменьшают ценности базовых химических реакций, а теория струн не вытесняет понимание основ механики. То, что делает автор — это в большинстве случаев фундаментальные вещи, работа с которыми НЕ в симуляторе, на мой взгляд, бесценна. И разложить все по полочкам значительно проще на элементарном процессоре, понимающем 29 команд, чем на конвеерах и матричных вычислителях.
>>>А у меня хобби растапливать печку старыми книжками, чем старее и дороже книжка книжка тем веселее
Этот проект — далеко не бесполезен. Фактически он служит автору для глубочайшего понимания основ вычислительной техники. Автор в данном проекте воссоздает в упрощенном виде полный технологический цикл, включающий в себя проектирование процессор с определенной системой команд, которые в свою очередь должны представлять полный по Тьюрингу язык программирования, разработку приложения под этот язык, систему ввода-вывода и тп. Такой объем знаний за пару лет — охренительная эффективность! В большинстве ИТ-шных ВУЗов такое не дают и за пять лет, и это практическое знание, не гипотетическое. При этом автор получает глубокое удовлетворение от от данного процесса и это прекрасно. ОН стал мудрее, опытнее и значительно круче, как профессионал в технологиях, причем full stack в самом широком значении этого слова.
Я что-то совсем не уверен, что за тот же период, вы, разрабатывая ваши несомненно весьма полезные «фичи», добились подобного прироста «скиллов».
Зависит от того, как проводилась кластеризация. В моей концепции хочется добиться объединения объектов в разные кластеры по метрике процессов. В вашем случае это значило бы, что по опыту данной сети ананас и курица имеют одно практическое применение: их либо ели, либо покупали, либо, не знаю, кидали в кого-то! Во всех этих случаях метрика сформирована правильно и сеть сможет предсказать подобные процессы в будущем.
Я понимаю, о чем вы. Ошибки обучения. Необученная сеть строит гипотезы, зачастую весьма рандомно, и задача размеченной выборки эти гипотезы подтвердить или опровергнуть. Но это актуально как раз для обычного обучения — когда сеть можно недоучить, можно переучить и процесс обучения и процесс использования никак не связаны.
В данном случае выделение процессов служит основой гипотез о важных метриках объектов, а последующая проверка предсказаний процессов служит валидацией и того и другого, следите за руками:
Сеть выделила среди прочего курицу и ананас
Сеть выделила два процесса (процесс — суть некое изменение во времени. В простейшем случае — движение, более сложные варианты требуют проработки) каждый из которых связан с одним из этих объектов
Сеть делает предположение, что это один и тот же процесс (на основании того, например, что траектория движения на определенном интервале времени была близка)
Для этих двух объектов фиксируется общая метрика. По сути мы имеем новый класс объектов, при определенных условиях ведущих себя схожим образом.
В определенных условиях сеть моделирует этот процесс (достраивает в процессе предсказания следующих, или промежуточных «кадров»)
Сеть получает данные о фактически произошедших процессах и сопоставляет их с моделируемыми. Если данные совпали в каких-то пределах — значимость метрики растет. Если нет — снижается. Причем, вероятно не у всего класса, а у конкретного объекта.
Таким образом, предположительно. В итоге сеть создаст кластеризацию объектов по поведению/применимости. Что в моем понимании — единственно значимая кластеризация! ))
На самом деле тут до хрена подводных камней… Например, сеть должна не только создавать метрику, но и разделять/сворачивать объекты по следующему принципу:
Если у двух объектов метрики равны — это один объект. Т.е. если курицу и ананас мы смогли выделить только в одном процессе, например поедания и никаких других кейсов для каждого из них нет — то это для сети одно и то же: Еда. Как сеть натасканная просто на распознавание людей не делит их по полу/возрасту/расе и тп. Это нужно для снижения размерности.
Если у одного объекта (с учетом написанного ранее) выявляются выбросы из предсказанного поведения (хотя в основном предсказания оправдываются), то нужно искать возможность разделения объектов и именно по их чисто внешним факторам. т.е. если еда вдруг способна на самостоятельное движение (но не вся!), то можно сделать новое предположение, что некоторая еда, а именно с перьями и клювом — может таки бегать… Как-то так.
Это обычная детская загадка на что общее/чем отличается, но она крайне важна…
Ну и ваш вопрос про поливку цветов/наливание чая хорош в том плане, что когда предсказанный процесс не проходит валидацию не вполне понятно что именно не правильно — кластеризация объектов или процессов? Т.к. это у нас две разные сети и объектная как бы свертка для процессной — принцип «корректировки весов» не очевиден. Но думаю на практике можно пробовать…
Я-то другое имел ввиду… ;) У этих вопросов на самом деле по сути общий ответ: звук. ;)
Ребенок стучит кубиком по кубику, потому, что это офигительный пример причинно-следственной связи! ;) Удар-звук.
А собака и кошка различаются тем, что собака говорит «Гав», а кошка «Мяу». ;)
В общем доп. канал восприятия похоже рулит! ;)
Взять хотя бы тот факт, что какой-нибудь той-терьер и мастиф — один класс (собаки), а померанский шпиц и кошка — разные. ;)
А уж классификация более сложных концептов в голове у взрослых людей — вообще во многом необъяснима без ретроспективного анализа жизненного опыта конкретного человека…
И потом, я не говорю, что не нужно обучение — очень даже нужно! Нужно очень много обучающих, специально подготовленных данных, из которых система сможет извлечь и классифицировать процессы и объекты в нужных сочетаниях. Но! Подготовленных — не значит «размеченных». И не потому, что я резко против разметки — я только «за»! Но по задумке система должна уточнять классификацию постоянно, она должна доучиваться на обычных данных, а не размеченных. То же самое происходит и с человеком: первое время все процессы максимально просты и повторяются огромное количество раз для формирования некой основы, но потом мы просто познаем мир, как он есть.
Ну так я же вроде о том же, не? ;) первая часть за модель, вторая про взаимодействия…
Зеркальные нейроны — хорошо. Но тут вопрос: где граница? Т.е. обезьяна видит, как другая обезьяна что-то делает и повторяет — это понятно. А если что-то делает не обезьяна, а вомбат? Ну или классика: камень упал на голову другой обезьяне и наша обезьяна это видела. Может этот опыт быть использован для того, что бы расколоть
головукокос?Я же предлагаю концепт, при котором обезьяна классифицирует и объекты и процессы. Поэтому упавший камень, это процесс имеющий какие-то близкие параллели с тем что обезьяна уже делала (роняла она уже что-то), а голова и кокос имеют некие общие метрики… с этой точки зрения зеркальные нейроны, как отдельный механизм, не очень нужны (ну или по крайней мере формируются естественным путем, как часть механизма кластеризации), т.к. обезьяна относит самое себя к некой категории «акторов» и то, что делают ей подобные расширяет список собственных действий.
Что важно: собственный опыт и его закрепление через RL ни разу не отменяется! Но основной камень преткновения: создание гипотез для проверки опытом. Рандом не катит!
подойти ближеприблизится, посмотреть под другим углом, пощупать в конце концов! Тем более, что это нужно для пополнения классификатора, когда в поле зрения что-то необычное/неизвестное. В отношении известных и классифицированных объектов должна работать обычная нейронная сеть…Безусловно. Но вопрос ведь шире: RL предполагает или повторение наиболее подходящей стратегии, которая дала результаты ранее, или рандом. Но мы же видим: в реальной жизни происходит иначе! Чистый рандом все-таки применятся не так часто. Но зато не только человек, но и высшие животные способны пробовать инициировать процессы, которые они наблюдали! Иногда это объясняют неосознанным копированием поведения особей, которые выбраны молодым существом в качестве объекта для подражания. Типа это врожденная программа. Может быть, но это не обьясняет, как некоторые обезьяны и даже вороны умудряются использовать «орудия труда» — впервые а этой популяции.
Ну, значит я не внятно описал… ( Классификация без выделения процессов может быть только по каким-то очень незначительным критериям, типа цвета/формы. Этого очевидно недостаточно. Основа именно процессы.
>>> Давайте я вам скину программку выделения черного движущегося квадрата…
Зачем вы так? ( при чем тут квадрат? Есть вполне себе интересные механизмы, как на основе сегментации (которые можно «улучшать» за счет стерео/саккад/лидара), либо на основе нейронных сетей, где можно работать над обучающей выборкой… вы же прекрасно понимаете, о чем я говорю…
>>>Надежный и простой способ есть, об этом свидетельствует наличие естественного интеллекта
Я лишь имел ввиду технической реализации на текущий момент…
Я не совсем понимаю: вам есть, что предложить? Вроде наши точки зрения на проблему весьма схожи, но я пока не замечаю конструктива.
Несомненно. Есть вот идея «плясать» от процессов, но сырая.
>>>Если оно будет работать недостаточно хорошо, то и нужного результата не будет
Наверное… но если есть не достаточно хороший результат — его можно улучшать. Т.е. есть с чем работать.
Просто одно дело: нельзя извлечь объекты. Это ставит крест на всей идее. Другое: объекты извлекаются криво/косо, с ошибками и через раз. Тут можно работать над улучшением технологии.
Мне тут накидали пару идей, куда можно копать… ;) с одной стороны — вы скорее правы, чем нет: надежного и простого способа видимо нет. С другой — есть кое-что, с чем можно эксперементировать
Последнее как раз фигня! ;) если признаки «извлекаемы», то и классификация по ним не проблема. Я же не говорил «по всем признакам на уровне человека».
А вот с первыми двумя я пока для себя не уяснил. Работать должно (хоть в каком-то виде), но когда пытаешься гуглить на эту тему — все забито поиском известных обьектов на основе ImageNet. Жто хорошо и круто, но немного не то.
Конечно при условии, что выбор между s3 и s4 из s2 определяется не вероятностью, действиями самой системы. Еще можно на это смотреть чуть иначе: что a=0 можно внести с коэффициентом близким к 100%, а=1 к нулю, потому, что а=1 на s2 абсолютно точно имеет огромный штраф.
В такой системе как раз наоборот: сильно снижена вариативность на каждом ходу (потому, что к цели мы идем кратчайшим путем, а не путем последовательного просчета всех вариантов в поиске лучшего… это вот то, о чем мы говорили с DesertFlow в первой части: у нас нет огромного числа вариантов — у нас скорее один, но просчитанный между сейчас и целью. Возможно далеко не лучший, но… мое глубокое убеждение, что так оно у нас в голове и работает! ;) Ну сами посудите: разве человек реально просчитывает варианты? Вернее он их просчитывает, но только потому, что ищет тот самый единственный: первый попавшийся! И только дополнительные ограничения заставляют считать другие. Но, учитывая проблему выбора из 100500 вариантов, я считаю, что это не баг — это фича!
Я с этим уже практически согласен. ;) Согласится целиком и полностью мне пока мешает то, что я плаваю в теме (два из 4 минусов за статью — за слабый технический уровень и это, к сожалению, справедливо). Т.е. я уже совсем согласен с необходимостью предсказания (рассматриваю ваш экодер, как то самое что-то, что будет достраивать недостающие фреймы!), но пока не понимаю, как он будет «извлекать процессы», хотя вы объяснили, что это будет «что-то в скрытых слоях».
>>> тут нужно отталкиваться от метрик. Обычно используются одномерные метрики, типа количества очков.
Кажется начинаю понимать! Опять же пытаюсь уложить в голове… Да, скорее всего это так. Мы не задаем будущее в виде конкретного фрейма. Мы скорее размечаем все процессы (состояния?) метриками, как до этого объекты и именно эти метрики максимизируем/миниммизируем! Понимаю теперь о чем говорил MagneticFox! )) Респект ему. Хотя все равно — выгода это метрика процессов/состояний, но понимаю, почему он на это давил…
Я немного боюсь, что сейчас упущу что-то важное, что мне казалось я понимал… (
Предсказание = происходящие помимо нашей воли события+наши действия. Ну или можно иначе — из всех возможных предсказаний, включающих помимо прочего наши действия мы выбираем те, которые больше всего похожи на поставленную цель. Мы не выбираем невозможных вариантов. Мы понижаем значимость неконтролируемых нами факторов, если их вероятность мала или неизвестна (т.е. они не следуют напрямую из расклада, а могут произойти могут нет), но повышаем значимость наших действий, потому, что знаем — если они есть в прогнозе, то контроллер их выполнит. И дальше строим РЕАЛИСТИЧНЫЙ прогноз. И вот если он не попал в факт — это реально проблема самой прогнозной системы и ее надо ребалансировать. Но… Если наилучший прогноз всегда сбывался, а цели мы не достигли — это ведь может значить просто недостижимую цель, так ведь? И вот тут мне нужно подумать. Тут по всей видимости реально гибрид обычного алгоритма обучения с учителем и RL. И когда что балансировать — пока не знаю. Нужно понять разницу между неверной оценкой ситуации и неверной стратегией.
Единственное — все равно нужен период предобучения для понимания возможных процессов, причем что важно: не выигрышных, а вообще! Понимаете? система должна иметь достаточную «библиотеку» элементов, из которых можно строить переход из одного состояния в другое с любыми накладываемыми ограничениями… Я только пока не знаю, как сделать ограничения не жесткими, а рамочными — типа чтоб стремится к максимум жизней, максимуму убитых врагов, но не считать игру полностью провальной при недостижении абсолютной цели… Но думаю, это должно быть решаемо. Так же как возможность не задавать состояние полностью, а только в важных аспектах. Т.е. голубая мечта вполне может быть размыта и недостижима, но это не должно мешать к ней стремиться! ;)
ключевое слово — «проектируется». А не собирается в железе, не отлаживается до последней микрухи, не тестируется в реальных работающих программах и тп.
>>> Эмулятор на паскале писался на пару недель
Вы правда не видите разницу между эмулятором на паскале и работающим прототипом?
>>> никаких объёмных знаний тут нет, ни конвеера, ни матричных вычислителей.
Есть современные технологии, а есть — фундаментальные. Последние достижения органической химии не уменьшают ценности базовых химических реакций, а теория струн не вытесняет понимание основ механики. То, что делает автор — это в большинстве случаев фундаментальные вещи, работа с которыми НЕ в симуляторе, на мой взгляд, бесценна. И разложить все по полочкам значительно проще на элементарном процессоре, понимающем 29 команд, чем на конвеерах и матричных вычислителях.
>>>А у меня хобби растапливать печку старыми книжками, чем старее и дороже книжка книжка тем веселее
Жгите дальше! ;)
Я что-то совсем не уверен, что за тот же период, вы, разрабатывая ваши несомненно весьма полезные «фичи», добились подобного прироста «скиллов».
Я понимаю, о чем вы. Ошибки обучения. Необученная сеть строит гипотезы, зачастую весьма рандомно, и задача размеченной выборки эти гипотезы подтвердить или опровергнуть. Но это актуально как раз для обычного обучения — когда сеть можно недоучить, можно переучить и процесс обучения и процесс использования никак не связаны.
В данном случае выделение процессов служит основой гипотез о важных метриках объектов, а последующая проверка предсказаний процессов служит валидацией и того и другого, следите за руками:
На самом деле тут до хрена подводных камней… Например, сеть должна не только создавать метрику, но и разделять/сворачивать объекты по следующему принципу:
Это обычная детская загадка на что общее/чем отличается, но она крайне важна…
Ну и ваш вопрос про поливку цветов/наливание чая хорош в том плане, что когда предсказанный процесс не проходит валидацию не вполне понятно что именно не правильно — кластеризация объектов или процессов? Т.к. это у нас две разные сети и объектная как бы свертка для процессной — принцип «корректировки весов» не очевиден. Но думаю на практике можно пробовать…