Вот давайте на N умножим (чет в мире походу сто дураков и осталось, которые знают теорию ML более-менее, вплоть до ограничений и геометрических примитивов. Чтобы любые НС в один слой писать и гарантированно обучать :)
Проблемы даже с Тангенциальными Коэффициентами, да? :) )
Это довольно очевидный метод, уже описанный (но малоизвестный).
Вообще есть более простой и наглядный способ доказать, что пространство перцептрон двухслойный разделяет -
Сказать, что в слое R вычисляется логическая функция от ограничений, задаваемых гиперплоскостями из A слоя.
(потому что x1*w1+x2*w2+w3 - ненормализованное расстояние с направлением (directed distance). Или по одну сторону от плоскости с началом координат точка (знак +) или по разные (знак -))
и так, из A слоя нам приходят нули, или какие-то константы (если мы по нужную сторону от прямой\плоскости)
например x1+x2+x3>450 true, если X1=200 true, X2 = 200 true и X3= 50 true
OR Добавляется аналогично. x1+x2+x3+x4+x5>550, x4=100 x5=100, x1&x2&x3&(x4|x5)
Аналогично, через сумму, можно представить абсолютно любое логическое выражение.
В чем подвох с персептороном?
Вы для персептрона замучитесь знаки перебирать (+1 или -1 в S и далее. Там за 2^300 знаков). А на уровне ограничений - как формовка пластика - просто берете N плоскостей в бесконечности, и двигаете их за T. Потом дырки выковыриваете (которые представлены выражением !(x1&x2&x3) = !x1|!x2|!x3). Все, модель любой размерности за T, или как делать свой Transformer на домашнем ПК (без шуток, привет W2V).
Так же вы всегда, даже находясь на вершине человеческой цивилизации - в Риге (плач, MiT), нарисовать как SAR разделяет пространство, и убедиться что это - кривая мозайка :)
Figure 6: An example of the Perceptron algorithm on different toy datasets. The left 2 images illustrate good fits that would likely generalize quite well, and the right 2 illustrate proper data separation but a poor fit.
The limitations of the Perceptron algorithm, particularly its inability to find an “optimal” hyperplane, leads us to more advanced algorithms. One such algorithm is the Support Vector Machine (SVM)
А про глупости про шум - тут читайте ссылку, там есть уравнения, из них все понятно )
И вот про прекрасную разделимость (без полярных координат не работает. В интернете есть и другие примеры :) ):
Да, если вы хотите взять число A равным числу элементов выборки - посмотрите уже SVM ) И Gaussian Kernel-ы.
Так вы и сжатия не получите (вы всегда можете просто находить ближайший вектор из обучающей выборки, за линейное время, да. А отсортировав вообще за Nlog(N)),
да еще на все минусы персептронов нарветесь (это плоскости, в наборе (1,1) , (1,0), (1,1.1) вы векторы 1 и 3 уже с трудом различите).
Не хватило научности - делайте объединения, пересечения и разности полученных множеств. На основе интегральных показателей )
в следующем разделе, покажем, что ИНС может обходится без многослойной архитектуры, и это не влечет за собой экспоненциального роста количества нейронов среднего слоя для того, чтобы запомнить обучающую выборку;
а в разделе «О прогнозировании», вернемся к вопросу оправданности иерархического выделения признаков для прогнозирования.
Вкратце - вы генерируете псевдонаучные публикации при помощи ChatGPT
Плоскостями\полигонами\Гауссовыми ядрами и прочими геометрическими примитивами можно выделить вообще всe. А если еще и операциями с множествами добавить - то еще и неплохо сэкономить в плане количества переменных.
И это довольно очевидно :)
Может ограничение метода классификации секущими плоскостями и приводит в тупики переобучений, не?
Нет, в тупик переобучений приводит именно то, что мы не выделяем все точки в пространстве при помощи геом. примитивов, а то что мы применяем нелинейные функции по сто раз подряд (т.е. чуть ли не хэширование выходит :) )
Доходит до того, что изменение 1 пикселя приводит к краху работы классификатора.
Корректнее говорить не Исходный сигнал, а исходные координаты многомерной точки\вектора.
После 10-20 таких преобразований, тем более нелинейных, уже тяжело что-то сопоставить. Да и приходится делать обратное распространение ошибки. А если просто рисовать многомерные плоскости - все просто
Что еще?
Сколько ЗП PhD?
4(пока учишься)-8(уже умеешь) к$
(Это у рядовых, даже у дурачков из Google ЗП больше).
Вот давайте на N умножим (чет в мире походу сто дураков и осталось, которые знают теорию ML более-менее, вплоть до ограничений и геометрических примитивов. Чтобы любые НС в один слой писать и гарантированно обучать :)
Проблемы даже с Тангенциальными Коэффициентами, да? :) )
Это довольно очевидный метод, уже описанный (но малоизвестный).
Вы наверное шутите.
Я же сказал - я читал о персептронах и ограничениях и линейном программировании довольно много.
Мой уровень понимания НС - я могу ОБУЧАТЬ модели в 200 Гб ... Дома.
https://habr.com/ru/articles/944462/comments/#comment_28834738
Могу даже найти оригинальную статью, правда там на уровне логических функций бред пошел (там не нужен DreamCoder).
Вкратце - есть ограничения, например линейные.
Все, что по одну сторону от 3-х пересекающихся линий находится как c1&c2&c3
все, что находится вне трех линий !c1|!c2|1c3.
Объединение двух и более площадей\объёмов - через или:
v1 = c1&c2&c3
vS = v1| v2
Вот такие операции задания множеств и нахождения объединений\пересечений\разности.
Вообще есть более простой и наглядный способ доказать, что пространство перцептрон двухслойный разделяет -
Сказать, что в слое R вычисляется логическая функция от ограничений, задаваемых гиперплоскостями из A слоя.
(потому что x1*w1+x2*w2+w3 - ненормализованное расстояние с направлением (directed distance). Или по одну сторону от плоскости с началом координат точка (знак +) или по разные (знак -))
и так, из A слоя нам приходят нули, или какие-то константы (если мы по нужную сторону от прямой\плоскости)
например x1+x2+x3>450 true, если X1=200 true, X2 = 200 true и X3= 50 true
OR Добавляется аналогично. x1+x2+x3+x4+x5>550, x4=100 x5=100, x1&x2&x3&(x4|x5)
Аналогично, через сумму, можно представить абсолютно любое логическое выражение.
В чем подвох с персептороном?
Вы для персептрона замучитесь знаки перебирать (+1 или -1 в S и далее. Там за 2^300 знаков). А на уровне ограничений - как формовка пластика - просто берете N плоскостей в бесконечности, и двигаете их за T. Потом дырки выковыриваете (которые представлены выражением !(x1&x2&x3) = !x1|!x2|!x3). Все, модель любой размерности за T, или как делать свой Transformer на домашнем ПК (без шуток, привет W2V).
https://coub.com/view/49sjid
Так вот - Интерпретация и модернизация персептрона это то, что я тут и написал.
а интерпретация и оптимизация перцептрона где?
Давайте подытожим где вы не угадали:
1) SVM лучше перцептрона по памяти и качеству
2) даже небольшой сдвиг всех входных координат или одной координаты намного полностью нарушает работу персептрона (и нейросетей)
3) Гарантий линейной разделимости всего что поступает в R слой нет
4) Существуют куда более простые и понятные модели, без преобразования координат (еще с 1990-х)
5) В последнем примере - на практике хватает одного элемента. (это последний бит)
Послушайте, вас, экспертов на хабре много (и по DDD, и по Classical ML).
https://en.wikipedia.org/wiki/Linear_separability
Почти гарантированно линейно разделимы, если N<2*K (N - количество точек, K - размерность пространства).
Еще немного подумайте.
и так, после A слоя у нас - новый набор векторов (каждая координата - выше или ниже определенной плоскости данная точка).
Этот набор линейно разделим (увы, R - только одна плоскость :))?
Нет. И гарантии линейной разделимости нет.
Все, чудеса персептрона из 2-х слоев закончились ).
Да, бред отпадает сам собой, если это написано даже в учебных материалах MiT.
https://openlearninglibrary.mit.edu/assets/courseware/v1/8f4f9aca5581dde50291b0d0e29d0148/asset-v1:MITx+6.036+1T2019+type@asset+block/notes_chapter_The_Perceptron.pdf
Так же вы всегда, даже находясь на вершине человеческой цивилизации - в Риге (плач, MiT), нарисовать как SAR разделяет пространство, и убедиться что это - кривая мозайка :)
Так и есть ) И про линейную разделимость, и PoorFir.
https://www.ryanirl.com/blog/perceptron
А про глупости про шум - тут читайте ссылку, там есть уравнения, из них все понятно )
И вот про прекрасную разделимость (без полярных координат не работает. В интернете есть и другие примеры :) ):
https://insidelearningmachines.com/perceptron_algorithm_from_scratch
В общем, читайте литературу, просвещайтесь.
Нет, конечно. Вам лекции читать никто не собирается, и пересказывать как шел ML с 60-х.
Вам явно указали и на другие недостатки (вроде проблем с разделимостью, смещением одной из N координат, небольшой сдвиг всех координат, и т.д.).
Если вы прочли хотя бы с десяток статей, наверное знаете, что перцептроны дают невнятную не интерпретируемую мозаику из линий.
В лучшем случае вроде такого:
И если речь идет про модели по размеру сравнимые с данными для обучения - лучше использовать SVM.
Так вы и написали
SVM в этом случае даст несравнимо лучшие результаты.
Возьмите и нарисуйте.
Эвклидово\Манхэттенское расстояние должно подойти. Для определения принадлежности к классу же.
Да, если вы хотите взять число A равным числу элементов выборки - посмотрите уже SVM ) И Gaussian Kernel-ы.
Так вы и сжатия не получите (вы всегда можете просто находить ближайший вектор из обучающей выборки, за линейное время, да. А отсортировав вообще за Nlog(N)),
да еще на все минусы персептронов нарветесь (это плоскости, в наборе (1,1) , (1,0), (1,1.1) вы векторы 1 и 3 уже с трудом различите).
Не хватило научности - делайте объединения, пересечения и разности полученных множеств. На основе интегральных показателей )
Вкратце - вы генерируете псевдонаучные публикации при помощи ChatGPT
Напишите уравнения, все станет ясно.
Вы хотите изобрести Персептрон с нелинейной функцией активации.
Потом вы захотите несколько персептронов в ряд еще поставить (потому что они нелинейные, и теперь 1000 персептронов не сводится к 1).
А 1000 персептронов в ряд с линейной функцией активации сводятся к одному.
Что вы не поняли:
1) персептрон и ИНС базируются на уравнении многомерной плоскости
2) многослойный персептрон без функции активации сводится к однослойному
3) в ИНС нейрон - тот же персептрон, только с нелинейной функцией активации
4) применять сто раз подряд нелинейные функции и ограничивать множества многомерными плоскостями - не одно и то же
Да, тухлый, там даже вентиляции нет в Сан-Сити.
:)
Да вот вам 8 только элементарных.
Ну прочитайте хотя бы пару публикаций о персептнонах\перцептронах.
Нелинейность нужна только лишь потому что перцептрон из 1000 линейных слоев прямо математически сводится к однослойному перцептрону :)
Тут абстракции и потекли :)
Плоскостями\полигонами\Гауссовыми ядрами и прочими геометрическими примитивами можно выделить вообще всe. А если еще и операциями с множествами добавить - то еще и неплохо сэкономить в плане количества переменных.
Нет, в тупик переобучений приводит именно то, что мы не выделяем все точки в пространстве при помощи геом. примитивов, а то что мы применяем нелинейные функции по сто раз подряд (т.е. чуть ли не хэширование выходит :) )
Доходит до того, что изменение 1 пикселя приводит к краху работы классификатора.
Корректнее говорить не Исходный сигнал, а исходные координаты многомерной точки\вектора.
После 10-20 таких преобразований, тем более нелинейных, уже тяжело что-то сопоставить. Да и приходится делать обратное распространение ошибки. А если просто рисовать многомерные плоскости - все просто
Ребята, там уже выкатываются из специальности :)