Comments 34
Просто потрясающе!
… нужно будет сделать помедленнее и зеленым на черном фоне
Теперь я могу удерживать на указательном пальце двухпудовую гирю. Мои аплодисменты!
На мой взгляд, это ближе к узорам спицами(всякие там "норвежские"). Крючок, если не квадратную сетку вязать, более именно узорчат.
Кажется, что нет уверенности в том, что наши мозги полны по Тьюрингу.
Для полноты по Тьюрингу нужна бесконечная память.
Если рассматривать мозги настолько изолированно (без тела, рук, органов восприятия, прямой кишки), то от мозгов действительно мало проку. Но если мозгу в его мясном экзоскелете разрешается хотя бы гадить кучками в произвольном порядке, то это вполне полная по Тьюрингу система. В практическом смысле. Про теоретические бесконечности — это уже, ИМХО, демагония.
Гадить кучками в произвольном порядке — это построить компьютер. Кучками можно выкладывать как схемы алгоритмов, так и сами данные, которые используются в вычислениях. Без внешних "кучек" мозг очень вряд ли тянет на то, чтобы быть Тьюринг-полным.
Так что либо мы признаём, что человек всё же полон по Тьюрингу, либо считаем эту концепцию чисто умозрительной теоретической, как ряд натуральных чисел, которых, как бы и нет, раз уж мы их все не можем выписать на бумажке=).
Хорошо, с этим я согласен. Но, помимо памяти, есть ещё один подвох. Точнее, может быть. А что, если нам кажется, что мы можем любой алгоритм воспроизвести? Вполне вероятно, что есть некоторый класс алгоритмов, который — по неведомо какой причине — не будет работать в нашей голове? Допустим, если какие-то последовательности данных будут заставлять нейроны реагировать таким образом, что данные будут искажаться, но мы этого не заметим.
И что самое интересное, нетрудно даже придумать класс алгоритмов, который не будет вычислим некоторым семейством процессоров ввиду, скажем, их жадности к той же памяти или производительности.
Очевидно, что большинство алгоритмов не вычислимо мозгом, хотя бы по причине его подверженности тривиальной усталости.
Простите, но я не принимаю ваш довод к построению барьера между естественным и искусственным вычислителем ввиду его надуманности и необоснованности. Приведите больше аргументов, которые нельзя обернуть в сторону той же x86 архитектуры=)
Интересовался обработкой изображений при помощи клеточных автоматов, кроме выделения контуров ничего не нашел.
Несколько недель играюсь с реккурентными сверточными нейросетями.
Теоретически, вычислительных возможностей у такого типа на порядки больше, чем у обычных сверток, но пока никакого прорыва нет.
Скорее всего, градиентный спуск тут вреден, надо будет совместить градиентный оптимизатор с генетическим алгоритмом.
А здесь в качестве «ядра» выступает произвольная булева функция от 9 переменных. Линейных булевых функций от девяти переменных существуется всего лишь 2^10, в то время как количество всех функций от 9 переменных — 2^512.
Пожалуй самая интересная статья на хабре за последнее время. Спасибо!
PS Вспомнилось, как играли в "жизнь" в школе. В тетрадке в клетку.
Можно ещё попробовать выпускать несколько автоматов на одно поле и наблюдать, как они сражаются за пространство. В игрушке Powder Toy это реализовано, но там набор автоматов предопределён.
Уж не знаю, обнаружены ли такие автоматы в реальности.
Да, обнаружены. Я слышал как минимум про Правило 110
Game of life внезапно и есть Turing complete
https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
It is possible for gliders to interact with other objects in interesting ways. For example, if two gliders are shot at a block in a specific position, the block will move closer to the source of the gliders. If three gliders are shot in just the right way, the block will move farther away. This sliding block memory can be used to simulate a counter. It is possible to construct logic gates such as AND, OR and NOT using gliders. It is possible to build a pattern that acts like a finite-state machine connected to two counters. This has the same computational power as a universal Turing machine, so the Game of Life is theoretically as powerful as any computer with unlimited memory and no time constraints; it is Turing complete. In fact, several different programmable computer architectures have been implemented in Conway's Life, including a pattern that simulates Tetris.
Статья супер. Позалипал знатно :)
Здравствуйте, снова заинтересовался клеточными автоматами после вашей статьи.
Скажите, а для подготовки всего что выложили, вы реально использовали JS, или у вас есть аппаратно ускоренная реализация?
Я ночью накидал на webGL на компьютере с GT640 реализацию чисто воспроизведения, причем с шейдером в лоб, даже без оптимизаций после 199x199 пробегало 100 поколений за 8ms (отображал только результат прогона ста поколений, остальное работало циклически во фрэйм-буфере и получал 30-50fps).
Upd: GTX1060, 800x800, 1000 поколений во фрэйм-буфере, и рендер каждого последнего = 20fps (для не оптимизированного правила 3x3x2).
При такой скорости можно замахнуться и на 3x3x2 = 2^18 = 512x512 пикселей картинки в качестве правила. Правда, самое интересное, генетику я еще не реализовал.
Вообще, если кому-то интересно поиграться с результатом то пишите, и если я доведу это до нормального вида, могу выложить(риск крови из глаз) на какой нибудь codesandbox для удобства модификации.
Скажите, а для подготовки всего что выложили, вы реально использовали JS, или у вас есть аппаратно ускоренная реализация?
На чистом JS. Выкладываю пример для картинки «habr».
Здесь считает.
Запуск производится через консоль. Пишем в консоль evil(3000); и поехали. Туда же, в консоль, записываются массивы для «тепловой карты».
Считал в FireFox. Если считать автоматы с большим полем — Chrome перестает подавать признаки жизни. В FireFox появляется кнопка «Остановить это».
Здесь смотрим, что насчитало.
Эволюционирующие клеточные автоматы