2014 dxdy logo

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

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




На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 9  След.
 
 Re: О перцептроне Розенблатта
Сообщение25.10.2025, 11:20 
Аватара пользователя
tac в сообщении #1707094 писал(а):
именно так, причем вот это "достаточно" мал не позволяет в ряде случаев обучать до нуля ошибок
Это другая история.
Во-первых, нулевое значение функции потерь может быть вообще недостижимо никакими весами.
Во-вторых, иногда используется early stopping - берут веса, которые градиентный спуск заведомо еще может улучшить, для предотвращение переобучения.

(Оффтоп)

tac в сообщении #1707094 писал(а):
а случайно на другом форуме мы с вами не общались? или это так много людей которые работают на оборонку?
Нет, не общались. И я не на оборонку, банальный бигтех. Впрочем, где за соблюдением NDA следят строже - еще вопрос...

 
 
 
 Re: О перцептроне Розенблатта
Сообщение25.10.2025, 11:47 
mihaild в сообщении #1707101 писал(а):
нулевое значение функции потерь может быть вообще недостижимо никакими весами.


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

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

 
 
 
 Re: О перцептроне Розенблатта
Сообщение25.10.2025, 12:45 
Аватара пользователя
tac в сообщении #1707105 писал(а):
это несколько разные вещи, ноль функции потерь не равен нулю ошибок на обучающей выборке
Я не очень понимаю вопроса. В смысле, как accuracy связано с logloss? Есть очевидные соотношения - т.к. каждый неправильно классифицированный объект даёт вклад в logloss по крайней мере $\log_2 \frac{1}{2} = 1$, то logloss меньший $\frac{1}{N}$ означает accuracy $1$ (обратное, понятно, неверно - и вообще есть сколь угодно близкие по logloss наборы предсказаний, на одном из которых accuracy $0$ а на другом $1$), и вроде бы ничего больше сказать нельзя.
tac в сообщении #1707105 писал(а):
Теорема о сходимости перцептрона как раз об достижении этого нуля
Насколько я понимаю, аналог для градиентного спуска - Neural Tangent Kernel - при стремлении размера слоев к бесконечности (и иницализации с дисперсией, обратно пропорциональной размеру слоя), вероятность (по инициализации) того, что нейронка при обучении будет стремиться (по числу обучающих шагов) к глобальному минимуму, стремится (по росту размера слоев) равна единице.
Для практики результат, вроде бы, бесполезный.

 
 
 
 Re: О перцептроне Розенблатта
Сообщение25.10.2025, 13:41 
mihaild в сообщении #1707111 писал(а):
Я не очень понимаю вопроса.


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

-- Сб окт 25, 2025 14:49:53 --

mihaild в сообщении #1707111 писал(а):
Насколько я понимаю, аналог для градиентного спуска


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

но для практики, для перцептрона Розенблатта, из теоремы сходимости, установлен верхний предел числа нейронов равный числу примеров обучающей выборки, гарантирующий, что схождение будет обеспеченно до нуля. (в отличии от бэкпропа, где действительно важно подбирать "малость", как то learningRate)

Поэтому когда мне пишут, что для MNIST при 30k нейронов в скрытом слое это "оверхед потребления нейронов" - это явная глупость, т.к. максимум там 60к, который гарантирует схождение к нулю.

-- Сб окт 25, 2025 15:25:32 --

Далее, когда вы обсуждаете т.н. "глобальный минимум", мне это дискурс не понятен. И вот тут действительно есть вопросы. Это глобальный минимум на каком множестве? На обучающей выборке? Если да, то правильно ли говорить, что он достигнут, когда ошибка (accuracy) = 0. Или тут речь идет о неком "виртуальном" глобальном минимуме для прогнозирования всех возможных примеров?

Но тогда, если речь об этом, тогда если мы решаем задачу четность скажем на 8 бит, и во время обучения мы подали все возможные примеры, и число ошибок =0, то это искомый глобальный минимум или нет?

 
 
 
 Re: О перцептроне Розенблатта
Сообщение25.10.2025, 15:51 
Аватара пользователя
tac в сообщении #1707119 писал(а):
я говорю, что в бэкпропе не всегда можно обучить до нуля ошибок
А еще это не всегда желательно, даже когда возможно. Потому что есть переобучение, и оно может возникнуть для любой модели, если обучающая выборка не покрывает все возможные примеры (а если покрывает, то учить ничего не надо, достаточно Giant Look Up Table, и у нас, в крайнем случае, задача сжатия, но точно не обучения).
tac в сообщении #1707119 писал(а):
Поэтому когда мы сравниваем МЛП+бэкпроп нужно сравнивать одинаковые вещи
Тут вопрос в том, что считать "одинаковым". Можно говорить об одинаковых метриках, а можно о "естественных" для каждой архитектуры. Для нейронок (в классификации) естественным является logloss (и в целом вероятностные предсказания ИМХО для этой задачи гораздо естественнее бинарных).
tac в сообщении #1707119 писал(а):
если и у вас есть интерес, возможно вы могли бы посмотреть теорему сходимости Розенблатта (могу её привести из оригинала, чтобы вам не искать), и сказать что чему аналог и почему
Формулировка в википедии правильная? (в английской почему-то нет)
tac в сообщении #1707119 писал(а):
установлен верхний предел числа нейронов равный числу примеров обучающей выборки, гарантирующий, что схождение будет обеспеченно до нуля
Наверное из теоремы Цыбенко тоже можно выташить какие-то эффективные оценки на размер, но не очень хочется этим заниматься.
tac в сообщении #1707119 писал(а):
Поэтому когда мне пишут, что для MNIST при 30k нейронов в скрытом слое это "оверхед потребления нейронов" - это явная глупость, т.к. максимум там 60к, который гарантирует схождение к нулю
Тут другие нейроны. И их большое количество нужно потому, что статья про "NTK режим обучения", в котором мы ограничиваемся очень небольшим подмножеством возможных параметров - это уменьшает выразительность, зато делает возможным теоретический анализ обучения.
tac в сообщении #1707119 писал(а):
Это глобальный минимум на каком множестве? На обучающей выборке?
Да.
tac в сообщении #1707119 писал(а):
Если да, то правильно ли говорить, что он достигнут, когда ошибка (accuracy) = 0.
Тут берется опять же минимум относительно функции потерь, по которой, собственно, учимся. И она должна быть дифференцируемой.
tac в сообщении #1707119 писал(а):
Но тогда, если речь об этом, тогда если мы решаем задачу четность скажем на 8 бит, и во время обучения мы подали все возможные примеры, и число ошибок =0, то это искомый глобальный минимум или нет?
Следствие из NTK теоремы (и теоремы Цыбенко): при стремлении размеров скрытых слоев к бесконечности, вероятность того, что при обучении будет достигнута единичная точность (на обучающей выборке), стремится к единице.

И да, эта вся кухня про поведение на обучающей выборке. Все имеющиеся теоретические результаты никак существенно не используют метки - все оценки остаются верными, если метки случайно перемешат. А для приложений важно как раз поведение на данных, которых в обучающем наборе не было.

 
 
 
 Re: О перцептроне Розенблатта
Сообщение25.10.2025, 17:17 
mihaild в сообщении #1707132 писал(а):
Формулировка в википедии
правильная?


Да, потому что я и писал :) (уже сам успел забыть, хорошо что нашли) да, но там нет приведено доказательство ...

-- Сб окт 25, 2025 18:22:24 --

mihaild в сообщении #1707132 писал(а):
Тут берется опять же минимум относительно функции потерь, по которой, собственно, учимся. И она должна быть дифференцируемой.


Ну, если мы определяем глобальный минимум как понятие, то накладывание ограничений типа функции потерь и дифференцируемости её - это избыточные предположения. У перцептрона, наверняка есть глобальный минимум, но нет ни функции потерь, и даже функция активации - пороговая - не дифференцируемая. Таким образом, вопрос остается тот же - это достижение нуля на обучающей выборки в смысле accuracy? И было бы, странно, если нет.

-- Сб окт 25, 2025 18:29:28 --

mihaild в сообщении #1707132 писал(а):
при стремлении размеров скрытых слоев к бесконечности

Странно, почему к бесконечности, а не к величине обучающей выборки - это было бы аналогом для перцептрона, а так нет. Хотя по факту, для бэкпропа нужно даже на порядок меньше нейронов, чем для перцептрона.

 
 
 
 Re: О перцептроне Розенблатта
Сообщение25.10.2025, 18:21 
mihaild в сообщении #1707025 писал(а):
Только почему-то она не используется в чистом виде, а используются всякие эвристические дополнения, вроде momentum.
Но даже и чистый градиентный метод, единственное что гарантирует (для невыпуклых функций) - это приход в локальный минимум, если шаг "достаточно" мал.
Потому что данные с шумом, нужно сглаживать, а также сам шаг как то можно подшаманить на основе истории градиентов, без применения дорогих методов второго порядка, в этом суть моментумом аи адамов. Ну и конечно, это всё основано на дифференцированность, когда много шума, и или функция слишком далека от гладкой, то тут уже инженерное творчество, работает — правильно. Я же про то что БП — реализация самой сути логики градиентной оптимизации, многослойных нейросетей, как вложенных функций.
tac в сообщении #1707105 писал(а):
Но именно, ноль ошибок на обучающей выборке - является критерием сходимости. Теорема о сходимости перцептрона как раз об достижении этого нуля.
А как же шум? Это только если нет шума, а он есть всегда, в реальных данных. Сойтись то оно конечно может, но при этом на тестовой выборке, ошибка будет больше чем если остановить раньше обучение.

Не буду гадать, но поставил бы сотню баксов, что и перцептрон Розенблатта также если обучить на данных с шумом, например синусоиду с шумом в 10-20% , до 100% акураси, или даже до каждого семпла, на тесте даст больше ошибок, чем если раньше остановить, как только акураси на лерне и тесте начнут расходиться.

 
 
 
 Re: О перцептроне Розенблатта
Сообщение25.10.2025, 19:02 
Аватара пользователя
tac в сообщении #1707141 писал(а):
Ну, если мы определяем глобальный минимум как понятие, то накладывание ограничений типа функции потерь и дифференцируемости её - это избыточные предположения
Вот теорема про обучение в режиме NTK - она для обучения градиентным спуском. И требует дифференцируемости (и на самом деле даже ограниченности второй производной).
tac в сообщении #1707141 писал(а):
Таким образом, вопрос остается тот же - это достижение нуля на обучающей выборки в смысле accuracy?
Нет, сама теорема из статьи - про минимум в смысле функции, которой учим. Из этого уже можно выводить следствия про accuracy.
tac в сообщении #1707141 писал(а):
Странно, почему к бесконечности
Потому что нейрон следующего слоя становится почти независим от каждого конкретного нейрона предыдущего слоя.

 
 
 
 Re: О перцептроне Розенблатта
Сообщение25.10.2025, 20:13 
this в сообщении #1707156 писал(а):
Не буду гадать, но поставил бы сотню баксов, что и перцептрон Розенблатта также если обучить на данных с шумом


https://habr.com/ru/articles/958498

Внимательно читаем ту же самую статью, и перечисляем сотку ... реквизиты куда высылать :)

Цитата:
Важно отметить, что была замерена точность прогноза во время обучения после каждой итерации. И именно, эти характеристики мы видим на рис. 7. Вначале обучения, пока внутренняя модель нейросети о задаче MNIST только формируется мы видим, как много на кривой “выбросов”, чем дальше обучение подходит к концу точность прогноза стабилизируется. Эта важная характеристика перцептрона TL&NL указывает на то, что он в отличии от MLP+backprop не может переобучится (overfiting). Более того, мы наблюдаем, что при обучении до нуля стабильность прогнозирования только увеличивается (линия выпрямляется).

 
 
 
 Re: О перцептроне Розенблатта
Сообщение27.10.2025, 14:53 
tac в сообщении #1707165 писал(а):
this в сообщении #1707156 писал(а):
Не буду гадать, но поставил бы сотню баксов, что и перцептрон Розенблатта также если обучить на данных с шумом


https://habr.com/ru/articles/958498

Внимательно читаем ту же самую статью, и перечисляем сотку ... реквизиты куда высылать :)

Цитата:
Важно отметить, что была замерена точность прогноза во время обучения после каждой итерации. И именно, эти характеристики мы видим на рис. 7. Вначале обучения, пока внутренняя модель нейросети о задаче MNIST только формируется мы видим, как много на кривой “выбросов”, чем дальше обучение подходит к концу точность прогноза стабилизируется. Эта важная характеристика перцептрона TL&NL указывает на то, что он в отличии от MLP+backprop не может переобучится (overfiting). Более того, мы наблюдаем, что при обучении до нуля стабильность прогнозирования только увеличивается (линия выпрямляется).

Причем здесь "статья", статья - как пост на форуме, это в древнем Египте то что было написано на папирусе считалось истиной, сейчас текст ничего не значит, только код или формула, запустил, проверил, вопросов нет.

И вы, вероятно, упускаете одну из ключевых идей машинного обучения: цель модели — не идеально воспроизвести обучающие данные, а научиться обобщать.

В реальных данных всегда присутствует шум, ошибки измерений, опечатки в разметке, естественная вариативность процесса или просто случайные флуктуации. Если алгоритм достигает 100 % точности на обучающей выборке, это почти наверняка означает, что он не просто выучил полезную закономерность, а подстроился под шум — то есть переобучился.

А поскольку шум в тестовой выборке другой (шум априори случаен!), модель, "запомнившая" обучающий шум, будет работать на тесте хуже, чем более простая и устойчивая модель, то есть не заучившая 100%но лёрн. Это классический пример компромисса смещение–дисперсия.

Именно поэтому в ML так важны механизмы контроля сложности модели: В итеративных алгоритмах (например, нейросетях) — это ранняя остановка, на ряду с потбором сложности(слои, нейроны). В kNN — параметр k: маленькое k делает модель чувствительной к выбросам и шуму(но зато 100% акураси на тесте), большое k сглаживает решения, но может привести к недообучению. В деревьях ограничения на глубину дерева, минимальное число объектов в листе, регуляризация и т.п. Даже такие методы, как моментум или адам, помимо ускорения сходимости, косвенно влияют на обобщающую способность: они сглаживают траекторию градиентного спуска и "пролетая" мимо острых, переобученных минимумов в пользу более плоских и устойчивых.

Чем выше уровень шума в данных, тем проще должна быть модель, то есть не запоминать обучающую выборку. Это не просто эвристика, а следствие теории обобщения: сложные модели имеют высокую емкость и склонны подстраиваться под случайные флуктуации, если им не мешать. Поэтому подбор гиперпараметров, контролирующих сложность, — это не "настройка ради настройки", а основной способ борьбы с переобучением и адаптации к качеству данных.

Если вы видите 100 % акураси на трене и гораздо меньше на тесте — это не "почти идеально", это красный флаг переобучения, и модель в таком виде, скорее всего, бесполезна на практике.

код: [ скачать ] [ спрятать ]
Используется синтаксис Python
<div class="codetitle"><b>Код:</b></div><div class="codecontent">import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# ----------------------------
# 1. Генерация данных: два класса с нелинейной границей
# ----------------------------
np.random.seed(42)
n_samples = 400

# Генерируем точки в круге радиуса 1.5
r = np.sqrt(np.random.uniform(0, 1.5**2, n_samples))
theta = np.random.uniform(0, 2 * np.pi, n_samples)
x = r * np.cos(theta)
y = r * np.sin(theta)

# Истинная граница: круг радиуса 1 → класс 1 внутри, 0 снаружи
labels = (r < 1).astype(int)

# Добавляем 20% шума в метки
noise_idx = np.random.choice(n_samples, size=int(0.2 * n_samples), replace=False)
labels[noise_idx] = 1 - labels[noise_idx]

X = np.column_stack((x, y))

# Разделение
X_train, X_test, y_train, y_test = train_test_split(
    X, labels, test_size=0.5, random_state=42, stratify=labels
)

# ----------------------------
# 2. Обучение моделей с разной сложностью (k от 1 до 30)
# ----------------------------
k_values = np.arange(1, 50)
train_acc = []
test_acc = []
models = {}

for k in k_values:
    model = KNeighborsClassifier(n_neighbors=k)
    model.fit(X_train, y_train)
    models[k] = model
   
    train_acc.append(accuracy_score(y_train, model.predict(X_train)))
    test_acc.append(accuracy_score(y_test, model.predict(X_test)))

best_k = k_values[np.argmax(test_acc)]
print(f"Оптимальное k: {best_k}, точность на тесте: {max(test_acc):.3f}")

# ----------------------------
# 3. Визуализация
# ----------------------------
fig, axes = plt.subplots(1, 2, figsize=(14, 6))

# --- График 1: 2D данные + фоновая заливка ---
ax = axes[0]

# Сетка для предсказаний
xx, yy = np.meshgrid(np.linspace(-1.6, 1.6, 300), np.linspace(-1.6, 1.6, 300))
grid = np.c_[xx.ravel(), yy.ravel()]

# Выбираем три значения k: переобучение (k=1), оптимум, недообучение (k=30)
k_over = 1
k_opt = best_k
k_under = min(30, max(k_values))

# Цвета и стили
cases = [
    (k_over, 'Переобучение (k=1)', 'red'),
    (k_opt, f'Оптимум (k={k_opt})', 'green'),
    (k_under, f'Недообучение (k={k_under})', 'blue')
]

# Фон: заливка по предсказаниям модели
for k, title, color in cases:
    Z = models[k].predict(grid).reshape(xx.shape)
    # Используем contourf для заливки фона
    ax.contourf(xx, yy, Z, levels=[-0.5, 0.5, 1.5], colors=['#ffcccc', '#cce5ff'], alpha=0.3)

# Теперь рисуем контуры границы (уровень 0.5) поверх фона
for k, title, color in cases:
    Z_proba = models[k].predict_proba(grid)[:, 1].reshape(xx.shape)
    ax.contour(xx, yy, Z_proba, levels=[0.5], colors=color, linewidths=2, label=title)

# Точки данных
ax.scatter(X_train[y_train == 0, 0], X_train[y_train == 0, 1],
           c='lightcoral', edgecolor='k', s=25, alpha=0.7, label='Train: класс 0')
ax.scatter(X_train[y_train == 1, 0], X_train[y_train == 1, 1],
           c='lightblue', edgecolor='k', s=25, alpha=0.7, label='Train: класс 1')
ax.scatter(X_test[y_test == 0, 0], X_test[y_test == 0, 1],
           c='red', marker='x', s=20, alpha=0.7, label='Test: класс 0')
ax.scatter(X_test[y_test == 1, 0], X_test[y_test == 1, 1],
           c='blue', marker='x', s=20, alpha=0.7, label='Test: класс 1')

# Истинная граница
circle = plt.Circle((0, 0), 1, color='black', fill=False, linestyle=':', linewidth=1.5, label='Истинная граница')
ax.add_patch(circle)

ax.set_xlim(-1.6, 1.6)
ax.set_ylim(-1.6, 1.6)
ax.set_aspect('equal')
ax.set_title('Фоновая заливка и границы решений при разных k')
ax.legend(loc='upper right', fontsize=8)

# --- График 2: кривые точности ---
ax = axes[1]
ax.plot(k_values, train_acc, 'o-', color='blue', label='Train accuracy')
ax.plot(k_values, test_acc, 'o-', color='red', label='Test accuracy')
ax.axvline(best_k, color='gray', linestyle='--', label=f'Лучшее k = {best_k}')
ax.set_xlabel('k (число соседей)')
ax.set_ylabel('Accuracy')
ax.set_title('Зависимость качества от сложности модели (k-NN)')
ax.legend()
ax.grid(True, linestyle=':', alpha=0.7)
ax.set_xticks(k_values[::2])  # чтобы не перегружать ось

plt.tight_layout()
plt.show()</div>



Изображение

(Оффтоп)

Вам бы неплохо вспомнить лекции Константина Вячеславовича, их каждый ML-щик, хотя бы раз в год должен обязательно пересматривать, они священное писание. Лучшие из нас помнят наизусть их.

 
 
 
 Re: О перцептроне Розенблатта
Сообщение27.10.2025, 18:11 
Это обязательно изучите: https://deepmachinelearning.ru/docs/Machine-learning/Overfitting-and-underfitting

 
 
 
 Re: О перцептроне Розенблатта
Сообщение27.10.2025, 19:06 
this в сообщении #1707295 писал(а):
Если вы видите 100 % акураси на трене и гораздо меньше на тесте — это не "почти идеально", это красный флаг переобучения, и модель в таком виде, скорее всего, бесполезна на практике.


Вот Вы не читаете, что написано в статье, не смотрите графики, и поэтому пишите свои глупости, думая, что объясняете мне что-то новое. Вот когда посмотрите и спросите, я вам объясню. А пока у вас словесная эквилибристика относящаяся только в вашему бэкпропу, и то вряд ли.

А причем тут kNN я вообще не понял. Ну, давайте разберем ваш график, что он показывает? Что вы не можете обучить kNN на обучающей выборке на 100%, я вижу только это. И вам бы не мешало бы на это обратить внимание. А потом, обратить внимание, что чем выше количество соседей, TrainAcc стабильнее ближе к TestAcc. И как вы думаете, что случилось бы, если бы вы все же смогли бы обучить kNN с 200 соседями до 100% ? (ну хотя бы с 100 соседями иначе это вообще ни о чем). И может быть тогда, вы начнете понимать, что происходит в перцептроне. А так вы смотрите на графики и видите фигу - а на самом деле, падает ваш TrainAcc, а TestAcc просто стабилизируется на том уровне до которого вы смогли добраться.

И осталось, только мысленно сделать один шаг, и понять почему у меня представлены графики 10k-20k-30k и что именно происходит с повышением сложности, если метод способен обучаться до нуля.

(Оффтоп)

Вы сбавьте ваш пафос, думая что ваш оппонент в чем то не разбирается. И тогда поговорим. Люди которые тратят время на код и графики как правило могут конструктивно общаться, но почему то им не хватает уважения к оппоненту.

 
 
 
 Re: О перцептроне Розенблатта
Сообщение27.10.2025, 20:09 
точнее 5k-10k-20k, и подумайте почему я не остановился на 20 итерации (рис.6 для 5к) , когда случайный выброс дал лучшие предсказание? Потому что это случайное предсказание, а вы по вашей "теории" на недоалгоритмах ищите случайные предсказания. Вот, чего на самом деле стоит ваша "теория" о переобучении. При этом, вы как раз не можете обобщить такое не 100% обучение, на настоящую экзаменационную выборку (не путать с тестовой), в моем же случае, я получаю стабильность для всех возможных примеров (в рамках их похожести), и поэтому реально обобщаю, а не подгоняю под частный случай тестовой.

 
 
 
 Re: О перцептроне Розенблатта
Сообщение28.10.2025, 13:16 
tac в сообщении #1707369 писал(а):
this в сообщении #1707295 писал(а):
Если вы видите 100 % акураси на трене и гораздо меньше на тесте — это не "почти идеально", это красный флаг переобучения, и модель в таком виде, скорее всего, бесполезна на практике.


Вот Вы не читаете, что написано в статье, не смотрите графики, и поэтому пишите свои глупости, думая, что объясняете мне что-то новое. Вот когда посмотрите и спросите, я вам объясню. А пока у вас словесная эквилибристика относящаяся только в вашему бэкпропу, и то вряд ли.

А причем тут kNN я вообще не понял. Ну, давайте разберем ваш график, что он показывает? Что вы не можете обучить kNN на обучающей выборке на 100%, я вижу только это. И вам бы не мешало бы на это обратить внимание. А потом, обратить внимание, что чем выше количество соседей, TrainAcc стабильнее ближе к TestAcc. И как вы думаете, что случилось бы, если бы вы все же смогли бы обучить kNN с 200 соседями до 100% ? (ну хотя бы с 100 соседями иначе это вообще ни о чем). И может быть тогда, вы начнете понимать, что происходит в перцептроне. А так вы смотрите на графики и видите фигу - а на самом деле, падает ваш TrainAcc, а TestAcc просто стабилизируется на том уровне до которого вы смогли добраться.

И осталось, только мысленно сделать один шаг, и понять почему у меня представлены графики 10k-20k-30k и что именно происходит с повышением сложности, если метод способен обучаться до нуля.

(Оффтоп)

Вы сбавьте ваш пафос, думая что ваш оппонент в чем то не разбирается. И тогда поговорим. Люди которые тратят время на код и графики как правило могут конструктивно общаться, но почему то им не хватает уважения к оппоненту.
Кнн – для примера, как простейший алгоритм МЛ, стандартный бейслайн для примеров и простых тестов, по ряду причин. Кнн — не обучается, его модель — сам датасет, при к = 1 это чистый лукап вход → выход, ищется ближайший к вектору инпут и с него берётся таргет как выход, при к>1 усредняются ближайшие к таргетов. На графике вино что при к = 1 на лёрне качество 100% а на тесте чтото около 60, то есть переобучение, но по мере роста k достигается максимум чуть более 75% на тесте при к 7...11, кривые сближаются, а потом уже падает качество.

Поймите суть, в данном эксперименте, если посмотрите на код, на комментарии в нём, шум 20%, то есть ни одна модель не может дать акураси больше 80% ТЕОРЕТИЧЕСКИ, а если вы обучаете до 100% на лёрне, это автоматически значит что модель выучила этот 20%й шум и будет ХУЖЕ. Вот в чем идея примера. Это не зависит от модели МЛ, бэкпропа, иттераций и тп.

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

 
 
 
 Re: О перцептроне Розенблатта
Сообщение28.10.2025, 14:16 
this в сообщении #1707422 писал(а):
стандартный бейслайн для примеров и простых тестов, по ряду причин. Кнн — не обучается, его модель — сам датасет, при к = 1 это чистый лукап вход → выход, ищется ближайший к вектору инпут и с него берётся таргет как выход, при к>1 усредняются ближайшие к таргетов. На графике вино что при к = 1 на лёрне качество 100% а на тесте чтото около 60, то есть переобучение, но по мере роста k достигается максимум чуть более 75% на тесте при к 7...11, кривые сближаются, а потом уже падает качество.

Поймите суть, в данном эксперименте, если посмотрите на код, на комментарии в нём, шум 20%, то есть ни одна модель не может дать акураси больше 80%

Камон! Если намбер параметров (т.е. вейтов) матчит намбер инпутов и самплов (или мо), то аккураси маст быть 100 %.

 
 
 [ Сообщений: 126 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 9  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group