Pull to refresh

Comments 89

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

Так мы ничего не выигрываем.
Думаю, это решается Nпроходной схемой. На первом проходе мы расчитываем входы, и вклады в состояние, на втором проход используем уже расчитанное состояние для вычисления выходов.
Да, это не точная модель — но достаточно быстрая
В альтернативе, не знаю какое технически это может быть устройство, но путь на «макоронах»:

Есть 10 каналов, в единицу времени приходит 7 сигналов, в следующую единицу времени в воде растворяется 7 «таблеток», в следующую единицу — отрубается 70% «нейронов», оставшиеся приступили работать.

Программно: в единицу времени приходит 7 сигналов, далее стоит сумматор — 3 единицы времени считается сумма, далее начинаем проверять какие нейроны отрубить, в следующие можно работать.
Соответственно величина задержки полиномиально возрастает с увеличением числа каналов — собственно главнейший вывод Минского, который на 20 лет похоронил ИИ :)

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

Почему не реализовать общую электрическую аналоговую шину и нейроны реагирующие не только на вход, но и на её напряжение/силу тока?
Вы наверное забыли, что сейчас в компьютерах используются канал со стабилизацией напряжения в 12 Вольт. Эта же бинарность есть основа машины Тьюринга.

Да, возможно можно реализовать и на электрическом поле (!), но это уже не будет компьютер Тьюринга
Причем надо будет реализовать элементы, которые отключались бы (а не перегорали бы) при превышении определенного уровня напряжения. Я в этом не сильно разбираюсь, но кажется таких сейчас нет.
Есть. Посмотрите на элементную базу аналоговых компьютеров, там вместо логических схем использовались операционные усилители. На них можно реализовать кучу всего: сложение-вычитание, умножение сигналов, логарифмирование, разные степенные функции. Сделать пороговый элемент тоже нет никакой сложности.
Если говорить об эмуляции нейронов на «машине Тьюринга» (обычном компьютере), то проблем не вижу, программному нейрону мы можем задать любой алгоритм. Если говорить об аппаратной реализации, то первым приходит в голову схемка типа: один нейрон — одна микросхема/блок, которые запитаны индивидуально через реле или тиристоры (с разным напряжением «отсечки» или через делители для унификации) — любое напряжение, конечно не выдержат, но и любую кислотность вряд ли какой «органический» нейрон выдержит.
1. При эмуляции этого на машине Тьюринга — вы не увидите никаких преимуществ.
2. Именно поэтому нужна адекватная физическая реализация. Электрическая реализация менее естественна, но тоже можно пробовать. Еще можно передавать радичастотами :)… это все не суть.

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

Реализация может быть на ПЛИС. Это будет весьма быстро — 1 такт = расчет всей схемы, как всегда.
как там реализуется сумматор, который сложит 1000 чисел за один такт? Это вообще возможно?
Теоретически возможно, но адски непрактично. По секрету вам скажу, что, вопреки вашему мнению, 2+3 тоже рассчитывается за один такт, а не раскладывается на 1+1 + 1+1+1.
практически, конечно, это удобнее через конденсатор и пороговую логику…
Сильно зависит от задачи, которую мы хотим решить. При попытке сложить 1000 чисел на аналоговой машине мы почти наверняка погрязнем в шумах.
А нам не нужна же 100% точность :))
> вопреки вашему мнению, 2+3 тоже рассчитывается за один такт

вы не совсем точно меня поняли. 2+3+4+5+6 — рассчитывается за сколько тактов?
за 1 такт. Вопрос сколько потребуется вентилей для этого.
Я вас понял и ответ на этот вопрос присутствует в моем комментарии. Сделать сумматор, который будет складывать не два, а пять, десять, сто или тысячу чисел — не проблема. Просто это абсолютно непрактично.
Внутри у такого сумматора будут в обязательном порядке — подтакты, и вопрос лишь в том, что называть тактом. Если такт состоит из 10 подтактов — это не такт. Он не сможет их складывать параллельно — это математически не реализуемо.
Можно узнать, что вы называете «подтактами»?
«Блин или я дурак или лыжи не едут»

Объединив два полусумматора и добавив дополнительную схему ИЛИ, можно создать полный сумматор с дополнительным входом Pi-1, который принимает сигнал переноса из предыдущей схемы.
Сумматор


уже здесь два такта — вначале работают два полусумматора, результат в виде сигнала переноса идет на второй такт.
С чего вы взяли, что это два такта? Это вполне себе один такт. Так что такое «подтакт»?
С какой стати это один такт? Он что в один момент времени происходит?
Вы знаете какой-нибудь физический процесс, который происходит в один момент времени? Давайте тогда еще прохождение сигнала по проводам будем называть подтактами. Тогда любой вентиль (даже тот, который тактирования не подразумевает) будет работать за 3 «такта».

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

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

Если мы вернемся к тому, с чего все начиналось, то мы увидим, что вы начали этот разговор, чтобы показать отличие компьютера от человека. Но человек считает еще хуже (медленнее и за большее число ваших «подтактов»), чем сумматор на наборе двоичных полусумматоров. Вряд ли же при сложении человеком сигнал проходит всего через 3 последовательных нейрона? Тем более, нейроны, не говоря уж о синапсах, медленнее, чем кусок меди.
Бред. Давайте вы будите говорить за себя. А? Я всегда считал и считаю, если отдельно не оговариваю, что такт — это промежуток времени между двумя импульсами. И все. В контексте речь шла о сумматоре, значит промежуток времени между логическими частями сумматора.

А дальше у вас не разбериха в голове. И не надо ваше понимание сказанного вываливать на меня. Мы тут говорили о чем? О «жидком перцептроне»? Читали? Это такая же схема как и сумматор, только другого типа. Перцептрон включает в себя сумматор. Где я показывал отличие человека и компьютера в плане скорости? Вы читайте повнимательнее… и спросите, если что не так поняли… я поясню… Ок?
Каша в голове у вас.
>> Т.е. ребенку надо просто сложить 10+1+1+1+1+1+1+1+1+1+1. Но ни взрослые, ни ребенок не считает это решением. Пока он сходу не отвечает 10+10=20, мы считаем что он не знает этого, не умеет, не понимает как складывать. Т.е. полиномиальное вычисление не признается человеком за умение считать. Вот и компьютер этого делать не умеет.

Чего он не умеет? Складывать числа поразрядно?

Ваша жидкость — это просто еще одна связь. Да, она подключает многие элементы ко многим, но она вполне может быть электрической. Конечно, в цифровых системах такой подход не используется из-за его сложности и неэффективности, поскольку очень тяжело будет правильно выровнять выходные и входные импедансы (кроме вырожденного случая линий с Z-состоянием) и гораздо быстрее объединить линии через логический вентиль (в вашей терминологии это же отдельная вычислительная операция, в отличии суммирования токов в проводах), но в аналоговой электронике это используется.
Да, в том смысле как было написано — он не умеет складывать ВООБЩЕ!
Все-таки в каком смысле? Разложить на разряды и складывать? Решением этой задачи как раз занимается сумматор. Если вы хотите сказать, что человек это делает за один «такт» в вашей терминологии, то вы не правы. Он делает это гораздо менее эффективно, при сложении чисел возбуждаются очень большие каскады нейронов.

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

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

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

Так о чем вы?
«Разложить на разряды и складывать? Решением этой задачи как раз занимается сумматор.»

Да. Но это сделал конструктор, который придумал сумматор. Сумматор это не делает.
И Вы уверены, что сумматор вычисляет по схеме 10+10=1+1+«0»=20? Вы случайно не выдаете желаемое за действительное?
Я уверен, что классический сумматор считает по-другому. Он не отбрасывает ноль. Человек это делает, потому он не умеет считать эффективно, ему приходится проделывать много лишних операций. Но если вам очень хочется, можно реализовать и такую схему. Кстати, это чем-то похоже на сложение чисел с плавающей запятой, за исключением того, что экспоненциальная часть (ваш отброшенный «0») там тоже двоичная в большинстве случаев.

>> Да. Но это сделал конструктор, который придумал сумматор. Сумматор это не делает.

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

человек это делает, так как умеет считать эффективнее! А компьютер это делает, так как человек создал не очень совершенное устройство — сумматор.

Чтобы, что-то уметь надо понимать, что ты делаешь, считая так долго — компьютер просто не в состоянии понять что он считает. Говорить о понимании можно тогда, когда алгоритм может упрощать задачу основываясь частные случаи.

Речь идет не просто о адаптации, а о структурной адаптации. Это когда устройство может не только подгонять параметры, а менять структуру. Таких устройств сейчас вообще не существуют. Поэтому нет ни каких проблем, что моя схема не решает в полной мере задачи структурной адаптации. Но я говорю о том, что она НИКОГДА и не сможет их решить, если будет базироваться на текущей технологии, т.к. она не может решить элементарной задачи — в единицу времени воспринять информацию сразу от миллиона рецепторов — а организм человек это делает постоянно, и еще в большем объеме. А вы еще будите говорить, что человек что-то делает не эффективно…
Воспринимать и частично обрабатывать параллельно с миллионов входов и информацию за один «такт» современные технологии могут. Да даже современных не нужны чтобы решить задачу есть сигнал на одном из миллионов входов. А говорить что интеллект человека работает всегда параллельно тоже не корректно. Решите задачу сложения 1412432 и 89673289. Что-то мне подсказывает, что вы будете складывать последовательно, поразрядно.
> Воспринимать и частично обрабатывать параллельно с миллионов входов и информацию за один «такт» современные технологии могут

А конкретнее?

> даже современных не нужны чтобы решить задачу есть сигнал на одном из миллионов входов

Задача то другая: сколько есть сигналов из миллиона?

> Решите задачу сложения 1412432 и 89673289. Что-то мне подсказывает, что вы будете складывать последовательно, поразрядно.

Столбиком. Но сравнивать надо сравнимые вещи. Клетка нашего организма одновременно воспринимает множество сигналов без сложения. И по сути я тут описал и объяснил как можно применять то как физиологически работает синапс. Только он работает еще сложнее.
Всё зависит от длительности «такта», в вашей схеме тоже нужно какое-то время на переходные процессы, чтобы «таблетки» растворились и установилась единая «кислотность» во всё объёме.
ВОТ! Об этом и нужно говорить, и увы не мне (я в это не специалист). А тут выше развели детский лепет, который противоречит логике.

Мне представляется, что возможно найти такую среду где переходные процессы происходят и стабилизируются достаточно быстро.
Вы меня, конечно, извините, но подменой понятий занимаетесь тут вы. По какой причине вы считаете процесс распространения сигнала в проводе несущественным для подсчета тактов, а такой же процесс распространения сигнала через канал транзистора — существенным? Вы так и не сказали, что вы понимаете под «подтактом».
Наверное тут важно процентное соотношение потраченного времени, интересно было-бы посмотреть на цифры…
вот это правильно
Я вам все уже пояснил. Вы электротехник? Тогда скажите мне сколько времени бежит электрический сигнал 1 см на плате, и сколько времени электрический сигнал проходит через двоичный полусумматор. Тогда наш разговор будет конкретным, и терминологическим дискурсом я тут заниматься не буду.
Моя работа тесно связана с микроэлектроникой. Ок, пойдем по вашему пути. Элементарный полусумматор состоит из двух каскадов транзисторов. У каждого транзистора есть propagation delay (Tp). Допустим, у транзистора в какой-нибудь средней FPGA типа Stratix II Tp может быть порядка 50-100 pS. Свет проходит 1 см за 33 pS. По меди сигнал будет идти дольше. То есть цифры сравнимы. Конечно, я поступаю не совсем честно, потому что на чипе транзисторы соединены гораздо более короткими «проводами».
Но там возникает другой эффект. Провода мешают течь току, из-за чего затворы заряжаются медленнее, чем могли бы.
В любом случае, провода доставляют не меньше проблем, чем транзисторы. Кстати, у проводов тоже есть емкость и они тоже тратят время на зарядку. В быстрых микросхемах это — серьезная проблема.
Вот, кстати, наглядное сравнение транзисторов и проводов. Это довольно условный график, потому что межсоединения бывают разными, но общую картину он показывает. Поскольку мы уже давно прошли рубеж в 130 нм, основные задержки сейчас набираются не в транзисторах, а в межсоединениях. Именно поэтому сейчас начали говорить об оптических линиях верхнего уровня.

image

Для интересующихся — ссылка на полную статью. Обратите внимание, она датирована 2003 годом. Сейчас все еще хуже.
Ну, ок. Что мы имеем — один такт на проход по проводам, и один такт на полусумматор. Полусумматор складывает только два бита. Для того, чтобы он сложил 10 бит — нужно 5 тактов. 1000 байт? Считаем и получаем ощутимую задержку… нет?
Вы просто не поняли, о чем я говорю. Ваша терминологическая ошибка приводит к смысловой ошибке. Тактом называется просто промежуток между импульсами синхросигнала. По окончании такта схема приходит в стабильное состояние. До того, как она это сделала, она стабилизируется. Это непрерывный процесс.

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

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

Ваша проблема в том, что вы пытаетесь натянуть теорию алгоритмической сложности туда, куда она не натягивается. Даже если закрыть глаза и применить ее, то сложность любой комбинационной схемы — константа. Вы хотите создать алгоритм, считающий быстрее, O(1)?
Давайте поставим вопрос так: время сложения 1000 чисел на сумматоре больше или меньше времени сихросигнала?
Правильный ответ такой: можно создать схему, которая будет суммировать 1000 чисел за один синхроимпульс.
Ок, но это увеличит время синхроимпульса или позволит его уменьшить?
Частота синхроимпульса не меняется от того, какую схему вы реализуете. Это свойства конкретной применяемой ПЛИС.
Вы сказки тут рассказываете, если сумматор требует порядка 10000 элементарных операций — это приводит к тому, что частоту синхроимпульса приходится увеличивать.
Есть многоразрядные сумматоры с параллельным распространением переноса. Не очень понял их схему работы в своё время, но там точно присутствует какая-то «умная общая шина». Сигнал переноса от каждого из сумматоров идёт не к следующему, а к этой «шине», от неё же идут сигналы переноса в сумматоры. Складываются все разряды параллельно и если переноса не возникло (а это 75% при равномерном распределении значений), то результат готов за один «подтакт» независимо от разрядности. Самый худший случай это сложение 1111111 и 00000001, тогда переполнение идёт «волной» и потребуется число тактов по числу разрядов. А вот для сложения 01010101 и 01010101 потребуется два такта, на первом результат будет 00000000, а на втором искомое 00000000. Как-то так, может что и напутал, но что-то подобное точно проходили.

Два примера склеились, искомое 10101010 конечно же.
Ну там не совсем так — минимум 5-6 элементарных задержек («подтактов»)
Пускай 5-6, но быстрее чем линейно в среднем.
Ну, и потом — инвариант «размер» — всего лишь один тип сигнала «глобального контекста». Но могут же быть медиаторы совершенно другого контекста — «усталость», «опасность», «злость»… :)
Интересно, что в мозге выполняет роль генератора тактов. И есть ли в могзе вообще такое понятие как тактовая частота?
Есть у меня смутные догадки, что аналогом генератора тактов — есть то, что мы называем сознание. Когда его нет организм работает полностью асинхронно. Сознание же путем направления внимания как бы сверху синхронизирует (проявляется как воля). В то время как синхронизация у компьютера — есть самый базовый элемент зашитый в железе, и программно уже не управляется (только эммулируется архитектурой процессора+ОС)
ну вообще, на сколько я помню, у людей при повреждении гипоталамуса наблюдается т.н. растительная деятельность — у них все же работают самые базовые функции коры мозга.
Была передача по дискавери, там говорилось, что «тактовый генератор» находится в центре мозга. К сожалению, названия не помню.
>Не известно почему, но исторически человек пришел к тому, что считать десятками (не пятерками, дюжинами или двоично) удобнее.
Известно почему — запись чисел идет в десятичной системе, и разделить сложные вычисления на отдельные операции можно поцифрово.
Майя вот пользовались двадцатиричной системой, вероятно им было удобнее считать двадцатками.
Пожалуй всё же запись десятичными цифрами широко распространена потому что десятками считать удобнее, а не наоборот. Человек считал десятками когда даже система счисления была недесятичной. Например: декан, центурион — вполне себе десятичные «должности», но римская система счисления не десятичная.
Римская система счисления вообще не позиционная.
В данном контексте это значения не имеет, потому не стал упоминать.
мб все гораздо проще — на руках 10 пальцев, а майя еще и ноги подключали?
Но никто почему то не ставит задачи БЫСТРЕЕ решать задачи класса P (вплоть до мгновенного ответа)

Ставят. Недавно читал статью о сортировке n чисел за O(n\sqrt(log(log(n)))).

Сложение n чисел выполняется за O(log(n)) на n процессорах. Так что в железе реализовать его проблемы нет и на видеокартах (да и в SSE скорее всего) уже есть соответствующие инструкции.
Этого мало :) В предложенной схеме — сложение это одна элементарная операция.
Ну, ладно с концентрацией плохо понимаемо.

Давайте возьмем простой вариант — имеем среду — воду. Имеем 100 входов. Каждый вход нагревает воду на один градус. Промежуточные «нейроны» находятся в воде и измеряют температуру воды. Скажем имеем 10000 «промежуточных нейронов», по 100 на каждый размер. Тогда при поступлении 70 сигналов, температура нагреется до 70 градусов с погрешностью в один градус. Тогда заработает только нужных 100 нейронов. И ни какого формально сложения! Все происходит на раз.

Не известно почему, но исторически человек пришел к тому, что считать десятками (не пятерками, дюжинами или двоично) удобнее. Рискну предположить, что дело в числе пальцев. В качестве подтверждения: цифры майя. Тоже число пальцев, но теперь и на ногах.
жаль комментарии нельзя удалять
вы предлагаете использовать аналогово-цифровой компьютер
1) Человечество все возникающие задачи пытает свести к вопросу, на который надо ответить «Да» или «Нет» (0 или 1). И нам сложно допустить мысль, что еще бывает и третий вариант. Эх, квантовый компьютер как ты далеко!
2) А если компьютер будет не считать, а будет брать ответ из своей базы знаний, исходя конечно из своего жизненного опыта?
2) Если мы говорим про ИИ — база знаний должна быть поистине галактических масштабов, если всю планету переработать на винты — и то не хватит.
Угу. Все же я надеюсь, что в будущем мы научимся упаковывать (не сжимать) любой объем информации до одного байта + тех. информация. Блин, походу я перегрелся :)
1) Человеку как раз не сложно. Он может игнорировать вопрос, на который не может (или не хочет!) давать однозначный ответ, может сказать «не знаю», может задать встречный (уточняющий) вопрос и т. п. Это что касается отвечающего. Задающий вопрос, подразумевающий однозначный ответ, тоже может на самом деле быть не заинтересованным в однозначном ответе, ему в голову не пришло, что может быть третий вариант и однозначный ответ вовсе не решит его задачи. А умный отвечающий распознает такую ситуацию и решит действительную проблему задающего, а не формализованный им её вид, не зря говорят, что правильно заданный вопрос содержит в себе половину ответа.

2) Проблема в том, что нужно научить компьютер систематизировать имеющиеся у него данные, превращать данные в знания, понимать, что имеющихся знаний недостаточно для однозначного ответа, получать этот самый жизненный опыт, понимая при этом, что он субъективный и/или контекстно зависим, выдвигать гипотезы и предположения в случае неоднозначности. Как минимум получать обратную связь на свои ответы, в идеале осуществлять активные действия для проверки своих гипотез и предположений.
Вы правы. Хорошо, что мы компьютеру задаем вопросы на языке математики. Жаль, что мы тратим свой творческий потанцевал, которого у машин никогда не будет, на формулирования вопросов для счетных машинок.
Никогда не говори «никогда» :) Если считать истинными (или близкими к тому) материалистические мировоззрения, то ИИ возможен. Да и не все идеалистические его отрицают.
Выскажу еще раз свое мнение). Человеку доступо колоссальное количество информации за краткий момент, одно зрение чего стоит, даже когда ребенок просто смотрит на числа, он получает информацию во многом превосходящую по объему чем ту которую вы пытаетесь запихнуть в машину.

Если дать такой же объем информации машине, то на основе обучения машина также будет упрощать и идеализировать задачи. Проблема создании ИИ в техническом развитии современности.
UFO just landed and posted this here
Sign up to leave a comment.

Articles