diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 916181f..a43ed17 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -259,6 +259,7 @@ }, "active": "85ff070f2dda5843", "lastOpenFiles": [ + "90 Library/11 Machine Learning/Персептрон.md", "00 Inbox/МИАД_Л5_нейронки.pdf", "00 Inbox/КР - Кохонен.md", "00 Inbox/КР - Персептрон.md", @@ -304,7 +305,6 @@ "00 Inbox/Archive", "90 Library/03 Math/Теория нечетких множеств/Теория нечетких множеств.md.tmp.254945.1777751883191", "90 Library/02 DevOps/Ansible/Ansible - основы.md.tmp.254945.1777751876503", - "90 Library/03 Math/Статистика/Кластерный анализ/Классификация.md.tmp.254945.1777751799750", - "90 Library/03 Math/Статистика/Кластерный анализ/Кластерный анализ.md.tmp.254945.1777751782184" + "90 Library/03 Math/Статистика/Кластерный анализ/Классификация.md.tmp.254945.1777751799750" ] } \ No newline at end of file diff --git a/90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между объектами.md b/90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между объектами.md index 1380891..63594c9 100644 --- a/90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между объектами.md +++ b/90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между объектами.md @@ -7,7 +7,7 @@ tags: - statistics - cluster-analysis created: 2025-12-25 -updated: 2026-05-07 +updated: 2026-05-14 title: Расстояние Между Объектами --- @@ -16,16 +16,17 @@ title: Расстояние Между Объектами 1) Евклидово расстояние (Расстояние Минковского при $p=2$) (Теорема Пифагора) $$d_{E}(O_{i},O_{j})=\sqrt{\sum\limits_{l=1}^{k}(x_{il}-x_{jl})^{2}}$$ 2) Взвешенное Евклидово расстояние $$d_{BE}(O_{i},O_{j})=\sqrt{\sum\limits_{l=1}^{k} \omega_{l} (x_{il}-x_{jl})^{2}},$$ $\text{где}\ \omega_{l} \in (0,1) - \text{весовой коэффициент}$ -3) Расстояние Минковского (общий случай для Евклидового и Хеммингово расстояние) $$d_{M}(O_{i},O_{j})=\sqrt[p]{\sum\limits_{l=1}^{k}|x_{il}-x_{jl}|^{p}}$$ -4) Хеммингово (манхэттенское) расстояние (расстояние Минковского при $p=1$) $$d_{H}(O_{i},O_{j})={\sum\limits_{l=1}^{k}|x_{il}-x_{jl}|}$$ -5) Расстояние Чебышева (расстояние Минковского при $p \to \infty$) $$d_{CH}(O_{i},O_{j})={\max_{1 \leq l \leq k}|x_{il}-x_{jl}|}$$ -6) Обобщенное расстояние Махаланобиса $$d_{O}(O_{i},O_{j})=\sqrt{(O_{i}-O_{j})^{T}\Delta^{T}\Sigma^{-1}\Delta(O_{i}-O_{j})}$$ +3) Расстояние Минковского (общий случай для Евклидова и манхэттенского расстояний) $$d_{M}(O_{i},O_{j})=\sqrt[p]{\sum\limits_{l=1}^{k}|x_{il}-x_{jl}|^{p}}$$ +4) Манхэттенское расстояние (расстояние Минковского при $p=1$) $$d_{1}(O_{i},O_{j})={\sum\limits_{l=1}^{k}|x_{il}-x_{jl}|}$$ +5) Расстояние Хэмминга для бинарных векторов - число несовпадающих позиций: $$d_{H}(O_{i},O_{j})=\sum\limits_{l=1}^{k}[x_{il}\neq x_{jl}]$$ +6) Расстояние Чебышева (расстояние Минковского при $p \to \infty$) $$d_{CH}(O_{i},O_{j})={\max_{1 \leq l \leq k}|x_{il}-x_{jl}|}$$ +7) Обобщенное расстояние Махаланобиса $$d_{O}(O_{i},O_{j})=\sqrt{(O_{i}-O_{j})^{T}\Delta^{T}\Sigma^{-1}\Delta(O_{i}-O_{j})}$$ > $\Sigma$ - ковариационная матрица генеральной совокупности, из которой извлечена выборка. > > $\Delta$ - некоторая симметричная неотрицательно-определенная матрица весовых коэффициентов признаков. -7) Корреляционное расстояние +8) Корреляционное расстояние $$d_{corr}(O_{i},O_{j}) = 1 - r_{ij}$$ > $r_{ij}$ - выборочный коэффициент корреляции между объектами $O_{i}, O_{j}$, соответствующие которым строки матрицы $X$ трактуются как *выборки*. @@ -40,4 +41,3 @@ title: Расстояние Между Объектами ## Связанные заметки - [[Метрические алгоритмы]] — те же формулы (Евклид, Манхэттен, Минковский, Махаланобис) реализованы в sklearn; ML-нота даёт практическое применение - [[Итерационная классификация. Метод K-средних (K-means)]] — использует $\min_{1 \leq l \leq k} \rho_{il}$ для отнесения объекта к кластеру - diff --git a/90 Library/11 Machine Learning/Алгоритм обучения сети Кохонена.md b/90 Library/11 Machine Learning/Алгоритм обучения сети Кохонена.md index a983396..c0d1114 100644 --- a/90 Library/11 Machine Learning/Алгоритм обучения сети Кохонена.md +++ b/90 Library/11 Machine Learning/Алгоритм обучения сети Кохонена.md @@ -7,7 +7,7 @@ tags: - clustering - self-organizing-maps created: 2026-05-07 -updated: 2026-05-07 +updated: 2026-05-14 title: Алгоритм обучения сети Кохонена --- @@ -82,6 +82,16 @@ $$ Алгоритм похож на [[Итерационная классификация. Метод K-средних (K-means)|K-means]] тем, что объект влияет на ближайший прототип. Главное отличие SOM - наличие топологической карты: обновляется не только победитель, но и его соседи, поэтому карта сохраняет отношения близости между областями данных. +## Метод выпуклой комбинации + +Случайная инициализация весов может ухудшить качество карты. Плотные классы могут слиться, а близкие образы одного класса - раздробиться на дополнительные подклассы. + +Один из способов смягчить эту проблему - метод выпуклой комбинации. Идея в том, что нормализованные входные образы сначала искусственно сближаются между собой, а затем постепенно возвращаются к исходному виду. + +Для этого используют коэффициент $\alpha(t)$, который в процессе обучения изменяется от $0$ до $1$. В начале обучения сеть видит почти одинаковые образы и формирует грубую структуру карты. Затем входы всё сильнее приближаются к исходным данным, и карта уточняет разделение классов. + +Этот приём снижает риск того, что начальные случайные веса слишком рано закрепят неудачное разбиение данных. + ## Связанные заметки - [[Нейронная сеть Кохонена]] diff --git a/90 Library/11 Machine Learning/Нейронная сеть Кохонена.md b/90 Library/11 Machine Learning/Нейронная сеть Кохонена.md index f46ad23..f39815b 100644 --- a/90 Library/11 Machine Learning/Нейронная сеть Кохонена.md +++ b/90 Library/11 Machine Learning/Нейронная сеть Кохонена.md @@ -7,7 +7,7 @@ tags: - clustering - self-organizing-maps created: 2026-05-07 -updated: 2026-05-07 +updated: 2026-05-14 title: Нейронная сеть Кохонена --- @@ -41,6 +41,8 @@ title: Нейронная сеть Кохонена Каждый нейрон выходного слоя связан со всеми входными признаками и имеет собственный вектор весов. Количество нейронов выходного слоя связано с желаемой детализацией карты и числом обнаруживаемых областей данных. +Выходной слой можно рассматривать как упорядоченную структуру радиальных нейронов. В контексте классификации без учителя число нейронов или областей карты связано с ожидаемым числом классов $K$, но это не жёсткое число заранее известных меток: карта может показать более тонкую структуру данных. + ![[Pasted image 20260507222244.png|500]] ## Обучение @@ -60,6 +62,22 @@ title: Нейронная сеть Кохонена По смыслу сеть Кохонена близка к итерационным методам кластеризации: веса нейронов играют роль прототипов групп, а входные объекты притягивают ближайшие прототипы к себе. Поэтому рядом полезно держать заметки про [[Кластерный анализ]], [[Классификация]] и [[Итерационная классификация. Метод K-средних (K-means)]]. +## Применение + +Сети Кохонена особенно полезны для разведочного анализа данных: они помогают увидеть сгущения объектов, близость классов и потенциальные аномалии на двумерной карте. + +Типичные применения: + +- кластеризация без учителя; +- визуализация многомерных данных; +- поиск закономерностей в больших массивах данных; +- выявление независимых или слабо связанных признаков; +- сжатие информации; +- моделирование и прогнозирование; +- обнаружение новых явлений и нетипичных объектов. + +Если после обучения кластеры разметить вручную, карту можно использовать и для классификации новых объектов. Если новый объект не похож ни на один из известных кластеров, это может быть сигналом новизны или аномалии. + ## Связанные заметки - [[Нейронные сети]] diff --git a/90 Library/11 Machine Learning/Нейронные сети.md b/90 Library/11 Machine Learning/Нейронные сети.md index 69068bf..2ef3ddf 100644 --- a/90 Library/11 Machine Learning/Нейронные сети.md +++ b/90 Library/11 Machine Learning/Нейронные сети.md @@ -5,7 +5,7 @@ tags: - machine-learning - neural-networks created: 2025-12-17 -updated: 2026-05-07 +updated: 2026-05-14 title: Нейронные сети --- @@ -208,16 +208,13 @@ $$ ## Персептрон -**Персептрон**, или **перцептрон**, - математическая модель восприятия информации, предложенная Фрэнком Розенблаттом в 1957 году и реализованная в машине «Марк-1» в 1960 году. - -Персептрон - один слой искусственных нейронов. Он решает задачу линейной разделимости: разделяет пространство признаков гиперплоскостью. - -По смыслу это близко к [[Линейные модели|линейным моделям]], потому что решение строится через линейную комбинацию входных признаков и весов. +Базовая однослойная модель классификации вынесена в отдельную заметку [[Персептрон]]. Она показывает, как нейронная сеть может разделять пространство признаков гиперплоскостью и почему линейная разделимость является важным ограничением простых моделей. ## Связанные заметки - [[Обратное распространение ошибки]] - [[Backpropagation для многослойной нейронной сети]] +- [[Персептрон]] - [[Сеть Хопфилда]] - [[Сеть Хэмминга]] - [[Линейные модели]] diff --git a/90 Library/11 Machine Learning/Персептрон.md b/90 Library/11 Machine Learning/Персептрон.md new file mode 100644 index 0000000..8c0a729 --- /dev/null +++ b/90 Library/11 Machine Learning/Персептрон.md @@ -0,0 +1,80 @@ +--- +status: seed +type: concept +tags: + - machine-learning + - neural-networks + - linear-models + - classification +created: 2026-05-14 +updated: 2026-05-14 +title: Персептрон +--- + +# Персептрон + +**Персептрон**, или **перцептрон**, - ранняя модель [[Нейронные сети|нейронной сети]], предложенная Фрэнком Розенблаттом в 1957 году и реализованная в машине «Марк-1» в 1960 году. По смыслу это однослойная модель классификации, которая принимает вектор признаков и относит объект к классу по линейному правилу. + +Персептрон близок к [[Линейные модели|линейным моделям]]: решение строится через взвешенную сумму входных признаков и пороговую функцию активации. + +## Идея + +Персептрон состоит из одного слоя искусственных нейронов, соединённых с входами через весовые коэффициенты. На вход подаётся вектор признаков: + +$$ +X=(x_1,x_2,\dots,x_n) +$$ + +Каждый нейрон вычисляет линейную комбинацию входов: + +$$ +S_k=\sum\limits_{i=1}^{n}x_iw_{ik} +$$ + +и сравнивает её с порогом: + +$$ +S_k=T_k,\quad k=1,\dots,m +$$ + +где: + +- $x_i$ - значение входного признака; +- $w_{ik}$ - вес связи между входом $i$ и выходом $k$; +- $T_k$ - порог для выходного нейрона; +- $m$ - число выходов сети. + +## Геометрический смысл + +С математической точки зрения персептрон разбивает пространство признаков гиперплоскостями. В трёхмерном случае плоскость задаётся уравнением: + +$$ +A X + B Y + C Z + D = 0 +$$ + +Точки по одну сторону плоскости удовлетворяют неравенству: + +$$ +A X + B Y + C Z + D > 0 +$$ + +Веса персептрона задают положение такой плоскости в пространстве признаков. Поэтому классификация сводится к проверке, по какую сторону разделяющей гиперплоскости находится объект. + +Для сети персептронного типа с $m$ выходами число областей классификации не превышает: + +$$ +2^m +$$ + +## Ограничение + +Однослойный персептрон решает задачи, которые можно свести к линейной разделимости. Если классы нельзя разделить одной гиперплоскостью или набором линейных порогов в исходном пространстве признаков, нужен переход к другим признакам или многослойной сети. + +Поэтому персептрон полезен как базовая модель для понимания [[Нейронные сети|нейронных сетей]], но не заменяет многослойные архитектуры и [[Обратное распространение ошибки|обратное распространение ошибки]]. + +## Связанные заметки + +- [[Нейронные сети]] +- [[Линейные модели]] +- [[Классификация]] +- [[Обратное распространение ошибки]] diff --git a/90 Library/11 Machine Learning/Сеть Хопфилда.md b/90 Library/11 Machine Learning/Сеть Хопфилда.md index 0508d66..2294ca9 100644 --- a/90 Library/11 Machine Learning/Сеть Хопфилда.md +++ b/90 Library/11 Machine Learning/Сеть Хопфилда.md @@ -22,6 +22,26 @@ title: Сеть Хопфилда По смыслу входной образ работает как ключ: сеть "вспоминает" наиболее близкий сохранённый образ. +В общем случае входной сигнал описывается биполярным вектором: + +$$ +X=(x_1,\dots,x_n),\quad x_i \in \{-1,1\} +$$ + +Эталонный образ $k$ можно обозначить как: + +$$ +X^k=(x_1^k,\dots,x_n^k),\quad k=1,\dots,m +$$ + +Если сеть успешно распознаёт образ, её выход совпадает с одним из эталонов: + +$$ +Y=X^k +$$ + +Если выходной вектор не совпал ни с одним эталоном, сеть пришла к ложному или неинтерпретируемому состоянию. + ## Архитектура Основные свойства сети Хопфилда: @@ -36,6 +56,22 @@ title: Сеть Хопфилда Для сети Хопфилда часто используется бинарная функция активации, описанная в [[Нейронные сети]]. +## Инициализация весов + +Веса задаются по эталонным образам один раз перед началом работы сети: + +$$ +w_{ij}=\sum\limits_{k=1}^{m}x_i^k x_j^k,\quad i\neq j +$$ + +Обычно связь нейрона с самим собой исключают: + +$$ +w_{ii}=0 +$$ + +После такой инициализации сеть не дообучается на входных примерах, а использует уже записанные в матрицу связей эталоны. + ## Алгоритм функционирования 1. На вход подаётся неизвестный сигнал. Фактически ввод выполняется установкой начальных значений аксонов: diff --git a/90 Library/11 Machine Learning/Сеть Хэмминга.md b/90 Library/11 Machine Learning/Сеть Хэмминга.md index 09f6bb1..ef33d17 100644 --- a/90 Library/11 Machine Learning/Сеть Хэмминга.md +++ b/90 Library/11 Machine Learning/Сеть Хэмминга.md @@ -22,6 +22,8 @@ title: Сеть Хэмминга Сеть должна выбрать эталон с минимальным расстоянием до входного сигнала. В результате активным остаётся один выходной нейрон, соответствующий выбранному образу. +В отличие от [[Сеть Хопфилда|сети Хопфилда]], сеть Хэмминга не пытается восстановить полный эталонный образ. Её цель - выбрать номер или класс ближайшего образца. + ![[Pasted image 20260514120654.png]] ## Архитектура @@ -48,6 +50,8 @@ $$ Ингибиторные связи постепенно подавляют менее подходящие эталоны, пока активным не останется один победивший нейрон. +Первый слой нужен для начального сравнения входа со всеми эталонами. Второй слой превращает эти оценки близости в результат классификации: за счёт взаимного торможения слабые кандидаты подавляются, а сильнейший остаётся активным. + ## Алгоритм функционирования На стадии инициализации весовым коэффициентам первого слоя и порогам функции активации присваиваются значения: @@ -102,6 +106,8 @@ $$ Роль первого слоя условна: после вычисления начальных значений сеть больше к нему не обращается. Поэтому первый слой можно заменить матрицей весовых коэффициентов. +Это подчёркивает практический смысл сети Хэмминга: первая часть вычисляет расстояния или меры похожести, а вторая выбирает победителя. + ## Связанные заметки - [[Сеть Хопфилда]]