flint2
> Как???
Давайте сначала определим разницу между типами задач:
1. оптимизация
2. поиск решения
Чтобы оптимизировать решение, сначала необходимо получить это самое решение.
Например, имея образец ходьбы, можно его оптимизировать под разные типы тел.
См. пример на видео от Suslik - это обычная задача оптимизации.
В этой ветке речь идёт о другом типе задач - поиске решений.
Разум/интеллект - это в первую очередь поиск решений, а только затем оптимизация найденных решений.
Например, любой спортсмен ежедневно решает задачу по оптимизации ранее найденных решений - тренер ему показывает, как правильно, а спортсмен оптимизирует готовое решение под своё тело.
Но всегда есть кто-то первый, кто придумал какой-то новый приём в борьбе или какой-то способ, как сделать лучше, чем у других - это поиск новых решений.
LiveBaster - это в первую очередь поиск новых решений, за разумное время (желательно, в реальном времени, чтобы суметь выжить).
> Например, Страус решает задачи: расположить тело на заданной высоте,
> повернуться в сторону площадки, добраться до площадки. С одной задачи на другую
> переключение происходит автоматически
> Каким образом автоматически???
ПО LiveBaster ищет новые решения автоматически.
Например, Страус заранее не знает, как встать после падения - ищет способ встать.
Не знает, как развернуться в нужном направлении - ищет способ развернуться. И т.п.
> На базе данных?!!
> Это не будет работать по определению!!! На базе данных только конечный автомат
> работать будет.
> Тогда зачем говорить об обучении?
Понятно, что БД используется не стандартная, не SQL-подобная :)
Если Вам удобно, то можете называть это Базой Знаний.
Просто многие понимают, что такое БД, а что такое База Знаний - не очень понятно.
LiveBaster
> Как видно на видео к этой работе, анимация заканчивается, как только существа
> падают - они дальше не знают, что делать.
да потому что обучение идёт на фиксированный период времени вперёд. ничто не мешает дообучать модель по ходу её работы. я уже кучу раз показывал по-моему, по-моему, как даже я, будучи студентотой 10 лет назад это делал, что уж говорить о нормальных профессионалах. и даже 10 лет назад решение находилось гораздо эффективнее и оптимальнее, чем у тебя. я не спорю, что твой алгоритм занимается решением задачи оптимизации, вопрос лишь в том, насколько эффективно в сравнении с другими. ответ: ни на сколько не эффективно, другие алгоритмы показывают себя гораздо лучше в тех же условиях. тот же differential evolution, тот же SARM и многие другие многомерные оптимизирующие солверы.
> чтобы суметь выжить
господи, как же твоё "выжить" каждый раз по мозгам бьёт. я понимаю, что ты себя пытаешься таким образом мотивировать и что тебе хотелось бы, чтобы у тебя было как можно больше параллелей с билогией. но ничего с твоим страусом не случится, даже если он себя настолько неэффективно ведёт, как сейчас. никакой его хищник не подберёт и с голоду он не помрёт. хотя реальный бы на его месте уже, разумеется, давным-давно убился.
Сначала, утром, написал статейку, коротенько, минут на двадцать.
Потом решил сократить - всё равно, как об стенку горох.
Короче: Пляски святого Витта смотрятся забавно, обучения днём с огнём не сыскать.
flint2
> обучения днём с огнём не сыскать
Для LiveBaster - обучение, это не значит "повторить действия по заданному образцу", в виду отсутствия образца (reference, training sample) - обучение без учителя.
Более того, Страус падает каждый раз в новую позу, соответственно, из каждой новой позы, LiveBaster находит пути перехода в заданное положение. Количество таких путей "бесконечно" (очень много вариантов). Поэтому "на глаз" Вы не увидите повторяющихся движений - траектории всё время разные.
Тем не менее, База Данных (или Знаний) присутствует, с целью ускорения поиска решений. И обучение этой Базы Знаний также присутствует, т.к. без неё время поиска решений стремится к бесконечности (очень долго настолько, что невозможно дождаться завершения процесса).
Обучение - это нахождение общих закономерностей для нескольких частных случаев по определённым признакам и формулирование правил для обобщения. (Собака Павлова).
LiveBaster
Для LiveBaster - обучение, это не значит "повторить действия по заданному образцу", в виду отсутствия образца (reference, training sample) - обучение без учителя.
Обучение без учителя - это самый распространённый процесс в природе. Таких систем множество и мы об этом уже говорили.
LiveBaster
Более того, Страус падает каждый раз в новую позу, соответственно, из каждой новой позы, LiveBaster находит пути перехода в заданное положение.
Каким образом LiveBaster находит пути перехода в заданное положение???
Нужно объяснение как он это делает, а не что он делает!
LiveBaster
ПО LiveBaster ищет новые решения автоматически.
Это твоё объяснение?
Вот тут, как пример, https://basegroup.ru/community/articles/som даётся внятное объяснение как происходит выявление наборов независимых признаков и поиска закономерностей без учителя.
Ты скажешь, что у тебя не сетка и всё сделано на других принципах - это я понимаю.
Но подобное описание своей системы ты можешь дать?
LiveBaster
Тем не менее, База Данных (или Знаний) присутствует, с целью ускорения поиска решений.
Ты улавливаешь разницу между БД и БЗ? Есть хрестоматийный пример БЗ, можешь его привести?
Если бы ты сказал, что всё работает по принципу отрицательной обратной связи, то и вопросов бы не было. Но это не имеет ни какого отношения к ИИ и обучению в частности.
Кстати, для удержания равновесия это самое лучшее решение!
flint2
> Ты улавливаешь разницу между БД и БЗ? Есть хрестоматийный пример БЗ, можешь его
> привести?
https://dic.academic.ru/dic.nsf/ruwiki/114646
"База знаний (БЗ; англ. knowledge base, KB) в информатике и исследованиях искусственного интеллекта — это особого рода база данных, разработанная для оперирования знаниями (метаданными). База знаний содержит структурированную информацию, покрывающую некоторую область знаний, для использования кибернетическим устройством (или человеком) с конкретной целью. Современные базы знаний работают совместно с системами поиска информации, имеют классификационную структуру и формат представления знаний."
Как видите, БЗ - это всего лишь особого рода БД, т.е. не о чем спорить.
Если Вам так больше нравится, то мне не составит труда использовать термин База Знаний (БЗ).
В Базе Знаний Страуса хранятся знания о маршрутах достижения требуемого результата, т.е. это просто структурированная и оптимизированная память для запоминания истории. Если у Страуса получилось один раз выполнить задачу или часть задачи, то в следующий раз, похожую задачу он выполнит быстрее, за счёт своей Базы Знаний.
LiveBaster
Смешно. Интересные источники находишь. Прекрасно понимаешь о чём тебя спрашивают и всё время отвечаешь в другой тональности.
Я ожидал увидеть это:
% Сократ - человек human(sokrat). % Платон - тоже человек human(platon). % Чтобы некто был смертным, он должен быть человеком mortal(Someone) :- human(Someone). Вопрос к базе знаний: ?- mortal(sokrat).
....
big(ber). big(elefant). smal(ket). brown(ber). black(ket). grei(elefant). dark(Z):-black(Z). dark(Z):-brown(Z). ?- dark(X),big(X) решение = ber
C БЗ разобрались, т.е. полное не владение вопросом, иначе бы таких дурацких ссылок не приводил.
Дальше:
LiveBaster
Если у Страуса получилось один раз выполнить задачу или часть задачи, то в следующий раз, похожую задачу он выполнит быстрее, за счёт своей Базы Знаний.
Поток сознания. Как это у тебя устроено, что Если у Страуса получилось один раз выполнить задачу или часть задачи, то в следующий раз, похожую задачу он выполнит быстрее, за счёт своей Базы Знаний?
Ты понимаешь о чём тебя спрашивают?
Ты знаешь принцип работы четырёхтактного двигателя, можешь рассказать?
Вот так же расскажи о своём решении, как всё устроено, каковы принципы.
Я даже не прошу рисовать блок схему алгоритма, а может это упростит задачу?
Вот по приведённым выше примерам можно рассказать принцип нахождения решения по средствам бэктрекинга и подмены одних переменных другими за счёт правил.
Если ответ будет в духе: «Учение Маркса всесильно, потому что оно верно», то о чём говорить дальше?
Тогда всё понятно без слов.
Меня терзают смутные сомнения.
А тебе сколько лет?!
https://www.youtube.com/watch?v=BWUpXG2b7KI
Проверка ориентации в пространстве.
Задачи для Страуса:
1. Встать на ноги
2. Разместить тело горизонтально
3. Разместить тело на заданной высоте
Я думаю, что способность хорошо ориентироваться в пространстве, может пригодиться при создании автономных самообучаемых или дообучаемых персонажей.
LiveBaster
> за разумное время
Судя по прогрессу тут подразумевается астрономическое время. Будь твой страус живым существом - он бы умер от голода в метре от еды или оказался бы обедом для улиток-убийц. Возможно что твой алгоритм даже сможет сделать шаг если дать ему поработать до начала эпохи чёрных дыр на мозге-матрёшке.
LiveBaster
> Например, Страус заранее не знает, как встать после падения - ищет способ
> встать.
> Не знает, как развернуться в нужном направлении - ищет способ развернуться. И
> т.п.
Иные алгоритмы делают то же самое в тысячи раз быстрее и эффктивнее.
flint2
> А тебе сколько лет?!
Чуть меньше 50-ти.
Можете подробнее посмотреть здесь:
https://www.linkedin.com/in/victor-artyukhov-livebaster/
Nerdman
> Иные алгоритмы делают то же самое в тысячи раз быстрее и эффктивнее.
Узкоспециализированные - да, делают.
Но универсальных аналогов я пока не встречал.
LiveBaster
> Но универсальных аналогов я пока не встречал.
Эти алгоритмы универсальные, алё.
Nerdman
> LiveBaster
> > Но универсальных аналогов я пока не встречал.
> Эти алгоритмы универсальные, алё.
Возьмём пример от Suslik:
Оторвём у уже обученного и оптимизированного существа хвост или руку. Дальше что с ним будет?
Они даже не встают после падения, т.к. надо их переобучать заново новым образцам движения.
Где здесь универсальность, если под каждую малюсенькую задачку надо делать всё заново?
LiveBaster
> Оторвём у уже обученного и оптимизированного существа хвост или руку. Дальше
> что с ним будет?
> Они даже не встают после падения, т.к. надо их переобучать заново новым
> образцам движения.
ты не понял. то, что ты называешь мышлением — это и есть процесс планирования, который они называют обучением.
> Где здесь универсальность, если под каждую малюсенькую задачку надо делать всё заново?
лол, абсолютно ничего "заново" делать не надо, надо просто прогнать уточнение найденного решения с учётом изменившихся условий. сам оптимизирующий алгоритм как раз предельно общий и работает с такими понятиями как "максимизация средней скорости передвижения" при "минимизации затраченной энергии". от того, что ты руки-ноги добавишь или убавишь, тут вообще ничего не поменяется.
то же самое можно делать в реалтайме, планируя действия на 3-5 секунд вперёд, постоянно дообучаясь с учётом новых поступивших данных и исполняя текущую найденную стратегию на ходу. то, что ты называешь "мышлением" в своей программе, у них является дообучением. ну, только гораздо более эффективным.
кстати, пространство, в котором они ищут решение, тоже не такое простое, как кажется. они ищут не просто управляющие сигналы, которыми бы двигался робот, они ищут оптимальную функциональную зависимость управляющих параметров (напряжения мускул) от входных параметров робота (ориентация в пространстве, положение каждого сустава). таким образом, ищется не последовательность сигналов, а сама функция, которой эти сигналы строятся на основе входных параметров. таким образом, если робота немного толкнуть во время ходьбы, например, он может не потерять равновесие даже без дообучения, потому что найденная функция компенсирует изменившиеся незначительно условия. однако, разумеется, чтобы реакция на подобные воздействия была адекватной, ему нужно по-нормальному на ходу дообучаться.
Тема в архиве.