Pull to refresh
40
0
Юрий Бабуров @buriy

Web, AI, Deep Learning, Python

Send message
для коротких текстов — не смогу, о чём и написал выше, а для длинных текстов — смогу.
но, в любом случае, вы как раз отлично проиллюстрировали сейчас мою мысль: Greenback жалуется на то, что именно на основе таких отзывов возможно строить качественные модели языка, но вот придёт GPT-3 и обязательно всё испортит!!!
Здесь мы обсуждаем конкретную модель, а по номеру 900 — целая другая система. Если у вас претензии к системе, то данная модель здесь ни при чём. В системе 900 она вообще не используется.
У вас претензия к DL в целом? Или претензия к инженерам, которые нейросети суют везде для практического использования? Или к маркетологам, которые продают системы с нейросетями как ИИ?
В любом случае, вам не сюда. Мир в интернете деградирует именно из-за того, что люди всё подряд обкладывают руганью, не желая ни в чём разбираться и правильно формулировать свои мысли.
Вы заблуждаетесь принципиально. Как там, «может ли робот написать симфонию?»
Заголовок спойлера
image

Пока вы будете пребывать в парадигме «робот не производит новых смыслов», ваши выводы будут казаться логичными. Хотя доказательств того, что робот эти смыслы не производит, у вас нет. Более того, роботы уже давно производят эти новые смыслы, Николай Иронов подтвердит. Да, не все смыслы, и не всегда. Но лиха беда начало!
Давайте рассмотрим такую аналогию. Предположим, есть какой-то более общий способ измерить IQ, «калорийность», в задачах написания текстов. Хотели бы мы, чтобы тексты писали только существа с IQ<50? Неважно, люди или роботы. Да нет, нам их будет неинтересно читать! А хотели ли бы вы почитать умные полезные для вас мысли от существа с IQ>150? Да, хотели бы! Понимаете? Ответ на этот вопрос не зависит от того, человек написал текст или робот. А значит, вы просто роботошовинист и зря ругаете роботов. Запрограммируйте тест на IQ, работающий по тексту, фильтруйте — и вуаля, получите только интересные тексты.
Теперь второй связанный с этим вопрос. «Правдоподобность — не единственный критерий качества.» Я нигде не говорил про правдоподобность. Я говорил про «отличить». Если работы роботов будут ниже качеством, то эти тексты можно будет отличить по качеству. Это я имел в виду. Отличить по правильному или неправильному использованию фактов, по уровню логики, по наличию новых интересных выводов, по тому, заставил ли вас текст задуматься — в общем, берите любую нужную вам характеристику хороших текстов. Щит улучшается быстрее меча в более крупных текстах (начиная с текстов новостей), и нет никаких причин, что будет наоборот — до появления настоящего AGI (Общего ИИ), конечно.
Авторы GPT-2 писали, что испугались публикации самой крупной модели именно потому, что полученные тексты невозможно было отличить существовавшими на тот момент методами, и тем более человеком. Но быстро были найдены способы автоматически отличать такие тексты, так же как современными технологиями легко отличить тексты, сгенерированные марковскими цепочками (которых боялся мой оппонент в 2011м году примерно по тем же основаниям, что и вы: он утверждал, что борьба со спамом станет намного сложнее). Cейчас, в конце 2020го года, ограничения на публикацию моделей GPT-2 и GPT-3 уже не выдерживают никакой критики.
Но это всё не относится к коротким текстам, типа отзывов о ресторанах и продуктах, там человеку уже недостаточно данных для отличения робота и человека. Потому что люди ленятся и часто пишут шаблонные тексты, да и спамят, кстати, тоже сейчас люди. Половина прочитанных вами отзывов наверняка была спамом, созданным человеком за копейки. И половина прочитанных вами статей в интернете кстати тоже реврайтинг, сделанный людьми. А уж сколько почтового спама, сделанного по шаблонам, написанными людьми, вы прочитали… Теперь будут спамить ещё и роботы, но что от этого принципиально поменяется в этих коротких текстах?
вы предполагаете, что если сейчас нельзя отличить сгенерированный текст от реального, то так будет и впредь. а ведь в будущем может быть два варианта: 1) их действительно нельзя будет отличить — но это значит, что искусственные тексты будут очень хорошими, и на них тоже можно тренироваться, и 2) их можно будет отличить — тогда их можно будет просто распознать и выкинуть.
Это что, значит, дашь ей 100 фоток котяток, и система скажет, что на одной из фоток котёнок жестоко относится к детям?
прям хорошо получилось!
а у вас есть идеи, почему он не исправляет (и как исправлять) следующие сочетания слов:
сколько сутки идет дождь
получилась посчитать
он снул на диване (уснул)
он снул руку в реку (сунул)
онснулрукувреку (он сунул руку в реку)
Алгоритмам поиска по ключевым словам наподобие TextRank — сто лет в обед, они в научных статьях переизобретаются каждые несколько лет.
Поэтому ваша часть поста про технологии — это какой-то шаманизм. Вы говорите: «мы (… пообщались с духами и...) нашли секретную теорию из прошлого, на основе которой построили технологию, которая перевернёт мир». А на деле получается — «мы называем всё подряд нейронами, потому что очень хорошо видим аналогии», и ничего нового и коммерчески крутого. (Хотя «крутость» обычно идёт от нахождения успешной модели получения денег, а не успешно проделанной домашней работы по реализации поиска… но что ожидать от стартапа 2005 года? все такими были в 2000х).
Мне кажется, в закрытых коммерческих областях люди часто переоценивают значимость собственных идей — ведь они не знают, что все конкуренты уже давно этими технологиями пользуются (или же даже конкуренты давно отбросили эти технологии как неподходящие по какому-то из параметров: скорость, цена, качество работы, время настройки).
А вам тогда спасибо, что поделились своей точкой зрения, что оказывается 2+2=7…
Я знаю модели, которые учатся по 900 эпох. И вопрос правильного выбора гиперпараметров ещё есть.
Я думаю, много моделей тут недоучились и поэтому показали слабые результаты.
Статья перегружена деталями, нету главной мысли текста.
И выводы странные: «не было коммерческого успеха, потому что была зима ИИ». Отсутствие логики детектед, звучит примерно как «у продавца не было продаж, потому что был плохой день». Плохой день — он потому и плохой, что ничего не продаётся, понимаете? А на самом деле правильное объяснение — не было продаж, потому что нечего было продавать! Не было даже признаков успешных будущих применений технологии в 60е-80е, поэтому и не давали финансирование на усиленные разработки. Какой смысл выделять деньги много раз на расширение неперспективных исследований? Сравните это с кризисом перепотребления, когда всё, что можно, уже изобрели, вот только в области ИИ это называется «зимой ИИ».
>Вы решили, что без специфического обучения на комбинаторном пространстве — это не модель Редозубова.
Именно так. А иначе там тысяча разных моделей, и смысл их все сразу обсуждать не очень понятен.
Вы вполне можете с Алексеем пообщаться, я с ним общался неоднократно.
Нет, дело не в размере, дело в том, что у вас в вашем маленьком пространстве не было случайных подвыборок.
Поэтому же в примере с распознаванием номеров была не модель Алексея, а модель Васи.
Это разные модели. Нет случайных подвыборок — нет LSH, это другая модель, это просто обычные свёрточные нейросети.
Есть случайные подвыборки (random projections) и механизм обучения, как у мухи — это опять другая модель (в нейросетях определённый механизм обучения).
Вы их сливаете вместе, притом, что у этих моделей совершенно разные свойства и разные ограничения. Модель мухи не выучит никогда качество >70% на одном слое, а нейросеть — выучит почти 90% на одном слое. Нейросети отлично стакаются, но когда целевая функция шумит, то это преимущество исчезает.
Ваш код не соответствует идее Алексея. У вас нет случайных подпространств размерностью 20 из пространства размерности 1000000. Там и вылезают хеши, кодирующие эти подпространства.
Кстати, гуглится это по ключевым словам «random projections» (in neural networks)), и в целом, это кое-где применяется, особенно там, где random projections дёшево делать. Если же их делать дорого, то смысла в них нет (гуглить quantization & pruning methods for neural networks )
Сначала произведите векторизацию.
Тогда у вас будет
for(i){
r[i] = (V >> i & M == M);
}
но это будет не свёртка, т.к. у вас не суммирование, а точное сравнение. У него другие свойства, и, мне кажется, фиговая обобщающая способность, т.к. приближённое равенство он не найдёт.
Но это можно свести к свёртке с порогом равным len(M), обозначая свёртку за "%", поэлементное логическое отрицание за "~", поэлементное сложение за "+":
Y = (M % V) + ((~M) % V)
r = (Y[i] >= len(M)-i)
или лучше даже добавить паддинг нулями:
Y = (padded(M) % V) + ((~(padded(M))) % V)
r = (Y[i] >= len(M))
(И вот тогда вы кстати поймёте, что порог не обязательно должен быть равен M, и тогда вы получаете приближённое сравнение вместо точного)
ru.wikipedia.org/wiki/Свёртка_последовательностей
В каждой точки выходной матрицы свёртки — фиксированные координаты сдвига матриц, в какой-то одной (центральной) точке выходной матрицы будет умножение с нулевым сдвигом, которое вам и нужно было.
Мы можем обрезать края, тогда при равном размере матриц у нас останется только центральный элемент. Такой вот вырожденный случай. Правда, чаще это будет всё же называться скалярным умножением (только надо развернуть вторую матрицу в обратном направлении, в свёртке правая матрица считается справа налево),
так же, как «матрица 3х1» не называется обычно матрицей, а называется вектором, а «матрица 1х1» обычно называется скаляром.
Объясняю:
Код на входе у Алексея формируется через преобразование сигналов из других зон. Преобразование этих сигналов напоминает LSH. Лучше дам ссылку: medium.com/@jaiyamsharma/efficient-nearest-neighbors-inspired-by-the-fruit-fly-brain-6ef8fed416ee
Да и преобразование внутри зоны построено по принципу этого же LSH.
А ещё, если мы считаем, что вход прошлой зоны обладал низкой размерностью, то он будет расширен до большой размерности… волновыми паттернами по модели того же самого LSH ( habr.com/ru/post/308370 ).
Вот откуда там хеши: по сути, хеш сидит и хешем погоняет. Если нет обратного распространения ошибки, то «динамический резонанс» (взаимное отображение зон коры друг на друга) можно сделать лишь с помощью LSH-хешей.
>но в моём понимании свёрткой не может быть преобразование, если оно не уменьшает размерность
>Какая она свёртка, если не сворачивает
Ну что за детский сад начинается? Свёрткой называется преобразование, которое умножает одну матрицу на другую со сдвигом. Операцию назвали convolve («переплетать, связывать»). Отсюда пошло определение, а вовсе не от бытового русского смысла слова!
Если матрица второго преобразования 1х1, то это всё равно свёртка, но она не уменьшает размерность.
А теперь, мы же говорим про слой в нейросети, а это обычно одномерный массив из таких операций свёртки, и они добавляют к результирующему массиву дополнительную размерность. Ширина слоя (количество свёрток, они же свёрточные фильтры) может быть любой, хоть миллион, и тогда итоговая матрица будет огромной.
Посмотрите что ли лекцию Семёна в нашем курсе по нейросетям: Лекция №6: www.youtube.com/watch?v=tOgBz8lFz8Q
>Вот в этом фишка, там у него нет нейронов, что-то распознающих, на этом делается акцент
Так в нейросети тоже нет «нейронов, что-то распознающих»! Откуда этот бред вообще берётся?
>В том же моём примере потребовалось бы на каждое новое слово заводить по свёртке и строке в массиве
Так не заводите! Если есть обучение — то оно и без свёртки на каждое новое слово будет работать.
>У Редозубова получается, что можно узнавать любое количество слов
Потому что в нейросети тоже. Вот вы пользуетесь google translate, там что, ограниченный словарь?
Нет, в нейросети ограниченное число нейронов, но бесконечный словарь.
Способ «по нейрону на слово» временами используется на первом слое нейросетей, но только потому, что так выше качество и меньше требования к мощности сети. Но в последнее время это же делается с помощью BPE, это такой код для деления сложных слов на простые, и всего такой словарь кодов может составлять 1000...100000 кодов.
А, например, в библиотеках для работы со словами, на примере spacy-ru, это используется так, что для каждого слова фичами, поступающие на объединяющие слова слои, являются:
— выучиваемое векторное пространство размерности 2000 для кода первых 3 символов
— выучиваемое векторное пространство размерности 2000 для кода последних 3 символов
— выучиваемое векторное пространство размерности 4000 для кода слова
— выучиваемое векторное пространство размерности 2000 для кода
— предобученное векторное пространство размерности 200000 для кодов лемм (лемма — начальная форма слова, например, «ходить» для «ходили», такие леммы со словами сопоставляются по словарю ).
Но в любом случае, один свёрточный фильтр = одна колонка Алексея. С точки зрения структуры и самого распознавания, соответствие между этими моделями взаимнооднозначное. А вот если смотреть на вторичные моменты — в нейросети-то всё понятно, а вот то, как ложится модель Алексея на реальный мир — не очень… Конкретнее, волнуют вопросы обучения колонок и вопросы обмена данными между колонками. Там уровень гипотез вида «ну, как-то оно учится/распространяется», алгоритмов там у Алексея пока я не видел, уж при всём моём уважении к нему.
В нейросетях тоже нет детекторов *конкретного признака*. Сами придумали себе абстракцию, которая нигде не наблюдается, и сами даже не поняли, что запутались.
Интерпретация нейросети / чего-то ещё — это и есть задача попытаться понять, как оно работает. Но везде именно «мультидетекторы», просто иногда получается узнать одно или несколько направлений детектирования.
Ну и я в принципе не понимаю, чем плохо, если какой-то нейрон будет детектором какого-то конкретного признака (и это опять же не значит, что все будут такими). Т.е. мультидетектор иногда может быть детектором, и это нормально.

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Chief Technology Officer (CTO)
Lead