Насколько жизнеспособной будет революция аналоговых вычислений?

Я пытаюсь написать научно-фантастический сеттинг в недалеком будущем, в котором обработка аналоговых сигналов (в данном случае мозговых волн) является одним из основных моментов сюжета и в значительной степени требуется для объяснения некоторых механик, происходящих в Вселенная.

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

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

DARPA пыталось построить аналог CPU «клеточной нейронной сети» (проект UPSIDE) для компьютерного зрения еще в 2012 году, но информации об этом не так много. По-видимому, это позволяет достичь гораздо более высоких скоростей при меньших затратах энергии за счет некоторых периодических ошибок и того, что было описано как требующий совершенно другого способа решения проблем. Проблема в том, что он ничего не говорит о том, насколько он программируемый (что, по-видимому, так и есть, но не упоминает, является ли он полным по Тьюрингу сам по себе или нет). Кроме того, похоже, что это гибридный аналого-цифровой компьютер, о котором я изначально думал включить в свой рассказ.

Можем ли мы в будущем увидеть следующие вещи? Насколько они будут лучше своих цифровых аналогов? Будут ли у них ограничения?

  • Чисто аналоговый ЦП (могут ли они запускать программы, которые мы запускаем сегодня? Например, можно ли их по-прежнему использовать в качестве ПК?)
  • Гибридный аналого-цифровой ЦП, где они дополняют друг друга в зависимости от решаемой задачи.
  • Аналоговое ОЗУ/хранилище. Может быть цифро-аналоговым или чисто аналоговым. Можно ли сделать его постоянным, как с мемристорами? Как это все-таки сработает?
  • Настоящая аналоговая связь. Я знаю, что они непрактичны из-за возможного шума сигнала, но давайте предположим, что у нас есть надежное решение, чтобы компенсировать это, например, алгоритмы, способные различать реальный сигнал.
  • Голографический процессор? Как цифровые, так и аналоговые. Я знаю, что цифровой оптический процессор теоретически жизнеспособн, но я понятия не имею об аналоговом; Я предполагаю, что он может работать на частоте/цвете света или что-то в этом роде.
  • Аналогово-ориентированные языки программирования. Насколько они будут отличаться от языков программирования, которые мы используем сегодня, если таковые имеются? Может ли существовать единый аналогово-цифровой язык, в котором интеллектуальный компилятор решает, использовать ли аналоговый ЦП или цифровой ЦП способом, подобным тому, что уже делают оптимизации компилятора hUMA?

Имейте в виду, что, хотя этот сеттинг вовсе не должен быть научной фантастикой, это также и не фэнтези. Какими бы ни были ответы, они должны быть по крайней мере отдаленно жизнеспособными в реальности, а точнее, выполнимыми в течение следующих 70 лет или меньше, хотя компьютерная наука всегда может сделать некоторые прорывы. Не нужно отказываться от недоверия, чтобы насладиться обстановкой, даже если вы немного разбираетесь в этой области.

Примечание: я думаю, вы могли бы провести некоторые параллели между аналоговыми вычислениями и квантовыми вычислениями, поскольку оба они лучше всего (или только) работают на вероятностных алгоритмах, а не на детерминированных, но это не о квантовых вычислениях. Квантовая технология существует в этом контексте, но она чрезвычайно редка и используется только в некоторых конкретных контекстах, не говоря уже о том, что большая часть ее является чрезвычайно экспериментальной, и широкая публика не обращает внимания на существование жизнеспособных прототипов.


Редактировать:чтобы быть более конкретным, контекст и варианты использования этой технологии заключаются в том, что пользовательский ввод теперь обрабатывается через своего рода матрицу электродов, имплантированных в мозг, способных считывать мозговую активность / мысли пользователя. Программное обеспечение, обрабатывающее выходные данные этой матрицы, уже пытается преобразовать активность мозга в своего рода «универсальный язык мозга», который скрывает различия между человеческими мозгами, но все еще требует аналоговых/действительных чисел/волнового сигнала для высокой точности (не как в безошибочно, но как в описательном) и с высокой пропускной способностью. Аналоговые сигналы были выбраны потому, что мозг может легко восстанавливаться после небольших ошибок и несоответствий, а также потому, что они больше похожи на то, как работает человеческий мозг, но из-за ограничений системы обратной связи «запаздывают».

По этой же причине компьютеры одновременно выполняют операции над своим непрерывным выходным аналоговым потоком, чтобы сократить время ожидания пользователем ответа. Это также причина, по которой все алгоритмы, напрямую считывающие пользовательскую волну, также являются параллельными: лучше обновить волну позже, чем останавливать ее до тех пор, пока ответ не будет обработан. Кроме того, из-за особенностей мозга мысль или последовательность мыслей могут быть прочитаны и предсказаны по мере их формирования, но не могут быть подтверждены до тех пор, пока они полностью не сформируются. Эта деталь чрезвычайно важна, так как на этом факте строится сюжетный ход.

Думайте об обмене информацией между компьютером и человеком как об обычном разговоре между двумя людьми (это больше похоже на телепатию, но для простоты предположим, что они просто разговаривают).

  1. Компьютер просто терпеливо кивает, когда человек разговаривает с ним, что представляет собой непрерывную обратную связь.
  2. Человек: Дел...
  3. Компьютерные прогнозы: я на 85% уверен, что Human спросит меня об удалении чего-либо.
  4. Человек: Удалить...
  5. Компьютер думает: Команда удаления подтверждена.
  6. Человек: Удалить файл...
  7. Компьютерные прогнозы: я на 70% уверен, что Human попросит удалить один файл. Я на 30% не уверен, что Human вместо этого просит меня удалить целую файловую систему.
  8. Человек: Удалить файл /home/myUser/delt...
  9. Компьютер думает: удаление файла подтверждено. Обнаружено 52 файла, соответствующих критериям FILEPATH=/home/myUser/delt*.
  10. Человек: Удалить файл /home/myUser/delta.bwave
  11. Компьютер думает: Обнаружен путь к файлу. Запрос на удаление файла /home/myUser/delta.bwave подтвержден. Инициация удаления.
  12. Компьютер продолжает кивать в течение доли секунды, прежде чем ответить
  13. Компьютер: файл успешно удален.

На самом деле здесь произошло то, что пользователь сделал запрос на удаление определенного файла. Когда пользователь формировал свое предложение, компьютер уже начал делать все необходимые приготовления для его выполнения, во многом так же, как мы, люди, общаемся: мы можем идентифицировать слово по его лексеме до того, как слово будет полностью сформировано, поэтому мы можем более или менее угадывать что будет дальше, но мы не можем полностью понять все значения этого слова, пока не услышим все морфемы (если они есть). Точно так же мы можем попытаться угадать, какое слово может быть следующим, и попытаться понять, что другой человек пытается нам сказать, но мы не будем уверены в деталях, пока все предложение не будет завершено. Точно так же одно предложение может пролить некоторый свет на контекст обсуждаемой темы и т. д. После того, как запрос пользователя был выполнен,

Этот момент чрезвычайно важен, потому что хакеры будущего будут пытаться обманом заставить машину сделать что-то еще (или просто остановить ее), удивив ее своего рода «изюминкой», способной удивить ее. Поскольку программы безопасности являются параллельными, они не могут понять весь объем действий пользователя, пока не станет слишком поздно. Думайте об этом как об установке ловушки для вражеского короля в шахматах на несколько ходов: большинство «нелогичных» движений, сделанных ранее, начинают иметь смысл в тот момент, когда ваш король убит. В абзаце, в котором говорилось о журавлях, на самом деле говорилось о птицах, а не о коробках, но компьютер никогда бы этого не предвидел, поскольку он в основном оперирует предложениями, а не такими большими контекстами, как абзац или небольшой текст; в общем,

Чтобы определить, что пытается сказать пользователь, современный ЦП включает нейронную сеть, которая позволяет ОС задним числом придавать смысл словам после прослушивания строки букв. Чаще всего это абстрагируется от пользовательских программ с помощью библиотек и API-интерфейсов, хотя они могут получить доступ к волновому потоку в зависимости от своих разрешений.

Система «биометрической аутентификации», о которой я упоминал ранее, фактически работает с большими сегментами потока. Поскольку автоматическое преобразование в «универсальный язык мозга» уменьшает (не устраняет!) различия между мозгами пользователей, пытаться идентифицировать пользователя только по этим различиям невозможно (не говоря уже о том, что хотя и небольшой, но случайный шум, который может иметь линия). , такой уровень детализации был бы невозможен). Вот почему программное обеспечение для аутентификации пользователей работает с более широким набором мыслей: оно определяет примерное состояние ума пользователя (возбужденное, сердитое, расслабленное и т. д.) и «манеризмы», которые у него могут быть. Это более или менее эквивалент акцента человека или стилометрического анализа его текстов: он идентифицирует их с высокой степенью точности, но не безошибочен.

Этот «универсальный язык мозга», о котором я говорю, более или менее похож на любой человеческий язык (например, на английский). Он кодирует информацию, чтобы каждый мог ее понять, но он не является цифровым, потому что то, как вы говорите, может сказать о вашем сообщении нечто большее, чем то, что может выразить язык. Это означает, что в примере с диалогом пользователь может думать об удалении как символе A с модифицирующим коэффициентом B, в то время как программа переводит его в символ X с модифицирующим коэффициентом Y (который может быть равен B, хотя я не думал об этом). это пока. Я не думаю, что это на самом деле имеет значение). Модифицирующий фактор — это то, что сообщает компьютеру, что вы не просто подумали об удалении, но это также звучит так, как если бы пользователь был чем-то огорчен или зол: это аналоговые метаданные, которые было бы трудно перевести в цифровой вид, не изменив их смысла. Здесь нейронные сети ЦП пытаются предположить, что означают эти метаданные, почти так же, как человек пытается угадать, что означает этот тон голоса; может быть легче угадать, когда модифицирующий фактор сильнее.

Первоначально я имел в виду этот вопрос: как ЦП мог обрабатывать эту мозговую волну? Может ли какая-то технология напрямую воздействовать на эту волну с помощью аналоговых рабочих программ, или во всех случаях потребуется преобразование в цифру? Имейте в виду, что у ЦП есть цифровой сопроцессор, который может обрабатывать те проблемы, которые аналоговый компьютер не может обрабатывать так хорошо, хотя связь между этими двумя может быть немного медленнее, так же как и передача памяти в кэш на кристалле медленная. Может ли аналоговый ЦП быть универсальной машиной Тьюринга, независимо от того, насколько это практично? В качестве альтернативы, если это не так,будет ли аналоговая эмуляция на цифровом процессоре (симуляция нейронной сети, например, частичная симуляция мозга) единственным способом решить эту проблему? Кроме того, может ли где-то постоянно храниться информация о волне? Может ли указанная сохраненная волна быть фактически сохранена как волна, а не как «параметризация» волны?

добро пожаловать на сайт. Это немного большой вопрос, я надеюсь, что это помогло. Вы можете добавить тег точных наук и разбить его на 2 или 3 отдельных вопроса.
@sdrawkcabdear Спасибо! Я не был уверен, следует ли мне пометить вопрос как точная наука или нет, поскольку в описании тега говорится, что он подразумевает, что все ответы должны быть подкреплены холодными, твердыми научными фактами и цитатами/демонстрациями, что было бы неплохо. круто, но не очень необходимо для этого вопроса.
Этот вопрос слишком большой. Разбейте его, если хотите получить лучшие ответы.
Вы должны взглянуть на квантовые вычисления.
Вы должны взглянуть на строительные блоки для аналоговых модульных синтезаторов. Они состоят из нескольких модулей, каждый из которых выполняет определенную функцию с аналоговым сигналом и управляется и изменяется с помощью других аналоговых управляющих сигналов. По сути, они выполняют математические операции с генераторами функций и фильтрами. Может дать некоторое вдохновение. Что касается завершения пути к файлу, то он существовал в полностью цифровом мире Unix на протяжении десятилетий, просто снова и снова нажимайте вкладку, чтобы думать о компьютерах. И да, его часто используют, обычно из-за ошибок, связанных с концепцией «где мы сейчас находимся».
Я просто спрашиваю, можно ли где-нибудь прочитать рассказ?
Я просто хотел бы отметить, что у вас очень большое заблуждение относительно истории вычислительных и коммуникационных машин. Мы перешли от аналогового к цифровому (или от аналогового к дискретному в случае связи) не из-за программируемости, а из-за улучшения отношения сигнал/шум. Технически большая часть ИИ является аналоговой, хотя эта аналоговая система реализована на цифровых компьютерах.
Дело в том, что современные компьютеры не обязательно должны быть аналоговыми. Современный компьютер будет представлять данные как 64-битное целое число. Доступны специальные регистры, которые даже могут представлять 512-битное целое число (регистры XMM). Объем данных, которые может передать 512-битное целое число, огромен . Ни один аналоговый компьютер не может быть достаточно точным, чтобы обнаруживать изменения напряжения с чувствительностью 2^-512 или даже 2^-64. Современные цифровые компьютеры могут имитировать аналоговые вычисления лучше, чем их истинно аналоговые аналоги.
«давайте предположим, что у нас есть надежное решение для компенсации этого, например, алгоритмы, способные различать реальный сигнал». Тогда у вас по определению есть цифровая связь. Или телепатический алгоритм, который может напрямую получить доступ к состоянию отправляющего устройства без вводящей ошибку среды между ними.

Ответы (11)

Мне очень нравится играть с этой темой, поэтому я собираюсь перевернуть вопрос с ног на голову. Каждый производимый сегодня компьютер представляет собой гибрид аналого-цифрового компьютера, о котором вы можете просто не знать!Современные тактовые частоты настолько ослепительно высоки, что мы оказываемся при обработке аналогового сигнала посреди нашего якобы цифрового оборудования. Современные подсистемы памяти используют аналоговые методы для передачи как можно большего количества цифровых битов по конвейеру. Физические трассы вдоль плат прокладываются так, чтобы они имели ту же длину, что и другие провода на шине, и представляют собой линейные аналоговые линии передачи на выключателе. ЦП регулярно приходится беспокоиться о росте паразитной емкости между его логическими элементами, что ограничивает «разветвление» одного выхода на несколько входов. Gigabit Ethernet фактически полагается на аналоговое наложение напряжений для достижения своих экстремальных скоростей. Аналоговое оборудование появляется в вычислительной технике повсюду, поэтому явно не то оборудование, о котором мы говорим, когда обсуждаем аналоговое и цифровое.

Я думаю, что более важное различие в аналоговом и цифровом мире можно найти в наших моделях указанных компьютерных подсистем. Дело не в том, что ЦП не имеет смешанных аналоговых/цифровых сигналов, а в том, что мы моделируем наши ЦП так, как если бы они были чисто цифровыми, что действительно имеет значение. Нам нравится притворяться, что наши процессоры — это идеальные цифровые структуры, когда мы пишем тысячи строк кода, которые должны выполняться на нем. Разрыв между аналоговым и цифровым в головах разработчиков больше, чем в реальном оборудовании. Производители оборудования уже давно перешли на аналоговую часть своей работы.

Соответственно, жизнеспособность «аналоговых» вычислений будет прочно зависеть от желания программистов отвечать на вопросы, которые лучше всего решаются в аналоговых системах. Как только возникнет желание, производители оборудования с радостью продемонстрируют им аналоговое поведение. Затем начнется медленная работа над созданием полезного аналогового поведения (именно здесь вписываются усилия DARPA).

Итак, когда аналоговая модель полезна? Самый важный ответ, который я могу придумать, это метастабильность. Цифровые схемы действительно любят разрешать либо истинное, либо ложное состояние для каждого бита информации. На самом деле, если вы подаете половинное напряжение на многие цифровые логические схемы, вы можете фактически войти в трип-метастабильное состояние, когда схема может фактически перестать вести себя так, как предполагалось, в течение произвольного периода времени после того, как половинное напряжение было разрешено. На аппаратном уровне мы тратим много времени на то, чтобы наши логические схемы никогда не «видели» метастабильные точки при изменении напряжения от низкого к высокому, обычно используя для этого «тактирование».

Где это будет полезно? Одна вещь, которую вы упомянули, это энергия. Аналоговые вычисления могутбыть более энергоэффективным, чем цифровое, потому что оно может адаптировать свое отношение сигнал/шум к текущему моменту. Рассмотрим цифровое число в двоичном формате 100001. Это число 33 в десятичном виде. Если шум искажает крайний левый бит, он становится равным 000001, что равно 1 в десятичном виде. Если шум искажает крайний правый бит, оно становится равным 100000, что равно 32 в десятичном формате. В некоторых ситуациях разница в семантическом значении 33 и 32 довольно минимальна, и вы можете принять некоторую ошибку в крайнем правом бите в обмен на более эффективную работу. Вы можете быть менее склонны принять ошибку в крайнем левом бите, который превращает 33 в 1. Однако, если эти 33 находятся в уравнении, скажем, 33 - 32, внезапно это вычитание делает все биты важными. Разница между 1 и 0 в этом вычитании может быть очень большой! Цифровые модели не могут реализовать такое принятие решений, потому что для этого им пришлось бы допускать наличие аналоговой модели. Между тем, у вашего ума нет проблем с ошибкой на дюйм, когда вы машете рукой слева направо, прощаясь с кем-то, а затем увеличиваете точность, чтобы написать что-то разборчиво.

Это было бы очень полезно, если бы вы имели дело с очень сложными параллельными операциями. Прямо сейчас, если два процесса пытаются записать разные значения в одно и то же место, они должны быть «устранены конфликтами». Один должен победить, а другой должен проиграть. Этот процесс происходит в мгновение ока, намного быстрее, чем любой из процессов знал об этом. Однако что, если ваши два процесса хотят быть умнее и на самом деле обсуждают свои различия, чтобы определить, каким может быть конечный результат. Это было бы естественной операцией в аналоговом компьютере. В цифровом компьютере мы должны пройти через множество обручей, чтобы это произошло (и обычно мы просто решаем полностью исправить «случай гонки» и двигаться дальше).

Последним пунктом метастабильности является его способность сохранять неподвижность. Цепь, находящаяся в метастабильном состоянии, может быть готова к жизни при малейшем ощущении. Сделать это в цифре сложно, потому что промежутки между низкими и высокими сигналами очень велики. Обычно нам приходится настраивать цифровые схемы для передачи этих быстрых сигналов, в то время как аналоговый компьютер может обрабатывать их по своей природе для всех сигналов. Если компьютер останавливается, он должен остановиться в фиксированном состоянии. Вычисление прекращается. Вместо этого аналоговый компьютер может все больше и больше снижать потребление энергии, приближаясь к сбалансированному состоянию, но никогда не останавливаясь. Затем, когда компьютер возобновляет работу, возможно, он действительно что-то выполнил во время остановки!

Ну разве это не поворот! Это потрясающе. Я предполагаю, что все, что нам нужно, — это изменить подход разработчиков к разработке своих решений проблем, что может быть обеспечено некоторым прорывом в удобстве использования аналоговых интерфейсов (аналоговые языки программирования становятся все более похожими на «традиционные» языки программирования). Этот прорыв может быть вызван сменой парадигмы в том, как пользователи взаимодействуют со своими компьютерами, с введением надежных интерфейсов «мозг-компьютер».
Я бы назвал все, что связано с дискретным квантованием и регенерацией, «цифровым». Возможно, потребуется использовать различные аналоговые методы для противодействия различным нежелательным паразитным эффектам, но если сигнал в конечном итоге будет обрабатываться таким образом, что шум ниже определенного уровня будет полностью устранен, я бы назвал это цифровой системой.
@supercat Вот почему я говорю: «Разрыв между аналогом и цифрой больше в умах разработчиков, чем в реальном оборудовании». Определение «в конечном итоге быть обработанным» находится в умах разработчиков. В качестве примера рассмотрим модем DSL, который постоянно отслеживает аналоговое отношение сигнал-шум своих каналов и вносит коррективы. Он никогда полностью не избавляется от шума аналогового сигнала, но создает иллюзию чисто цифрового интерфейса для компьютера. Железо никогда не отказывалось от аналога, только разработчик.
И это становится более сложным, если модем DSL готов предоставить данные SNR на компьютер, и он принимает решения, основанные на этих данных SNR, о том, сколько данных передавать...
@CortAmmon: модем будет принимать входящий сигнал и квантовать его до определенного уровня. Квантование обычно будет достаточно точным, чтобы младшие биты несколько непредсказуемо отклонялись от идеального ожидаемого значения, но любая возможная последовательность выборок будет определять огибающую, так что любой возможный сигнал, который остается в огибающей, будет неотличим от любого другого.
@supercat Да, вы описали идеализированный модем при наличии идеализированных ошибок с точки зрения разработчика, которого интересуют данные, которые они будут обрабатывать на ЦП. Вы можете сколько угодно верить в то, что компьютеры, которыми мы пользуемся, являются такими идеализированными устройствами. Разрыв между аналоговым и цифровым в головах разработчиков больше, чем в реальном оборудовании.
@CortAmmon: значения, сообщаемые АЦП, могут быть искажены из-за аналоговых факторов, но в конечном итоге они превращаются в числа и обрабатываются как таковые. Напряжение, которое должно быть точно в масштабе 1/4, может читаться как 01000000, или 00111111, или, может быть, 01000001, 01000010, 00111110 или 00111101, но оно не будет читаться как 0100000½ или, что еще хуже, 0½½10000. В конечном итоге сигнал попадет на АЦП, который будет его квантовать; что-либо более точное, чем разрешение квантования, либо поднимет показание до следующего большего/меньшего значения, либо будет полностью проигнорировано - промежуточной возможности нет.
Пониженный, этот ответ фактически неверен. Существует четкое различие, как пытается объяснить Supercat, и заключается оно в том, что для цифрового сигнала принимающее оборудование может делать предположения о том, каким должен быть сигнал, например, 0,9 вольт означал 1 вольт, а затем регенерировать сигнал таким образом, это было задумано. Цифровые сигналы восстанавливаются, устраняя ошибку. Аналоговые сигналы не могут быть, потому что получатель не знает, какое значение отправитель «намеревался» отправить и какую часть, если сигнал ошибочен.
@JanKanis Как вы думаете, в чем разница между «регенерацией» цифрового сигнала и явно нелинейной аналоговой операцией?
@CortAmmon Regeneration дискретизирует входящий сигнал, например, до 0 или 1 с пороговым значением где-то посередине. Это исключает любые мелкие ошибки. Определяющая разница между цифровым и аналоговым сигналом заключается в том, что вы можете устранить любые небольшие ошибки. В непрерывной операции (линейной или нет, скажем, 𝓍² или логарифмической) любая ошибка остается. Если вы применяете операцию дискретизации к аналоговому сигналу, вы либо преобразуете его в цифровой, либо обрабатываете его как цифровой.
@JanKanis Я хорошо знаю разницу и то, где может произойти сбой, если вы не будете осторожны (например, если вы используете слишком высокую тактовую частоту). Конечно, если вы говорите о сигнале, равном 0 или 1, то вы уже мыслите в цифре и работаете над уровнем всех этих аналоговых компонентов, поэтому вы всегда обнаружите, что цифра отличается от аналоговой. Вы должны погрузиться на шаг глубже, в транзисторы, где вы обнаружите, что линейная область и область переключения являются лишь частью одного большего непрерывного спектра нелинейного поведения.
Разница в том, хочет ли кто-то думать о вычислениях как о цифровой деятельности и, таким образом, придавать значение нелинейным усилениям в дискретных терминах, или же кто-то хочет думать о вычислениях как об аналоговой деятельности. Мы построим разные схемы, чтобы они соответствовали друг другу, но все они работают на принципах физики, аналоговой по своей природе.
Извините, я имел в виду 0 или 1 вольт, как в моем первом комментарии. Компьютер обрабатывает свои входные данные как цифровые сигналы, что означает, что он удаляет/игнорирует небольшие изменения во входных сигналах. Конечно, внутри происходят всевозможные непрерывные процессы, но это не делает компьютер аналогом. Вы можете сколько угодно думать о компьютере как о частично аналоговом, но это не меняет того, как компьютер обрабатывает сигнал, так что это не в вашем уме. Аналоговые компьютеры также существуют (редактор), определяющее отличие которых заключается в том, что небольшое изменение входных данных также вызывает изменение выходных данных.
Физика аналоговая (точнее, непрерывная), поэтому любой цифровой компьютер должен быть построен из непрерывных компонентов и процессов. Как выглядит полностью цифровой компьютер по вашему определению?

В будущем вы, возможно, совершите прорыв в разработке аналоговых компьютеров, имитирующих функции и эффективность человеческого мозга . Подобно тому, как сегодня цифровой компьютер работает в паре со специализированным графическим процессором для графики, аналоговый мозг будет иметь цифровой сопроцессор ЦП для решения задач, с которыми хорошо справляются цифровые компьютеры. По сути, у вас будет вещь, которая может делать то, в чем хороши люди (сопоставление с образцом, оценка), которая может ссылаться на то, в чем хороши компьютеры (очень быстрая, очень точная математика).

Представьте себе робота, который мог бы не только обсуждать политику, но и проводить исследования и собирать статистические данные, необходимые для взвешивания их решений.

Вы можете использовать две особенности аналоговых и цифровых вычислений в своем мире: тепло и точность против точности. И основываться на нашей многолетней неудаче в создании искусственного интеллекта с использованием цифровых вычислений, что, как мы чувствовали, мы находимся на пороге с 60-х годов. Я представляю себе мир, в котором по мере того, как компьютеры все больше и больше интегрируются в повседневную жизнь, машины с человеческим мышлением становятся все более и более важными, а аналоговые компьютеры лучше с этим справляются.

Человеческий мозг отличается от цифровых компьютеров несколькими ключевыми моментами. Цифровые компьютеры должны быть спроектированы, поняты и построены людьми, а людям нравятся простые, упорядоченные вещи. Человеческий мозг развивался в течение сотен миллионов лет проб и ошибок и не имеет таких ограничений. В результате человеческий мозг может делать вещи удивительным образом. Цифровые компьютеры созданы людьми, чтобы быть простыми , они комбинируют многие, многие из нескольких основных частей по-новому. Человеческий мозг очень, очень, очень сложениспользуя тысячи специализированных нейронов, каждый из которых выполняет несколько специализированных задач и повторно используется и рекомбинируется удивительным образом. В результате цифровой мозг предсказуем и точен, но за счет гибкости и эффективности, в то время как человеческий мозг непредсказуем и небрежен, но очень гибок и очень эффективен.

Вашему будущему обществу понадобится причина для перехода от точности и предсказуемости к гибкости и эффективности.

Цифровые вычисления действительно хорошо справляются с одной задачей: они очень точно, очень предсказуемо и очень быстро вычисляют определенное подмножество задач . Для других задач это будет ужасно медленно. Он будет делать именно то, что вы ему скажете, и это все, что он будет делать . И, как мы все знаем, цифровым компьютерам очень трудно учиться или работать с чем-то новым. Как мы все знаем, даже хорошему ИИ очень легко вести убедительную беседу.

Человеческий мозг, аналоговый компьютер, иногда очень точен ( бейсбольный мяч ), иногда очень небрежен (математика и статистика), иногда очень быстр (бейсбол и оценка), иногда очень медленен (точная математика), но он даст вам Ответ. И он может решать некоторые проблемы намного, намного быстрее и надежнее, чем компьютер, например, компьютерное зрение, проблемы с поиском пути и сопоставление с образцом. Он делает все это очень, очень, очень эффективно и может справиться со всем этим . Это действительно компьютер общего назначения. Тот же мозг, который может отбить фастбол, может считать, вести беседу, преодолевать препятствия и готовить еду.

Человеческий мозг чрезвычайно эффективен, и мы далеки от того, чтобы подражать тому, на что он способен. Возьмем, к примеру, проект «Человеческий мозг» . Профессор Стив Фербер из Манчестерского университета так говорит о своей попытке SpinNNaker .

С 1 000 000 ядер [ARM] мы получаем только около 1% масштаба человеческого мозга.

ARM968 , который они используют, не совсем лучший, Nintendo DSi использует один на 133 МГц, но говорит о том, насколько важны параллелизм и управление теплом в современных вычислениях и насколько мы плохи в этом.

Вот несколько видео Computerphile на эту тему.

Человеческий мозг на самом деле может быть крайне неэффективным . Рассмотрим попугаев и ворон. У попугая Алекса были языковые способности человеческого малыша. Погуглите «девушка, которая кормит ворон» для диких ворон, которые отвечают взаимностью на ее дары, как могут, принося ей блестящие найденные предметы. И эти, и многие другие примеры работают на мозгах меньшего размера, чем грецкий орех. Попугаи и вороны — одни из немногих видов, которые проходят зеркальный тест на разумность.
@ nigel222 Эффективность здесь сравнивается с цифровыми компьютерами.

На самом деле я работал над аналоговыми компьютерами в свой «год перерыва», примерно в 1968 году, в Redifon (промышленное подразделение Rediffusion, кабельной компании avant-le-lettre).
Я предполагаю, что они были (в то время) довольно современными, но они не были теми, из которых сделан шелковый кошелек .
Я не могу найти изображения, но программирование включало в себя подключение кабелей к коммутационной панели размером примерно 100 см x 80 см с розетками, возможно, 50 x 40. Полная проблема может включать 100-400 кабелей (подумайте об этом ), не говоря уже о нескольких десятках страниц заметок.
Как только у вас заработала программа, она давала ответы в режиме реального времени на изменения входных данных или параметров со скоростью и точностью, которые были доступны цифровому миру только около 2000 года (30 лет спустя!)
Одной из проблем была отладка (не было возможности отслеживать переменные); а стабильность была другой: если один из операционных усилителей (входы JFET, биполярные выходы) выходил из строя, то весь компьютер становился тем, что мы назвали «рождественской елкой» со всеми мигающими лампочками перегрузки.

Итак, ваши вопросы: analog CPU: забудьте об этом.
hybrid CPU: без понятия.
analog/RAM storage: теоретически возможно с [супер]-конденсаторами, но не очень практично.
Analog-oriented programming languages: Я действительно не вижу моста между проводами на патч-панели и современной концепцией программирования.

В вашей истории, если вы хотите провести параллель с реальной жизнью, вам лучше использовать аналого-цифровые преобразователи и иметь столько битов, сколько вам нужно, чтобы запечатлеть лучшие эмоции.

FPGA дает подсказку о том, как будет выглядеть аналого-ориентированный язык программирования. Программирование FPGA включает в себя описание соединений между входами/выходами логических элементов, это в значительной степени ЯВЛЯЕТСЯ программным эквивалентом пучка кабелей, соединяющих различные элементы. Замените цифровые логические элементы аналоговыми элементами, и остальная часть схемы программирования должна сохраниться.

Их пробовали раньше, и они хуже, чем цифровые.

MOSFET VS BJT Таким образом, основным компонентом процессора и памяти являются электрические переключатели, называемые транзисторами. Существует два основных типа цифровых МОП-транзисторов и аналоговых транзисторов с биполярным переходом. Причина, по которой компьютеры являются цифровыми, заключается в том, что МОП-транзисторы намного лучше. Аналоговые схемы используются только тогда, когда схема должна быть аналоговой.

МОП-транзисторы имеют больший эффект мощности, поскольку они потребляют энергию только тогда, когда они «переключают» BJT, потребляя энергию, когда машина включена. МОП-транзисторы можно сделать намного меньше без внесения ошибок, поскольку они имеют меньшие токи утечки. Это означает, что вы можете получить 100 или 1000 МОП-транзисторов за ту же мощность и тепловыделение, что и у биполярного транзистора.

  • аналоговые попытки ЦП и ОЗУ были предприняты с использованием многоуровневой логики, они были менее эффективны, чем просто более цифровые

  • есть гибридные аналогово-цифровые процессоры, они обычно преобразуют аналоговый вход в цифровой процесс, а затем преобразуют обратно в аналоговый выход. Проверьте микроконтроллеры, такие как arduino.

  • современные компьютеры имитируют аналоговые числа с числами с плавающей запятой и имеют специальные цифровые процессоры для имитации операций с плавающей запятой. Если бы аналоговые процессоры стали лучше, они могли бы заменить блоки с плавающей запятой в текущих процессорах.

Теоретически точка аналоговых данных содержит бесконечное количество информации, если ее можно измерить с бесконечной точностью, ее 1,23245... вольт, десятичные цифры в теории продолжаются вечно. Но мы никогда не сможем использовать эти точки, потому что возникает случайный непредсказуемый шум. Огромная часть области электротехники пытается справиться с шумом. Поскольку шум делает часть информации пригодной для использования, почему бы просто не начать с меньшего, менее шумного набора данных. Теория информации показывает, что удаление случайного шума из сигнала — очень сложная задача, если вы уже не знаете исходный сигнал.

Оптический — это круто, но он все еще в 1000 раз больше и в 1000 раз медленнее, чтобы конкурировать со стандартным процессором. Я должен просто представить это в перспективе: текущий процессор имеет около 3 миллиардов транзисторов, которые переключаются миллиард раз в секунду, основная проблема дизайна заключается в том, что у электронов должно быть достаточно времени, чтобы пересечь чип между переключателями, и поэтому они движутся только со скоростью свет они только покрывают дюйм или два за это время. Все это может стоить меньше тридцати баксов. Трудно с этим конкурировать.

Использование аналогового FPU в качестве замены нашего текущего FPU может сработать. В конце концов, то, что я прошу, это произвольная точность сигнала, для которой потребуется блок обработки реальных чисел/аналоговый. Я знаю, что есть библиотеки, которые эмулируют это, но их проблема в том, что они медленные и неэффективные, поэтому был создан проект UPSIDE. Идея проекта UPSIDE и аналогового ЦП этой вселенной заключается в том, что нейронные сети должны быть в состоянии идентифицировать то, что может пытаться сказать аналоговый сигнал, который впоследствии может быть интерпретирован как цифровой код. Конечно, время от времени будут ошибки.
Кроме того, как телекоммуникации будут работать с цифровыми передачами произвольной точности? Насколько я знаю, они должны быть линейными, что может привести к остановке программы, поскольку она ожидает завершения передачи следующего числа, чего я не хочу. Передачи должны быть максимально быстрыми, может быть, даже почти мгновенными.
Если бы существовала аналоговая передача произвольной точности, у нас была бы бесконечная полоса пропускания. При отправке 1 данных он может содержать тонны информации, поэтому вместо отправки 100 МБ мы можем отправлять триллионы.
@ a1901514 Эмуляция мозга — отличная идея, множество идей о прорыве исходит от искусственных нейронных сетей, работающих на цифровом оборудовании. Но в мозгу также много шума, поэтому он также не полагается на точность, каждый нейрон имеет конечное число состояний, поэтому это можно сделать в цифровом виде. Реальное различие заключается в разработке формы сети и в том факте, что нейроны намного более энергоэффективны, потому что они отключаются, когда они не используются, см. Science.sciencemag.org/content/345/6197/668.full для попытки создания сети мозга.
Идея заключалась бы в том, что, хотя аналоговые сигналы значительно улучшили пропускную способность, шум и скорость вывода пользователя (вспомните нажатия клавиш мозгом) ограничивают максимальную скорость, которую могут достичь телекоммуникации: это намного быстрее, но это не мгновенно. Алгоритм, интерпретирующий ввод, должен будет полагаться на предыдущий ввод, чтобы откалибровать себя на лету и попытаться понять, каково фактическое отношение сигнал/шум и насколько точны полученные данные, чтобы на самом деле сделать обоснованное предположение о том, что пользователь пытается сделать. . Например, вам нужны некоторые предыдущие данные, чтобы понять сообщение, например речь.
Под телеком вы подразумеваете телефонные звонки? У них чрезвычайно низкая пропускная способность, и даже для видеозвонков большего не потребуется. Применение сильного алгоритма, чтобы попытаться удалить шум в счетчике продуктивно. Он попытается угадать следующий сигнал на основе последних сигналов... так почему бы просто не использовать алгоритм сжатия, отправить небольшой уверенный сигнал и использовать алгоритм, чтобы расширить его до остальной части сообщения. Алгоритмы сжатия гарантированно работают, алгоритм анализа — нет.
Я добавил некоторый контекст относительно того, почему он должен быть аналогичен моему первоначальному вопросу. Суть в том, что вам нужно быть как можно более точным, чтобы избежать двусмысленности (ba** может быть банком, бэком или бейтом) и поддерживать непрерывный поток данных. Поскольку вы не можете буферизовать данные как пакеты, вам потребуется универсальный словарь сжатия, но фактический набор данных настолько велик, что вы можете передавать информацию 1:1. Технологии достаточно улучшились, чтобы значительно уменьшить шум по проводным соединениям, хотя это все еще может искажать данные. К счастью, для компьютера это более или менее похоже на разговор по рации.

Возможно, стоит задуматься о том, что сделала природа. «Нет ничего нового под солнцем» — это неправда, но и недалеко.

Таким образом, цифровые вычисления, похоже, вышли на первое место. ДНК, РНК, стоп-кодоны, ускользающий кодон, эпигенетическая маркировка, механизмы обнаружения и исправления ошибок внутри каждой клетки. Кажется, он обладает всеми характеристиками цифровой системы. Однобазовая (битовая) ошибка может не оказать никакого влияния, а может полностью изменить организм (результат).

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

Синапсы, связи между выходом нейрона и входом другого нейрона, представляют собой сложные молекулярные системы. Не простой аналог. Тепло-шумный. Возможно, более квантово-магический, чем просто шумный. Остерегайтесь тех, кто говорит, что одиночные синапсы просты и понятны.

Чего не хватает, так это чисто аналоговых систем без гистерезиса. Природные системы, если они реагируют на аналоговые сигналы, всегда кажутся спроектированными с порогами срабатывания, которые больше вызывают их включение, чем выключение. Мало чем отличается от обычного электрического выключателя. Нет наполовину.

Чисто аналоговые компьютеры? Интуиция бесполезна, за исключением очень ограниченных проблемных областей. Гибриды, мозги, которые превосходят цифровые процессоры? Открытый вопрос.

Я помню этот пример из давней статьи в Scientific American, потому что он был совершенно нелогичным («О спагетти-компьютере и других аналоговых гаджетах для решения проблем», в колонке «Компьютерные развлечения» (1984) http://www.scientificamerican.com) . /article/computer-recreations-1984-06/ ). Аналоговые вычисления во многих случаях могут быть быстрее, чем цифровые, но, по-видимому, только при фактической обработке. Ввод и вывод требуют много работы и могут занимать много времени.

Приведенный пример был «компьютер-спагетти». Если бы каждая нить сырых спагетти была разрезана на разную длину, соответствующую входным данным, теоретически вы могли бы создать компьютер, собрав в руке длины спагетти, соответствующие входным данным, и бросив пачку «концом вверх» на прилавок. Ответ будет получен из узора из высоких и низких концов спагетти, торчащих с другого конца вашей руки от прилавка.

Таким образом, вы потратите минуты или часы, вырезая и собирая части своего спагетти-компьютера, и, возможно, вам придется потратить некоторое время на просмотр «выходных данных», чтобы понять ответ, но фактическое «вычисление» занимает доли секунды. швырнуть пачку спагетти на землю.

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

Таким образом, реальная проблема заключается в том, какие проблемы решаются для решения которых требуются специальные атрибуты аналогового компьютера. Если вы не пытаетесь решить какую-то NP-полную проблему или избежать «проблемы остановки» машины Тьюринга, цифровые компьютеры были усовершенствованы до очень высокой степени мощности и точности. Единственное другое огромное преимущество аналоговой машины заключается в том, что большинство примеров, о которых я когда-либо слышал, по своей природе в основном механические или электрохимические, поэтому на них не влияют скачки напряжения, ЭМИ и другие факторы окружающей среды, которые могут нарушить работу цифровых компьютеров.

Не отвечая на все ваши пункты, но...

Аналоговый процессор, на котором работают программы, которые мы запускаем сегодня , нет (как уже ответили). Аналоговые компьютеры не были предназначены для пошаговых последовательных операций; они были разработаны для решения определенных классов в основном математических задач.

Гибрид , конечно... нет причин, по которым цифровой компьютер нельзя было бы соединить с аналоговым компьютером, хотя в этом не было бы большой пользы.

Аналоговая оперативная память ... возможно, не такая уж и хорошая идея. Например, хранение количества в качестве оплаты может работать до тех пор, пока оно не просочится вниз и значение, которое вы считываете, не будет совпадать со значением, которое вы сохранили. Практически любая другая концепция аналогового хранилища, которую вы можете придумать, будет уязвима для искажения или потери сохраненной информации. Аналоговое ПЗУ, с другой стороны, совершенно практично - старый добрый мастер фонографа.

Полностью аналоговая связь - полностью практичная. Так мы поступали до 1970-х годов для голоса и по крайней мере до 1990-х для видео. Даже цифровые данные изначально передавались по проводам в виде аналоговых тонов.

Я хотел бы пойти по другому пути:

В аналоговом компьютере общего назначения... как сделать логический элемент И-НЕ?

Причина, по которой компьютеры общего назначения настолько гибкие, заключается в том, что каждая отдельная часть логики внутри может быть создана из одного элемента: вентиля И-НЕ. Перевернутый И. Это обеспечивает функциональную полноту... любые другие логические функции могут быть построены только с помощью вентилей И-НЕ.

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

Итак, каков аналоговый эквивалент вентиля И-НЕ?

Я мог представить себе слияние аналоговых и цифровых схем; мы делаем такие вещи все время. У вас есть звуковая карта... вот что она делает. Старые видеокарты, используемые для вывода аналоговых сигналов для видео. Wi-Fi должен переводить между электромагнитными волнами и цифровыми сигналами.

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

Мы решаем проблемы по-разному... но распознавание голоса помощника Google в наши дни удивительно точно. Конечно, он использует огромную базу данных записей для идентификации речи, вместо того, чтобы использовать кусок мяса размером с палец... но это играет на сильных сторонах цифровых вычислений. Обработка миллиардов фрагментов данных в мгновение ока.

В «классических» аналоговых компьютерах ближайшим аналогом вентиля И-НЕ будет аналоговый интегратор . На самом деле многие аналоговые компьютеры оценивались по количеству независимых интеграторов. Однако сделать хороший интегратор намного сложнее, чем сделать вентиль И-НЕ (по крайней мере, с современными технологиями).

Да, можно разработать ЦП, который будет на 100% аналоговым. Трехмерное изображение не так сложно. Что сложно, так это убедить людей в том, что тот факт, что они верят всему, что им говорили об аналоговых компьютерах, является именно тем, почему никому не удалось создать полноценный аналоговый процессор в коммерческом секторе. Это лень и некомпетентность.

Трехмерное изображение в принципе уже можно сделать. Если вы просто посмотрите на некоторые из старых аналоговых видеоплат, которые могли бы «искажать» и «растягивать» транслируемые изображения в старые времена на телевизионных новостных станциях, это в основном все. Простому многоугольнику потребуется несколько дополнительных входных данных и опций, чтобы правильно его наклонить, а затем добавить на экран больше полигонов. Это так просто. За исключением того, что у вас может быть изображение с высоким разрешением, и вы не будете беспокоиться о пикселях, и это будет очень дешево.

На YouTube есть старый пример аналогового компьютера, выполняющего физическую симуляцию автомобиля/земли. Это 2d, но опять же, это просто стандартный аналоговый процессор. Вот он, но он не показывает настоящую машину, колеса или дорогу. https://www.youtube.com/watch?v=AEJtajaRj_s

Хорошо, что аналоговые вычисления получают хорошую поддержку. Цифровой — это еще не все. Дифференциальные уравнения для построения полетов на Луну в рамках программы «Аполлон» были рассчитаны с помощью аналоговых устройств, изготовленных специально для этой цели. Они меняли входы, позволяя схемам делать все остальное, а ответы были выходами.

Аналоговые компьютеры намного более энергоэффективны и постепенно привлекают все больше внимания по мере развития машинного обучения.

https://ieeexplore.ieee.org/document/8490883 https://phys.org/news/2018-06-future-ai-hardware-based-analog.html

«Аналоговые методы, использующие непрерывные переменные сигналы, а не двоичные 0 и 1, имеют присущие им ограничения по точности — вот почему современные компьютеры, как правило, являются цифровыми компьютерами. Однако исследователи ИИ начали понимать, что их модели DNN по-прежнему хорошо работают, даже когда цифровые точность снижается до уровней, которые были бы слишком низкими почти для любого другого компьютерного приложения.Таким образом, для DNN, возможно, также могут работать аналоговые вычисления.

Однако до сих пор никто окончательно не доказал, что такие аналоговые подходы могут выполнять ту же работу, что и современное программное обеспечение, работающее на обычном цифровом оборудовании. То есть можно ли действительно с помощью этих методов обучить DNN с одинаково высокой точностью? Нет смысла быть более быстрым или энергоэффективным при обучении DNN, если результирующая точность классификации всегда будет неприемлемо низкой.

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

Хранилище

С аналоговыми компьютерами вы не сможете надежно хранить информацию, так как вы всегда будете изменять аналоговый сигнал при измерении или просто из-за небольшого шума, не говоря уже о том, что вам нужно будет изобрести способ сохранить его в памяти. первое место.

Причина, по которой мы используем цифровые сигналы, заключается в том, что вы можете иметь, например, либо 0 В, либо 1 В, и если напряжение немного отклоняется, система все равно распознает его как правильное. Однако в своем вопросе вы просите аналоговую систему, которая может замечать тонкие различия в мозговых волнах человека.

Решение

Что вам нужно, так это карта расширения , которая позаботится об аналоговой информации и найдет способ идеально хранить ее в цифровой форме (например, она может распознавать каждую простую волну, которая составляет сложную волну, и сохранять те, которые легко сохранить). .

Вы могли бы даже представить эту карту расширения с крутым названием, например, Brain Card , и никогда не объяснять, как она работает (или давать простое объяснение, как я только что сделал), просто чтобы люди покупали ее и использовали для хранения своих мозговых волн со 100% точностью.