Google покормил математические уравнения языкового алгоритма. Он научился решать новые.
Многие люди считают компьютеры «экспертами по математике» по сравнению с нами, людьми. Хотя мы не можем решать уравнения так же быстро, как машина, мы не должны слишком сильно верить в их точность, потому что компьютеры не могут знать, понимать или вычислять каждую возможность в бесконечной серии чисел, независимо от того, сколько времени у них есть. имеется в наличии. Это ограничение вычислительного оборудования приводит к странным отклонениям в том, как компьютеры выполняют математику, но новый метод обучения искусственного интеллекта, разработанный Google для понимания и решения сложных математических задач, может привести к резкому увеличению точности вычислений в будущем.
Во-первых, давайте посмотрим на то, что сделал Google, потому что это впечатляющий подход сам по себе. Для обучения данных DeepMind получил ряд уравнений вместе со своими решениями - как учебник по математике, только без какого-либо объяснения того, как эти решения могут быть достигнуты. Затем Google создал модульную систему для процедурного генерирования новых уравнений для решения с контролируемым уровнем сложности и поручил ИИ предоставлять ответы в любой форме. Без какой-либо структуры DeepMind должен был интуитивно понять, как решать новые уравнения, основываясь исключительно на ограниченном количестве завершенных примеров.
Борьба с существующими алгоритмами глубокого обучения с помощью модульной математики представляет собой очень сложную задачу для ИИ и существующих моделей нейронных сетей, выполненных с относительно схожим уровнем точности. Самая эффективная модель, известная как Transformer, смогла обеспечить правильные решения в 50% случаев и была разработана для понимания естественного языка, а не математики. Если судить только по способности Transformer отвечать на вопросы, в которых использовались цифры, указанные в данных обучения, его точность возросла до 76 процентов.
В то время как лучшие результаты представляют неудовлетворительную оценку и твердый C, они, тем не менее, чрезвычайно впечатляющие. Помимо этого метода, предлагающего простые и эффективные средства измерения способности модели к определенным типам задач, он может привести к решению самой большой ошибки в знании компьютерной математики.
Чтобы понять эту проблему, давайте кратко рассмотрим, как компьютеры делают математические ошибки по своему замыслу. Рассмотрим следующий пример. Несмотря на два очень больших числа, вы, вероятно, сможете решить следующее уравнение в ближайшее время:
999999999999999 – 999999999999998
Хотя у вас не должно возникнуть проблем с определением того, что второе число на одну цифру меньше первого, и, следовательно, ответ равен 1, калькулятор (например, Google) выдаст явно неправильный результат.
Причина этого недостатка лежит в основе вычислительной архитектуры. В то время как мы понимаем математику через систему счисления с основанием 10 / десятичное число, компьютеры по-разному воспринимают вещи с помощью двоичного числа с основанием 2. Вы можете увидеть разницу, если взглянуть на строку действительного числа, как вы ее знаете.
Если вы посчитаете целые числа в последовательности, вы обнаружите, что произносите вслух строку действительного числа. Мы можем создать все нужные нам цифры из цифр в диапазоне от 0 до 9. С другой стороны, у компьютеров есть только 0 и 1 для определения чисел, что может привести к некоторым необычным ошибкам, подобным изображенному выше. Все данные на наших компьютерах существуют в виде серии единиц и нулей, и это не освобождает числа. Вот взгляд на то, как строка действительного числа переводится в двоичную форму для компьютеров.
Проще говоря, все становится немного сложнее.
Представьте себе, что вы делаете копию Оксфордского словаря английского языка, когда вы можете представлять его содержимое только двумя буквами в алфавите. Компьютеры могут сделать это, потому что алфавиты содержат только конечное число символов, и они только требуют порядка и представления. Строка действительных чисел, с другой стороны, представляет собой бесконечный ряд. Ни один человек или компьютер не может записать и отобразить всю бесконечную серию, иначе эта серия станет конечной. Если вы понимаете эту невозможность, нетрудно представить, почему компьютер может рассчитать только часть этого числа. В конце концов, он должен понимать все эти числа в своей двоичной системе. Где мы видим 9, компьютеры видят 1001. Посмотрите, как компьютеры видят число 85:
Компьютеры используют суммы, кратные двум, чтобы успешно представлять значительный сегмент строки действительных чисел, но не все. Десятичная система счисления работает таким же образом - только с 10 с вместо 2 с - но для представления любого заданного числа требуется значительно меньше 10 основных цифр по сравнению с тем же значением в двоичной системе. Все системы счисления по своей природе могут представлять меньшие числа более точно, чем более крупные, но поскольку двоичная система предлагает меньше уникальных цифр для представления каждого числа, в котором быстрее не хватает места (по сравнению с десятичной системой счисления / основанием 10).
Это препятствует тому, чтобы компьютеры представляли каждое возможное число в числовой строке - то, что вы испытали в базе 10, если вы когда-либо сталкивались с долей в одну треть. Вы знаете, что сумма 1/3 + 1/3 + 1/3 равна 1, но если вы представляете 1/3 в виде десятичной дроби, она становится 0,3333333 и продолжается бесконечно. В отличие от дробного представления 1/3, десятичная версия складывается из 0.9999999 (и т. Д.) И никогда не достигает 1, потому что десятичная система счисления не может представить дробь 1/3 с необходимой точностью.
То же самое происходит с компьютерами, и поэтому они используют стратегическое округление, чтобы добраться до ближайшего числа, которое они могут представить. Это приводит к снижению точности, но учитывает больший диапазон вычислений. В результате конкретные уравнения могут использовать слабые места двоичной системы счисления и вызывать ошибки округления, которые делают компьютер неверным результатом.
Между прочим, вы только что прочитали большое упрощение того, как работают ошибки компьютерного округления. Посмотрите видео выше, если вы хотите более точное объяснение того, как все математика вытряхивает.
Точно так же, как дробная нотация (например, 1/3) может помочь нам преодолеть ограничения базы 10, инженеры предоставили специальную логику, чтобы помочь машинам преодолеть более проблемные ограничения базы 2. Однако, ограничения обработки ЦП, большее число представительных требуемые цифры и большое количество десятичных знаков с бесконечными представлениями в двоичном коде объединяются, чтобы представить проблему без идеального решения.
Компьютеры не одиноки в этих ошибках округления. Вы можете увидеть суть этой дилеммы буквально везде, куда бы вы ни посмотрели, если учесть, как ваша близость к другим вещам определяет уровень детализации, который вы можете воспринимать о них. Для человеческого глаза точность деталей уменьшается с расстоянием. Это расстояние, однако, может позволить нам увидеть более полную картину, пожертвовав точностью. Одна и та же реальность проявляется по-разному во всех известных системах счисления.
Создав метод обучения искусственному интеллекту, который определяет способность алгоритма подходить к вычислениям, используя собственную абстрактную методологию, Google создал основу для достижения гораздо более высокого уровня точности вычислений в будущем. Благодаря тому, что модель языка Transformer призвала первый приз за точность, даже несмотря на то, что ей удалось получить только половину правильных вопросов, она дает подсказку, указывающую направление модели, которая когда-нибудь сможет достичь идеальной точности по всему спектру математики, которую сегодня компьютеры решают с недостатками. Учитывая гораздо более высокий балл Transformer за решение уравнений с помощью интерполяции (76 процентов), повышение точности может достигаться за счет сочетания алгоритмических изменений и более значительного набора обучающих данных.
В любом случае, у нас не будет идеального машинного калькулятора, который сможет понять всю математику к следующей неделе. Прямо сейчас это остается чуть больше, чем несбыточная мечта. В конце концов, модульная система уравнений уже ограничивается сложностями школьного уровня, и ни одна модель не может достичь почти идеальной точности. С кодом, который генерирует эти уравнения, общедоступным, мы можем когда-нибудь добраться до него.
Главный кредит изображения: Getty Images