Горький урок отрасли ИИ

Автор оригинала: Rich Sutton
  • Перевод
Об авторе. Ричард Саттон — профессор компьютерных наук в университете Альберты. Считается одним из основателей современных вычислительных методов обучения с подкреплением.

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

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

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

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

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

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

В компьютерном зрении аналогичная картина. Ранние методы рассматривали зрение как поиск границ объектов, обобщённых цилиндров или в терминах SIFT-признаков. Но сегодня всё это отброшено. Современные нейронные сети глубокого обучения используют только понятия свёртки и некоторых инвариантов, при этом работают намного лучше.

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

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

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

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

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

Комментарии 367

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

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

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


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

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

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

        Или на эту:

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

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

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


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

        первый махолет для человека
          0
          Есть ещё занятное ежегодное соревнование, в котором веротолёты/махолёты поднимаются в воздух исключительно благодаря мускульной силе человека, крутящего педали.
            +1
            Как это выглядит

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

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

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

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

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

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


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


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

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


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

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

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

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


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

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

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

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


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


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


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


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


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

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

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


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

                                  0

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


                                  Не озарение, а задачи, в которых метод можно было применить.… Просто в 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 лет?


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

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

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

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


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

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


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

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


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

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


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

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

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

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

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

                          +2

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

                            +2

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


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

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

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


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

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


                              image

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

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

                                  0

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

                                    0

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

                                      0

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

                                        0

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


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

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

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


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

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

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

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

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

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

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

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

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

                                                  0
                                                  Немного не в курсе таких алгоритмов. Можете сориентировать?
                                                  Например, можно поступить так
                                                  Пусть нужно сложить 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-значных чисел.
                                                    +1
                                                    Это не алгоритм, а железная реализация сложения N чисел. Допустим, у вас гидравлический компьютер, где число «кодируется» количеством воды в баке. Тогда вы складываете произвольное количество чисел, просто сливая сразу все N баков в один (по трубе от каждого, да). Очевидно, что время операции не зависит от N.

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

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

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


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

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


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


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

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

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


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

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

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

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

                                                        +1
                                                        Давайте посчитаем
                                                        Пусть есть полно-связная глубокая нейронная сеть. Для упрощения расчетов возьмем её участок шириной 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. Независимо от глубины.

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

                                                              0

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


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


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

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

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

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

                                                                  +1

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


                                                                  необходимо для каждого из 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. Просто для информации. Говорят, хорошо параллелится (у них просто ограничение по бюджету).

                                                                    +1

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


                                                                    • обучение — вычисление градиентов на больших данных, хорошо параллелится на много нод;
                                                                    • применение — нужно выжать максимум из одного процессора, здесь задействуется параллелизм на уровне вычисления выхода слоя, SIMD, TPU.
                                                                      +1
                                                                      Ну, говоря для «каждого», я не утверждал, что нужно использовать циклы. Собственно, есть 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. Иногда мне казалось, что я всё понимаю. Иногда — ничего не понимал. Наверное, настоящее понимание происходит тогда, когда появляются вопросы. Их я и озвучил.


                                                                      Основная мысль, которую я хотел бы донести до читателя статьи и всех верующих в силу глубоких нейронных сетей в деле построения сильного ИИ состоит в том, что ассимптотическая сложность расчетов нейронных сетей растет, минимум, квадратично и сильно обгоняет возможности роста современных процессоров и их ансамблей в виде кластеров. На существующих компьютерах построить сильный ИИ (взяв НС побольше, да кластер помощнее), боюсь, не удастся. Нужны принципиально иные технологии.
                                                                        0
                                                                        Я думал, что это очевидно: когда вам необходимо выполнить 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, ансамбли сетей и алгоритмы ускорения сходимости. Даже если обучить зрение стоит миллиард, а понимание культуры — ещё миллиард — какая разница? Это всего несколько раз на всю планету.

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

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


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

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

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


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

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


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


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

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


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

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

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


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

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


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

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


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

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


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

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


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


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


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

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

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

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


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


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

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

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

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


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


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

                                                                                    0

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


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


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

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

                                                                                      Конечно. Свёртки не очень хорошо представлятся через 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.

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

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

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

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


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

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

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

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

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

                                                              +1

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


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

                                                                0

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


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


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

                                                                  +1

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


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

                                                                    +1

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

                                                                0

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


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


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

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

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

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

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

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

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


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

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

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


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

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


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


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


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

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

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


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

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


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

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

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

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

                                                                      0

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


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


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


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

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

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


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

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

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

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


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

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

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

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


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

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

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

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


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


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


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


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

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

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

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


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

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


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

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

                                                                        +1

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


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

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

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

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

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

                                                                                    0
                                                                                    Это не ограничение, просто многие путают блок для нейронок и обычные модули GPGPU или небольшие блоки для параллельных вычислений
                                                                                      0
                                                                                      Visual Core — это «блок для нейронок» или «небольшой блок для параллельных вычислений»?
                                                                                        0
                                                                                        Как следует из названия «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.
                                                                                    0
                                                                                    Не совсем мобильный процессор, но TI в Sitara AM5749 добавил
                                                                                      0
                                                                                      Там DSP ядро, а не NPU, как в указанных выше случаях.
                                                                                        0
                                                                                        Могу ошибаться так как с ним не работал, но там дополнительно к 2м DSP ядрам добавили 2 блока «Deep learning accelerator». DSP ядра были и в предыдущих чипах линейки а NPU только добавили в 5749:

                                                                                        AM574x IDK- Highest performance evaluation with dedicated deep learning accelerators and 2x C66x DSPs.
                                                                                          0
                                                                                          Там ситуация какая. Действительно, согласно документу есть такой блок. Однако в даташите упоминания блока нет
                                                                                            0
                                                                                            TI его обозвала Embedded Vision Engine (EVE) TIDEP-01004
                                                                                0
                                                                                Для запуска уже обученных сетей такие мощности не нужны.

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

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

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


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

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


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

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


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

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

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

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

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

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

                                                                                          0

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


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

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

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

                                                                                              0

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


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


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

                                                                                                0
                                                                                                Наиболее радостно распознавать речь на устройстве, пожалуй, только владельцу устройства, чтобы распознаватель не зависел от связи с серверами-распознавателями. А статистику Гугл с Яндексом пусть набирают в те моменты, когда устройство выходит на связь с миром и передают в Гугл да Яндекс отчёты о том — что да как они распознали в их отсутствии.
                                                                                  0
                                                                                  А он не тот?
                                                                                +9

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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


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

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


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

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


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

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


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

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

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

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

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


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

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


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

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


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


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


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

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

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


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

                                                                                                    Что именно?


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

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


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

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


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

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


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

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

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

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


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


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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

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


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

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


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

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

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

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

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

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


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

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


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

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


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

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

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

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

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


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

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


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

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


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

                                                                                                                                        0
                                                                                                                                        Ну ок. You've got a point there.
                                                                                                  0
                                                                                                  Ага. Математика — это совершенно ненаучно.
                                                                                                    0

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

                                                                                                0

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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


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

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


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

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

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

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

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

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

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


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

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


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

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


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

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


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

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

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

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

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

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

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

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

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

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

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