При этом не понимаете, что писать в <TargetFramework>. Поменяв net7.0 на netcoreapp2.0, вы сделали хуже, потому что если у .NET 7 поддержка закончилась в мае 2024, у .NET Core 2.0 - в октябре 2018.
И? Моя задача сделать либу, которая поддерживается наибольшим числом проектов. Core2.0 - самое то.
Да, нужно разбивать на несколько пакетов. Unity отдельно, Microsoft DI отдельно. Нет, разбираться в 3+ пакетах никому не придётся. Кому нужен RegistrationByAttributes для Microsoft DI, те по-прежнему поставят один пакет.
Зачем? Пакеты по 100 строк кода? При этом без тяжелых зависимостей (Только Abstractions)?
Во-вторых, лично я с возрастом начал ценить простоту. Я выберу 200 строк скучного, повторяющегося, но понятного как пять копеек кода, нежели магический чёрный ящик на 20 строк.
400-800-1000 строк скучного, повторяющегося кода, который всегда вызывает конфликты при merge :)
1) Отсекать по минимальным\максимальным значениям по осям
2) Добавить еще M гиперплоскостей неподалеку со слегка модифицированными угловыми коэффициентами (чтобы не тащить во время оптимизации гиперплоскости из +inf)
и т.д.
А за фолд респект, правда есть ньюансы:
1) Температура
2) Персептрон не годится, лучше SVM
3) наличие воды (да, AlphaFold показывает погоду на марсе, это выяснили в CAS) и pH
меняют картину чуть ли не полностью (а еще ситуация в соседних участках)
Ну и алгоритмически это полностью решаемо. Лучше делать на уровне сил (чтобы смотреть, как происходит сворачивание).
Функция 7-10 переменных, или Titanic Dataset :)
Ну и хоть концентрацию электронов, примерную скорость, направление перемещения у участков белка (фолд-3)
Вот давайте на 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
И? Моя задача сделать либу, которая поддерживается наибольшим числом проектов. Core2.0 - самое то.
Зачем? Пакеты по 100 строк кода? При этом без тяжелых зависимостей (Только Abstractions)?
400-800-1000 строк скучного, повторяющегося кода, который всегда вызывает конфликты при merge :)
Тут согласен.
Это который превращает boilerplate регистраций в еще менее поддерживаемый? И требует перерегистраций? Где истина-то?
Ого, то есть если вероятность ошибки за шаг 0.8,
то за 100 шагов будет правильный результат с шансом 0,8^100=2e-10
А если ошибка на каждом шаге 0.9 то 0,9^100 = 2e-5
Научный прорыв!
Боже...
Да потрудитесь обьяснить-то!
Есть кстати тысячи улучшений (За N времени):
1) Отсекать по минимальным\максимальным значениям по осям
2) Добавить еще M гиперплоскостей неподалеку со слегка модифицированными угловыми коэффициентами (чтобы не тащить во время оптимизации гиперплоскости из +inf)
и т.д.
А за фолд респект, правда есть ньюансы:
1) Температура
2) Персептрон не годится, лучше SVM
3) наличие воды (да, AlphaFold показывает погоду на марсе, это выяснили в CAS) и pH
меняют картину чуть ли не полностью (а еще ситуация в соседних участках)
Ну и алгоритмически это полностью решаемо. Лучше делать на уровне сил (чтобы смотреть, как происходит сворачивание).
Функция 7-10 переменных, или Titanic Dataset :)
Ну и хоть концентрацию электронов, примерную скорость, направление перемещения у участков белка (фолд-3)
И называется это
https://ru.wikipedia.org/wiki/Графический_метод_решения_задачи_линейного_программирования
Что еще?
Сколько ЗП 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) применять сто раз подряд нелинейные функции и ограничивать множества многомерными плоскостями - не одно и то же