Для искусственного интеллекта очень важна возможность самообучения, то есть создается программный код, который может обучаться на своих ошибках или успехах.
Например, робот, который играет в настольный теннис в данном случае программа просто записывает результаты своих действий и в следующий раз делает действие, основанное на предыдущих экспериментах, например, если мячик отбивается совсем не в ту сторону, робот отобьет его в следующий раз по-другому и сравнит эти данные, чтобы получить идеальное отбивание со временем. Но алгоритм такого робота не предполагает, что, если посадить его за автомобиль, он сможет научиться им управлять, так как его программа написана только для обучения определенным действиям.
Таким образом, то, что подразумевается под искусственным интеллектом, должно иметь возможность обучаться всему так же, как человек, условно говоря, программа должна уметь «обучаться обучению» и принимать решения, не основанные на изначальном программном коде. Получается, что искусственный интеллект должен сам создавать новый программный код для своих компонентов для каждой ситуации, исходя из всего предыдущего опыта.
Так как это очень сложная задача, ученые используют то, что уже создала природа для обучения, мозг. Чаще всего используется мозг мелких грызунов, например крысы, к которому подключают датчики и элементы управления, и используют различные сигналы, способствующие обучению. Например, если нужно обучить биоробота не врезаться в стены, его отпускают поездить и посылают сигнал боли, если он врезается в стены, или сигнал удовольствия, если он выполняет нужную задачу.
В данном случае мозг может думать, обучаться и принимать решения, основываясь на своем опыте. Но являются ли такие разработки искусственным интеллектом? Нет, так как используется естественная возможность мыслить и самообучаться. С помощью этого действительно можно создать робота с мозгом человека, возможно даже воссозданным искусственно. Он сможет ходить в школу, учиться водить, рыбачить, плавать и создавать новые технологии и работать ученым, но фактически это будет «человек» с телом робота, а не робот с мозгом человека (так же как человек с искусственной рукой не считается роботом).
Возможно ли создать действительно искусственный интеллект, наподобие тому, как это было, например, в фильме «Робот по имени Чаппи», для которого не нужно будет биоматериала? Нет, так как нельзя обучить компьютер думать, а написать для этого алгоритм невозможно. Каждый раз будет получаться «умная» машина, возможно очень «умная», как IBM Watson, но никогда не получится искусственный интеллект.
Как изменилась бы история компьютеров, если бы в IBM 60-х годов попала бы современная флешка на 16 гигабайт?
Ее бы разобрали, прошлифовали микросхему, определили структуру. Сомневаюсь, что они сразу бы вышли на NAND-конструкцию, она представляет из себя объемную решетку, собранную из множества специальных транзисторов, выводы одних являются, упрощая, электродами других. То есть физическую структуру микросхемы увидели бы, но быстро поняли, что повторить не смогут. И не смогли бы аж до начала 1990-х, так как транзистор, вытравленный в NAND-микросхеме, полевой, а его производство требует очень специфических технологий (например, жидкостной эпитаксии и интарсии раствором арсенида алюминия в жидком галлии при избытке мышьяка, она производится в струе химически чистого водорода высокого давления), которых в 60-е просто еще не существовало. Опять же, тогда не было синих лазеров с высокой когерентностью, нужных для современной прецизионной фотолитографии, ведь эти устройства сами детище изощренных способов изготовления полупроводниковых структур. Так что структуру бы разгадали, пусть и с трудом, но ни повторить, ни даже толком понять принцип действия не смогли бы.
Отдельный вопрос программное обеспечение. Современные микросхемы флеш-памяти отличаются тем, что ячейку в них составляют несколько логических элементов, включенных последовательно. К тому же параметры этих элементов «плавают» со временем, вплоть до выхода ячейки из строя. Все это вынуждает использовать при работе с флешкой микроконтроллер, сопряженный со схемой памяти. Он реализует очень непростые алгоритмы коррекции ошибок, адресации и пометки испорченных ячеек. Прошлифовав микросхему или напрямую из памяти их не добыть и не понять, так как архитектура контроллера отличается от архитектуры обычного процессора и самой схемы NAND. Далее идет протокол обмена данными шины USB, который включает с десяток только стандартных уровней, каждый со своей реализацией. Вытащить такой протокол из микросхемы, не зная распределения и значения импульсов в сигнале, задача реальная, но очень сложная без продвинутых программ анализа данных и поиска паттернов.
В итоге попавшая в 60-е флешка выглядела бы, на взгляд тогдашних инженеров, почти как инопланетное устройство, сделанное по неизвестной технологии, с почти неограниченными возможностями хранения данных, которые, однако, очень сложно читать и почти невозможно записывать. На развитие IBM это практически не повлияло бы, они продолжили бы заниматься тем, чем занимались на тот момент. Это банально приносило прибыль, а вот реверс-инженерия флешки нет.
На чем основана работа биокомпьютера?
Я знаю две модели биокомпьютеров. Более близкая к нам в плане технической реализации основана на вычислениях с помощью белков. Если обобщить, то белки в таком вычислительном чипе двигаются по своеобразному лабиринту. Каждый раз, поворачивая в ту или иную сторону, белки прибавляют к искомому числу или вычитают из него единицу вычисления. Такие процессоры «заточены» скорее под решение задач комбинаторики. Вторая модель (даже скорее метод хранения и реализации информации) основан на ДНК. В последовательности азотистых оснований точно так же, как и генетический код, можно закодировать любую информацию, прочитать ее или хранить долгое время, обеспечив такие условия, при которых величина ошибок в последовательности ДНК (мутаций) будет минимальна.
Как компьютер выбирает случайное число?
Это серьезная задача в программировании. Случайные числа принципиально важны для шифрования, генерации паролей и в научных экспериментах.
Подлинно случайное число никаким алгоритмом получить невозможно, хотя существуют более или менее удачные алгоритмы. Их уязвимости периодичность появления одних и тех же чисел, зависимость друг от друга последовательных чисел, неравномерность распределения, обратимость.
Как компьютер выбирает случайное число?
Это серьезная задача в программировании. Случайные числа принципиально важны для шифрования, генерации паролей и в научных экспериментах.
Подлинно случайное число никаким алгоритмом получить невозможно, хотя существуют более или менее удачные алгоритмы. Их уязвимости периодичность появления одних и тех же чисел, зависимость друг от друга последовательных чисел, неравномерность распределения, обратимость.
Для получения случайного числа наиболее распространенный метод обращение к внешнему источнику. Таковым чаще всего выступает счетчик тактов процессора. Некоторые программы отслеживают движения мышки и тому подобное.
Зачем нужен ГОСТ для роботов?
Наша организация давно про это говорила. Роботов сейчас много кто делает, от крупных заводов до стартапов. Каждый разработчик конструирует технику, исходя из своего видения. Но для себя, для дома, для выставки ты можешь делать, как угодно, а вот когда речь идет о технике специального назначения для атомной энергетики, химического производства, для армии и так далее, есть свои внутренние стандарты.
При этом разработчик должен четко знать, в каких областях какие компоненты он может использовать. Должна быть единая классификация к примеру, роботы могут делиться на легкие, сверхлегкие, тяжелые, сверхтяжелые, и без стандарта даже я, разработчик, понятия не имею, к какому классу относится моя разработка.
Также без стандарта не решить вопросы совместимости. К примеру, купил я робота и хочу оснастить его дополнительным оборудованием. Но у этого разработчика такого оборудования нет, я обращаюсь к другому. При этом интерфейсы, скорее всего, будут несовместимы, программное обеспечение несовместимо. Если же будет единый ГОСТ, в рамках которого все будут работать, я, как потребитель, смогу брать один компонент у одного поставщика, другой у другого и все это будет нормально работать друг с другом.
Как нейросети изменят мир через 5 лет?
В такой динамично развивающейся области очень сложно давать прогнозы на будущее даже на такой короткий срок, но все же некоторые тенденции прослеживаются. Например, совершенно точно продолжатся разработки различных автопилотов: от беспилотных мультикоптеров (дронов) до автомобилей. Вряд ли за 5 лет удастся создать полноценный автопилот, которому действительно можно будет доверить жизнь человека, однако за это время человечество точно придет к реализации этой идеи.
Все больше аналитики будет доверено различным системам машинного обучения, в том числе и нейросетям. Также сейчас активно развивается направление обработки естественного языка, что должно привести к совершенствованию различных диалоговых систем (от ботов-консультантов на различных сайтах до Cortana и Siri).
А серьезных изменений в жизни мы, вероятнее всего, не заметим. Во всяком случае, за такой короткий срок.
Как создать свою собственную нейросеть?
Правильная постановка вопроса должна быть такой: как натренировать свою собственную нейросеть? Писать сеть самому не нужно, нужно взять какую-то из готовых реализаций, которых есть множество, предыдущие авторы давали ссылки. Но сама по себе эта реализация подобна компьютеру, в который не закачали никаких программ. Для того чтобы сеть решала вашу задачу, ее нужно научить.
И тут возникает, собственно, самое важное, что вам для этого потребуется, данные. Много примеров задач, которые будут подаваться на вход нейросети, и правильные ответы на эти задачи. Нейросеть будет на этом учиться самостоятельно давать эти правильные ответы.
И вот тут возникает куча деталей и нюансов, которые нужно знать и понимать, чтобы это все имело шанс дать приемлемый результат. Осветить их все здесь нереально, поэтому просто перечислю некоторые пункты. Во-первых, объем данных. Это очень важный момент. Крупные компании, деятельность которых связана с машинным обучением, обычно содержат специальные отделы и штат сотрудников, занимающихся только сбором и обработкой данных для обучения нейросетей. Нередко данные приходится покупать, и вся эта деятельность выливается в заметную статью расходов. Во-вторых, представление данных. Если каждый объект в вашей задаче представлен относительно небольшим числом числовых параметров, то есть шанс, что их можно прямо в таком сыром виде дать нейросети и получить приемлемый результат на выходе. Но если объекты сложные (картинки, звук, объекты переменной размерности), то, скорее всего, придется потратить время и силы на выделение из них содержательных для решаемой задачи признаков. Одно только это может занять очень много времени и иметь гораздо большее влияние на итоговый результат, чем даже вид и архитектура выбранной для использования нейросети.