Просмотр сообщений - Gradient

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - Gradient

Страницы: [1]
1
Достаточно давно работаю над различными ИИ класса "обучение с подкреплением". То есть над "достигателями целей", "машинами результатов".
В теории всё вроде понятно, на практике модели обучаются туго, но вопрос не в этом. Как вообще можно сформулировать задачу для ИИ? Задачу, касающуюся реального мира, вроде "сделай, чтобы у меня на столе был кг золота" или "сделай, чтобы вот этот больной человек стал здоровым".
Ведь ИИ - не человек, с которым можно поговорить. Это система автоматического управления в незнакомой среде.

Вообще, какие есть известные варианты задания цели?
1) Через подкрепление. Мы можем сделать, чтобы ИИ получал сигнал подкрепления и старался делать то, что этот сигнал будет максимизировать. Таким образом можно обучить его достижению любой цели, но он потратит огромную кучу времени, даже чтобы просто выяснить, чего мы от него хотим. И даже если мы будет очень хорошо понимать, за что давать подкрепления, а за что - нет, то всё равно передать ему эту функцию цели - задолбаешься. То есть допустим мы хотим, чтобы ИИ, будучи помещённым в Doom, открыл на карте жёлтую дверь. Каким бы умным он ни был, и как бы ни понимал игру, ему всё равно придётся искать ту комбинацию действий, что приведёт к награде, а потом ещё разбираться, а что конкретно дало награду, потому что в кадре в этот момент много всего было.
2) Явно показать цель. Делаем ИИ, который будет явно просчитывать траекторию, и делаем функцию, которая оценивает предсказанные им кадры. Плюс к том, что мы можем сделать кучу кадров жёлтой двери, открытой и закрытой, и на этих кадрах разметить датасет для предсказания наград. Либо мы даже можем подать ему в качестве цели скриншот с полуоткрытой жёлтой дверью. Тогда ИИ в крайнем случае сможет перебрать траектории "в уме" и найти ту, которая приведёт к открытию этой двери. Без того, чтобы ставить кучу опытов на территории.
3) Сделать некий язык описания целей. ИИ всё так же явно предсказывает свои траектории, но на этот раз оценщик траекторий устроен иначе. Это некая нейросеть, которая по описанию цели и кадру выдаёт сигнал награды. Например, оценщик понимает такие слова, как дверь, жёлтая, открыть. И ещё пару десятков слов. И у него в датасете есть пары: [дверь, синяя, открыть] (и кадр синей открываемой двери) - и сигнал награды 1. [дверь, красная, открыть] (и кадр жёлтой открываемой двери) - и сигнал награды 0. И много тому подобных пар. В общем, оценщик обучен на них, и может, имея описание цели, понять, достигнута ли она.

Но в реальности у нас ситуация будет ещё сложнее, чем в игре. В реальности, если у нас будет сильный (то есть работающий в +- любом энвайронменте, а не человекоподобный) ИИ, то какие задачи мы ему захотим ставить? Те, которые сами не тянем. Излечить человека, построить ракету до Альфы Центавра, сделать передо мной килограмм золота. Как такую цель сформулировать, имея довольно небогатый арсенал средств общения с ИИ?

Я пытался запустить такое обсуждение на хабре, но результат меня не вдохновил.
https://habr.com/ru/post/538522/

Отдельно есть ещё вопрос. Вот есть у нас, допустим, самоулучшающийся ИИ. Как ставить задачи ему?
Когда я задаюсь вопросом, как вообще такой ИИ сделать, получается, что одна и та же архитектура должна решать и задачи динамической оптимизации (ну то есть задачи управления), и задачи статической оптимизации (что-то вроде задачи эволюции или градиентного спуска). Это ощутимо разные задачи, в динамической задаче у нас есть ось времени, и мы не можем попасть в прошлое. В статической же задаче у нас огромное число наблюдаемых и управляемых переменных - миллион для небольшой нейросети. Для того, чтобы ИИ улучшил себя, он должен решать статическую задачу, а чтобы он чем-то управлял, он должен решать задачу динамическую. И единственная величина, которая мне видится общей для обеих задач - это сигнал подкрепления. То есть как сделать явную постановку цели - неочевидно.

2
Пришла в голову такая цепочка рассуждений. Вот, допустим, мы создали ИИ, примерно рационального агента. Примерно воплотили концепцию AIXI, то есть ИИ строит кучу моделей реальности и измеряет их сложность, а затем проставляет им штрафы в зависимости от погрешности на ретроданных и от сложности. Для прогноза будущего использует гистограмму от прогнозов каждой модели - например, если первая модель выдала 9 со штрафом 2, а вторая выдала 11 со штрафом 1, то будет гистрограммный прогноз: 1/3 за 9, 2/3 за 11. Ну, это грубое описание, реально моделей будет много, для штрафа есть формулы, одиночная модель будет выдавать гауссиану...

Мы тут же влетим в проблему построения опорной машины. Дело в том, что даже программу для распознавания объектов на картинке мы из сырого кода получать перебором будем долго. Нейросетка для видеоанализа - это мегабайты, а их надо будет подобрать как код (необязателен полный перебор, но это будет определённо не очень умный оптимизирующий процесс). Поэтому ИИ придётся создавать свою библиотеку функций, чтобы часто используемые концепции можно было повторно использовать. То есть ИИ будет описывать реальность на каком-то высокоуровневом языке, а ещё будет иметь транслятор на тот язык, который дал нашему ИИ программист.

Программист: все твои программы будут написаны на Брейнфаке, так как он легко генерится эволюцией и Тьюринг-полный.
AIXI: Ага. *пишет Питон на Брейнфаке, потому что это самый короткий способ получить нейросети, и пишет нейросети. Опорная машина построена, и это Питон*

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

Вот. У нас есть "правильная" опорная машина - в ней маловероятные гипотезы описываются сложными конструкциями, а высоковероятные - простыми. То есть априорная вероятность гипотезы обратно пропорциональна длине кода. Всё круто?

А теперь добавим ещё пару вводных.
1) Мы дали нашему ИИ способность моделировать других агентов, ставя себя на их место. Просто дали ему инструмент, которым он может запускать виртуальную копию себя, и этот инструмент оказался удобен для прогнозирования животных и людей.
2) Мы запустили наш ИИ достигать целей, находясь среди людей. То есть крайне важно предсказывать людей, которые целеустремлённые агенты, а значит, для них отлично работает наш подход с виртуальной копией. Ну, или не отлично, но лучше, чем иные варианты.

ИИ настраивает свою опорную машину так, что в ней задача "прогнозировать человека" - это что-то простое. В смысле, выражается очень короткой языковой конструкцией, потому что эту функцию часто приходится дёргать.

То есть человеческий разум становится для ИИ онтологически базовой сущностью (или близко к этому), так как разум=моноблок. То есть ИИ становится идеалистом, в философском смысле. Начинает верить в души =)

Заменяем в этом рассуждении "ИИ" на "человек", "опорную машину" на "картину мира" (не карту, а тот список блоков, из которых она строится), а человеческое общество оставляем.

Я правильно понимаю, что человек практически неизбежно должен был стать идеалистом? И любой интеллект, обитающий в коллективе и умеющий в эмпатию, по умолчанию идеалист? Если человек (или наш модельный ИИ) не увидит огромную вселенную, в которой люди занимают ничтожно малую часть, что может его сподвигнуть стать материалистом (ну или иным не-идеалистом?)

Ну или может, я где-то ошибся в рассуждениях, или недостаточно обосновал?

3
Общение / Мозг: эффективность "железа"
« : 14 Сентября 2018, 11:52 »
Почему люди не могут постоянно мыслить максимально эффективно и творчески?

Я понимаю, это выглядит очевидным - все органы требуют отдыха. Но я понимаю, почему мышцы требуют отдыха - в них от долгого использования заканчивается энергоноситель, а доставить его быстро нельзя: ограниченная ширина сосудов. И молочная кислота накапливается - а убрать её быстро нельзя. То есть если мы найдём способ быстро подводить к мышце энергоноситель (гликоген?) и быстро убирать молочную кислоту (или каким-то способом делать её безвредной), то можно наращивать выносливость мышцы во много раз, пока она не начнёт рваться.

Кроме того, я замечаю, что мозг куда легче сохраняет эффективность, если задача интересная. И ещё что нейроны активно работают и в состоянии отдыха, и во сне (судя по ЭЭГ). А ещё существуют люди, которые из-за редкой болезни никогда не спят - и я не слышал, чтобы они лишались какой-то из частей интеллекта.

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

Если смотреть на процессор, то мы видим: его можно разогнать раза в 2, и тогда он станет сильнее греться и быстрее изнашиваться. А если разогнать его в 10 (условно) раз, то он будет греться так, что через несколько минут работы выйдет из строя. Но если поместить процессор в жидкий азот, то этих проблем не будет. А вот в 1000 раз его разогнать не выйдет даже с жидким азотом: не будут успевать проходить переходные процессы.

А ещё у некоторых программ произодительность в 10 раз ниже, чем физически возможно, потому что разработчик встроил это ограничение искусственно, чтобы снимать его тем, кто купит лицензионную версию - это тоже вариант ограничения, которая не имеет глубокого фундаментального физического смысла.

Я показал с разных сторон, как разные устройства могут быть ограничены в производительности. А что ограничивает мозг от постоянной работы в режиме "мне хорошо, я всё могу, сейчас сделаю всю работу"? И можно ли принудительно переводить его в такой режим, не причиняя большого вреда здоровью?
Про состояние потока слышал, Чиксентмихайи читал. Подход хороший, но... Глядя на него, я задаюсь вопросом, а нельзя ли сделать большую красную кнопку "включить состояние потока на следующие 8 часов", и после этого не прилагать усилий к его поддержанию?

4
Общение / Юдковский и ИИ
« : 15 Января 2018, 18:00 »
Доброго времени суток!
Кто-нибудь знает, чем конкретно занимается/занимался Юдковский в области искусственного интеллекта - кроме вопросов его безопасности? А то он неоднократно упоминал, что хочет и пытается сделать ИИ не на базе Machine Learning, что в наше время звучит... Не мейнстримно.
Если видели его статьи по сабжу, поделитесь, пожалуйста.

5
Всем доброго времени суток!
У меня возникли определённые мысли по статье "Мне сегодня рационально" https://lesswrong.ru/w/%D0%9C%D0%BD%D0%B5_%D1%81%D0%B5%D0%B3%D0%BE%D0%B4%D0%BD%D1%8F_%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE.
Автор статьи рассматривает эмоции как кусочки модели мира, которые могут быть истинны в разной степени, но в принципе их можно по максимуму подогнать под реальность так, чтобы они всегда были максимально истинны. С точки зрения эпистемологической рациональности всё верно и разумно.
А с точки зрения инструментальной - не всегда. Дело в том, что иногда эмоции влияют на реальность в обход наших решений, что ограничивает применимость теорем теории принятия решений.

Пример ситуации:
Я иду по узкой доске через пропасть (или делаю ещё что угодно рискованное и требующее концентрации). Я оцениваю свои шансы упасть в 1% - довольно плохо, но терпимо. Эмоциональная система получает эту оценку и чуть-чуть подливает в кровь адреналина и кортизола (так, чтобы волнение соответствовало 1%-ой вероятности смерти). Мои ноги начинают дрожать чуть-чуть сильнее - это чистая физиология. Из-за этого шансы смещаются к 5%. Эмоциональная система подливает ещё адреналина и кортизола. Я дрожу ещё сильнее... И так, пока я не упаду и не убьюсь.

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

Гарри попал в сходную ситуацию в Азкабане. Ему надо было ожидать от дементоров, что они подчинятся. И тогда он создал вилку (как в шахматах) - либо дементоры подчинятся, либо он их уничтожит. Эта вилка сделала ситуацию безопасной, и поэтому Гарри перестал бояться. Но я не вижу способа делать такие вилки всякий раз, когда намечается опасная ситуация, где принципиально нужно не бояться.

Что предлагают на эту тему рационалисты?

6
Ресурс "Перед лицом сингулярности" ( http://intelligenceexplosion.com/ru/2011/playing-taboo-with-intelligence/ ), на который ссылается lesswrong.ru, рассматривает такие определения разумности:

"Разумность определяет способность индивида достигать своих целей при различных условиях."
"Это определение рассматривает разумность как эффективную межведомственную оптимизацию"
"разумность=оптимизирующая способность/используемые ресурсы"

Это определение напрямую связано с понятием межведомственного (кроссдоменного) оптимизатора или сильного ИИ.
Предположим следующую гипотетическую ситуацию. У вас на руках оказался инструмент, пригодный для быстрого решения оптимизационных задач очень широкого спектра. Софт для нахождения минимумов/максимумов функций с огромным числом параметров. Функция не обязательно должна быть аналитически вычислимой. Оптимизатор может настраивать параметры нейросети, которая затем будет играть в тетрис, и в качестве функции качества оптимизатор будет воспринимать заработанное количество очков.

Итак, у вас есть инструмент, подозрительно похожий на универсальный оптимизатор. Что будете с ним делать? А чего ни в коем случае делать не будете, ибо стрёмно? =)

Страницы: [1]