Код креативности. Как искусственный интеллект учится писать, рисовать и думать
- Автор: дю Сотой Маркус
- Год: 2020
- Язык: русский
- Год: Аттикус
- ISBN: 978-5-389-18965-2
- Переводчик: Дмитрий Александрович Прокофьев
- Жанр: Зарубежная образовательная литература
Электронная книга - «Код креативности. Как искусственный интеллект учится писать, рисовать и думать». Краткое содержание книги:
«Искусственный интеллект потрясает самые основы нашего существования, демонстрируя, сколь многое из того, чем занимаются люди, машины могут делать не хуже, а то и лучше их. Но эта книга посвящена не столько будущему с беспилотными машинами и компьютеризованной медициной, сколько вопросу о том, смогут ли алгоритмы состязаться сколько-нибудь существенным образом с могуществом человеческого кода. Способны ли компьютеры к творчеству? Что нужно для творчества? В какой степени эмоциональная реакция на произведения искусства является результатом реакции мозга на определенные рисунки и структуры? Таковы некоторые из тем, которые мы рассмотрим». (Маркус дю Сотой)
В формате PDF A4 сохранен издательский макет книги.
Вернемся теперь к задаче о мощении пола. Сначала найдем самую большую квадратную плиту, которая входит в помещение заданной формы. Затем найдем самую большую квадратную плиту, которая помещается на оставшийся участок, – и так далее, пока не дойдем до последней квадратной плиты, которая целиком заполнит все оставшееся место. Это и есть самая большая квадратная плита, которая позволит покрыть весь пол, не разрезая плит.
Если M = 36, а N = 15, то при делении M на N получится остаток N1 = 6. При делении N на N1 получится остаток N2 = 3. Но при делении N1 на N2 никакого остатка не получится, и таким образом мы выясняем, что наибольшее число, на которое делятся и 36, и 15, равно 3.
Как вы видите, в этой процедуре много выражений типа «если…, то…». Это характерно для алгоритмов, и именно это обеспечивает столь превосходную пригодность алгоритмов для программирования и компьютеров. Древняя инструкция Евклида затрагивает самую суть четырех ключевых свойств, которыми в идеале должен обладать любой алгоритм:
1. Он должен состоять из точно сформулированных и однозначных инструкций.
2. Процедура всегда должна заканчиваться (а не уходить в бесконечный цикл!), какие бы числа в нее ни ввели.
3. Она должна выдавать ответ для любых значений, введенных в алгоритм.
4. В оптимальном варианте алгоритм должен быть быстрым.
Ни в каком из шагов алгоритма Евклида нет никакой неоднозначности. Поскольку остаток от деления уменьшается на каждом шаге, он неизбежно доходит до нуля за конечное число шагов, после чего алгоритм останавливается и выдает ответ. Чем больше числа, тем больше время работы алгоритма, но работает он все же относительно быстро. (Если вас интересует точное значение, число шагов в пять раз больше числа знаков в меньшем из двух чисел.)
Если самые старые алгоритмы появились более 2000 лет назад, почему же само это название происходит от имени персидского математика IX века? Мухаммад Аль-Хорезми был одним из первых руководителей великого «Дома мудрости» в Багдаде и отвечал за перевод многочисленных древнегреческих текстов по математике на арабский язык.
Слово «алгоритм» происходит от латинской транскрипции его имени. Хотя все инструкции к алгоритму Евклида приведены в его «Началах», язык Евклида чрезвычайно невразумителен. Мышление древних греков было очень геометрическим; вместо чисел они говорили о длинах отрезков, а их доказательства состояли из изображений – приблизительно как в нашем примере с мощением пола. Но изображений недостаточно для строгих математических утверждений. Для них требуется язык алгебры, в котором буква может обозначать любое число. Именно в этом и состояло изобретение Аль-Хорезми.
Чтобы суметь ясно изложить, как работает алгоритм, нужен язык, позволяющий говорить о любом числе, не указывая, какое именно это число. Мы уже видели, как работает этот принцип, в объяснении действия алгоритма Евклида. Мы присвоили числам, которые пытались анализировать, имена – N и M. Эти переменные могут представлять любые числа. Могущество этого нового лингвистического подхода к математике состояло в том, что он позволял математикам понять грамматику, лежащую в основе операций с числами. Можно было не говорить о конкретных примерах работы того или иного метода. Новый язык алгебры дал возможность объяснять закономерности, определяющие поведение чисел. Подобно коду компьютерной программы он показывает, почему метод работает независимо от того, какие числа мы выберем, – в соответствии с третьим критерием нашего определения хорошего алгоритма.
Алгоритмы так распространились в наше время, потому что они идеально подходят для компьютеров. Алгоритм приводит нас к ответу задачи, опираясь на схему, лежащую в основе нашего метода ее решения. Компьютеру не нужно думать. Он просто снова и снова следует инструкциям, заложенным в алгоритм, и как будто по волшебству выдает нужный нам ответ.
Один из самых замечательных алгоритмов нашего времени – это алгоритм, ежедневно помогающий миллионам людей путешествовать по интернету. Если бы я оказался на необитаемом острове и мог взять с собой только один алгоритм, я, вероятно, выбрал бы тот, который управляет поисковой системой Google (хотя толку от него было бы мало, так как у меня, скорее всего, не было бы подключения к интернету).