2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Поиск скрытых закономерностей (паттернов)
Сообщение04.03.2025, 23:11 


12/07/15
3448
г. Чехов
Я пытаюсь разработать алгоритм обучения без учителя. Общий смысл такой: ищем закономерности в обучающих данных как функцию f(), которая аппроксимируется нейросетью небольшой структуры.

Тезисами:
1. Обучающие данные - это набор точек. (Для простоты можно представлять точки на плоскости, т.е. точки - это объекты с двумя признаками $x_1$ и $x_2$.)
2. Я принял такое допущение: нейросеть аппроксимирует функцию вида $p_j = f(p_i)$, где $p_i$ и $p_j$ - это точки из обучающего датасета.
3. Обучение происходит путём попарного сопоставления точек из датасета. Итого образуется $n(n-1)$ пар точек при размере датасета $n$.
4. Если точка $p_j$ попадает в окрестность модельной точки $f(p_i)$, то функция близости выдаёт результат почти 1; если точка далеко от этой окрестности, то функция близости выдаёт результат почти 0. Функция близости $c(f(p_i), p_j) = \exp(-\alpha \cdot r)$, где $r$ - евклидово расстояние между точками $p_j$ и $f(p_i)$.
5. Если перебрать все точки из датасета в качестве $p_j$, за исключением исходной точки $p_i$, и найти наибольшее значение $c$, то результат вычисления будет по сути представлять область определения функции (domain of the function). $domain[p_i] = \max\limits_{j, j \ne i}(c(f(p_i), p_j))$ Чем выше $domain$ (максимум $1.0$), тем лучше функция подходит для точки (точка попала в область определения). При $domain \to 0.0$ точка $p_i$ находится вне области определения функции.
6. Но область определения функции - это не единственная важная характеристика. Мне кажется, что гораздо важнее область значений функции (range of the function). $range[p_j] = \max\limits_{i,i \ne j} (f(p_i), p_j)$.
7. В качестве функции потерь я взял сумму $1 - \frac{\sum\limits_{j,j \ne i} sigmoid(\gamma \cdot range[p_j])}{n-1}$. Можно ещё взять вместо максимума усредненное значение функции близости $1 - \frac{\sum\limits_{j,j \ne i} sigmoid(\gamma \frac{\sum\limits_{i,i \ne j} c(f(p_i), p_j)}{n-1})}{n-1}$, эта функция потерь позволяет в начале обучения меньше сваливаться в локальные минимумы.

Чисто теоретически алгоритм может обнаруживать закономерности типа симметрии, фрактальной схожести, но образуются очень глубокие локальные минимумы, выползать из которых позволяют коэффициенты $\alpha$ и $\gamma$, которые я с трудом подкручиваю вручную. В итоге нейросеть стремится аппроксимировать зависимости между соседними точками. Было бы неплохо, например, выучивать такую функцию, которая на вход получила первую точку и последовательными итерациями применения функции находила все остальные точки датасета или хотя бы существенную долю.

Короче теория на этот счёт у меня ещё пока сырая. Какова лучшая цель обучения? Если кто-то предложит идеи, я могу обкатать.

 Профиль  
                  
 
 Re: Поиск скрытых закономерностей (паттернов)
Сообщение05.03.2025, 18:54 


12/07/15
3448
г. Чехов
Можно каждую точку представить как вершину графа. Тогда дуги, соединяющие точки в двух направлениях, можно взвесить функцией близости.
Идеальной является функция $f()$, которая образует граф-путь без циклов между всеми точками последовательно с весом дуг $1.0$.

 Профиль  
                  
 
 Re: Поиск скрытых закономерностей (паттернов)
Сообщение12.03.2025, 07:29 


12/07/15
3448
г. Чехов
В общем, задачу поиска скрытых закономерностей я формулирую в общем виде так: нужно обучить одну или несколько простых нейросетевых структур, которые смогут генерировать объекты (точки) представленной выборки с некоторой точностью.

1. При этом можно выделить первый способ генерации - итеративный - это когда берётся одна или несколько стартовых точек, они пропускаются через нейросеть, получается набор вторых точек, вторые точки пропускаются через нейросеть, получаются третьи... И так далее. Для этого способа нужна дополнительная нейросеть, которая от 0 до 1 оценивает область определения функции (domain of the function) - это вес, который определяет, насколько точно нейросеть генерирует очередную точку. Если вес низкий, то нужно прекратить генерацию последовательности точек.

2. Второй способ - стартовые точки равномерно распределены в ограниченном $m-мерном пространстве. Нейросеть обучается переводить фиктивные стартовые точки в реальные точки из датасета.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group