Может ли компьютер создавать новые программы менять заложенную в него информацию
Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.
Рабочие листы и материалы для учителей и воспитателей
Более 2 500 дидактических материалов для школьного и домашнего обучения
Столичный центр образовательных технологий г. Москва
Получите квалификацию учитель математики за 2 месяца
от 3 170 руб. 1900 руб.
Количество часов 300 ч. / 600 ч.
Успеть записаться со скидкой
Форма обучения дистанционная
- Онлайн
формат - Диплом
гособразца - Помощь в трудоустройстве
311 лекций для учителей,
воспитателей и психологов
Получите свидетельство
о просмотре прямо сейчас!
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«ТИХООКЕАНСКИЙ государственнЫЙ УНИВЕРСИТЕТ »
ПЕДАГОГИЧЕСКИЙ ИНСТИТУТ
Факультет естественных наук, математики и информационных технологий
Направление подготовки 44 .03.05 Педагогическое образование (с двумя профилями подготовки), профили Математика. Информатика ( Физика. Информатика)
Кафедра математики и информационных технологий
Может ли компьютер мыслить
по дисциплине "Основы искусственного интеллекта"
Студент(ка) 4 курса, ПОМИ(аб)-61 гр
очной формы обучения
Юрченко Александр Дмитрииевич
Ледовских Ирина Анатольевна
Хабаровск 2020
Современность невозможно представить без компьютера. То, что еще 30 лет назад казалось скорее сюжетом из произведений жанра фантастики – сегодня уже свершившийся факт: ЭВМ в различных проявлениях очевидно заменило человека во многих аспектах его деятельности.
Каждый человек, слышавший когда-либо очередную новость о новейших достижениях электроники, способных облегчить человеку жизнь в еще одной ее области, задавался вопросом: а не заменит ли таким путем робот человека в принципе? Каждый смотрел фильмы, предвещающие это, и которые все больше становятся не иллюстрацией придуманного сюжета, а прямым отражением реальности.
Сторонники же мысли, что этого никогда не произойдет, апеллируют фактом отсутствия мышления, творчества, чувств у робота. «Может ли робот написать симфонию?» - вопрос, озвученный в одном фантастическом фильме, теперь становится главным в повестке каждого дня.
Следует отметить то, что этот вопрос – не творение дня сегодняшнего.
Имя Алана Тьюринга не нуждается в особом представлении. Предложенная им в 1936 году абстрактная вычислительная «Машина Тьюринга», которую можно считать моделью компьютера общего назначения, позволила формализовать понятие алгоритма и до сих пор используется во множестве теоретических и практических исследований. Научные труды А. Тьюринга — общепризнанный вклад в основания информатики.
Яркими представителями таких трудов являются статьи «Могут ли машины мыслить?» и «Вычислительные машины и разум». С момента творчества великого ученого прошло более полувека, многое изменилось, в связи с этим представляется актуальной небольшая дискуссия с ним, пускай и заочная, с точки зрения дня сегодняшнего.
Итак, способен ли компьютер мыслить?
Для ответа на этот вопрос необходимо определиться с понятиями.
Большинством источников мысль определяется как действие ума, рассудка, как элемент мышления. Мышление в сознании представляется как поток связанных между собой ассоциаций и идей. Мысль имеет различные формы выражения, может по-разному протекать.
Из подобных определений можно сделать вывод, что определение мысли достаточно абстрактное и избегая соприкосновения с ним, Тьюринг представляет к размышлению вопрос, поставленный немного по-другому.
Он описывает его с помощью «игры в имитацию», суть которой заключается в следующем: существует три игрока – А, В и С. С – игрок, задающий вопросы остальным двум. Допустим, он для наибольшей честности находится за ширмой и не знает об остальных игрока ничего, кроме того, что их имена – А и В и то, что это игроки разнополые. Задача игрока С – с помощью вопросов угадать принадлежность к полу каждого из игроков, задача игрока А – отвечать на вопросы так, чтобы помешать игроку С, а задача игрока В – напротив, ответами ему помогать.
Вопрос, который поставил Тьюринг, звучит так: «Что произойдет, если в этой игре вместо A будет участвовать машина?» Будет ли в этом случае задающий вопросы ошибаться столь же часто, как и в игре, где участниками являются только люди?».
По большому счету, Тьюринг отождествляет мышление со способностью отходить от заданного алгоритма, обманом, хитростью.
Несмотря на то, что мысль всегда упоминается наряду с чем-то таинственным, далеким от физиологии, стоит принять точку зрения автора на вопрос, определить мышление именно как «алгоритм ухода от алгоритма» и на некоторое время отложить учет необходимости целеполагания и не решаемый, на мой взгляд, вопрос: имитирует ли машина «мышление» либо же действительно мыслит.
Итак, тезисом этого сочинения будет предположение о том, что цифровые вычислительные машины находятся в шаге от того самого человекоподобного мышления и все, что нам осталось – это ждать максимально четкого и явного подтверждения этому.
В защиту этого тезиса рассмотрим 2 основные части мышления – исполнение алгоритма идей и ассоциаций и некую «возвышенность», наличие которой часто ставят как главный аргумент в пользу невозможности равенства человека и машины.
Очевидно, что человек никогда не достигнет того уровня точности в исполнении любого заданного алгоритма, какой есть у любой, даже самой простой машины. Камнем преткновения здесь является вопрос ограниченности машины, которой якобы нет у человека.
В этом вопросе необходимо разобраться. Во-первых, как отмечает Тьюринг, в подобной точке зрения четко прослеживается мотив удовлетворения от «превосходства». Здесь процитирую его самого: «Мы сами слишком часто даем неверные ответы на вопросы, чтобы то чувство удовлетворения, которое возникает у нас при виде погрешимости машин, имело оправдание. Кроме того, чувство превосходства может относиться лишь к машине, над которой мы одержали свою – в сущности весьма скромную – победу. Не может быть и речи об одновременном торжестве над всеми машинами. Значит, короче говоря, для любой отдельной машины могут найтись люди, которые умнее ее, однако в этом случае снова могут найтись другие, еще более умные машины».
Во-вторых, важным пунктом в аргументации против этого тезиса является мысль о том, что человек сам «наполняет» машину исходными данными для операций, а значит, машина бездумна в выборе целей и не понимает, для чего операция происходит.
В абсолютном большинстве случаев с этим невозможно поспорить. Но эта точка зрения отнюдь не означает то, что невозможно сконструировать машину, «заполняющую» себя саму (об этом упомянем далее). Более того, остается открытым вопрос о самостоятельности человека в этом смысле. Как известно, все новое – это хорошо забытое старое. Значит ли это, что все действия человека, все его, как нам кажется, оригинальные мысли – это плод образования, воспитания, культуры, сложенных из мыслей и идей прошлого?
Считаю, можно сделать вывод о том, что в человека, равно как и в машину, «закладывают» необходимые для мышления данные. На вопрос «кто закладывает?» можно отвечать по-разному: с точки зрения агностика или атеиста – образование и социальные условия, с точки зрения верующего – Бог или иные высшие силы, но факт остается очевидным.
Теперь необходимо упомянуть и о так называемой «возвышенности» в мышлении человека, которая отделяет его от всего живого и неживого в природе.
Для начала стоит сразу откреститься от упоминания подсознания человека в данном контексте. Не зря для начала мной было предложено определиться в терминах – мысль в сочинении рассматривается как нечто прикладное, как результат прежде всего сознания, активной деятельности.
Поэтому поговорим о том, что не так «высоко». Основой для подобного возвышения с точки зрения физиологии, очевидно, является центральная нервная система. Тьюринг в 1950 году отмечает сходство ЦНС человека с устройством любой цифровой вычислительной машины, но упоминает и то, что сходство это весьма поверхностное и стоит искать точки соприкосновения в математических моделях их функционирования.
Возвращаемся из 1950 года в год 2020. В наше время набирают популярность нейронные сети и именно это, на мой взгляд и является тем самым примером сходства «нервных систем» ЭВМ и человека. Нейронная сеть — это последовательность нейронов, соединенных между собой синапсами. Структура нейронной сети пришла в мир программирования прямиком из биологии. Благодаря такой структуре, машина обретает способность анализировать и даже запоминать различную информацию. Нейронные сети также способны не только анализировать входящую информацию, но и воспроизводить ее из своей памяти.
Как мы видим, даже термины, взятые из биологии, указывают если не на полную идентичность, то на максимально возможно сходство современных ЭВМ с устройством человека. И здесь мы возвращаемся к вопросу о «заполняемости» машин. Даже если человечество упорно считает, что оно в мышлении оригинально, а машины – вторичны, то совсем скоро эта мысль станет абсурдной хотя бы из-за идентичности их строения.
Но только важно понимать, что машины 21 века вычли из алгоритма мышления такой важный элемент для человека, как неточность, хотя и способны при необходимости его имитировать.
На самом деле компьютеры могут программировать самостоятельно, просто не очень хорошо
Пользователь Quora Тихон Джелвис считает: для того, чтобы машины научились программировать, нужно больше данных, чем есть у учёных на сегодняшний момент, и, на самом деле, это лишь вопрос времени.
Джелвис видит две проблемы, которые мешают компьютерам программировать самостоятельно. Во-первых, не очень ясно, как рассказать машине, что именно нужно запрограммировать. Естественный язык тут не подходит, и учёные пока не могут прийти к единому мнению относительно решения этого вопроса.
Во-вторых, непонятно, как масштабировать полученные программы. Компьютеры могут писать код, решающий маленькие задачи, но написать программу, которая содержит в себе больше определенного количества инструкций, они не способны. Помимо того, что это число довольно маленькое (около сотни), на текст программы почти всегда должны быть наложены некие ограничения: например, не применять циклы.
Как объяснить компьютеру, что вам нужно
Основная сложность, по мнению Джелвиса, здесь в том, что пользователю должно быть проще рассказать компьютеру, что ему нужно, чем написать код самому — иначе в такой системе нет никакого смысла. Кроме того, у человека должна быть возможность убедиться, что машина занимается тем, чем ему нужно, и что код, который она выдаёт, написан правильно.
Есть очевидный способ объяснить компьютеру, что ему нужно сделать. Для этого нужно описать проблему на языке какой-нибудь формальной аксиоматической теории. Запрограммировать систему, считывающую вопрос и преобразующую его в текст, понятный машине, относительно просто. Однако далеко не все пользователи компьютера способны перевести задачу на язык математической логики. Поэтому такое решение не годится.
Другой подход — примерное описание алгоритма. Таким образом можно дать машине понять, чего от неё ждут. Компьютер сможет проанализировать полученные данные, «осознать», как должен работать алгоритм, и оптимизировать полученный код. Кроме того, текст, который пользователь отдаёт системе на обработку, совсем не обязательно должен быть правильный. Достаточно лишь приблизительно описать, что именно хочется получить человеку. Этот вариант гораздо сложнее реализовать, и пользователю всё равно будет нелегко сформулировать задачу — например, когда вообще неясно, как её решать.
Джелвис считает оптимальным следующий способ: пользователь передаёт в систему несколько пар вида (входные данные, выходные данные), а компьютер составляет алгоритм, который из входных данных получает выходные. Когда программа создана, она прогоняется на ещё нескольких парах, и так пока она каждый раз не будет выдавать нужные значения. К сожалению, пока реализовать такую схему невозможно.
В общем случае довольно сложно проверить написанный компьютером код на соответствие заданным условиям
На самом деле, слишком сложно, поясняет пользователь Quora Мариса Кирисаме. Задача разрешимости булевой функции NP-полна. Единственный на данный момент известный науке способ решить такую задачу — перебрать все возможные варианты.
Этот порог можно будет преодолеть — если математикам удастся доказать, что классы задач P и NP равны, однако наука занимается проблемой равенства классов уже много лет, и пока ответа на этот вопрос дать не удалось.
Кроме того, даже логика первого порядка является лишь полуразрешимой. Разрешимость — это свойство, позволяющее найти алгоритм, определяющий по аксиомам теории, принадлежит данная формула этой теории или нет. Полуразрешимость — более слабое свойство. Оно означает, что если формула не принадлежит теории, то работа подобного алгоритма никогда не завершится.
Конечно, существуют и разрешимые аксиоматические теории первого порядка — например, арифметика Пресбургера. Но сложность алгоритма, определяющего выводимость формулы в этой теории, экспоненциальная. Если точнее — O(2^(2^N)), где N — длина входных данных.
Кирасаме замечает: логика высказываний, которую нужно будет применять, чтобы распознать нужное решение, наверняка гораздо более высокого уровня, чем первого. И если даже она будет разрешимой, сложность нужного алгоритма, вероятно, окажется слишком большой.
Всё это значит, что компьютер может писать эффективные программы лишь для небольших задач. Для более глубоких вопросов это просто не имеет смысла — потому что проверить оптимальность, эффективность и правильность кода будет очень сложно.
Компьютеры не умеют программировать, потому что люди не хотят быть уничтоженными
Некоторые из пользователей Quora, высказавших своё мнение по этому вопросу, считают, что основная проблема — это неоднозначность самого существования искусственного интеллекта. Ведь, по сути, именно это и означает обучение машины программированию — таким образом в «мозг» компьютера будет заложена логика — то, что отличает робота от человека.
Если искусственный интеллект будет создан, совсем не факт, отмечает один из комментаторов по имени Сичу Лу, что люди продолжат своё существование на земле. Возможно, они будут уже не нужны компьютерам, которые смогут всем заниматься сами.
Ответ на вопрос, мыслят компьютеры или нет, зависит от того, что мы понимаем под словом «мышление». Если охарактеризовать мышление как человеческую деятельность, обусловленную активностью нейронов головного мозга, тогда, в силу этого определения, нам придется сказать «нет». Допустим, мы не станем априорно отвергать идею, что компьютеры способны мыслить. Как тогда вы бы стали отвечать на этот вопрос?
Большинство людей тем не менее не желает верить, что компьютер может мыслить, пусть даже им и не отличить один ответ от другого. В конце концов, можно ли считать подражание мышлению полным аналогом самого мышления? Если фокусник может заставить вас поверить, что он способен сотворить кролика практически из воздуха, это вовсе не значит, что он в самом деле на такое способен. Допустим, я сконструировала робота, который будет каждый день выгуливать вашу собаку. Конечный результат будет таким же, как если бы собаку выгуливал человек, но вы ведь не будете полагать, что робот и сам при этом разминает ноги? Из того, что конечный результат один и тот же, вовсе не следует, что процессы, которые к нему привели, повторяют друг друга.
С другой стороны, рассмотрим следующий ряд рассуждений. Самый известный математический труд XX в. — Principia Mathematica («Основания математики») — был написан в 1927 г. Уайтхедом и Расселом. Все мы согласимся, что эти математики были незаурядными мыслителями. Позднее те данные, которые были известны до написания Уайтхедом и Расселом своего труда, были заложены в компьютер, который быстро вывел те же теоремы, что и эти знаменитые ученые. Когда этот интеллектуальный подвиг был совершен людьми, его назвали примером исключительной способности мышления. Должны ли мы тогда обозначить этими словами то же достижение, когда его совершает компьютер? Вклад Уайтхеда и Рассела в науку огромен, поскольку они при создании своего математического труда приложили значительные усилия, отбирая необходимые данные и отбрасывая ненужные. Их гений должен был определить, какая информация релевантна. Еще важнее, что человеческий гений сумел понять, на какие математические задачи необходимо найти ответ. Из широчайшего спектра возможных математических задач они выбрали именно те, ответ на которые мог быть получен ими с наибольшей вероятностью. Компьютеру была дана вся необходимая информация и поставлена задача, которую требовалось разрешить, поэтому найденное им решение выглядит намного менее творческим и впечатляющим, чем та работа, которую проделали выдающиеся математики.
Представьте, что вы написали программу, которая может изменить сама себя и стать другой программой. Это возможно или нет?
Давайте быстро вспомним, как работает программа. Во-первых, она загружается в память компьютера. Это значит, что начиная с определенного адреса в памяти располагаются машинные инструкции, из которых состоит программа:
Во-вторых, чтобы программа начала работать, нужно "натравить" на неё процессор. У процессора есть специальный указатель , который всегда указывает на какой-то адрес. Из этого адреса процессор читает и исполняет инструкцию. Указатель сдвигается на следующий адрес, процессор читает следующую инструкцию, и т.д. Значит, тот адрес, с которого начинается программа, нужно записать в указатель процессора. Тогда процессор начнет читать инструкции и исполнять их, начиная с этого адреса. То есть программа фактически начнёт работать.
Но программа также работает с какими-то своими переменными. Скажем, если мы напишем в коде
То будет выделен адрес памяти для переменной a , и в этот адрес будет записано число 5.
Значит, и сама программа находится в памяти, и её данные находятся в памяти. И очевидно, что данные можно читать и перезаписывать.
Чем отличаются данные, лежащие в памяти, от машинных инструкций, лежащих в памяти? Абсолютно ничем. Значит, данные можно трактовать как машинные инструкции, а машинные инструкции можно трактовать как данные?
Например, число 12058880 – это машинный код, который обозначает "записать число 1 в первый регистр процессора" (неважно, это просто пример).
Стало быть, если мы напишем:
a = 12058880
То мы поместим в память, с одной стороны, число 12058880, а с другой стороны – машинную инструкцию.
Значит, код программы вполне может сгенерировать код другой программы и записать его в память. Останется только его выполнить. Если мы знаем адрес переменной a , то нужно записать её адрес в указатель инструкций процессора, и тогда процессор прочитает число 12058880 из этого адреса и выполнит его как инструкцию.
А если программа знает собственный адрес? Тогда она может записать какие-то данные прямо поверх своих инструкций, тем самым изменив саму себя.
Получается, что мы загружаем программу в память, запускаем её, потом смотрим в память – а там лежит уже другая программа.
Но не тут-то было
Кроме того, даже если программа не была вредоносной, какая-нибудь ошибка в ней вполне могла привести к тому, что процессор попадал на область данных и начинал выполнять их как инструкции, что естественно приводило к полному краху и непредсказуемым последствиям.
В результате была придумана защита. Память была поделена на сегменты (не физические, а условные). В сегмент кода загружался и исполнялся только код, а в сегмент данных помещались только данные, и они никогда не пересекались. Программа могла делать запись только в сегмент данных. Если делалась попытка записать что-то в сегмент кода или выполнить что-то в сегменте данных – то процессор это сразу перехватывал, и выбрасывал ошибку, которая знакома всем: "Программа совершила недопустимую операцию и будет закрыта".
Тем не менее, и в такой защите время от времени находят бреши. То баги в самом процессоре, то хитроумные и непредусмотренные механизмы изменения защиты.
Но для обычных людей времена самомодифицирующихся программ давно прошли :)
Когда-то я написал игру на ассемблере, и мне нужен был генератор случайных чисел. Чтобы не возиться с ним, я сделал так, чтобы программа читала собственные машинные коды как случайные числа. Они, конечно, не были случайными, но были достаточно похожи на них.
Концепция мыслящих машин лежит в основе несметного числа фантастических книг и фильмов. Даже в более-менее серьёзных футуристических прогнозах время от времени исходят из предположения, что мы создадим не просто искусственную жизнь, но искусственное сознание. И эта перспектива завораживает. Разумеется, в своих мечтах о мыслящих машинах мы априори считаем, что их мышление будет построено по образу нашего. С определёнными отличиями вроде не отягощённости потребностями тела, эмоциями и прочими затруднениями, связанными с биологическим бытием. Но если вдуматься, то никто не гарантирует того, что машины будут думать, как мы.
А задавались ли вы когда-нибудь вопросом, что имеется в виду под словом «думать»? Да, на интуитивном уровне мы можем осознать своё собственное мышление, человеческое, но что насчёт животных? Думают ли шимпанзе? А вороны? Осьминог?
Допустим, инопланетные разумные формы жизни существуют. Вполне вероятно, что их разум будет настолько сильно отличаться от нашего, что мы даже не сможем осознать их разумность. Кто знает, может быть, инопланетяне уже были где-то поблизости, но из-за фундаментальных различий разума даже не заметили нас. А мы — их.
Безусловно, животные обладают когнитивными способностями, отличными от наших, нацеленными на использование инструментов, понимание причинно-следственных связей, коммуникацию с другими существами, и даже на осознание целенаправленного мышления у других. Вероятно, к «мышлению» нужно отнести все эти задачи. Представим, что нам удалось создать машину, обладающую всеми перечисленными возможностями, то есть, по нашему мнению — думающую. Тогда нам останется только похвалить себя и лечь на диван с чувством выполненного долга. Но сможет ли машина встать на ступень выше, сможет ли она думать как человек? И если сможет, то как нам об этом узнать? Ориентироваться на одно лишь поведение компьютера было бы ошибкой. Если он будет действовать так, словно умеет думать, то это ещё не будет означать, что всё так и есть. Может быть, это будет искусной имитацией, разновидностью философского зомби.
В своё время этот вопрос — как распознать разумность машины — подвигла Алана Тьюринга на создание его знаменитого теста, в течение которого компьютер взаимодействует с человеком посредством текста на экране, и должен в большинстве случаев убедить живого собеседника, что он тоже является человеком. Для Тьюринга всё сводилось именно к поведению машины, а не ко «внутренней цифровой жизни».
Однако для кого-то эта внутренняя жизнь всё же важна. Знаменитый философ Томас Нагель в своей статье «Каково быть летучей мышью?» высказал точку зрения, сознание не отождествляется с мозгом. Есть «что-то, чему нравится» получать сознательные переживания, опыт. То есть в нас есть нечто, чему нравится смотреть на красивые объекты, или заниматься каким-то делом. Человек — это нечто большее, чем набор состояний его мозга.
Но тогда можно задаться вопросом: а может ли существовать «что-то, чему нравится» быть думающей машиной? Допустим, нам когда-нибудь нам удастся создать разумный компьютер. И если при проведении теста Тьюринга человек спросит: «Есть ли у тебя сознание?», то в ответ может получить: «Как бы я об этом узнал?».
Вычисления — и больше ничего?
Согласно современным представлениям, в основе компьютерного мышления должны лежать исключительно вычисления: количество операций в секунду и логических переходов. Но мы не уверены, что мышление — или сознание — есть производная от вычислительной мощности. По крайне мере, в условиях использования двоичных компьютеров. Может ли мышление являться чем-то большим, чем набор алгоритмов? Что ещё нам нужно? А если всё дело лишь в вычислениях, то почему человеческий мозг не слишком-то в этом и силён? Ведь большинство из нас сталкиваются с затруднениями, когда нужно перемножить в уме пару двузначных чисел, не говоря уже о более сложных задачах. Или в нашем подсознании осуществляется какая-то глубокая обработка данных, что в конце концов выражается в ограничении наших сознательных вычислительных возможностей (аргумент в пользу так называемого «сильного ИИ»)?
По сравнению с компьютерами, наши способности по манипулированию необработанными данными никуда не годятся. Зато компьютерам очень плохо даются такие вещи, как языки, поэзия, распознавание голоса, интерпретирование сложных поведенческих шаблонов и формирование всеобъемлющих суждений.
Если способности компьютеров столь отличаются от наших, то как можно ожидать, что в конце концов они смогут думать как мы? Быть может, в будущем компьютеры обретут все черты человеческого мышления в обмен на ухудшение способностей к арифметическим вычислениям?
О вере, сомнении и ценности
Если компьютеры действительно начнут думать как человек, то их разуму также будут свойственны понятия вроде «веры» и «сомнения». А что может означать для компьютера «вера во что-то»? Конечно, если не считать такой тривиальной ситуации, как действие без учёта вероятности ошибки? Сможет ли когда-нибудь произойти так, что компьютер искренне засомневается, но пересилит своё сомнение и всё равно продолжит действовать?
Для человеческого разума огромное значение имеет понятие «ценность». Его можно считать одним из основополагающих, движущих факторов. О чём мы думаем в тот или иной момент времени, и почему мы об этом думаем? Сможет ли компьютерный разум придавать ценность хоть чему-либо? И если да, то чему?
Было бы замечательно, если бы смогли создать компьютер, разделяющий систему человеческих ценностей. Но мы, вообще-то, сами не можем с уверенностью сказать, что это такое, а уж тем более как запрограммировать эту систему. К тому же, если компьютеры смогут программировать сами себя, то им может придти в голову, что ценности можно поменять.
Учитывая, сколько сил и ресурсов тратится на создание искусственного интеллекта, сейчас самое время попытаться понять, каким мы хотим видеть мыслящий компьютер. А для этого, возможно, нам нужно сначала постараться понять самих себя.
Читайте также: