Нейросети vs алгоритмы |
||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2023-06-29 12:30 (многобукв, немного матана, абстрактные рассуждения за футуризм, в общем, на любителя) Недавно один товарищ укорил меня, что я ничего не понимаю в нейросетевых алгоритмах, а посему не могу оценить важность этого направления в современном мире. Что же, укор понятный. Противников нейронок в современном дискурсе принято представлять как недалёких луддитов и смешных мракобесов. Так что сразу скажу – ничего против нейронных сетей, что биологических, что искусственных не имею. Это очень полезный инструмент в определённых и довольно широких нишах. Однако моё, сугубо личное мнение, состоит в том, что при нынешнем подходе эта технология заводит нас в технологический и интеллектуальный тупик, выбираться откуда придётся долго и тяжело. Как это работает Сначала немного скушной теории. Если отбросить пиаровскую шелуху, то современный «искусственный интеллект» – это коммерческое название нейронных сетей. А если отбросить ещё один слой, то нейронная сеть – это просто операция тензорного умножения. Тензор (да простят меня сейчас господа математики за такое упрощение) – это трёхмерная матрица. Обычная матрица – табличка из цифр с вертикальными и горизонтальными рядами, а тензор – пачка из таких табличек, то есть, добавилось ещё одно измерение. В каждой клеточке записаны т.н. «веса матрицы» – просто коэффициенты, нужные для расчёта. Итак, когда вы задаёте какой-то запрос нейронке (это может быть словесный запрос, или картинка, или аудиоряд, или ещё какие данные), то он кодируется в числовой вектор. Этот входящий вектор умножается на тензор и получается выходной вектор. Выходной вектор снова переводится в удобную форму – и вы видите картинку, фразу или какие-то иные результаты, которые сгенерировала нейронка. При этом могут добавляться тормозящие и запоминающие нейроны, многочисленные фильтры, часть финальных данных опять подаётся на вход, вводятся свёрточные и реккурентные слои и т.д. Строятся разные сложные архитектуры, но все они просто модификации одного и того же простого принципа – тензорного умножения. Это и есть прямой ход нейронки, который видят пользователи. Но самая-то главная задача – это как её обучить, откуда взять нужные коэффициенты, чтобы на выходе было что-то полезное, а не бессмысленный набор цифр? И вот тут всё решает один-единственный алгоритм, который называется «метод обратного распространения ошибки». Принцип такой: сравнивают то, что должно быть на выходе и то, что получилось фактически, и эту ошибку шаг за шагом прогоняют через все слои тензора, каждый раз немного меняя веса. И так итерация за итерацией до тех пор, пока финальное расхождение не станет приемлемым. Поэтому для обучения сети нужна обучающая выборка (чем больше, тем лучше), и огромные вычислительные мощности – способ, к сожалению, чудовищно ресурсоёмкий. Именно на этом методе и работают все современные нейронки. Впервые весь нужный для работы матаппарат описал в 1974 году профессор МФТИ Александр Галушкин, а в 1986 году метод усовершенствовали Барцев и Охонин (Красноярская группа). Так что да, искусственный интеллект, как и почти всё в этом мире, тоже придумали русские :) (Как уже наверняка догадался уважаемый читатель, открытия советских учёных никак не были ни защищены, ни запатентованы и во всех западных книжках и словарях приводятся в основном имена американских специалистов, которые открыли то же самое чутка позже, но, конечно же, «совершенно независимо». Впрочем, речь сейчас не о том). Нейронный молоток Вся нужная математика была разработана ещё в 80е – 90е, однако, расцвет нейронок начался только с 2010х годов. Причин две – во-первых, благодаря интернету были накоплены гигантские объёмы исходных данных, которые нужны для обучения (та самая Биг Дата и методы её обработки). Во-вторых, прокачались вычислительные мощности, появились специализированные графические процессоры, которые способны проводить операции над тензорами с огромными скоростями. В итоге стало возможным обучать по-настоящему сложные сети и добиваться впечатляющих результатов. Больше всего преуспели в таких направлениях, как обработка видеоряда и изображений, обработка аудио, обработка текста (включая генерацию), выявление сложных закономерностей в числовых массивах. Дальше пошло по известном принципу – человек с молотком в руке на любую проблему смотрит как на гвоздь. Нейронки стали прикручивать ко всему, что только можно, от финтеха до управления спутниками. Так чем же, собственно, это плохо? А вот чем. Путь в «нетуда» Вторая половина XX века была периодом взрывного расцвета алгоритмического мышления. Этот период подарил человечеству такие фундаментальные труды, как «Теорию игр и экономическое поведение» фон Неймана, «Кибернетику» Винера, трёхтомное «Искусство программирования» Кнута. Ну и огромную массу научной фантастики с полезными и вредными киберами и покорением планет. Были освоены и развиты сложные алгоритмы, каждый из которых дал целое направление в науке и технике, радикально поменял общество и нашу жизнь. Например, алгоритм быстрого преобразования Фурье – это вся радиотехника, телеметрия, радары, волновая оптика, физическое моделирование. Алгоритм Дейкстры – это поиск кратчайших путей в сетях сложной топологии – интернет, мобильная связь, военная и гражданская логистика. Алгоритмы полиномиального хеширования – это криптография, защита информации, мгновенные банковские платежи. Алгоритм весового анализа ссылок – это все поисковые сервисы и социальные сети. И так далее. Создание алгоритмов – это деятельность, ставящая человека на один уровень с Демиургом. Для этого нужно разложить реальность на ключевые элементы, понять что главное, что второстепенное, выделить ключевые закономерность, досконально продумать, какие процессы там происходят и как они работают, предусмотреть все ошибки и критические ситуации. И потом самому всё это смоделировать. Короче говоря, для этого требуется глубокое понимание мироздания и его устройства. А заодно и не менее глубокое понимание технологий, на которых это всё предстоит реализовать. А вот с нейронными сетями всё совершенно по-другому. Обучать нейронку – это всё равно что решать задачу, ничего не зная о предмете, получая ответ методом тупого подбора. Обычный алгоритм – это знание о мире, записанное в математическую форму. Нейронка «не знает» что она делает. Она просто перемножает несколько миллиардов кое-как подогнанных коэффициентов. Обучающий тоже не знает, что там внутри, он просто гоняет выборку, добиваясь похожего результата и меняя архитектуру сети. То есть мы, конечно, можем посмотреть веса в тензоре, но это ничего не скажет нам о закономерностях, которые она реализует. Там нет ни сознания, ни интеллекта, ни понимания предмета. Есть просто умножение двух тензоров с подогнанными весами. В итоге нейронка не может нам «объяснить» почему она пришла к тому или иному результату. Не может в большинстве случаев оптимизировать процесс решения. Если она один раз, образно говоря, научилась удалять гланды через анальное отверстие, то она будет делать это постоянно, потому что чего там творится внутри – никто не знает, а результат вроде как получается. Двойной тупик Итак, полагаясь на нейронки мы, во-первых, разучаемся познавать мир. Алгоритмы и алгоритмическое мышление больше не нужны. Зачем? Достаточно засунуть побольше исходных данных и включить компьютер помощнее. Мы теряем понимание мира. Это тупик интеллектуальный, мировоззренческий. От познания мироздания и разгадки его тайн мы, словно ученик-двоечник перешли к примитивной подгонке ответа. А это путь в никуда. В придаток к мёртвым машинам. Во-вторых, очень быстро мы упрёмся в неэффективность решений. Это та же самая проблема, которая возникла с появлением типовых фреймворков и библиотек в айти – у пользователя компьютер, который может рассчитать ракету до Плутона, но машина едва ворочает поршнями, чтобы показать страничку текста или простой чертёжик. Всё потому, что программирование превратилось из задачи нахождения алгоритмов в сборку конструктора. Или, если угодно, «отвёрточная сборка», причём из деталей, которые изначально не предназначались для одного изделия и нуждаются в основательной доводке надфилем. Ну и что, что блоки громоздкие и не подходят друг к другу – зато складывать их можно обучить даже мартышку. Точно так же мы не можем оптимизировать процесс работы нейронок. И это уже тупик технологический. Рано или поздно мы столкнёмся с задачами, где слишком мало исходных данных для обучения или слишком мала вычислительная мощность наших машин. А искать ответ с помощью алгоритмики уже разучились. Но это всё глобальные общественные процессы, которые будут развиваться по своей запутанной логике, вне зависимости от нашего к ним отношения. А чего делать отдельному сверчку на его отдельно взятом шестке? Не бежать за толпой. Развивать понимание мира, прокачивать экспертность, изучать алгоритмы. Людей, которые могут бездумно тыкать мышкой и таскать кирпичи всегда много, а вот тех, кто способе понимать работу сложных систем, умеет их конструировать и настраивать – не важно, социальные это системы, экономические или технологические – таких специалистов всегда очень мало. И никакие нейронные сети их не заменят. Источник: vk.com Комментарии: |
|