Pull to refresh

Comments 368

В работах по распознаванию речи я встречал модели человеческой гортани, на которых пытали сделать синтез речи и её распознавание. Получается это тоже тупиковая ветвь в исследованиях была. Сейчас системы от яндекса и гугла действительно весьма успешно речь распознают с использованием вычислительных алгоритмов.
такое уже было в истории:
Отто Лилиенталь
image
У него-то как раз все было более чем хорошо:

Карл Вильгельм Отто Ли́лиенталь

Немецкий инженер и первый лётчик-исследователь разработал, построил и испытал одиннадцать летательных аппаратов. Научное обоснование причин парения птиц, сделанное Лилиенталем и продолженное Н. Е. Жуковским, во многом определило развитие авиации. Совершил свыше двух тысяч полётов на планёрах собственной конструкции. В отличие от многих пионеров авиации, не пытался сразу взлететь, а долго бегал по холмам, пытаясь определить центр подъёмной силы. Первый «полёт» совершил просто поджав колени.


Вы, видно, имели в виду махолеты?

Тогда нужно было вот на эту картинку сослаться:

image
Эдвард Фрост, 1902

Или на эту:

image
Джордж Вайт, 1927

Но прошло всего то меньше 80 лет:

Впервые в мире машущий полет осуществил и продемонстрировал прессе в 1981 г. проф. Валентин Киселев, о чём сообщалось в газетах «Комсомольская правда», «Труд», «Московский комсомолец» от 6 ноября 1981 г., а затем — другие газеты и журналы в СССР и за рубежом


А как материалы позволили — так и вообще:

первый махолет для человека
Есть ещё занятное ежегодное соревнование, в котором веротолёты/махолёты поднимаются в воздух исключительно благодаря мускульной силе человека, крутящего педали.
> Snowbird представляет собой удивительное сочетание современных технологий
> и чертежей Леонардо да Винчи, датированных 1485-м годом.
> Аппарат при размахе крыльев 32 м (как у авиалайнера Boeing 737!) весит всего 42 кг.
>
> Практичность Snowbird как транспорта весьма сомнительна

Сейчас сомнительна. А всего несколько столетий назад атмосфера Земли была плотнее (некоторые исследователи говорят, что давление внизу было 4 современных атмосферы) и поэтому практичность махолёта могла быть менее сомнительной и с учётом более плотной атмосферы чертежи да Винчи могли делаться не реальных устройств. Да и вообще — из Эпохи более плотной атмосферы в русском языке до сих пор сохранился термин воздухоПЛАВАНИЕ. Это потом потребовалось летать. А когда-то плотность атмосферы позволяла в ней «плавать».
Да откуда вы беретесь-то такие?
Хороший пример закона По.
ушел подбирать челюсть.
и чертежей Леонардо да Винчи, датированных 1485-м годом.

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

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

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

Поживем-увидим.
Качество распознавания еще далеко от человеческого уха-мозга.
Смотря чьего ухомозга. Если дать вам распознавать незнакомый язык (тупо зачитать программу на неизвестном вам языке программирования, чтобы не связываться с естественными языками) — вы наделаете больше ошибок, чем системы от яндекса и гугла. А со знакомым — вы опираетесь на понимание смысла. Для ИИ — это ещё впереди…
Для ИИ — это ещё впереди…


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


Тем не менее развитие ИИ постоянно утыкалось в тупики и замирало надолго.

Первые то «вот-вот уже почти готово» были еще в 1960-е годы
«вот-вот уже почти готово» на любую тему писали и будут писать. Не очень далекие журналисты уже что только не пророчили. А тупики и прорывы в любой предметной области наблюдаются.
«вот-вот уже почти готово» на любую тему писали и будут писать. Не очень далекие журналисты уже что только не пророчили. А тупики и прорывы в любой предметной области наблюдаются.


Когда говорят о будущем — конечно, это так как вы и пишете.
Однако статья — ретроспектива. А там уже все точно.
«вот-вот уже почти готово» на любую тему писали и будут писать. Не очень далекие журналисты уже что только не пророчили. А тупики и прорывы в любой предметной области наблюдаются.

AI winter как раз не из-за журналистов случилась

Принципиально мат. аппарат нейронных сетей, что в 60е что сейчас один и тот же. Разница в обрабатывающих мощностях.

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


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

метод Нестерова — это середина 00-х

Эээ…
Нестеров Ю.Е. Метод минимизации выпуклых функций со скоростью сходимости О(1/k^2) // Докл. АН СССР. — 1983
Вы ошиблись на два десятилетия.

Ну да. А преобразование Фурье вообще были изобретено в 1805 году.


Читал я ранние труды Нестерова ещё до того, как нейросети пошли в массы. Если кратко, то в этих трудах Нестеров доказывал, что любой выпуклый функционал при выполнения условия Липшица можно минимизировать со скоростью сходимости O(1/k^2), причём эта оценка является оптимальной, т.е. нельзя построить более быстрый универсальный алгоритм.


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


После первого прочтения я нихрена не понял, что с этим можно делать. Во-первых, условие Липшица очень строгое — квадратичные функционалы, например, ему не удовлетворяют. Во-вторых, параметры, гарантирующие сходимость O(1/k^2), на практике не особо применимы из-за требований к начальному приближению и большой константы, т.к. итераций все равно потребуется много.


В итоге получился ещё один метод, который остался лежать на полочке.


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

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

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


Ну и да, следует уточнить, что методы оптимизации не имеют отношения к матаппарату нейросетей. Именно матаппарат нейросетей остался на уровне 60-х (конкретно — работа Розенблатта по персептронам, после которой не было получено ни одного научного результата в области нейросетей).

Случайная комбинация "правильная задача + правильная архитектура + правильный метод" и привела к буму.


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

Нет. Вот работа с вполне себе адекватной задачей (1989 год):
https://www.ics.uci.edu/~welling/teaching/273ASpring09/lecun-89e.pdf


А вот тут взяли предыдущую работу, переизобрели свёрточные нейросети, ещё и реализовали алгоритм в железе:
http://papers.nips.cc/paper/293-handwritten-digit-recognition-with-a-back-propagation-network.pdf


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


Ну а как понадобилось — так метод сразу и вытащили из загашника.

Так почему же метод Нестерова не вытащили из загашника в 90-е?
Почему его откопали только через 20 лет?


Ну и да, следует уточнить, что методы оптимизации не имеют отношения к матаппарату нейросетей.

Теория — не имеет. Практика — имеет.

Случайная комбинация "правильная задача + правильная архитектура + правильный метод" и привела к буму.

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


Нет. Вот работа с вполне себе адекватной задачей (1989 год):

Так там вообще про back propagation, это 74 год :)
Как и следующая работа.


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

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


Так почему же метод Нестерова не вытащили из загашника в 90-е?

А зачем, если считать было нечего и не на чем? :)


Теория — не имеет.

Мы вроде сейчас и говорили про теорию изначально: "Принципиально мат. аппарат нейронных сетей, что в 60е что сейчас один и тот же. "

Ну да. А преобразование Фурье вообще были изобретено в 1805 году.
Но при этом практически использовалось за тысячу лет до этого.

Но это так — замечание в сторону.

Интересно, почему статья написана только тогда, когда закон Мура стал уже не тот?

Это пока не мешает делать специализированные чипы (tensor processing unit, например) и использовать их в большем количестве (параллелизм!).

Специализированные чипы — это такой молоток, при наличии которого всё кажется гвоздями. По сути, теперь всё ML/AI подталкивают к матричным умножениям, потому что всё остальное намного медленнее.


С параллелизмом тоже не так радужно всё. Про закон Амдала слышали?

По сути, теперь всё ML/AI подталкивают к матричным умножениям, потому что всё остальное намного медленнее.

И? Когда/если упрутся в потолок, сделают другие специализированные чипы. Да и исследования в других направлениях тоже ведутся (спайковые нейроморфные чипы, например), но не с таким успехом.


Про закон Амдала слышали?

Там есть такой параметр p — доля параллельных вычислений.


image

С параллелизмом тоже не так радужно всё. Про закон Амдала слышали?

С этим пока всё хорошо. Параллелится просто отлично.

"Просто отлично" — это во сколько раз прирост скорости на 100 узлах по сравнению с одним?

Чисто теоретически — в 100 раз, если бы обрабатываем изображения.
Операции можно параллелить вплоть до отдельных пикселей.

Чисто теоретически — у первого места в Топ500 уже несколько лет как должен был быть экзафлопс. В реальности-то что?

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


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

Очевидно, зависит от задачи. Какой-то абстрактный вычислитель параллелится, конечно, так себе. Но нижние слои сетей так или иначе сводятся к ЦОС, а там там с этим все хорошо.

В случае ML — около 100. OpenAI параллелили на тысячах узлов, говорят, очень позитивные результаты, никаких узких мест.


В законе Амдала важно, что б была непараллелящаяся часть. В перемножении матриц таких нет.

Ну как же нет? Чтобы получить каждый элемент итоговой матрицы мы должны вначале попарно умножить элементы строки и столбца исходных матриц, а затем уже получившиеся произведения сложить.
Тут сложение зависит (по данным) от умножения. В терминах закона Амдала — это и есть, та самая доля операций, выполняемых последовательно.
Коварность закона состоит в том, что если у нас хотя бы 5% операций не могут выполняться параллельно, то максимальное ускорение алгоритма составит в пределе 20 раз, не зависимо от того, сколько процессоров вы возьмете. Хоть отдельный процессор для каждого произведения/сложения.

Это как ответ на заданный здесь вопрос:
это во сколько раз прирост скорости на 100 узлах по сравнению с одним?

Ситуация не меняется, если мы перемножаем вектора.

А вообще асимптотическая сложность произведения квадратных матриц размера N в зависимости от конкретного алгоритма колеблется в пределах от O(N^2) до O(N^3). Учитывая, что рост производительности современных компьютеров уже не то что не экспоненциальный, а даже уже и не линейный [2], глубокие нейронные сети, работа которых и базируется на перемножении векторов, смогут «ушатать» любой наперед заданный мощный суперкомпьютер (работающий на текущей элементной базе).
Сложение тоже параллелится. В итоге при неограниченном чисе блоков и неопределенно быстром доступе к памяти, у вас получается 1 умножение и 1 сложение вне зависимости от размера матрицы.
Сложение тоже параллелится.

Только до логарифма.

Выше там кубы нам предлагают.
Только до логарифма.

Вероятно вы говорите о каком-то более эффективном способе сложения? Об эффективном умножении наслышан. А вот о сложении, увы — нет. Буду очень признателен, за информацию.
Вероятно вы говорите о каком-то более эффективном способе сложения?

Я про параллельное сложение. Его можно выполнить за логарифм итераций, если достаточно суммирующих блоков. На каждой итерации разбиваем числа попарно и складываем, после первой итерации у нас остается n/2 чисел, после второй n/4 и т.д.
Каждая итерация происходит за константу, с-но всего log(n)

Немного не в курсе таких алгоритмов. Можете сориентировать?
Например, можно поступить так
Пусть нужно сложить N чисел, которые есть результат поэлементного произведения строки матрицы А, на столбец матрицы В. Разобьем N слагаемых на пары, каждую пару посчитаем независимо (параллельно). Получим N/2 чисел, которые нам также нужно сложить. Применяя рекурсивно алгоритм к оставшимся числам, получим ряд: N/2 + N/4 + N/8… который в пределе сходится к N. Т.е. такой подход к сложению требует O(N) операций. Этот способ не изменил сложность.

Или вот так
Будем складывать не два числа одновременно, а тройки чисел. Для каждой комбинации триплета выберем из предрасcчитанной таблицы их итоговую сумму. Тогда для задачи сложения N чисел получим ряд: N/3 + N/9 + N/27 + ..., сходящийся к N/2. Т.е. сложность такого алгоритма O(N/2). Но это, если мы обладаем неограниченной памятью и сможем позволить себе складывать тройки 2^m-значных чисел.
Это не алгоритм, а железная реализация сложения N чисел. Допустим, у вас гидравлический компьютер, где число «кодируется» количеством воды в баке. Тогда вы складываете произвольное количество чисел, просто сливая сразу все N баков в один (по трубе от каждого, да). Очевидно, что время операции не зависит от N.

Если что, это просто аналогия для наглядности. Ну и рядом тут Druu про попарно параллельное написал.
Так ньюанс не в том, что не сложение тут виновато. Виноват алгоритм)

Вычисление любого элемента матрицы (или значения входов нейрона), происходит в два этапа:
1. найти попарные произведения элементов матрицы (или весов входящих связей нейронов)
2. сложить полученные произведения (сложить веса входящих нейронов)
3. (для нейронов ещё и) применить функцию активации.
Этап 2 не может быть выполнен до выполнения этапа 1. И хотя каждый из этапов может исполняться параллельно, но сама результирующая операция потребует последовательного их выполнения. Передача данных с этапа 1 на этап 2 — и составляет тот самый % операций, не поддающийся распараллеливанию. А значит, на него действует закон Амдала. Об этом речь.

Это я к фразе:
В перемножении матриц таких нет.


Помимо Амдала
есть ещё и закон Густафсона-Барсиса. Он подходит для расчета производительности конвейеров.
Передача данных с этапа 1 на этап 2 — и составляет тот самый % операций, не поддающийся распараллеливанию.
И он падает с ростом размера матриц.

Это как раз о законе Густафсона-Барсиса, не Амдала.


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


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

Коварность закона состоит в том, что если у нас хотя бы 5% операций не могут выполняться параллельно, то максимальное ускорение алгоритма составит в пределе 20 раз, не зависимо от того, сколько процессоров вы возьмете

А удобство нейросетей состоит в том, что чем шире сеть (большие размеры слоёв) при той-же глубине, тем меньше процент нераспараллеливаемых операций при прямом проходе. При обучении, параллелизм тем больше, чем больше размер batch'а (не знаю как переводится — пачка входных данных для которых рассчитываются градиенты без изменения весов сети). Есть и другие способы увеличить параллелизм при обучении. То есть каких-то фиксированных 5% непараллельных операций у нас нет — этот процент падает при увеличении размеров слоёв и при использовании различных техник параллелизации обучения.


А вообще асимптотическая сложность произведения квадратных матриц размера N зависимости от конкретного алгоритма колеблется в пределах от O(N^2) до O(N^3)

… операций, большая часть которых может выполняться параллельно.

А вы не в курсе, можно ли параллельно обучить много сетей на малых долях выборки, а потом смерджить их как-то?

Наверно можно объединить такие сети в ансамбль и использовать обучение teacher/student для получения конечной сети. Не уверен, работает ли такой подход и используется-ли где-то. Что-то похожее я, кажется, встречал, но ссылки сейчас найти не могу.

Давайте посчитаем
Пусть есть полно-связная глубокая нейронная сеть. Для упрощения расчетов возьмем её участок шириной N (кол-во нейронов в слое) и глубиной М (кол-во слоев).
Чтобы распространить сигнал от одного слоя к другому, необходимо для каждого из N нейронов выполнить следующие действия:
1. посчитать вес на входе (их у нас N штук): для чего необходимо состояние нейрона с предыдущего слоя, умножить на коэффициент его связи с данным;
2. сложить полученные веса (их у нас N штук), получив сумму входящих связей в данный нейрон;
3. активировать нейрон (применив любую удобную вам функцию)
Таким образом, чтобы распространить сигнал от одного слоя к другому, мы должны выполнить: N*N умножений (этап 1) и N*N сложений (этап 2) + выполнить активацию N раз.
Слоев у нас M. Отсюда нам потребуется (M-1) * (2*N*N + N) операций, которые могут быть выполнены параллельно (независимо). И ещё (M-1) * 2*N последовательных операций: передача данных между этапами.
Отсюда, доля последовательных операций, составит: 2*(M-1)*N / ((M-1)*(2*N*N + N)) = 1/(N + 0.5) ~ 1/N. Независимо от глубины.

Придется согласиться с Вами:
чем шире сеть (большие размеры слоёв) при той-же глубине, тем меньше процент нераспараллеливаемых операций при прямом проходе

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

Так то да. Но рост сложности произведения матриц — операции, которая лежит в основе распространения сигналов по НС, — растет кубично (быстрые алгоритмы умножения матриц, снижающие сложность до O(N^2.17..), аппаратно реализуются крайне сложно — поэтому пока не используются). А вот производительность современных процессоров растет в лучшем случае линейно.
Кто кого обгонит?

Одно дело, если мы берем и тренируем относительно небольшую НС для решения конкретной задачи. Например, для распознавания автономеров.
Другое дело, если мы собираемся применить НС как базу для создания сильного ИИ. Мы не знаем какой глубины и ширины НС нам потребуется взять для этой задачи. Возможно многократно больше. Поэтому меня, как инженера, интересует — а потянут ли современные ЭВМ в будущем такие расчеты. Для этого я привлекаю математику. Математика говорит, что в теории можем обломиться.

Это как с пузырьковой сортировкой. Глупо надеяться, что увеличение производительности вашего компьютера существенно ускорит изначально ущербный алгоритм. Текущий математический аппарат НС — пузырьковая сортировка, вид сбоку.
Ну как же нет? Чтобы получить каждый элемент итоговой матрицы мы должны вначале попарно умножить элементы строки и столбца исходных матриц, а затем уже получившиеся произведения сложить.

Что-то вы не туда залезли. Зачем вообще параллелить само вычисление каждого элемента?


У нас же в матрицах миллионы элементов — и каждый из этих элементов вычисляется независимо от другого.


А вообще асимптотическая сложность произведения квадратных матриц размера N в зависимости от конкретного алгоритма колеблется в пределах от O(N^2) до O(N^3).

В случае свёрточных нейросетей никто свёртки через произведения матриц не считает, хотя такая возможность и имеется — просто получится разреженная матрица циклопических размеров, с которой работать неудобно. Там сложность O(NM), где N, M — количество элементов в каждой из матриц.

В случае свёрточных нейросетей никто свёртки через произведения матриц не считает

Я не спорю. Просто изначально речь пошла про то, что последовательных операций:
В перемножении матриц таких нет.

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

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

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

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

Рассуждения верные, но вы не учли, что там не одно перемножение, а миллион.


Не нужно ускорять одно перемножение, матрицы можно перемножать независимо. Параллелится это очень хорошо, возьмите keras+tensorflow и проверьте (это не самый идеал параллельности, но идею проверить можно).


При правильной организации кода последовательных операций там не 5%, а 0.01%.

На мой взгляд, правильность организации кода тут не причем.

Выше в ответе BigBeaver я указал, что доля последовательных операций определяется как 1/N, где N — ширина слоя нейронной сети. Может, конечно, я ошибся в расчетах. Поправьте.

Свои 5% я взял из головы, просто чтобы показать, во сколько раз увеличится производительность алгоритма, если взять неограниченное число процессоров. Формула Амдала говорит нам, что в пределе в 20 раз. Для 0.01% — в 10000 раз. Вроде бы круто.
Вот только чтобы получить свои 0.01% = 1/10000 мы должны взять слой, в котором 10000 нейронов. Общая сложность вычислений такого слоя (если в нем нет нулей) составит (10^4)^3 = 10^12 операций (умножения и сложения). Идеального ускорения в 10000 раз удастся достигнуть, взяв 10^12(!) процессоров. Чтобы только перешагнуть планку ускорения в 9000 раз, потребуется взять свыше 89000(!) процессоров.

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


необходимо для каждого из N нейронов

  1. Посчитать выход слоя, это Z = g(T(W)*X). Веса, вход, функция активации (T — транспонирование). Никакого цикла по "каждому нейрону" тут вообще нет (они могут быть внутри, но это нельзя и не нужно распараллелить за пределы одного процессора).


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


  3. Распараллелить можно так. Расчет градиентов для всей сети — на одной ноде. Между разными нодами расчет градиентов для разных примеров. Потом градиенты складываются. Обновления весов (последовательная операция) можно делать один раз на batch (это очень важный момент!). То есть 1 мс на каждые 10 сек расчетов (условно).



если мы можем позволить себе такую роскошь — как отдельный вычислительный блок на каждую элементарную операцию

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


Нужно бить не на отдельные операции, а не кучки в миллиард операций. И каждый миллиард выполнять независимо. Соответственно, рассуждения про 10^12 процессоров не имеют смысла.


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

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


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


OpenAI Five running on 256 GPUs and 128,000 CPU cores. Просто для информации. Говорят, хорошо параллелится (у них просто ограничение по бюджету).

Верно, просто имеется два сценария использования нейросетей:


  • обучение — вычисление градиентов на больших данных, хорошо параллелится на много нод;
  • применение — нужно выжать максимум из одного процессора, здесь задействуется параллелизм на уровне вычисления выхода слоя, SIMD, TPU.
Ну, говоря для «каждого», я не утверждал, что нужно использовать циклы. Собственно, есть 2 варианта:
1) делать расчеты для всех нейронов одновременно (используя суперскалярность процессора)
2) делать расчеты пачками нейронов, используя цикл, в случае, если у вас дефицит «вычислителей»

Соответственно, рассуждения про 10^12 процессоров не имеют смысла.

Я думал, что это очевидно: когда вам необходимо выполнить K независимых операций, максимального ускорения вы достигнете, взяв K «вычислителей» (процессоров, блоков АЛУ, кластеров — не важно). Если вы не можете взять K вычислителей, а можете только M < K, то вы будете вынуждены выполнить расчеты в несколько (K/M + 1) подходов (читай — циклов).

Посыпаю голову пеплом: я сделал оценку 10^12, полагая, что у нас будет полносвязная НС шириной 10^4 нейронов и 10^4 слоев. А это не так. Но не отменяет того факта, что приблизительный порядок операций, которые нужно затратить на вычисление одного слоя: ~(10^4)^2 = 10^8. Умножьте это ещё на количество слоев.

Отдельные умножения распараллелить не получится!

Но разве суперскалярные процессоры этим не занимаются, когда одной инструкцией позволяют найти произведение сразу группы чисел?

Нужно бить не на отдельные операции, а не кучки в миллиард операций. И каждый миллиард выполнять независимо.

Вот здесь, прошу прощения, реально я Вас не понял. Что поменяется, например, для задачи «выполнить K независимых операций»? Можете подробнее?

но это нельзя и не нужно распараллелить за пределы одного процессора

Соглашусь. В противном случае придется передавать входные данные между процессорами от слоя к слою. Я, думаю, Вы про это.

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

Какие?

Надеюсь, смог донести мысль...
Знаете, я прочитал Ваш комментарий, наверное, раз 40. Иногда мне казалось, что я всё понимаю. Иногда — ничего не понимал. Наверное, настоящее понимание происходит тогда, когда появляются вопросы. Их я и озвучил.


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

Тогда для ускорения в 10 тыс раз нужно 10^4 вычислителей, а не 10^12 и даже не 10^8


Отдельные умножения распараллелить не получится!

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


Что поменяется, например, для задачи «выполнить K независимых операций»?

Вам нужно 10 тыс раз выполнить по миллиарду операций, потом сложить результат. Сами миллиарды можно выполнять независимо. Во сколько можно ускориться? На мой взгляд очевидно, что почти в 10 тыс. Согласны?


Ваши рассуждения были о том, можно ли распараллелить внутри каждого миллиарда. Это менее существенно.


Вот картинка, которая иллюстрирует идею.
https://media.springernature.com/original/springer-static/image/art%3A10.1186%2Fs40537-019-0179-2/MediaObjects/40537_2019_179_Figc_HTML.png


Основная проблема на практике — это скорость сети. Чем лучше сеть, тем выше теоретический предел.


Нужны принципиально иные технологии.

Я готов поставить деньги на Transfer learning, ансамбли сетей и алгоритмы ускорения сходимости. Даже если обучить зрение стоит миллиард, а понимание культуры — ещё миллиард — какая разница? Это всего несколько раз на всю планету.

Ваши рассуждения были о том, можно ли распараллелить внутри каждого миллиарда. Это менее существенно.

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


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

Вот я с этим не согласен. Если есть возможность распараллелить этот миллиард, то почему бы это не сделать?

Это менее существенно для моего тезиса. Распараллелить внутри миллиарда можно и это уже сделано. Если у вас загрузка ноды 100%, то дальше параллелить некуда, быстрее не посчитается. Соответственно нет смысла обсуждать, возможно ли сделать то, что уже сделано.


фактически, имеем параллелизм на каждом нейроне

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


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


И единственный способ ускорить работу нейросети — параллелить операции внутри этого миллиарда.

Это уже сделано до предела, который позволяет железо (как минимум в хорошем софте). Дело в том, что параллельность ускоряет за счёт утилизации ресурсов. Если у вас 10 ядер по 100 гигафлопс, то в один поток будет 100 гигафлопс. А в 10 потоков — терафлопс. Именно поэтому и быстрее. Параллелить на 100 потоков можно, но всё равно будет 1 терафлопс, не больше.


Если загрузка gpu смартфона 100%, значит распараллелено хорошо, на этом железе больше не выжмешь. Если нет — можно выжать.

Если у вас загрузка ноды 100%, то дальше параллелить некуда, быстрее не посчитается. Соответственно нет смысла обсуждать, возможно ли сделать то, что уже сделано.

Загрузка ноды ничего не говорит об эффективности выполняемого кода. Тот же SIMD — это тоже параллелизм, но если он не задействован, вы увидите всё те же 100%.


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

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


А многие рассуждения "нельзя параллелить" обсуждают именно архитектуру железа. И тут они правы, параллелить по-нейронно на миллион нод не выйдет

"По-нейронно" означает, что вычисление каждого нейрона может осуществляться независимо друг от друга. В реальной ситуации делегирование задачи по вычислению одного нейрона не имеет смысла. А вот объединять вычисление тысячи нейронов в одну задачу — смысл есть.


Если у вас 10 ядер по 100 гигафлопс, то в один поток будет 100 гигафлопс. А в 10 потоков — терафлопс.

Правильное утверждение: не больше терафлопса.


Параллелить на 100 потоков можно, но всё равно будет 1 терафлопс, не больше.

И не нужно. У нас 10 потоков, но задача вычисления одного слоя поделена на тысячу более мелких задач, каждый из потоков просто берёт следующую задачу из очереди.


Опять же по своему опыту: если нам нужно посчитать M свёрток на N ядрах, то гораздо более эффективно распараллелить вычисление самой свёртки, а сами свёртки считать последовательно. Связано это с кэшем и локальностью доступа к памяти.


(на самом деле возможны варианты в зависимости от архитектуры и набора инструкций).


Если загрузка gpu смартфона 100%, значит распараллелено хорошо, на этом железе больше не выжмешь. Если нет — можно выжать.

Нет, не значит. Да даже банальный обход тензора в неправильном порядке может в пару-тройку раз понизить производительность, хотя загрузка будет всё те же 100%.

Загрузка ноды ничего не говорит об эффективности выполняемого кода

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


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


обход тензора в неправильном порядке может в пару-тройку раз понизить производительность

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

BLAS уже эффективен (некоторые реализации), это подразумевалось мною

А вот я, наоборот, ставлю это под сомнение.


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


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

Сомневаться — ваше право. У вас есть какие-то основания для этого кроме бытовой логики "нормальное решение будет лучше универсальных матриц"?


Вы говорите о константном ускорении или линейном, в зависимости от размера слоя?


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

У вас есть какие-то основания для этого кроме бытовой логики "нормальное решение будет лучше универсальных матриц"?

Конечно. Свёртки не очень хорошо представлятся через BLAS, а универсальные библиотеки не очень хорошо адаптируются под различное железо.


Посмотрите, ради интереса, API cuDNN:
https://docs.nvidia.com/deeplearning/sdk/cudnn-developer-guide/index.html#api-introduction
Очень непохоже на BLAS, правда?


Вы можете обходиться BLASом, вы даже можете заюзать cuBLAS, но если хотите выжать максимум производительности при использовании нейронных сетей на GPU — будьте любезны, используйте правильные средства.


Вы говорите о константном ускорении или линейном, в зависимости от размера слоя?

Линейное, пропорциональное количеству вычислителей, но не более, чем количество элементов в слоях.


С удовольствием посмотрю на вашу реализацию свёрточного слоя быстрее, чем на tensorflow

Могу показать свою реализацию на CPU, которая выжимает максимум из процессора. Интересно?


Кстати, тот же упомянутый TensorFlow довольно медлителен. В моём случае Caffe работает в 1.5-2 раза быстрее TF.

Могу показать свою реализацию на CPU, которая выжимает максимум из процессора. Интересно?

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

Если это опенсорс-библиотека, которую я смогу использовать, то да.

Нет, не сможете. Это код, который писался под конкретную нейросеть в коммерческом проекте. Писался больше для себя — чтобы сэкономить время на тестировании нейросети на компьютере, где нет мощной видеокарты.


Если нет, то с удовольствием почитаю статью с бенчмарками, если есть или вы планируете такую написать.

Увы, нет. Это очень долгая работа, на которую мне не хочется тратить время.

Не нужно ускорять одно перемножение, матрицы можно перемножать независимо.

Боюсь, я не правильно выразился. Речь шла не об ускорении одного только перемножения.
Речь шла о том, что мы можем параллельно перемножать матрицы (вычисляем коэффициенты в каждом слое нейронной сети), кроме этого для каждой матрицы каждый элемент тоже можем рассчитывать параллельно (каждый нейрон все сети рассчитывается независимо), и даже каждое попарное произведение (вес нейрона * вес связи), требуемое для расчета этого самого элемента матрицы, мы тоже, чтобы ускориться, можем вычислять параллельно.
Но даже такая супер-параллельность нас не спасет от необходимости выполнять часть последовательных операций. А они возникают здесь:
1) передача данных от одного слоя к другому
2) передача от блоков умножения к блокам сложения (при расчете итоговой суммы связей каждого нейрона)

Очень похоже, что ИИ — это и есть гвозди. Всё остальное не просто медленнее, всё остальное и не работает толком, даже на простых задачах, которые решаются на ноутбуке, без чипов.

Что такое ИИ, "всё остальное" и про какие именно задачи речь?


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

Под ИИ я имею ввиду слабую форму искусственного интеллекта. Решение специализированных задач на уровне человека.


Под "всё остальное" я имею ввиду то же, что и вы в комментарии, на который я отвечал.


Можете привести пример задачи, где необоснованно используют ИИ вместо диффуров?

Да вот, я как-то увидел "стартап" про предсказание траекторий космического мусора нейросетью, и сильно пригорело: https://youtu.be/vAjvQp69SS8?t=133


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

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

В дополнение.


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


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

построены не на логике и рационализме

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

Для защиты от эпициклов Птолемея есть регуляризация.
А из реально умных и теоретически обоснованных приёмов есть индукция Соломонова — она точно не эпициклы. Но она сейчас не оптимизирована и жрёт процессор как не в себя. Это пока развивающееся направление
Но она сейчас не оптимизирована и жрёт процессор как не в себя. Это пока развивающееся направление

Индукция Соломонова невычислима. Приближения к ней — да, на нетривиальных задачах требуют процессора на время сравнимое с временем жизни Вселенной.

Да, я это и подразумевал под «жрёт процессор»)
Ну, это значит, что надо оптимизировать процесс. Наверное.

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


А второй момент, что свертки, например, были изобретены в 88-м. И на серьезных компьютерах двухтысячных распознавание котиков вполне можно было сделать. То есть лет на 10 раньше, чем оно было сделано. И если сейчас не заблудиться, то следующий серьезный прорыв можно сделать на 10 лет раньше.

И на серьезных компьютерах двухтысячных распознавание котиков вполне можно было сделать.

Только тут две проблемы:


  1. На компьютерах двухтысячных это было в разы дороже
  2. Компьютеры в двухтысячных не на чем было учить — а это ведь тоже важная штука, дело не только во флопсах.
  1. Да хоть на порядок. Сейчас это обойдется в десятку. Сто тысяч для научной работы — не сумма.
  2. Фоток котиков уже было более чем достаточно. В 2000-м может и маловато, а в 2005-м — сколько угодно.

Получить результаты как сейчас флопсов бы не хватило. А разработать архитектуры — хватило бы.


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


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


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

А разработать архитектуры — хватило бы.

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


которые будут использовать массовые ИИ-чипы, которые будут через 5 лет.

Какие массовые ИИ-чипы?


Есть смысл изучать архитектурные подходы и автоматизировать unsupervised learning и обучение с подкреплением.

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

С параллелизмом тоже не так радужно всё. Про закон Амдала слышали?

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

Люди дорогие и не становятся дешевле, наоборот.


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


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


То есть ваше утверждение про предел в целом верно (предел есть), но до этого предела ещё очень и очень далеко.

Люди дорогие и не становятся дешевле, наоборот.

Ну да. А при чем тут это?


То есть ваше утверждение про предел в целом верно (предел есть), но до этого предела ещё очень и очень далеко.

Вообще, нет — мы уже его достигли.

Ну да. А при чем тут это?

Чем дороже люди, тем меньше происходит "Х надо делать людьми, автоматизация не окупится".


Вообще, нет — мы уже его достигли.

Почему вы так считаете?

Чем дороже люди, тем меньше происходит "Х надо делать людьми, автоматизация не окупится".

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


Почему вы так считаете?

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

А какие задачи, решаемые современными нейросетями, делаются людьми?

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


Рекомендации фильмов. Есть профессиональные обзорщики, а есть нейросетевые рекомендации.


Фильтрация комментариев. Если я не путаю, Фейсбук внедрил.


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


особо увеличить производительность просто некуда.

Отчасти согласен, но тут 2 потенциальные точки роста. Нейрочипы дадут рост эффективности на ватт, а новые алгоритмы и подходы в обучении — ускорение сходимости сети.

Рекомендации фильмов. Есть профессиональные обзорщики, а есть нейросетевые рекомендации.

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


Консьерж-сервис (заказать билеты, купить мелочь в интернете)

По-моему, в 2019 это и без нейросетей и без людей делается прекрасно. Или речь о каком-то спец. кейзе?


Перевод текста.

Ну вот тут согласен, да. Но все равно, в итоге задач не так много, на самом-то деле.

Там где-то сбоку от закона Мура ещё и экспоненциальное падение стоимости вычислений со временем. Поэтому, согласно логике статьи, это тоже не должно сдерживать полёт творческой мысли.


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

Однако, много ли мобильных телефонов с TPU на борту? Долго ли такие телефоны способны жить без заряда? Подобные чипы в основном для серверного применения.

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

Давайте разделять. Если вы имеете ввиду блоки аналогичные simd и GPU(разного рода), то это не конкретно для использования нейронок в процессорах. Если нет, то приведите конкретные примеры.
Производители мобильных чипов начали добавлять в них матричные ускорители с 2017 года.

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

Откуда такие ограничения?


"Qualcomm's Hexagon DSPs since the Snapdragon 820 released in March 2015 using their Qualcomm Snapdragon Neural Processing Engine SDK. Qualcomm's Snapdragon 855 [анонсирован 5 декабря 2018] contains their 4th generation on-device AI engine, including a dedicated Tensor Accelerator." — Wikipedia (https://en.wikipedia.org/wiki/AI_accelerator).


Хорошо, если требовать совсем-совсем специализированные реализации, то с конца 2018-го.

Это не ограничение, просто многие путают блок для нейронок и обычные модули GPGPU или небольшие блоки для параллельных вычислений
Visual Core — это «блок для нейронок» или «небольшой блок для параллельных вычислений»?
Как следует из названия «Image processing unit», это блок для обработки изображения, аналог которого например есть в IMX6
И да, тот блок у Google не умеет во float:
Though the chip supports 32-bit integers, the native operations are done on a much simpler logic that operates on 8-bit and 16-bit integers, thus larger data sizes will operate at half throughput. The basic primitive of the stencil operations is the multiply-accumulate which can accumulate 32 bits and multiply 16 bits.
Не совсем мобильный процессор, но TI в Sitara AM5749 добавил
Там DSP ядро, а не NPU, как в указанных выше случаях.
Могу ошибаться так как с ним не работал, но там дополнительно к 2м DSP ядрам добавили 2 блока «Deep learning accelerator». DSP ядра были и в предыдущих чипах линейки а NPU только добавили в 5749:

AM574x IDK- Highest performance evaluation with dedicated deep learning accelerators and 2x C66x DSPs.
Для запуска уже обученных сетей такие мощности не нужны.

Ещё как нужны, особенно на мобильных устройствах. Большие нейросети работают довольно медленно, и тут скорость уже решает

Скорость важна именно для обучения. Например, сеть должна «перемолоть» датасет с миллионов картинок за вменяемое время. Это часы, иногда дни. А если вы еще к тому же экспериментируете с архитектурой сети, то время обучения сети для вас критично, так как определяет скорость «итераций». А вот прямой проход выполняется обычно за миллисекунды, даже для тяжелых сетей на процессорах. Другое дело, что есть архитектуры в которых работа сети встроена в «цикл», как при определении объекта на картинке (Fast-RCCN, или что то в таком роде). Но для мобильных разработаны специальные облегченные варианты которые работают в реальном времени — например habr.com/ru/post/352804
Скорость важна именно для обучения.

NPU имеют не очень удобную архитектуру и низкую точность вычислений. Для применения нейросети — нормально, но для оптимизации параметров — нет.


Например, сеть должна «перемолоть» датасет с миллионов картинок за вменяемое время. Это часы, иногда дни. А если вы еще к тому же экспериментируете с архитектурой сети, то время обучения сети для вас критично, так как определяет скорость «итераций».

Если вы — крупная корпорация, которая встраивает NPU-чипы в свои устройства, то обучение нейросетей на кластерах — совсем не проблема.


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

Нет. Тяжёлые сети на CPU работают несколько миллисекунд, если не минут.
Тупо посчитайте количество операций. Та же классическая U-NET имеет 2.3 TFLOPs. На CPU такое будет считаться пару десятков секунд, на GPU — пару-тройку секунд.


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

Да, жертвуют точностью ради скорости работы. Но не от хорошей жизни это делают.

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

Одно другому не мешает. Проблема уменьшения размера нейросети без изменения её эффективности — это открытая проблема.

Если резюмировать, то задача запуска «больших» сетей на мобильных устройствах решается

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

Она бы стояла, если была бы решаема. В батарейку упирается. И Гугл и Яндекс были бы рады распознавать речь на устройстве. Пока, насколько я знаю, распознают только ключевые слова (ту "Алиса").


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

И Гугл и Яндекс были бы рады распознавать речь на устройстве.

Гуглу и яндексу как раз радостно все у себя обрабатывать, набирая статистику.

Статистику они так и так получат. Текст всё равно нужно отправить на сервер.


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


95% очевидного аудио для обучения не нужно, нужны случаи неуверенности сети и ошибок (которые можно найди по косвенным признакам). Размечать вручную для обучения всё подряд нет пользы.

Наиболее радостно распознавать речь на устройстве, пожалуй, только владельцу устройства, чтобы распознаватель не зависел от связи с серверами-распознавателями. А статистику Гугл с Яндексом пусть набирают в те моменты, когда устройство выходит на связь с миром и передают в Гугл да Яндекс отчёты о том — что да как они распознали в их отсутствии.
UFO just landed and posted this here

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

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

Автор драматизирует потому, что эти методы по сути бесполезны. Они не дают сколько-нибудь надежного способа решение задачи. Задача в каждом конкретном случае оказывается решена случайно.


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

Грубо говоря, многие такие статьи выражают мнение, что ИИ учат с нуля, и пытаются сравнить ее с младенцем.

Но младенец это ООООЧЕНЬ далеко не нуль. Это уже сформированная сложнейшая система, с обратной отдачей и обработкой миллиардов параметров, и неплохим регулированием того, что есть хорошо, а что есть плохо.
И то, уходит несколько лет, просто чтобы научиться даже правилам.

Современные ИИ слишком упрощены, и следовательно не могут являться универсальными. Поэтому их и затачивают под конкретные ограниченные правила.

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

Да, да, именно поэтому куча людей занимается дип лернингом и выпускаются нейроморфные чипы — от бесполезности.

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

Гениально: «в конкретных случаях полезно а в целом — бесполезно». А вам не приходило в голову, что конкретная задача биологических нейросетей — это выживание, а все остальное, типа речевых функций, эмоций, сознания как такового — это просто артефакты глубинного обучения, которые мы также наблюдаем в случае с ИИ? То есть, учить машину говорить, без остального контекста (голод, боль, взаимоотношения) — это обучение на неверных предпосылках, и это говорит не о бесполезности машинного обучения, а о ограничениях обучающей среды. То есть вы просто назвали все те механики, которые сделали возможным появление биологического интеллекта — бесполезными, и то, что эволюционные процессы, в случае с машинами, могут быть многократно ускорены, как и скорость вычислений, ни на какие другие мысли вас не наводит? Ну ок.
Бедные машины, им тоже придётся страдать :(.
Тяжело в учении — легко в бою!
А вам не приходило в голову, что конкретная задача биологических нейросетей — это выживание, а все остальное, типа речевых функций, эмоций, сознания как такового — это просто артефакты глубинного обучения, которые мы также наблюдаем в случае с ИИ?

Какое это отношение имеет к предмету разговора.


То есть вы просто назвали все те механики, которые сделали возможным появление биологического интеллекта — бесполезными

Не называл. Будьте внимательнее.

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

И о какой невнимательности вы тут говорите? Вы пишете ерунду. Из ваших слов следует, что практически гарантированное превосходство ИИ в игре Го, над любым мясным игроком — это случайность. Просто «случайно» ИИ побеждает в 100% случаев. Ничего не смущает?
И о какой невнимательности вы тут говорите?

О том, что вы не можете внимательно прочитать три строки текста.


Вы пишете ерунду.

Ерунду пишите вы. Я ничего такого, что вы выдумали, не писал.


Из ваших слов следует

Нет, не следует. Следует из ваших фантазий том, что я что-то писал (чего я на самом деле, не писал).


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

Да, это просто случайность.


Просто «случайно» ИИ побеждает в 100% случаев. Ничего не смущает?

Почему же случайно? Он не случайно побеждает. Я же говорю — вы невнимательно читаете. Попробуйте перечитать мои предыдущие посты, но только внимательно, а не так, как вы это обычно делаете.


Я не говорил нигде о задаче вида: "победить в ГО". Я говорил о задаче вида: "сделать сеть, которая победит человека в ГО". Так вот, то, что такая сеть получилась — это случайность, т.к. ее получили методом "бросаем дротик наугад с закрытыми глазами и надеемся, что попадем". И если повторить все действия, которые привели к этой сети, то не факт далеко, что у вас получится сеть, которая сможет кого-то обыграть.

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

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

для науки важен критерий воспроизводимости
Это в какой парадигме?
А у нейросетей с воспроизводимостью все не просто плохо — там все ужасно.
Все хорошо у них. На одинаковой выборке получается одинаково обученная сеть с одинаковыми характеристиками.
Это в какой парадигме?

В любой. Воспроизводимость — один из основных основной критериев научности.


Все хорошо у них.

Нет, там все катастрофически плохо.


На одинаковой выборке получается одинаково обученная сеть с одинаковыми характеристиками.

А если переписать хорошую книгу дословно, то получится хорошая книга. И что?


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


Так что сейчас, в 2019 — практически все, что относится к нейросетям, не наука, а искусство. Такое же, как кинематограф, живопись, музыка.


Есть определенный набор ничем не обоснованных рекомендаций, следуя которым можно получить результат. Или не получить. Как повезет.

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

Это только один из критериев.


Поведайте нам.

Что именно?


То окажется, что это не корректный пример.

Это как раз корректный пример, с чего бы нет?


Вот если посадить такого же писателя в такую же комнату и так же кормить, то напишет ли он такую же книгу дословно?

Нет, и это точный аналог случая "тот же метод, но с другими данными", в котором успех обучения сети не гарантирован.


Это называется «эвристики»

Ага, они самые. Не-наука, то есть.


С каких пор вероятностные модели стали вне закона?

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

постпозитивисты говорят, что фальсифицируемость.

Это важно, но воспроизводимость ещё важнее. Это не столько основной критерий, сколько основная польза науки. Она даёт штуки, которые, будучи использованными точно по инструкции, работают в любых руках.


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


С нейросетями там средне. Никакой особой случайности, но может и не заработать.

Из фальсифицируемости следует предсказательная сила. И вот как раз она — основная польза науки. Научность — свойство гипотезы. Воспроизводжимость — свойство эксперимента. При не полной воспроизводимости можно оперировать вероятностными моделями.
Из фальсифицируемости следует предсказательная сила. И вот как раз она — основная польза науки.

Не науки а теории. Только без воспроизводимости вы не можете никак узнать верна ли ваша теория а, с-но, и не можете ее использовать.


При не полной воспроизводимости можно оперировать вероятностными моделями.

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

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

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

Формального, может, и нет, но консенсус в рамках общего понимания уже давно есть. Когда вы обоснованно строите модели, предсказывающие результат (пусть и в виде "будет Х с вероятностью Y" или "с вероятностью Y погрешность не превысит Х" или еще как-то вроде того) — это наука. Когда вы говорите "может будет, а может не будет, все зависит от аспекта Меркурия", ничего больше не уточняя — это не наука.
Вот до тех пор, пока методы обучения нейросетей работают по принципу "ну если повезет — обучится, а если не повезет — не обучится", то это все имеет опосредованное отношение к науке. Когда же в нейросетях появится математика — и мы сможем численно оценивать результат обучения на основе архитектуры сети и свойств данных до выполнения, с-но, обучения, то вот тогда это станет полноценной наукой.
Пока что так учить мы можем только однослойные персептроны (и многослойные, но только переводя их в эквивалентные однослойные) и на исчерпывающую выборку.


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

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

Это не позволяет вам сказать «обучение нейросетей в принципе не научно». Некоторые конкретные методы — весьма вероятно. Нейросеи, в целом — нет.

Вы путаете научность с истинностью. Научная гипотеза не обязана быть верной.
Научная гипотеза не обязана быть верной.

Вы путаете гипотезы и методы. Мы же сейчас обсужадем именно методы — т.к. нейросети это чисто практическое направление мл. Особых гипотез там и нет (с-но, потому и нет, что беда с пониманием сетей).


Некоторые конкретные методы — весьма вероятно.

А какие нет, с-но? Я знаю только один работающий (то есть тот, работоспособность которого оценивается математически) нейросетевой метод — это метод коррекции ошибок для упомянутого выше персептрона и его тривиальные вариации.
А из методов, которые на практике вот прямо сейчас в 2019 применяются для обучения всяких агентов для игры в го и распознавания картинок — вы знаете хоть один, который бы работал вернее, чем "или сработает, или нет"?

Определение в студию.

Без понятия, но это не дает вам прав на квантор всеобщности.
Определение в студию.

Определение чего?


Без понятия, но это не дает вам прав на квантор всеобщности.

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

Определение чего?
Научного метода.
пока не доказано обратное
А когда будет доказано, что вы сделаете? Доказательства не влияют на научность. Вы не к тем задачам все это применяете.

Все эти движения вокруг задачи демаркации, они просто о строгости формулировок и для защиты от confirmation bias (что есть частный случай систематической ошибки выбора). Они нужны только для построения правильной логики доказательств. Ну то есть «опровержение нулнвой гипотезы» это стандартный метод.
А когда будет доказано, что вы сделаете?

А когда будет доказано — с-но, поменяю точку зрения. А в чем проблема?


Доказательства не влияют на научность. Вы не к тем задачам все это применяете.

Да про научность вообще вы заговорили. Я же просто сказал, что нейросети в современном состоянии — не имеют отношение к науке, а имеют отношение к искусству. Т.е. я говорю не о формальной расстановке ярлыков "наука" или "ненаука", я просто говорю о том, что данный вид деятельности, согласно общему консенсусу, не относится к виду деятельности, которым занимаются ученые и который они называют "наукой". Точно так же как не относят к науке написание музыки или картины. Почему? Потому что для науки критична отторгаемость опыта — то есть та самая воспроизводимость результата. Один ученый что-то сделал и рассказл другим, теперь они тоже могут что-то сделать. В случае нейросетей это по сути не работает, нет возможности поделиться опытом и научить кого-то другого.

В том, что вы преподносите научность высказывания как критерий априорной истиности в общем случае. Это не корректно.

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

Кстати, что там с определением?
В том, что вы преподносите научность высказывания как критерий априорной истиности в общем случае.

Истинность это вы уже сами придумали, я о ней не говорил.


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

Как раз методологически это корректно. Мы не можем доказать, что бога нет — но раз никаких свидетельств в пользу его существования не наблюдаем, то считаем, что нет. Хотя, может быть, мы и не правы.


Кстати, что там с определением?

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

То есть, вы не утверждаете, что ваши утверждения истинны? Ну ок.

У нас нет свидетельств влияния бога, и потому мы не учитываем их на практике — это верно. Делать же строгие утверждения о несуществовании не верно.

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

Ну вот и я на практике не учитываю возможность существования обсуждаемых алгоритмов. При этом доказать то, что их нет — конечно, невозможно by design. Утверждения о существовании ведь не фальсифицируемы.


Делать же строгие утверждения о несуществовании не верно.

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


Нейросети настоящие ученяе тоже стороной обходят?

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


Ну то есть если вы ведете какое-то исследвование, то вам нужен какой-то теоретический результат, какое-то знание получить в итоге, как вывод. А какое знание получено в результате того что сделали нейронку для го? Никакого.

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

У вас рекуррентное определение: наука это то, что делают ученые, а ученые это те, кто занимается наукой. А еще зачем-то социальные институты приплели — я могу дома заниматься наукой, а могу в НИИ не наукой.

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

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


У вас рекуррентное определение: наука это то, что делают ученые, а ученые это те, кто занимается наукой.

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


Но это не дает права утверждать «нейросети в принципе не научны».

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


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

Ага. Математика — это совершенно ненаучно.

Вы опять невнимательно прочитали и выдумали чего-то, что я не говорил. Математика — это очень научно, я как раз за математику.
Только никакой мат. теории для нейросетей нет. Точнее, она есть — но закончилась на работах Розенблатта, в 60-х. С тех пор никто ничего нового в рамках нейросетевого матана не придумал, и все, что сейчас в рамках нейросетей делается — не имеет вообще никакого мат. базиса под собой. Чистое шаманство.

Аппроксимация функции — это не случайность.

Зато вот с чат-ботами общие методы показали своё бессилие, и лёбнеровскую премию получают исключительно вручную написанные боты, недалеко ушедшие от примитивных шаблонизаторов, где по сути человек вручную прописывает шаблоны всех возможных вариантов ответов. Такие боты не масштабируются и сложно переводятся на другие языки, но нейросетки и подобное пока что не приносят результатов.
Да, есть такое.
Есть сильное ощущение, что общие методы прекрасно себя показывают именно в решении частных, локальных задач. И крайне сложно обобщаются.
Ну тут не нужно быть специалистом, чтобы ответить: нейросеть учится до оптимума, а при разговоре в вариантах ответов не может быть строгого оптимума, как по сути реплики, так и по построению фразы. Тем паче, елико необычным стилем фраза выстроена, не утеряет нити смысла своего, и воспринята собеседником будет, али и не изъясняется никто ныне таким слогом.

Язык, как оказалось, очень сложен. Модели с миллиардами параметров генерируют более качественные тексты, чем модели с сотнями миллионов параметров (см. например https://www.reddit.com/r/MachineLearning/comments/bvd4e6/p_testing_the_limits_of_grover_the_neural_fake/ ). Обучать такие модели практически недоступно энтузиастам, участвующим в Loebner Prize (я не увидел организаций в списке участников).

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

"Каждый раз, когда я увольняю лингвиста, качество распознавания речи улучшается!"


— Фредерик Йелинек

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

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

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


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

Последнее время только для хорошо параллелизуемых алгоритмов работал, но и тут уже предел близко.
Предел? Да там ещё даже не начинали. Третье измерение не освоено от слова «совсем». Нет проблем смоделировать структуру, подобную человеческому мозгу (огромное количество медленных элементов) — вот только приспособить её к чему-то полезному — пока большая проблема.
Третье измерение не освоено от слова «совсем».

А чем третье измерение поможет? Проблема же в tdp, а не в том, что места нет. Так-то вам формально и обычный 2д чип никто не мешает сделать вдесятеро больше.

Так-то вам формально и обычный 2д чип никто не мешает сделать вдесятеро больше.
Серьёзно? Фотку чипа на 8150 mm² — в студию. Я хочу это видеть. А ещё было бы неплохо увидеть телефон, в который это вставите.

Проблема же в tdp, а не в том, что места нет.
Проблема, на самом деле, и в том и в другом. Но если мы хотим снижать TDP, то нужно снижать частоту и увеличивать количество модулей. Потому что TDP очень сильно зависит от напряжения питания, а его, в свою очередь, можно заметно снизить, если нам не нужны свервысокие частоты.
Серьёзно? Фотку чипа на 8150 mm² — в студию.

Так я же наоборот говорю, что таких не делают. Это с вас фотка.


А ещё было бы неплохо увидеть телефон, в который это вставите.

Ну он будет большой. Но, по крайней мере, не расплавится, как в случае 3дчипа.


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

Ну вот уже десяток+ лет частота не растет, а увеличивается количество модулей. И никакое 3д для этого не нужно, и так модулей стало многовато.

Так я же наоборот говорю, что таких не делают. Это с вас фотка.
Не делают из-за технологических ограничений, извините. V100 и без того один из самых больших существующих в природе чипов, 815 mm², больше чем всякие Itanic'и чуть не в два раза. Сделать его ещё больше — весьма проблематично. А вы обещали в 10 раз больше… 8150 mm²… хто? хде? када? Хоть один такой чип в природе вообще существует???

Ну он будет большой.
Для того, чтобы в телефон влез чип размером 8 на 10 сантиметров — потребуется целый планшет, я боюсь. Попробуйте на досуге померить-таки размеры вышего телефона банальной линейкой.

И никакое 3д для этого не нужно, и так модулей стало многовато.
Наоборот — их ещё очень-очень мало. До миллиардов, как в мозгу — ещё пилить и пилить. А «удесятерённый» чип уже физически по размеру больше большинства телефонов получается…

Ну вот уже десяток+ лет частота не растет, а увеличивается количество модулей.
Однако она и не падает, так что всё ещё впереди. Чтобы использовать действительно большое число модулей частоту придётся снизить. Возможно — до сотен мегагерц, а может и сильнее. До этого — мы пока не дошли, потому что не знаем как потом использовать подобную платформу…
Не делают из-за технологических ограничений, извините. V100 и без того один из самых больших существующих в природе чипов, 815 mm², больше чем всякие Itanic'и чуть не в два раза. Сделать его ещё больше — весьма проблематично.

Сделать-то не проблема, только никому такой чип будет не нужен.


Наоборот — их ещё очень-очень мало. До миллиардов, как в мозгу — ещё пилить и пилить.

А зачем миллиарды, как в мозгу, если уже десяток не удается нагрузить?


Однако она и не падает, так что всё ещё впереди.

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


Возможно — до сотен мегагерц, а может и сильнее.

Ага, пользователь очень обрадуется, когда его пк деградирует до производительности лихих 90-х.


До этого — мы пока не дошли, потому что не знаем как потом использовать подобную платформу…

Вот это хорошее замечание. Можете хоть сейчас на вашем пека частоту опустить, и насладиться безграничными возможностями "новой платформы" :)

Сделать-то не проблема, только никому такой чип будет не нужен.

Сделать проблема. Причём неразрешимая. Основная причина — дефектность и разброс параметров по площади. Не выйдет годный чип.
(это не учитывая того — какой же многодесятиметровый аппарат пластинку засвечивать будет?)

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

Это вы про какие конкретно методы?

По итогу 70-ти лет исследований в области ИИ главный урок заключается в том, что общие вычислительные методы в конечном счёте наиболее эффективны.
Ахаха! Дважды обман.
Обман первый: Если задачи ИИ редуцировать до задач недоИИ, т.е. до уровня нахождения котиков на картинках, до уровня недораспознавания речи программами, то наверное «общие вычислительные методы» будут быстрее.
Обман второй: «наиболее эффективны» при условии принятия потребителями принципиально неисправимых ошибок, которые генерируют эти «общие вычислительные методы».
Конечный успех окрашен горечью и часто не до конца принимается, потому что это победа над привлекательным, ориентированным на человека подходом.
Когда задачи ИИ редуцированы до уровня статистики, то конечно побеждают быстрые алгоритмы перемалывающие тонны цифр. Но мы то ищем совсем не такой ИИ!
Обман второй: «наиболее эффективны» при условии принятия потребителями принципиально неисправимых ошибок, которые генерируют эти «общие вычислительные методы».
Частичное решение задачи лучше отсуствующего, так что потребители всё отлично примут.

Но мы то ищем совсем не такой ИИ!
Я не знаю какой ИИ ищите лично вы (и зачем), но тот факт, что ничего работающего вы предъявить не в состоянии — имеется.

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

Что либо вам предъявлять совсем не входит в круг моих интересов.
А что тогда входит в круг ваших интересов? Поразглагольствовать на тему? Пожалуйста — только не на Хабре.

Такое впечатление, что у вас такое действие как «думать» осуществляется существенно после действия «напечатать текст».
В вашем случае — однозначно. Вернее текст-то вы таки печатаете, а вот с фазой «подумать» — таки проблемы.
А когда… автопилот не распознает ребенка на дороге
А когда человек не распознает?)
«или автопилот не распознает ребенка на дороге»
В этом вопросе есть занятная иррациональность человечества.

Возможно уже сейчас количество аварий совершённых по вине водителя в десятки раз выше, чем если бы машинами прямо сейчас начали управлять ИИ.
Тем не менее люди не введут ИИ до тех пор, пока будут аварии по вине ИИ. Даже если будет одна авария в год на 10млн машин.

Т.е, ИИ в автомобилях не будут вводить ещё пять лет из-за того, что из-за ошибок ИИ может пострадать 100 человек. Но за время пока ИИ не введёт может убиться 50 млн человек из-за ошибок человека.
Это связано с тем, что на вину конкретной личности легко указать. В случае ИИ, виноватого за ошибку алгоритма указать гораздо сложнее. Если похожий процесс еще 50 лет назад был как в фильме «Бойцовский клуб», то сейчас цена жизни в развитых странах гораздо выше.
Просто, человесечкие законы растут из тех времен, когда преступные деяния были чем-то простым, понятным и обычно намеренным. И теперь же в век вероятностных событий очень трудно отказаться от концепции необходимого наказания.

Ну то есть, если доказано, что ИИ ездит по правилам и имеет частоту инцидентов не выше среднечеловеческой в тех же условиях, то и надо ли вообще кого-то наказывать за его ошибки?

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


Минус — родственники убитого не смогут получить моральное удовлетворение, зная, что кто-то сидит в тюрьме/на электрическом стуле. Но, например, автоконцерны обычно как-то договариваются с родственниками погибших по причине технических проблем в автомобиле. Так что ситуация не уникальна.

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

Пока наоборот, аварийность на километр у роботов в сотни раз выше.

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

Сейчас фундаментальным барьером на пути к такому AI является человеческая рациональность, а именно, способность к логическим рассуждениям. Это как раз то, что автор называет «чрезвычайно, безвозвратно сложно».

Нет, это ни разу не «безвозвратно сложно». Дорого просто очень. Это результат эволюции, при которой были поставлены квинтиллионы опытов и триллионы особей погибли. Такой роскоши мы ИИ предоставить не можем — потому и попытки как-нибудь этот этап обойти.
Мне кажется, это довольно дурная линия размышлений. Ладно, всякий кулик своё болото хвалит, но агитировать за отказ изучать какие-то направления в пользу других, «работающих» — это уже слегка за гранью. По поводу ИИ в шахматах Джон Маккарти сказал что-то вроде того, что если бы генетики возились с дрозофилами так же, как мы с шахматами, то они имели бы сейчас суперскоростных дрозофил, вот и всё. Смысл всегда был не в победе над Каспаровым, а в понимании сути процессов мышления. Ну да, не вышло, но никто бы в здравом уме не стал вкладывать кучу денег в шахматный ИИ только ради непосредственного результата: тут важны ripple effects, следствия из результатов.

Современные методы машинного обучения работают на практике — ну и прекрасно, пользуйтесь и радуйтесь. Гораздо реже пишут о принципиальных ограничениях этих методов в той же мат. лингвистике, да и не только, ибо писать об ограничениях не очень интересно. Но нельзя же сводить весь ИИ только к «соревновательному» элементу: у Васи качество распознавания 85%, а у меня 85.5%, победа. Есть и более глубинные цели, в рамках которых современные нейросети — это тот же самый «махолёт», вид сбоку.
Ну да, не вышло, но никто бы в здравом уме не стал вкладывать кучу денег в шахматный ИИ только ради непосредственного результата
Создатели специального шахматного ASICа смотрят на вас с недоумением…
Ну это же их проблемы, а не мои. Deep Blue спонсировал IBM, для них это был чисто пиаровский проект, никакого иного смысла в нём не было. Получили своё publicity и молодцы, ничего плохого в этом не вижу. Но то, что это дело спонсировала частная компания — очень характерно.
Но то, что это дело спонсировала частная компания — очень характерно.
А много сейчас спонсируется разработок нейросетей не частными компаниями?
Этот вопрос меня просто в тупик ставит. Конечно, deep learning — это одна из самых горячих тем в нашей области, так что сложно найти университет, в котором бы существовало хоть в какой-то форме направление AI, и не велись бы разработки в области нейросетей. На что же ещё гранты идут, как не на это.
Тем не менее все серьёзные достижения — осуществляются не там. Даже банальное создание нейросети, способной обыграть топовую обычную программу — было сделано дважды и оба раза — без участия научных учреждений.

Хотя, казалось бы: задаче — сто лет в обед, хорошая задачка для нейросетей, результат неочевиден (по крайней мере ещё пару-тройку лет назад не было никаких оснований предполагать, что нейросети смогут обойти традиционные подходы при тех же ресурсах)… и никаких результатов.
было сделано дважды и оба раза — без участия научных учреждений.

А как научное учреждение могло бы участвовать в таком проекте? Там ведь нету ничего научно-содержательного.


и никаких результатов.

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

А вот как именно они были использованы — это уже расшарить нельзя и научную статью про такое не напишешь.
Тем не менее статья, была написана, опубликована и проверена — всё без участия академических институтов.
Тем не менее статья

Какая статья?

И какая у нее научная ценность? В каком контексте и где можно использовать результаты исследования из статьи? Каковы вообще результаты этого исследования и в чем заключался его смысл?

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

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

Есть, например, индекс цитирования.
Но при этом в качестве критерия мы вполне признаём такой себе «междусобойчик» с теми же самыми ссылками.

Я бы скорее оценил количество ссылок на статью в Internet вообще, чем индекс цитирования в его классическом виде. Просто потому что времена, когда что-то в какой-то области могли сделать только учёные — прошли. Очень большое количество разработок (особенно в более-менее прикладным науках — типа той же медицины или нейронных сетей) сейчас делается вне учебных заведений — что индекс цитирования игнорирует почти полностью.

Только вот беда: чтобы его оценить — нам опять придётся обращаться к коммерческим компаниям… неважно даже — к Гуглу или к Яндексу… важно что научный мир вот всё это, происходящее вне «молитвенных домов» науки склонен игнорировать.
мы вполне признаём такой себе «междусобойчик»

«Мы» — это кто? Я говорю, что такой критерий существует, и с моей точки зрения он плох. Если вы предложите свой критерий, почему бы и нет — вот давайте с него и начнём.

Я бы скорее оценил количество ссылок на статью в Internet вообще, чем индекс цитирования в его классическом виде.

Просто количество ссылок никоим образом не оценивает «топовость» достижений, это же очевидно. Так же, как и в интернете «вообще» самые популярные темы — это что-то типа поп-музыки и футбола, так и в области ИИ естественным образом вверху окажется то, что интересно широкой публике. Скажем, победа ИИ над гроссмейстером в японские шахматы (сёги) — это достаточно крупное достижение по сравнению с классическими шахматами, т.к. там граф куда глубже и ветвистее. Тем не менее, ссылок на эти работы будет в разы меньше, ибо игра попросту менее популярна.
Скажем, победа ИИ над гроссмейстером в японские шахматы (сёги) — это достаточно крупное достижение по сравнению с классическими шахматами, т.к. там граф куда глубже и ветвистее. Тем не менее, ссылок на эти работы будет в разы меньше, ибо игра попросту менее популярна.
Тут вы, конечно, правы, но, тем не менее, победа в Го (где граф ешё глубже и ещё ветвистей) внимания привлекла достаточно — возможно даже больше, чем победа над Deep Blue… как раз потому что (как дальнейшие исследования показали) тот же подход применим и к шахматам и к сёги.
Ну, го — тоже популярная игра. Менее популярная, чем шахматы, но когда шахматы уже решены, что ещё остаётся на горизонте? Но суть же не в этом, а в том, что количество ссылок — плохой показатель «важности», да и индекс цитирования тоже не фонтан.

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

На самом деле вышло. Мы поняли, что для решения таких задач интеллект не нужен. Эта задача считалась нерешаемой без интеллекта, полный перебор невозможен. А в Го — невозможен в квадрате.


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

По поводу «получили отрицательный результат — в шахматах интеллект не нужен», скорее, соглашусь, но я не думаю, что 50 лет назад люди этого не понимали. Они вряд ли рассчитывали на то, что у них будут такие вычислительные ресурсы, которые реально оказались нужны. Сейчас для шахмат достаточно уже обычного компьютера, 20 лет назад был нужен специальный вычислительный кластер, а 50 лет назад это всё было за горизонтом.

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

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

Добавлением однотипных данных или данных вообще, любых? Если второе, был бы благодарен за пример.

Я бы хотел дать краткий и ясный ответ, но не получается :( Формально говоря, добавляя любые данные и усложняя структуру нейросети, наверно, можно получить что-то вроде нашего мозга, который всё вроде как умеет. Но если мы говорим о реально существующих «нейросетях» и данных, на которые можно реально рассчитывать, ситуация уже не столь хороша. Есть, например, книга Y. Wilks — Machine translation: its scope and limits, там много любопытных размышлений.

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

Да, никакая существующая нейросеть не предназначена для удержания "культурного контекста" (во всяком случае мне такие архитектуры не известны). Но уверен, что над чем-то похожим уже работают. Policy+value networks и GAN — это шаг в этом направлении. Следующие системы будут состоять из десятка сетей, возможно, независимо обученных.

Я не уверен, что решение обязательно должно лежать в рамках парадигмы «нейросеть + данные». Собственно, это и был смысл моего изначального комментария: давайте пробовать разные направления, необязательно класть все яйца в одну корзину, а остальное гнобить как «неперспективное».

Если с точки зрения финансирования, то да. Финансировать всякие "странные" варианты имеет смысл на всякий случай.


А если с точки зрения исследователя, то нет. Кто захочет тратить несколько лет своей жизни, что бы "попробовать" другое направление? Наверняка каждый хочет исследовать именно то направление, которое в итоге выстрелит, а не запасное.

Ну мы же не знаем, что в итоге выстрелит. Автор исходной статьи (Rich Sutton) агитирует за то, чтобы не вкладываться в «неперспективные» направления. Ну пусть и не вкладывается, его дело. Я не говорю, что надо кого-то перетягивать туда или сюда, если у кого-то душа лежит к другим методам — и слава богу, а если хочется заниматься меинстримом исходя из моды или искренней веры в его победу — ну и тоже окей, пусть расцветают все цветы :)
СПСБ за указание на книгу. Посмотрю.

Интересно. Когда, по мнению автора статьи, он бы получил эту статью "общевычислительными методами" от "очень быстрого самопрограммируемого калькулятора"? :)
ИМХО, в статье указывается пальцем, но неверно интерпретируется факт того, что ЧЕЛОВЕК более успешно действует тогда, когда опирается на научно достоверные, объективные знания, ну, скажем, математики и статистики, чем когда пытается "формализовать в изделии" псевдонаучные ("донаучные") гуманитарные "знания".
Просто, один инструмент чрезвычайно отточен (хоть и сильно специализирован), а другой — "из говна и палок" (но универсально посредственнен, мягко говоря).
И вот тут-то очевидно приходим к тому, что специализированный и отточенный инструмент имеет свой предел (наращивание вычислительных мощностей замедляется, сложность построения ИИ на вычислениях растёт экспоненциально, а результат улучшается всё медленнее, всё ещё далеко не дотягивая до "интеллекта" даже амёбы, хоть отдельные, легко формализуемые, укладывающиеся в прокрустово ложе конкретных методов используемого инструмента, направления и достигли успеха).
Вывод автора, пошедшего по пути противопоставления "человеческих знаний" и "математики", закономерно примитивен, т.к., построен на ложном посыле, ведущем к очевидному противоречию — либо математика и статистика — "нечеловеческие знания", либо те, кто создают ИИ — "нечеловеки".
А всё проще и сложнее.
В предметной области "человеческое мышление" и "интеллект" пока мало ЗНАНИЙ, и много ДОМЫСЛОВ. И этому направлению ещё долго будет куда развиваться, развивая именно человеческие знания о самом себе, о математике, о мышлении, об интеллекте.
А попытки "как-то, что-то изваять из того, что уже хорошо умеем" — это не противопоставление "человеческим предметным знаниям", а путь получения "предметных знаний" о пока плохо представляемом.
Так и зарождалась любая наука до момента обретения научности.

ИМХО, в статье указывается пальцем, но неверно интерпретируется факт того, что ЧЕЛОВЕК более успешно действует тогда, когда опирается на научно достоверные, объективные знания, ну, скажем, математики и статистики, чем когда пытается "формализовать в изделии" псевдонаучные ("донаучные") гуманитарные "знания".

Так автор как раз говорит о том, что все наоборот. Попытка опираться на научно достоверные знания вроде математики — не удалась, и в итоге работает та самая "гуманитарщина", главное терафлопс в печку добавить.

С одной стороны автор прав — использование «грубой силы», общих вычислительных методов сейчас действительно показывает лучшие результаты чем использование моделей. На самом деле, внутри нейросетей все равно есть математическая модель, с той только разницей что она строится «изнутри», в процессе обучения, нейросети, а не задается исследователем «извне».
Однако есть другой, более принципиальный вопрос: достаточно ли математических методов для моделирования человеческого мышления в принципе? То что сейчас показывают слабые ИИ — решение локальных задач, таких как: распознавание речи, картинок, лиц, игры по определенным правилам, преобразование данных и т.д. Да, с какими-то из этих задач человек даже справляется хуже компьютера. Но неявно предполагается, что от данного слабого ИИ можно в конце-концов перейти к сильному ИИ, то есть к модели человеческого мозга и вот этот момент мне совершенно неочевиден. Лично я считаю, что проблема далеко не только в том, что человеческий мозг невообразимо сложен и для его моделирования потребуются колоссальные вычислительные ресурсы, сколько в том что в нашем мышлении есть нечто иррациональное, не поддающееся алгоритмизации в принципе (см. квантовое сознание). Соответственно сильный ИИ, даже если он будет создан на этом пути, будет моделью исключительно рациональной части мозга, но никак не всего мозга в целом.
Почему вы утверждаете, что иррациональное в человеческом мозге не поддается алгоритмизации? Теоретического запрета нет.
Если коротко — то из самого слова «иррациональное». Математика — рациональная наука, оперирующая набором аксиом и выводимыми из них теоремами. Соответственно все что попадает в область математики мы будем называть «рациональное». Если в человеческом мышлении присутствует нечто выходящее за рамки рационального, то есть иррациональная компонента, то её по определению нельзя свести к математическим методам и, следовательно, алгоритмизировать.
UFO just landed and posted this here
Давайте посмотрим глубже. Для эмоциональной сферы человека на сегодняшний день нет формального языка, поэтому говорить о формальной теории, действительно, рано. Но это еще не свидетельствует о принципиальной иррациональности, т.е. теоретическом запрете существования маттеории.
К примеру, эмоциональная валентность («хорошо/плохо»). Физическим органом ее кодировки является базолатеральное ядро миндалины — сложная нейронная сеть, тем ни менее, это не «черный ящик». Трассируют, изучают, находят правила работы и т.д. Рано или поздно матмодель для нее появится.
Кстати, была статья на «архиве», что DL-модель может корректно аппроксимировать решение many body problem в квантовой физике. Выглядит так, что квантовое у нас сознание, или не квантовой — в плане принципиальной возможности моделирования это ничего не меняет.
В порядке бреда.
«Иррациональное» поведение это следствие рациональной ошибки в нашем организме. При проектировке человеческого тела используется код, который не делает из нас идеальный организм, но основные формулы и запросы строятся по довольно крепкой структуре.
Мы можем от части выбирать решать ли нам тупиковую задачу или отойти от неё, биология и генетика же «решают» во все направления без возможности обойти тупиковые ветви развития, но при этом «обучаясь» как ИИ.
Из-за нашего восприятия «иррациональное» кажется признаком человеческого, хотя по факту это решение определенной формулы, которое зашло в тупик. Наше поведение зависит от нашей генетики в большей степени чем мы думаем. А генетика подчиняется тем же правилам хаотичного развития как и вся эта вселенная, а значит имеет определенные удачные формулы и структуры математического типа, которые можно алгоритмизировать. Получив на руки эти алгоритмы можно с уверенностью предсказывать пути развития отдельного организма и его реакцию на внешние раздражители. Практически программировать его более детально, чем это может сделать тот же ремень. :)
Насчёт алгоритмизации.
Алгоритм — это достаточно формальное и чёткое понятие, опирающееся, например, на машину Тьюринга. На данный момент есть концепции штук, которые не алгоритмизируются — например, временные петли. Или есть такая штука как задача останова — для неё доказано, что её нельзя решить алгоритмом.
Но все штуки, которые нельзя решить алгоритмом, нельзя решить и человеком. В общем случае, конечно — частные случаи той же задачи останова решаются и людьми, и алгоритмами.
В общем, на данный момент у нас нет ни одного примера процесса, который доказанно нельзя было бы моделировать комбинацией из алгоритма и вероятностного распределения.
В смысле, обнаружение такого процесса тянет на серьёзное открытие и Нобелевку

Пример штук, которые реально неалгоритмизируемы (и не существуют/не открыты):
ru.wikipedia.org/wiki/%D0%A1%D0%B2%D0%B5%D1%80%D1%85%D1%82%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%BE%D0%B2%D1%8B%D0%B5_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F
процесса, который доказанно нельзя было бы моделировать комбинацией из алгоритма и вероятностного распределения.

Есть куча процессов, для которых не доказано, что их можно выполнить алгоритмом. Как алгоритмом сделать что-то "качественно"? Написать качественную книгу или музыку. Даже само слово "качественно" алгоритмом не определить. Хотя человек может отличать.

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

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

Прямое тоже надо. Вы, конечно, можете принять на веру, но это ненадежный подход.


лучший критерий качества — это «качественно = популярно».

Огромное количество людей не согласятся с таким равенством. Возможно, этот критерий "лучший", но он и крайне далёк от хорошего.

Прямое доказано следующим образом. Все физические процессы, обнаруженные в экспериментах, выразимы в терминах алгоритмов. Не обнаружено ни одного примера обратного. Ни одной машины времени, ни одного оракула, ни одной машины Зенона — ничего из этой серии.
ru.wikipedia.org/wiki/%D0%A1%D0%B2%D0%B5%D1%80%D1%85%D1%82%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%BE%D0%B2%D1%8B%D0%B5_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F
А стимул их найти есть, и очень сильный.

Ну, люди, может, и не согласятся. Суть же не в этом. Суть в том, что для качественной работы надо сформулировать, что значит «качественно». Так, чтобы ИИ сам мог оценить, что и насколько качественно. Например, в случае инвестирования ИИ довольно хорошо может оценить, насколько качественные решения он напринимал — это можно записать в виде простой формулы.
ИИ — это достигатель цели. Ничего более. Машина результатов, соответствующих заданному критерию. Решатель «обратных задач» — тех, для которых легко проверить качество решения постфактум, но сложно это решение составить.
Во всяком случае, этому принципу соответствуют подходы supervised learning, reinforcement learning, artifical general intelligence, задача кластеризации и задача стационарной оптимизации.
Суть в том, что для качественной работы надо сформулировать, что значит «качественно».

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


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


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


Впрочем, если вернуться к начальной теме, эмулировать человека, я полагаю, всё же можно. В конце-концов максимально точно со всеми квантовыми процессами (теоретически). Даже если разница останется, она может оказаться неотличимой.

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

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

Если же не получится собрать датасет… Ну, если спаять сложную микросхему и запросить её отклики на малое число входных воздействий, то мы не сможем надёжно подобрать функцию, которая этой микросхемой реализована.
Так что здесь не только с мозгом проблема, а вообще с любым сложным блэкбоксом, про который мало данных.
В этом суть моего тезиса — вы отличаете качественную книгу от некачественной, не имея вообще внятного определения, что такое «качество», не говоря уж о строго формальном.
Количество споров на форумах на тему «является ли ___ шедевром или это „дерьмо для хомячков“» и «как нам стимулировать созданием „по настоящему качественного ___“» очевидным образом опровершает ваш тезис.

Если бы кто-то умел определять качество без тренировки — вот всех этих бесконечных «срачей» бы не было.

Для срачей достаточно, чтобы "микросхема", рассчитывающая качество, была у разных людей слегка разной. Ну и опыт показывает, что на ещё в какой-то мере обучается (а что идёт подкреплением? Да много что) и просто "плывёт" со временем.


Я могу сделать нейросетку, которая будет отличать хорошую книгу от плохой — в каком-то своём нечеловеческом смысле. Если от неё сделать много копий с небольшими отличиями — они будут давать иногда одинаковый, а иногда разный отклик. Будет тот самый срач, что вы описали. Безо всякого внятного определения качества, если я не раскрою правила сбора датасета.


И ваши аргументы будут в равной мере применимы и к людям, и к этой популяции нейронок. Ни один человек (кроме разраба) и ни одна нейронка не знает, что такое "качественно", но нейронка могут рассчитывать это "качество", и их отклики будут скорректированы, но не равны.
Я что-то упустил из вашего тезиса?


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

А зачем без тренировки? После тренировки по истории искусств практически все соглашаются, что черный квадрат — это картина, сменившая эпоху. Без сомнения качественная. Но определения качества всё равно нет.


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

либо это останется задача человеку — формализовать миллионы частных случаев качества

Берем миллион людей, показываем им картины, которые они называют "качественными" или нет, записываем реакцию мозга, даем нейросетке на вход, и она обучается, что такое реакция "качественно", с точки зрения мозга. Потом тренируем делать вещи, которые вызывают такую реакцию. Profit!
Можно делать еще потом будет качественно для конкретных групп или вообще индивидуально :)

Такой наивный подход не сработает же. Картины ценны контекстом.


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


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

Такой наивный подход не сработает же. Картины ценны контекстом.

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

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

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

Аппроксимация функции — это не формализация. Если вы загоните в нейросеть гигабайт данных от движении планет, вы получите аппроксимацию закона Ньютона. Уверены, что это будет работать в другой звёздной системе так же хорошо, как и сам закон? У закона мы знаем область применимости, у аппроксимации — только догадываемся. Можем эксперименты поставить для проверки.


есть всяческие аппроксимации, и вообще люди как-то с этим живут, и ничего

Да, в этом и состоял мой тезис. Есть вещи, которые мы не можем выполнить алгоритмом не потому, что неалгоритмизируемые (этого никто не доказал), а потому, что просто не знаем, как это формализовать. Но при этом используем.


И да, мы сможем с этим "как-то жить", как вы выразились и, возможно, даже сделать хорошую аппроксимацию.

Если вы загоните в нейросеть гигабайт данных от движении планет, вы получите аппроксимацию закона Ньютона. Уверены, что это будет работать в другой звёздной системе так же хорошо, как и сам закон?
— если я загоню этот же гигабайт данных в AIXI (который символьная регрессия плюс штраф за сложность), я получу апроксимацию, которая будет очень похожа на законы Кеплера — такой эксперимент уже был. Будет ли она применима в других звёздных системах? А что бы Кеплер ответил, если бы его об этом спросили? Думаю, сказал бы, что будет. Потому что у него не было примеров обратного. Сейчас у нас такие примеры есть. Если включить их в выборку, то AIXI выведет что-то типа формул общей теории относительности. Это будет апроксимация, но не ужасно большая, как у нейронки, а компактная, как у Эйнштейна.
Нейросеть тоже выведет все эти законы, но во-первых, не в человекочитаемом виде, во-вторых, у неё не очень хорошие штрафы за сложность, так что большой риск того, что модель будет плохо работать в неожиданных условиях — этот параметр у нейронки хуже, чем у AIXI.

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

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

В целом согласен, с парой "но", которые могут всё изменить.


  1. Пишут, что AIXI невычислим. Вы можете дать ссылку на упомянутый вами эксперимент? Звучит интригующе, но немного сомнительно.


  2. В вычислимом мире действительно тяжело показать разницу между аппроксимацией и формализацией. Давайте начну с разницы между невычислимой Solomonoff's theory of inductive inference и её хорошей аппроксимацией. Мы можем сделать аппроксимацию, которая при любом заданном "е" будет отличаться меньше, чем на "е". То есть фактически мы не сможем разницу измерить. Значит ли это, что эта аппроксимация индукции Соломонова равна самой индукции? Полагаю очевидным, что нет.


2 — Если мы не можем измерить разницу между наблюдаемой реальностью и результатами, предсказанными законами физики, означает ли это, что ее нет?

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


А ничего, что законы ньютона/кеплера это тоже апроксимация, сделанная мясной нейросетью?

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

Тк человек это нейросеть, очевидно. что нейросети могут выдавать формальные решения.

Ставить знак равенства между компьютерной нейросетью и биологической? Слишком уж ловкий приём :)


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

Звучит интригующе, но немного сомнительно.
— мой источник вот. Ключевое слово — Bacon.
books.google.ru/books?id=76FUDwAAQBAJ&pg=PT215&lpg=PT215&dq=bacon+%D0%B7%D0%B0%D0%BA%D0%BE%D0%BD%D1%8B+%D0%BA%D0%B5%D0%BF%D0%BB%D0%B5%D1%80%D0%B0&source=bl&ots=ooU6f9t36G&sig=ACfU3U22GnLfYaY3dOLhb0Wk8SPDY1mL3w&hl=ru&sa=X&ved=2ahUKEwiY9ZnpkdLiAhWnw6YKHTuWDJMQ6AEwEnoECAcQAQ#v=onepage&q=bacon%20%D0%B7%D0%B0%D0%BA%D0%BE%D0%BD%D1%8B%20%D0%BA%D0%B5%D0%BF%D0%BB%D0%B5%D1%80%D0%B0&f=false
Честно говоря, глубже я не копал. У меня есть программный код, который занимается алгоритмическими регрессиями, похожими на то, что в AIXI. Без перебора всех моделей, без Random Forest из моделей.
yadi.sk/d/v5sz_7BojpmguQ
Вроде рабочая версия. Текущая конструкция может плохо (в смысле долго) подбирать какие-нибудь конкретные законы — но тут вопрос в списке команд, которые в ней есть. Базис команд здесь алгоритмически полный. Многие закономерности подбираются довольно хорошо.

В вычислимом мире действительно тяжело показать разницу между аппроксимацией и формализацией. Давайте начну с разницы между невычислимой Solomonoff's theory of inductive inference и её хорошей аппроксимацией. Мы можем сделать аппроксимацию, которая при любом заданном «е» будет отличаться меньше, чем на «е». То есть фактически мы не сможем разницу измерить. Значит ли это, что эта аппроксимация индукции Соломонова равна самой индукции? Полагаю очевидным, что нет.
— полагаю этот вопрос глубоко теоретическим =) На практике мы можем использовать не все возможные модели-гипотезы, а лишь несколько с наибольшим весом. Качество принятия решений будет похуже, но мы можем в зависимости от цены ошибки принимать в расчёт больше или меньше гипотез. Ну и я не думаю, что человек крутит в мозгу полноценный AIXI — в лучшем случае его аппроксимацию.
Если же вы о том, что у нас есть формула AIXI, но нет возможности её вычислить, кроме аппроксимации — да, у нас есть невычислимые формулы. Пожалуй, эту логику можно распространить на законы природы — мы знаем закон всемирного тяготения с той точностью, с которой мы знаем гравитационную постоянную. А гравитационную постоянную мы получили из эксперимента, потому её результат — приближение (как и при практическом применении AIXI). Ну и у закона всемирного тяготения есть «исключения», которые описаны в ОТО, поэтому он очень похож на аппроксимацию — у которой ещё и граница применимости была долгое время неизвестна.
А ничего, что законы ньютона/кеплера это тоже апроксимация, сделанная мясной нейросетью? Вся деятельность человека есть результат работы нейросети. Логика это, алгоритмы или шизофрения — не важно.
Вся деятельность человека есть результат работы нейросети. Логика это, алгоритмы или шизофрения — не важно.

Существенно отличие в том, что результат работы мышления человека — это результат работы экспертной системы, а не нейросети.
Нейросеть же в человеке выступает лишь как генератор экспертной системы, но сама решения не выдает.

А кто выдает? Где оно находится? На чем работает?
А кто выдает?

Я же сказал — экспертная система. Результат действия нейросети человека — это не решение задачи, это экспертная система, которая уже затем и используется для решения задачи.
Именно по-этому, если вы у шахматиста спросите "а почему ты тут так походил?" то он вам объяснит, почему, а не скажет: "ну просто так нейроны сработали".

Я не считаю принципиальным, что нейросеть выдает формулу вместо числа. Два других вопроса вы стратегически проигнорировали?
Два других вопроса вы стратегически проигнорировали?

Я ответил.


Я не считаю принципиальным, что нейросеть выдает формулу вместо числа.

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

похожая картина тоже будет оценена хорошо

Когда другой человек рисует похожую картину, он обычно не получает такую же оценку, как и оригинал. Ну да, скопировал стиль, молодец. Это не считается очень ценным. С чего бы такое же действие со стороны ИИ стало бы цениться?


будет разделять контекст.

Один написал картину в концлагере (и умудрился сохранить), другой написал похожую спустя 50 лет у себя дома. Считаете, они разделяют общий контекст? Вы не путаете значение слова "контекст"?

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

Но это не оценка картины, а оценка процесса ее написания, то есть это другое направление искусства — перформанс, а не живопись. У нейросети самого процесса вообще как бы и нет — так что тут просто нечего оценивать. И говорить можно только о самой картине и ее контексте.


Один написал картину в концлагере (и умудрился сохранить), другой написал похожую спустя 50 лет у себя дома. Считаете, они разделяют общий контекст?

Эм, не важно где и кем картина написана, это не входит в ее контекст. Я полагал мы о культурном контексте, т.к. речь об оценке картины.

Но это не оценка картины, а оценка процесса ее написания

Вы уверены, что зрители/критики это на 100% надёжно разделяют? Если нет, то реакция нейронов (и удовлетворение от картины) будут разными.


Эм, не важно где картина написана

Кому не важно, вам? Ваше право. Если вы сможете обосновать, что "где, когда, зачем" не важно искусствоведам, зрителям, покупателям, я с удовольствием выслушаю доводы.


Напишите точную репродукцию Моны Лизы, выставьте в музее. Вы уверены, что "реакция нейронов" зрителей будет такая же? Может быть они "должны" оценивать картину так же, но не будут. Если нейросеть будет делать искусство для белковых, а не для роботов, она должна это учитывать. Иначе просто не будут смотреть, не интересно.

Это все больше к вопросу о постановке ТЗ.
Вы уверены, что зрители/критики это на 100% надёжно разделяют?

Не важно, разделяют ли это зрители, важно, что это разделяем мы.


Кому не важно, вам?

Никому не важно, при оценке конкретно картины.


Напишите точную репродукцию Моны Лизы, выставьте в музее. Вы уверены, что "реакция нейронов" зрителей будет такая же?

Откуда они узнают, что это репродукция? Ниоткуда не узнают, с-но и реакция будет та же.

это разделяем мы

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


Никому не важно, при оценке конкретно картины.

Вы же понимаете, что такие утверждения опровергаются одним примером? Мне важно. Сейчас вы можете сказать, что я неправильно оцениваю картины и не так. Но мы обсуждаем не так, как якобы должно быть, а так, как есть.


Откуда они узнают, что это репродукция

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

Мы — это кто?

Условные "мы", кто делает эту сеть.


Я, например, не разделяю.

Разделяете, почему нет?


Мне важно, где, когда и зачем была написана картина.

Но не при оценке картины. При оценке картины это вам не важно.


Вы же понимаете, что такие утверждения опровергаются одним примером?

Так таких примеров нет, по определению. Ни одного.


Мне важно. Сейчас вы можете сказать, что я неправильно оцениваю картины и не так.

Это вообще не оценка картины.


Но мы обсуждаем не так, как якобы должно быть, а так, как есть.

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


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

Но это не контекст картины. Это контекст процесса ее написания. Контекст картины — это контекст культурный, он никак не связан с авторством и процессом написания картины.

При оценке картины это вам не важно.

Я ожидал довода в стиле "вы неправильно оцениваете картину". Довода в стиле "сейчас я вам расскажу, как вы оцениваете картину" не ожидал.


Это опускает уровень дискуссии ниже плинтуса, от вас, честно говоря, не ожидал. Вы готовы строить фальшивую модель собеседника (и уверены, что он ей соответствует), что бы всё вписывалось в желаемую картину мира?

Вы готовы строить фальшивую модель собеседника

Я не строю модель собеседника тут. Я говорю о том, что то, что вы подразумеваете под оценкой картины — не является оценкой картины.

Ваше право иметь такое мнение. Если вы считаете, что это факт, приведите обоснование.

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

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

Ну это не верный тезис. Они нужны не для создания, а для распознания концептуального искусства. И вообще там сама картина особой ценности не представляет. Ну то есть, это не вопрос из мира живописи.

Распознавать концептуальное искусство можно только в том случае, если оно там есть. Если при создании не использовать, что вы собрались распознавать?


Ну то есть, это не вопрос из мира живописи.

Приходится в очередной раз использовать заезженный пример с черным квадратом. Это вопрос именно из мира живописи. При этом это концепция в чистом виде, самой картины считай нет. Номер 5 Поллока или No 1 Ротко — тоже яркие примеры.


Но и Моне и Кунинг и Пикассо на 80% состоят именно из идей, которые стоят (или видятся) за ними. Как набор пикселей они значат не так много. Тысячи их последователей продаются по цене краски.


Нейросети, которые рисуют как выпускник художки уже есть. В этом есть определенная ценность. Но это как раз не из мира живописи, это из мира утилитарной красоты. Это может быть кому-то полезно, но пока ещё не искусство.


И ради интереса — какие картины на ваш взгляд представляют ценность и почему?

При этом это концепция в чистом виде, самой картины считай нет.
Именно об этом я и говорю. В нормальной живписи картина это продукт. В концептуальном искусстве это средство выразительности (считай, как краска для художника), если вообще не инструмент (считай, кисть).
И ради интереса — какие картины на ваш взгляд представляют ценность и почему?
Лично для меня ни какие — я не ценитель (в смысле, живописи, как искусства. рисунок и композицию я могу оценить). Но жизнь с художницей академисткой дала, скажем так, определенный взгляд. А еще мне нравится, как этот вопрос затронут в мемуарах Фейнмана.
Картины ценны контекстом.

Не все, всё-таки. Кое-какие интересны и сам по себе. Те, где краску на холст вёдрами плескают — те, конечно, да. Произведения контекстуального искусства, можно сказать.

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

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


Отсюда следует: или 1) в мозг встроен какой-то оракул неизвестной природы или 2) люди не могут решить проблему останова в общем случае, что в общем-то неудивительно, так как люди не масштабируются на решение задач произвольной сложности. Решите проблему останова для произвольной программы длиной 10^80 символов.

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

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

План доказательства из википедии. Пусть halts(f) тотальная вычислимая функция, возвращающая true, если вычислимая функция f завершается и false в противном случае. Рассмотрим функцию g


def g():
    if halts(g):
        loop_forever()

Если halts(g) возвращает true, то g зацикливается, false — не зацикливается. Получаем противоречие: halts(f) или не всегда возвращает правильный результат или не тотальна.


Единственный способ обойти это — если функция halts(g) невычислима, тогда ей нельзя передать её саму как аргумент.

Только сегодня узнал что ИИ уже 70 лет…
Проблема одна — нехватка алгоритмов для обучения. Их надо делать, а потом уже ИИ развивать
А мне кажется что все элементы мозаики у нас уже есть, нужно только собрать ее правильно, потом останется только это все оптимизировать.
А ну да — нужно гораздо более мощное и дешевое железо чтобы ИИ стал коммерчески выгоден.
Для машины последовательная оптимизация возможна. Для ИИ приближенного к человеческому мозгу это равносильно жесткому переобучению. А там где ходит человеческий разум, ходит и человеческая психика со всеми её расстройствами.
Лучшим вариантом будет постепенное обучение сродни воспитанию ребенка и развитием его отдельных характеристик.
UFO just landed and posted this here
UFO just landed and posted this here
Просто в один миг выпускаются сотни неточных пуль…
Там всё-таки важно, чтобы это произошло не очень далеко от самолёта. Взорвать ракету на расстоянии километра от самолёта можно, но там уже нужно будет ядерную бомбу взрывать, чтобы что-то поразить… для МБР, впрочем, так и делают.
Как, массовый ИИ, решит проблему профессионального обучения без обратной связи с учителем?
Какие модели знаний он посчитает правильными?
и.т.д и.т.п.
«Как, массовый ИИ, решит проблему профессионального обучения без обратной связи с учителем? „
Это не всегда нужно. “Обучение с учителем» — вполне себе самодостаточная задача для ИИ. И она не обязательно опирается на человеческие знания. Разметка датасета не считается, под «человеческими знаниями» подразумеваются особенности модели, например, то, вносил ли кто-нибудь руками, что при поиске на фотографии кошки надо искать треугольные уши. Или руками это правило никто не вносил, а ИИ его вывел сам исключительно из примеров.

Есть ещё reinforcement learning. Не очень удачное название, но ладно. Суть в том, что оператор ИИ задаёт ему цель, и ИИ этой цели достигает. Оператор говорит что-то вроде: «вот эта вот циферка должна быть как можно больше, у тебя месяц времени, действуй». А «эта циферка» — это деньги на счету компании. Или количество продаж. Или какая-то ещё важная бизнес-метрика.
Это тоже не задание человеческих знаний. ИИ — это инструмент решения задач. Бизнес-метрика, которую надо оптимизировать или размеченный датасет — это постановка задачи, а не «знание предметной области».

«Какие модели знаний он посчитает правильными?» — самый простой ответ — он переберёт все возможные модели и возьмёт те, которые дадут лучшее значение метрики. Метрика — это точность модели, например. Или среднеквадратическое отклонение прогноза от факта. Этот ответ непрактичен, так как все модели перебирать долго — но есть умные способы, при котором мы перебираем не случайно, а экономно — например, эволюция…
самый простой ответ — он переберёт все возможные модели и возьмёт те, которые дадут лучшее значение метрики.

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

Ну а если брать что-то более простое — можно рандомно перебирать архитектуры, доступные в TensorFlow, пока не получится хорошее качество. Тоже долго, но не настолько.

Оператор — это в первую очередь программист. Во вторую — владелец бизнеса, который купил данный ИИ. В третью — сисадмин, который этому владельцу подчиняется.
Один пример, выбивающийся из тысячи статических датасетов может стоить их всех. :)
Да, такое бывает. Но опыт показывает, что тут и человек, скорее всего, ошибётся. Если данные хоть немного оторваны от повседневного опыта, начинают массово возникать ситуации, когда люди сидят, отлаживают этот тупой ИИ с его странными прогнозами, а потом всё происходит именно так, как спрогнозировал ИИ.
Это не домыслы, это я в работе регулярно видел)
Is it regret for the failure of expert systems? The brain does not work with human knowledge. Human knowledge is the result of the work of the brain.

Here the chicken and the egg are switched.

Sorry for english. Hasn`t russian locale on that machine.
Нынешние системы компьютерного зрения и reinforcement learning тоже, как ни странно, основаны на человеческих знаниях. В меньшей мере, но основаны.
Например, свёрточная нейросеть использует 2-мерные свёртки. То есть разработчик априорно задаёт, что вот этот вот поток бит — это именно картинка. Что у неё есть 2-мерная локальность, текстуры, иерархия признаков. Например, если бы мы подали MNIST на нейронку для анализа текстов и попытались бы её обучить — вышло бы намного хуже.
То есть разработчик априорно задаёт модель данных. Архитектура нейросети повышает вероятность обнаружения одних зависимостей и понижает вероятность обнаружения других. А некоторые зависимости вообще невозможно отобразить в рамках конкретной модели — например, однонаправленная свёрточная нейронка не сможет делать хорошие выводы из последовательностей картинок.
ИИ для Атари принимает на вход свёрточной нейронки 4 последних кадра. Это намного лучше, чем то, что было раньше. Но эти 4 кадра — это произвол, как и то, что выбрана именно свёрточная архитектура сети.
Идеально универсальный ИИ (то есть идеально соответствующий концепции грубой силы и отсутствия человеческих знаний) получал бы на вход одномерный массив яркостей пикселей, а то и одномерный массив битов. Один кадр — один бинарный массив. И никакого явного указания на то, сколько последних кадров использовать для принятия решений. Ну и реворды подавать, как подавались раньше — просто одномерный float каждый кадр.
Такую модель сейчас сделать можно, но она непрактична, так как очень долго обучается. И насколько эффективно будет использовать данные (сколько надо кадров, чтобы хорошо обучиться) — это большой вопрос.

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

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

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

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

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

Возможно, что в тот момент, когда будет создано первое сознание — никто не сможет толком и понять, как оно вообще работает. На входе будет ещё понятная конструкция, а то во что это выльется в процессе обучение — возможно никто понять не сможет, но оно будет работать.
Создание нейросетей и их совершенстование это машинная эволюция, т.к ресурсы железа всё-таки крайне сильно ограничены, по сравнению с ресурсами нашего мозга.
На логарифмической шкале расстояние не так велико. Собственно та самая Сингулярность, «о которой так много говорят большевики» — это момент времени, когда компьютеры станут мощнее человеческого мозга. Поскольку что такое «мощность компьютера» — мы знаем, а что такое «мощность мозга» — нет, то точной даты назвать невозможно… но примерные оценки говорят, что эта точка будет достигнута между 2030м и 2040м годами… не так и далеко, на самом деле.

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

До естественных форм, навроде настоящего понимания игры в шахматы надо ещё дойти и путь этот не близкий.
А что такое «настоящее понимание»? Вот вроде как Alpha Zero побеждает Stockfish играя в «человеческие», позиционные шахматы… понимание есть или ещё нет?

На входе будет ещё понятная конструкция, а то во что это выльется в процессе обучение — возможно никто понять не сможет, но оно будет работать.
Ужас в том, что сознания ещё нет — а как «оно» работает уже никто не знает…
«Ужас в том, что сознания ещё нет — а как «оно» работает уже никто не знает…»
Человек придумал, как преодолевать гравитацию ещё задолго до того, как он её понял и объяснил.
Что то давно не встречал использование чего-то отличного он машинного обучения на нейросетках (ну изредка деревья принятия решения обучают).
Зачем ругать то, чем ни кто уже не занимается?
Область применения статических методов на сегодняшний день: картинки и звуки.
Да в этой области побеждает, в других безнадежно проигрывает. Внезапно, там где много данных выигрывают статические методы. Да неужто? Спасибо, кэп!

Давайте, он победит меня в соревновании определи по температуре больной ли человек или нет. if(35>t>36,5) isIll=true;! Я закончил! А вы еще ищете датасет с больными и температурными? Продолжайте!
Я закончил!
Вот только закончили вы неправильно — у вас там результат всегда false. Для такого результата действительно нейросетей не нужно.
Можете попробовать угадать, какая именно комбинация генов ведёт к раку, а какие — нет.
Или о чём примерно говорится в тексте — если надо так анализировать по 100 текстов каждые 10 секунд.
Или куда надо инвестировать, чтобы получить больше всего денег.
Или насколько эффективным будет лечение А от болезни Б, если никто раньше такого опыта не ставил, но ставил другие опыты.
Или насколько вероятно, что Вася Пупкин вернёт кредит.
Или какую цену надо выставить на свой товар, чтобы получить больше всего профита.

Эти все вопросы можно решать с помощью ML — и эти решения будут либо дешевле, либо эффективнее ручных
Давайте, он победит меня в соревновании определи по температуре больной ли человек или нет. if(35>t>36,5) isIll=true;! Я закончил! А вы еще ищете датасет с больными и температурными? Продолжайте!


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

Поэтому, как раз системы машинного обучения скорее всего смогут выдавать намного более точные прогнозы для конкретной страны/города/больницы, чем вы со своим наивным алгоритмом.
Все это прекрасно, но на входе только температура. Других параметров нет. И это прекрасно, что точная граница 35,6241 но учитыывая, что температура меряется ртутным градусником у людей разного пола, расы и возраста и в разных местах ваша точность весьма неуместна)))
У большинства врачей, которые я посещал, уже давно электрические термометры, чтобы банально не ждать результата 5 минут. Я понимаю, что вы хотели дать пример вида «бесмысленно искать ответ, сколько будет 2+2 с помощью нейросети», но в реальности дали задачу, которую машинное обучение может решить лучше человека.

Электронный не значит более точный и дающий более достоверные данные, более того есть люди с нормальной температурой в 35.5 и с 37 (для способа измерения привычного для России).
А "градусник" нужен для выявления "явных" отклонений (38+) или для случая знакомых со своей статистикой пациентов.

Чтоб решить эту задачу с помощью нейросетей вам надо найти дорогого специалиста по ИИ, найти датасет(температура->здоров/нет)+присобачить библиотечку с нейросеткой, потрахаться, чтоб ее натравить на датасет, отрегулировать результат.
Чтоб решить ее моим способом Вам нужно нажать f12 и написать строчку кода в консоли. Решать проблемы нужно быстро и качественно тем инструментом, который подходит, а не тот который хайповый.
Это просто потому, что эта задача на самом деле уже решена метанейросетью, которая несколько поколений проработала на мясных нейрочипах (таких, как вы). И вот теперь вы весь такой из себя гордый преподносите под видом решения просто печать ответа.

А что в этом плохого? Мясная нейросеть для конкретной задачи и конкретного множества входных данных за свои поколения выработала конкретный быстрый метод. Искусственные, в идеале, должны стремиться к тому же — "покумекав" над задачей, выдавать эффективный метод решения, желательно ещё с оценкой границ применимости.

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

Нет. Но если можно вам, то можно и электрическим чипам.

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

Но даже если вы таки поставите ей эту задачу, она справится быстрее, чем потребовалось мясным чипом на решение с теми же исходными данными.
UFO just landed and posted this here
Вы не запутались?))) А еще я знаю ответ, где кошечка, где собачка на фото, отличать женщину от мужчины и многое другое, но вот написать программу в одну строчку, которая делает тоже самое уже не могу. Это дело для нейросеток.

А вот определять болен ли человек по температуре, написать программу могу.

И поэтому я говорю, что есть дело для обычных программ и есть дело для нейросеток. И правильно применять, то что правильно применять. А не тупо везде ИИ.
… и это будет глубоко неверный алгоритм. Просто потому, что у маленьких детей температура 36.9-37 является вполне нормальной. А Вы своим алгоритмом их всех залечите нафиг!
:)
Как вы думаете сложно ли починить мой алгоритм. Поправить цифру? А представьте это нейронная сетка, коя обучалась на взрослом датасете))) Каково чинить ее?
Это потому что ответ вы уже знаете (он получен с помощью статистических методов от миллионов исследователей), а вот попробуйте тем же способом решить здорова или больна особь совершенно произвольного вида (о котором у вас нет данных).
Допустим, дельфин.
Гугл грит, что темпереатура дельфина равна человеческой и неравенство сохраняется. 30 секунд делов.

Теперь ваш выход с нейросеткой. Нагуглите мне, плиз, датасет на температуру больных и здоровых дельфинов на 1000 измерений хотя бы.
.
о котором у вас нет данных
Гугл грит, что
Вы читать не умеете или дурак?
У нас дебильно-тупая практическая задача определить болеет ли человек по температуре. Которую решит десятилетка на уроке информатики, где массивы еще кучами называют.

А вы ударились в высоколобие и начали допускать, а вдруг мы не знаем какая температура у здорового человека, но у этого дебила, который не знает про 36,5 есть спец по ИИ, линух с питоном, датасет с температурами и дохера свободного времени)))

Да как вы девственности лишились с таким подходом, а то пойди до сих пор ищете датасет, где указаны координаты нужного отверстия на теле самок?
Ахаха, ну конечно. На самом деле это вы просто пытаетесь пристроить микроскоп к уже забитому гвоздю. А потому удивляетесь, что че-то не так. Точнее, пытаетесь заставить окружающих удивляться.
кошечки vs собачки тоже давно забитый гвоздь, ан нет присобачивают свой микроскоп и радуются))
Чтобы их различать, вам приходится несколько лет тренировать свою мясную нейросеть. И она все равно иногда сбоит.
А вы ударились в высоколобие и начали допускать, а вдруг мы не знаем какая температура у здорового человека, но у этого дебила, который не знает про 36,5

У меня вот 36.7+ постоянно, с детства. Ваш алгоритм — говно.

Совсем не разделяю той горечи, с которой автор пишет о том, что у машины лучше получается находить алгоритм решения задачи самостоятельно, вместо того, чтобы тупо следовать несовершенным человеческим инструкциям. Причём, эту самостоятельность он называет «грубой силой». А я бы назвал это мышлением.
Тут другая горечь. О несовершенстве человеческих инструкций.
Машинный перевод при подходе смысл-текст проигрывает нейронному. Многолетние разработки автора подхода не увенчались успехом. По аналогичной причине тормозит софт, разрабатываемый компании ABBY, они пытаются найти смысл в текстах.
Хочу напомнить всем об известном факте, что «история развивается по спирали».
И заодно напомню некоторые известные исторические факты:
— полеты самолетов и вертолетов смогли реализовать только тогда, когда появились легкие и прочные материалы (алюминий) и достаточно компактные и мощные моторые; но сами такие идеи и попытки появились намного раньше
— подводные лодки смогли сделать тоже далеко не сразу, как появились идеи
— парашют… Тоже далеко не сразу :)
— … ну и так далее, можете сами добавить, кому что интересно
Тот же самый Леонародо да Винчи, например, выдвинул множество идей, для реализации которых не было технологических возможностей.

Я это к тому говорю, что пусть сейчас и пошли по пути использования «поиска и обучения». Но надо помнить также и про «переход количества в качество» (что в ряде случаев и приводит к «развитию по спирали»). В данном случае, я думаю, как раз развитие вычислительных мощностей приведет в итоге к возможности реализации тех самых алгоритмов, от которых сейчас, якобы, отказались.
</философский_режим>
Интересно.
А если применять ИИ для расшифровки и декомпилировки входящих данных от человека, переводя все данные в машинный язык, который будет запускать работу простых вычислений, а потом всё это переводить в человеческий?
В любом случае, нам же важно, чтобы машина понимала нас и делала то, что от неё требуется. Поэтому ИИ должен быть фильтром между техникой и человеком, но при этом быть отдельным от основной машины, внося в неё только понятные ей задачи. ИИ понимающий человека — круто. ИИ, думающий как человек, это уже что-то в разделе эгоизма и чувства собственного достоинства, на мой взгляд.
А можно теперь это на человеческом языке?
У тебя, возможно, просто не хватает вычислительных мощностей для понимания сего ответа :))))))))))))))))
Отделить исполнительную и законодательную власти :)
Сделать из ИИ только средство ввода и вывода информации, оставив всю логику вычислений обычной машине.
Искусственный интеллект полностью имитирующий человеческий мозг и его видение воспринимается больше как игрушка, созданная по прихоти, а не как необходимый инструмент.
Вы о том, чтобы сделать ИИ, который понимает естественный/околоестественный язык и делает программный код под него?
Обычно поставить задачу для ИИ — не проблема. Постановка задачи — это либо датасет (если задача — обучение с учителем), либо тестовая среда и сигнал подкрепления (если у нас reinforcement learning). Проблемы начинаются, если задача поставлена недостаточно точно. Например, мы сказали ИИ: оптимизируй конверсию в продажах! А ИИ взял и избавился от всех клиентов с низкой конверсией. И да, у нас огромная конверсия, но это не то, чего мы хотели (это я случай из жизни описываю).
Сделать ИИ, который при этом компилит сложный, но быстрый код — это сложно. Для начала — этот код тяжело тестировать. Человеческий программный код достаточно легко проверить, потому что у людей есть определённые шаблоны мышления… А если нейронка будет писать, скажем, калькулятор, то нет никаких гарантий, что она не сделает, что всё идеально, но только 5+3 = 100500, а в остальных случаях всё ок. Для человека такая ошибка невероятна, а для ИИ — запросто. Есть способы с этим бороться, но всё же это некоторая проблема
Немного не понятен пример с конверсией — что не так? Выглядит, что ИИ нашел кластеры клиентов, на которые не стоит тратить рекламный бюджет, вроде неплохо.
Я так понимаю, что речь идет о том, что данный ИИ был так создан, что не учитывает все нюансы. Например, какой-то «кластер клиентов» может не приносить дохода, но может быть важен с имиджевой точки зрения. Или по политическим соображениям. И то, и другое может увеличивать доходы компании, но не напрямую, а опосредованно.
Вопрос в том, что в ИИ это могли не заложить :)
Напоминает корпоративный мир, «а давайте не скажем новичку про важные нюансы, пусть попрыгает — а мы посмеемся»
Конверсия — это доля клиентов, которые сделали покупку среди тех, кто посмотрели на товар. Фишка в том, что конверсия по факту никому нафиг не нужна — это удобная бизнес-метрика, но по факту всем интересно только абсолютное число продаж. А конверсия скоррелирована с числом продаж, и у всех уже сложился стереотип, что рост конверсии=рост продаж. А ИИ разорвал эту корреляцию

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

Да, мой пример — это проблема постановки задачи. Это типичная проблема для ИИ, который может решать задачи неожиданным путём, и который отталкивается только от конечного результата.

Задача была в том, чтобы продать побольше. То есть это была подразумеваемая задача. А заявленная — сделать побольше конверсию. Потому что конверсия — это такая удобная штука от 0 до 100%, ей легко сравнивать, легко понимать. А продажи — это что-то сложное, в одном магазине их сотни, в другом десятки, это плохо масштабируется. Конверсия равна покупки делить на просмотры. Чтобы сделать больше дробь, оказывается, можно было уменьшать знаменатель.

Вообще, настоящая целевая функция — это побольше бабла в течение следующих 10-50 лет, плюс поравномернее его распределить во времени. Но эту цель тоже никто явно не называет, а остальные цели лишь коррелируют с ней =) Так, в какой-то момент ИИ в целях оптимизации продаж (я сменил целевую функцию) каким-то образом сделал, что люди чаще стали покупать товары по скидке. При том, что напрямую влиять на скидку он не мог, и на намерения людей вроде как тоже. Продаж стало больше — но в убыток
У человека тоже может быть перекос в сторону дивергентного или конвергентного типа мышления. Да что там — у абсолютного большинства людей именно так и есть. Если ты молоток, то любая задача превращается в забивание гвоздей, и это уже не вопрос постановки задачи как таковой.
Думаю, для дейта-сайентистов сейчас не менее важно заниматься своим собственным мышлением, чтобы не подменять критическое логическим. Тогда будут правильные постановки задачи для ИИ. Может, это и есть реальный путь для развития технологии, чтобы дополнить грубую силу.
Правильная постановка задачи для ИИ рождается из умения чётко оценивать свои приоритеты. То есть уметь решать что-то типа задачи вагонетки
ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D0%B0_%D0%B2%D0%B0%D0%B3%D0%BE%D0%BD%D0%B5%D1%82%D0%BA%D0%B8
предельно подробно и для огромного числа случаев.
Понимать, что более важно, что менее важно. Насколько один фактор важнее другого. В каких условиях менее важный фактор становится более важным.
Во всяком случае, я наблюдал примерно это.
Ну и практика. Когда раз так 10-20 получишь сумасшедший ИИ, который делает за час 10-кратную прибыль (потому что никто ему не запретил брать огромные кредиты), либо который по окончании горизонта планирования заливает город токсичными отходами (потому что после нас хоть потоп, мы думаем на 20 тактов, а не на 21), либо который идеально точно делает один выстрел из всех необходимых (потому что функция полезности равна 1/дистанцию промаха, и устремляется в бесконечность при хотя бы одном точном попадании), или выставляет эволюционному алгоритму огромное число итераций и вешает комп (потому что никто не сказал, что так нельзя). Хорошо, что большинство этих проблем целеполагания вылезает в тестовых средах =)
В общем, надо представлять, что задачу будет выполнять злобный джинн, который сделает всё согласно букве закона, но то, что в ТЗ не прописано, он сделает максимально неприятным образом)

Подозреваю, что первые варианты ИИ условно общего назначения (приберись, подай/принеси и т.п.) будут сильно перекошены в сторону exploitation в ущерб exploration (в том числе и для безопасности). И скорее всего будут иметь слишком рудиментарные алгоритмы планирования для создания опасных последовательностей из набора доступных им действий. Что, скорее всего, ухудшит ситуацию в области исследований безопасности ИИ.


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

Да, это разумно. Exploration иногда вытворяет крайне разрушительные вещи (а что, если эту величину выставить в 0? Ой, у нас центральный сервер повис, вся система управления сдохла. Какаааая незадача, в другой раз буду умнее).
Можно вообще обучение допускать только на серверах разработчика — а в проде будет готовая нейронка, но без возможности учиться. Хотя, возможно, собирающая статистику и отправляющая на те самые сервера, чтобы можно было дообучиться, если разработчик позволит.
Хорошо что у этого ИИ не было доступа к ядерной кнопке :)
Почти.
Искусственному Интеллекту достаточно просто понимать и раздавать инструкции глубже по иерархии.
В моём видении ИИ — устройство ввода и вывода информации, если грубо говорить. Комплексная система, оснащённая сенсорами и датчиками достаточными чтобы понимать на звук и на вид человеческую команду, умеющая интерпретировать входящие данные так же, как и человек или хотя бы приблизительно так же, умеющая отвечать обратно достаточно четко и правдоподобно, чтобы сторона отдающая команды, могла воспринимать ответы.
После ИИ идёт блок-схема ИНС (искусственных нейронных сетей). Это пролине между машиной и ИИ, которое ввиду своей самообучаемости выбирает оптимальный метод компилирования финального продукта при этом посылая обратно ИИ уточняющие запросы.
И вслед за ИНС идёт сама машина умеющая создавать рабочий код и работающая на методе «грубой силы».

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

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

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

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

Вообще, есть фундаментальная математика под ИИ, который достигатель целей:
ru.wikipedia.org/wiki/Q-%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5
Q-Learning — это самая простая форма постановки цели для ИИ, её можно почти в лоб программировать, и она будет работать. С ограничениями, конечно.
Вот другая формулировка:
en.wikipedia.org/wiki/AIXI
Она чуть больше про реализацию. Если её более-менее в лоб запрограммировать, то она тоже будет работать, но она очень ресурсозатратная.
Для того и нужна надсеть. Она может по выходу с подсетей (в том числе) определять тип контента и тд.
Спасибо! Пойду почитаю, поизучаю.
Интересный вопрос. Если отвлечься от отрасли ИИ, то для других отраслей аналогично: грубая сила даст лучшие результаты, чем попытка вложить допоолнительные знания? Но в учебниках приводится много примеров из разных отраслей, когда «лобовой» наивный алгоритм оказывается более трудоемким, как по теоретической оценке, так и на практике. Конечно м.б. сиуация, что мощная машина будет находить решение (в определенных пределах) полным перебором быстрее, чем менее мощная сокращенным.

Например, переход к блочной замене вместо точечного ремонта — пример из других отраслей.


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

У меня впринципе не укладывается в голове, как можно, не до конца понимая устройство и назначение человеческого организма, пытаться имитировать его функции. Ведь получится, в лучшем случае, «подделка».
С чего-то нужно начинать, верно? В ИИ, как и в нейросетях имитируются отдельные функции и действия, при этом имитируются достаточно эффективно. Для понимания логики не обязательно быть биологом или работать в медицине, хотя это от части и может положительно повлиять на конечный продукт.
Можно просто делать машину достижения целей. Как в Q-Learning. Для этого необязательно понимать, как эту задачу решают люди. Но будет не лишним)
Вот еще что хочу добавить к сказанному ранее.
Много лет назад, в конце 80-х, я общался с одним нашим учёным. Он был «широко известен в узких кругах», т.е. хорошо известен многим специалистам во всём мире, но мало известен «широкой общественности». Он был моим научным руководителем в дипломной работе. И вот он как-то высказал одну мысль, которая вполне перекликается с заявленной темой.
Речь шла о вычислениях в физике.
Наш, российский/советский подход сводился к математическому описанию процессов и попытках решить полученные уравнения. Следом, что вобщем-то вполне логично, подтягивались математики :) Это такие головастые люди, которые подходили более абстрактно к решению полученных уравнений.
В то время у американцев был более свободный доступ к компам. Напомню, персоналок, даже маломощных ИБМ 8086 у нас еще не было. Только многопользовательские машины.
И поэтому американцы при решении тех же уравнений пытались решать их на компах. Принципиальная разница между подходами в том, что при компьютерном моделировании любые данные могут быть заданы только дискретно, пусть и с малым шагом. И при этом, как правильно говорил упомянутый мной профессор, можно пропустить какие-то «граничные» явления. В то же время, аналитический подход (если уравнения вообще решаются) позволяют получить эти самые граничные явления.

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

Сравним это с тем, что написано в статье… И получим, что аналитический подход еще возьмёт своё :) Только дайте ему время. Но и «цифровой» ИИ тоже важен, естественно, т.к. даёт более быстрый результат.

PS. Как сейчас помню, делали лабы по программированию. Например, надо было найти точки пересечения какой-нибудь кривой линии (заданной формулой) с осью Х. Как ни крути, но решение можно было найти только с заранее заданной точностью. Допустим 10^-8. Или 10^-10. Но не абсолютно точно, в отличие от аналитического решения.
И получим, что аналитический подход еще возьмёт своё :) Только дайте ему время.
Вот только вполне может оказаться, что потребуется столько времени, что солнце успеет потухнуть.

К сожалению у аналитических методов есть большая беда: чем дальше в лес, тем меньше вещей, которые они вообще не могут решить. А численные методы дают какой-то ответ. Пусть плохой и неточный — но «что-то» таки лучше, чем «ничего».
«Пусть плохой и неточный — но «что-то» таки лучше, чем «ничего».» — на каком-то этапе это да, это лучше. Тут зависит от конечной задачи. Если просто что-то «урвать», то достаточно. Если же аналитика касатется серьёзных вещей (например, фундаментальных наук типа физики), то недостаточно будет.
Не знаю как прочие читатели, а у меня высшее образование непосредственно в ИИ, и нам еще лет 15 назад в институте говорили те же слова как свершившийся факт: системы основанные на знаниях (всякие базы знаний, экспертные системы и прочая подобная фигня) умерли, это тупиковая ветвь науки, а будущее — за алгоритмическими методами (нечеткая математика, нейросети, кластерный анализ и пр). Полностью согласен с автором статьи.

Так хочется скрестить ежа с ужом — есть ряд задач, для которых "правильное" решение уже известно, и от любых методов ИИ тут хотелось бы, чтобы они не изобретали велосипед, а просто пользовались уже имеющимся. А на "статистические" методы переходили только для задач "поди туда, не знаю куда, сделай то, не знаю что". Справедливости ради, задачи распознавания я отношу именно ко второму классу — потому что "Лорен" или "Йенни" или есть ли изображения людей на "Гернике" Пикассо?

Серьезно????
Тогда поясните как за эти 15 лет продвинулся вопрос
1.Теорема Чёрча — Тьюринга ru.wikipedia.org/wiki/Теорема Чёрча — Тьюринга
2.https://ru.wikipedia.org/wiki/Проблема разрешения
Системы Выбора решения или ВЫвода из случайных/не случайных посылок основанные на знаниях или основанные на алгоритмических методах = не исключают друг друга и будут оставаться равноценными

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

Тогда вопрос к сути статьи: Как можно безапеляционно заявлять о Безусловной победе одного принципиального подхода в информационой науке над другим, типа "… Слепой, сплошной перебор признаков рано или поздно выдаст правильный ответ, вопрос только в производительности средства, и мы его нашли. А направленный и усеченный перебор по примеру биологической когнитивной машины полностью бесполезен. Бионика в ИИ — не нужна..."" Как такое возможно Если основы информационной науки сами по себе аксиоматичны и темны?? Может надо просто до конца изучить и бионический подход и чисто информационный???
Как можно заявлять о безусловной победе Стандартной модели как средства описания вообще всей физики в целом над Ньютоновской или Гамильтоновской механикой? Вот так и можно: пришли Нильс Бор, Макс Планк и еще человек 20 всяких там Эйнштейнов и Гейзенбергов и всем все популярно объяснили (при том что половина всей квантовой физики до сих пор остается очень сильно теоретической, а ее основы — «аксиоматичны и темны», особенно если брать теорию струн). В XIX веке это было немыслимо, а в XX веке это уже свершившийся факт, и, собственно, статья написана именно про это. Вы, видимо, совсем не поняли ее смысл, советую прочитать оригинал, т.к. перевод действительно посредственный.
И откуда вы вообще взяли для сравнения эквивалентность физики ньютона с исчислением силлогизмов биологической системой и противопоставлением им простого машинного суммирования сигналов как эквивалента стандартной модели физического описания природы????? Не верно!!!
Это просто пример безапеляционной победы подхода. Как видите, заявлятьтакие вещи очень даже легко. Но и у вас там ошмбка, когда вы говорите о слепом сплошном переборе.
Какие опечатки? Вы серьезно думаете, что я за буквы к вам цепляюсь?
Почитайте вашу же ссылку на английском языке, это ответит на все ваши вопросы: en.wikipedia.org/wiki/Entscheidungsproblem. Принятие решений — уже давно чисто алгоритмическая задача и никто в ней (как и в прочих задачах) не использует подходы, основанные на знаниях.
Принятие решений — уже давно чисто алгоритмическая задача

Только алгоритмически неразрешимая, вот беда.

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

Ну вы не путайте задачи пока нерешенные и задачи неразрешимые.


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

Получение приближенного или вероятностного решения — это уже другая задача, вообще говоря.

Поправлю вас — моделирование принятия решений имеет две равноправные ветви нормативистскую и дескриптивную. Именно поэтому ПР несмотря на "… уже давно чисто алгоритмическая задача и никто в ней (как и в прочих задачах) не использует подходы, основанные на знаниях." не заменили человека /и в видимом времени не заменят / в управлении опасными производствами, управлении в бою, тушении пожара и т.п. Тут вы заблуждаетесь. Если найду предъявлю выводы НИР DARPA от 1997 года где задача выработки решения на атаку применительно к подводной лодке лучше решается комбинированной системой человек-экспертная система. И поэтому там выбор делают люди даже в 2019 году.

Articles

Change theme settings