PHWizard

Рейтинг
121
Регистрация
05.12.2004
Должность
CEO
Интересы
blockchain, AI, enterprise software, IoT, space exploration
Ken:
Ну вот🙅 опять все свелось к частотам.

А что бы ты предложил?

Кому интересно что у меня получилось в ходе экспериментов - получилась фигня. Пробовал двухмерную нейронку и трехмерную размерностей 5, 10, 20. Трехмерность не дала преимуществ в плане расчета "похожести" документов, скачут расстояния между проекциями одних и тех же документов в разных запусках сети с теми же параметрами. О чем это говорит - надо увеличивать сеть или размерность?

Попробовать в N-мерном пространстве, высчитанном по формуле - не получится, т.к. не хватит никаких вычислительных мощностей.

Наверняка более лучший feature selection дал бы результаты поинтереснее, я выбирал в эксперименте по 10 слов для документа, а потом перешел на выбор по 100 слов (наиболее часто встречающиеся - частота деленная на кол-во слов в документе). Т.е. идет вектор 3000 с чем-то измерений, и только 100 из них ненулевые.

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

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

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

sokoloff:
Ну 4-ка там спрятана под O(), см. формулировку Theorem 2.1

Упс, проглядел.

sokoloff:

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

Ага, я читал что тут раз на раз не приходится. Примерно 50 на 50 (с) :)

Не знаю как это доказывать кроме как экспериментом. Ну а тут дрова будут.. Допустим, 700 документов, размерность вектора 2000, размерность пространства 2620 (Epsilon = 10%), пусть даже нейронка 3х3х3х3..

Это будет 1e+1250 нейронов, на каждой итерации для каждого считать 2000 весов и еще расстояния вычислять. Тут никакое перемножение на случайные матрицы, параллельные вычисления, динамический размер нейронки и прочие ухищрения не помогут. У меня 3D тормозит, а тут 2620D. Можно, конечно, использовать другие способы кроме SOM, но IMHO они все похожи.

Vyacheslav Tikhonov:
Меня более увлекает обратная операция - развертывания информации из сжатого образа, в результате которой теоретически можно восстановить отличную от оригинала часть текста с тем же смыслом, взятую, например, из другого документа.

Ага, восстановить или найти. Эти все вещи рядом стоят, KR (knowledge representation), NLP (natural language processing), AI, сжатие данных. Если будет прорыв в одной сфере, это потянет за собой остальные.

sokoloff:
Да, и при этом это 3 любые точки. Т.е. вы как бы освобождаетесь от конкретной выборки и можете гарантировать это для любого входа.

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

sokoloff:

Так это самое сложное -- подобрать метрику или убедиться, что Маша и Петя попадут рядом (просто из факта, что число размерностей стало меньше, это же не следует).

А как же теорема компактности и т.п.?

mustafa:
PHWizard, ок. Теория в тумане, но истина где-то рядом. А теперь не мог бы ты рассказать на примере вот этого топика, как алгоритм поймет о чем здесь шла речь и выделит основную тематику? :)

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

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

Просто у меня поисковик на пхп и медленно страницы индексирует.

mustafa:

p.s. я против изобретения исукусственного интелекта... Все равно это будет просто тупая машина с 0 и 1.

:)

sokoloff:
Формула, например, отсюда "An elementary proof of the Johnson-Lindenstrauss Lemma".

А откуда 4? Там ведь формула О(log(n)/epsilon^2)

Vyacheslav Tikhonov:
Вообще говоря, в этом топике описан алгоритм сворачивания и сжатия данных, в терминах прикладного анализа данных (ПАД). Насколько я помню теорию, здесь можно использовать гипотезу компактности, которая выражается в том, что точки, отображающие признаки в объекте одного класса, должны быть расположены в пространстве признаков ближе друг к другу, чем к точкам, отображающим признаки объектов других классов.

Точно!

Vyacheslav Tikhonov:

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

P.S. Вообще интересный топик получился, респект.

Спасибо, респект делим с sokoloff. Вообще это развитие моей полусерьезной темы, которую в курилку выкинули:

/ru/forum/79111

:)

> Получить пространство признаков (знаний) вполне реально

таким образом мы имеем что реально получить пространство человеческих знаний на основе анализа всех документов в WWW, так? На основе этого пространства можно считать релевантность, строить какие-то отображения в 3D/2D для броузинга, и делать кучу еще разных полезных вещей.

sokoloff:
Формула, например, отсюда "An elementary proof of the Johnson-Lindenstrauss Lemma". Эпсилон выбираться, исходя из соображений желаемой точности. Например, вы хотите, чтобы расстояния при уменьшении размерности искажались не более, чем на 10%, значит эпсилон=0.1 .

Понял, спасибо. Т.е., получается, ответ на изначальный вопрос - это возможно, но при погрешности 10% получается потребуется 4*ln(3)/0.01 = 439.44. Т.е. 439 измерений нужно чтобы спроецировать несчастные 3 точки? Правильно я посчитал? :)

Для базы Гугла потребуется (я не знаю сколько она точно, допустим 40 млрд) 4*ln(40 000 000 000)/0.01 = 9764.

Для мелких коллекций порядка 4 тыс документов это будет около 3 тыс, т.е. где-то на уровне размерности исходных векторов.

Интересно..

sokoloff:

А как такие соображения появились?:) Ведь тут помимо известной модели закономерностей еще надо знать как именно их оставить, уменьшая размерность. Т.е. врядли это верно для любого способа уменьшения размерности.

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

sokoloff:

Насчет размерности. Если быть точнее, то размерность вам понадобится 4*ln(n)/epsilon^2. При этом с большой вероятностью (1/n^2) расстоянием между любыми точками сохраниться в пределах (1-\epsilon)D(x,y)<=D'(x,y)<=(1+\epsilon)D(x,y). Чтобы узнать сколько это точно, вам надо задаться желаемым epsilon.

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

sokoloff:

Не совсем понял. Расстояния между "уменьшеными" векторами будут удовлетворять неравенству выше с какой-то вероятностью. И все.

Если идеал -- это то сходство, которое понимается человеком, то начать лучше его отражать они могут только случайно.

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

sokoloff:

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