All streams
Search
Write a publication
Pull to refresh
63
0.5
Михаил @michael_v89

Программист

Send message

тут не куда упрощать, так как уже идет искажение смысла

Я не предлагал упрощать само объяснение, я предлагал объяснять то же самое простыми словами. Это не одно и то же.
Например, можно заменить слово "нелинейный" на его определение.

нелинейный
"отклоняющийся от прямо пропорциональной зависимости"

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

Во-первых, тут явно видно, что выражение выглядит не очень осмысленным, и лучше его переформулировать.
Во-вторых, даже если поискать какой-то смысл, то получится, что зависимость есть, хотя и не прямо пропорциональная. О чем я и говорю.

Тремя черточками вы линию синуса не опишете.
Смотрите, я обучил нейросеть, где всего 3 нейрона

И что это должно доказывать? У меня вроде прямым текстом написано "тремя черточками", а не "тремя нейронами".
Слова "если описывать очень упрощенно" вы похоже тоже проигнорировали.

3 сигмоидных нейрона
И никаких чёрточек

А ничего, что сигмоида это не черточка, и с определенными коэффициентами выглядит похоже на часть волны синуса? Похоже вы даже не понимаете, как работает ваша нейросеть.

и этот результат как-то не похож на то, что вы описали

Я писал "приближают набором ломаных черточек". Ваш рисунок именно так и выглядит. Что на что не похоже?

которая выглядела бы угловато, но равномерно

Это зависит от того, как вы обучаете.

Даже если взять 10000 нейронов, всё выглядит не так, как ожидается:

Этот график мало отличается от предыдущего. Скорее всего у вас что-то не то с обучающей выборкой или с алгоритмом обучения.

Как ваше описание будет работать, если исходной функции просто нет?

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

При обучении нейросети нет никакой исходной функции

Теорема Цыбенко
Универсальная теорема аппроксимации — теорема, доказанная Джорджем Цыбенко в 1989 году, которая утверждает, что искусственная нейронная сеть прямой связи с одним скрытым слоем может аппроксимировать любую непрерывную функцию многих переменных с любой точностью.

Я не понимаю, зачем вы спорите, если незнакомы с предметом.

В смысле вы на полном серьезе думаете, что это буквально "само собой" и усиленно с этим боретесь?

"Так и получается не правильное представление об обучении, уже идет искажение смысла, как в вашем упрощенном описании."

Очень часто форма не важнее содержания.

Я не умею читать мысли, я читаю то, что написано.

Аппроксимация это то, как работают нейросети
На вход можно подавать всё, что угодно

Я знаю, как работают нейросети.

ограничением является количество нейронов и подбор весов.

Если описывать очень упрощенно, то они любую исходную функцию приближают набором ломаных черточек/плоскостей. Поэтому чем больше черточек, тем точнее приближение. Тремя черточками вы линию синуса не опишете.

они находят нелинейный

Опять синоним слова "магический". Попробуйте не использовать умные термины и объяснять простыми словами. Если ваше объяснение всё еще будет выглядеть корректным, тогда в нем не будет магии.

Но способ нахождения не определен и не прослеживается

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

начинают проявляться новые эмерджентные свойства модели. Сами собой.
но при этом фраза "сами собой" тут уместна и хорошо передает смысл

Само собой ничего не появляется. Поэтому эта фраза неуместна и ложна.
Я вам уже объяснил, что веса, записанные в файл, никаких свойств не проявляют.

Вы игнорируете аппроксимацию и фокусируетесь только на эмерджентности.

Я фокусируюсь на том, что вы сказали. Для указания на это я привел цитаты.

Эмерджентность LLM проявляется благодаря математической аппроксимации

Выглядит так, что вы не знаете, что означает слово "аппроксимация". Она не дает ничего нового, наоборот, она теряет некоторые детали.

Аппроксимация
Аппроксима́ция (от лат. proxima — ближайшая) или приближе́ние — упрощение, замена сложного более простым, но схожим в результате.
Остаточный член — разность между заданной функцией и функцией её аппроксимирующей.

У 100 чисел нет свойства вести чат с пользователем, а у 4000000000 такое свойство появляется
Это всё еще просто числа

Сгенерировал 4000000000 случайных чисел, записал в файл, никакого свойства вести чат у них не появилось. Наверно еще что-то нужно? Вот мы и начали узнавать причины, которые приводят к нужному эффекту.

Что именно вы хотите отслеживать и описывать?

Я нигде не говорил, что хочу что-то отслеживать. Я сказал, что это возможно сделать, и поэтому некорректно говорить, что что-то появляется само по себе из ниоткуда.

но просто увеличивая количество чисел в какой-то момент начинают проявляться новые свойства

Вот именно про это я и говорю. Это некорректное утверждение. Само по себе ничего не появляется. Всегда можно найти причину почему они появились.

а вот почему приобретаются какие-то новые свойства и какие именно, это не выводится просто из отслеживания и описания.

Вот именно что выводится. Это сложно сделать силами одного человека, но от этого оно никуда не исчезает.

но каким путём нельзя описать, в этом и смысл нейросетей,

Можно, в этом смысл моего коммента.

Карточному домику вы задали структуру которая полностью объясняется трением и геометрией,

Вот и в нейросетях структура полностью объясняется законами взаимодействия чисел. Сравнение 2 чисел для выбора большей вероятности это прямой аналог карт, наклоненных друг на друга. Если одна карта создает силу больше, они упадут в одну сторону, если другая, в другую, если одинаковые, будут стоять и оказывать влияние на другие карты (числа).

но тоже самое не будет работать в космосе

Я и не говорил, что будет. Причины, почему оно не работает в космосе, тоже можно отследить, это тоже не появляется из ниоткуда.

споря с аналогиями вы очень быстро уходите от изначального смысла идеи

Ну так не спорьте, я ее привел для пояснения, а не в качестве доказательства.

- апелляция к авторитету является логической ошибкой.
- Нет, не является.

Логическая ошибка
"апелляция к авторитету"

Мне не известно что такое "категория номер 1".

И? Вы попросили отнести к категории, я отнес к категории.

Так какое из них?

Любое из этих определений является определением. Вы же попросили привести определение, я привел.

Но для сложных понятий, процессов и явлений такой метод не подходит: нужно выделить существенный признак и обобщить по нему.

Для последовательности букв последовательность букв это существенный признак. Он является определяющим.

Чего вы в своём определении не сделали

Поэтому сделал. Но вы же говорили, что для определения надо задать категорию. Я отвечал на это утверждение.

ибо индивидуальный язык невозможен

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

С точки зрения удобства в коде нам конечно было бы лучше всего сделать так:
// Инвариант: нельзя получить скидку по неактивной карте
return null;

А потом приходит менеджер и говорит "У меня в админке для неактивных карт не показывается какая там была скидка, сделайте чтобы показывалось".

Минусы такого решения очевидны:
Существует возможность изменить валюту накопления, забыв сбросить уровни лояльности.

Такая возможность существует даже с логикой в сущностях.
Пример есть прямо у вас в статье, только наоборот. Вы в LoyaltyProgram::changeCurrency() пропустили установку newCurrency.

За транзакцию отвечает сервис, а значит, нужно следить и за тем, чтобы никто не забывал оборачивать весь код с бизнес-логикой в транзакции по всей кодовой базе.

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

$this->levels->resetRequiredAmounts(); //внутри foreach по уровням

Сама необходимость такого коммента говорит о том, что ваш код менее понятный, чем был в сервисе.

Теперь изменение валюты невозможно без обнуления настроек уровней

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

class LoyaltyProgram
{
  public function changeCurrency(LoyaltyCurrency $newCurrency): void
  {
    ...
  }
  
  public function changeCurrencyNew(LoyaltyCurrency $newCurrency): void
  {
      if ($newCurrency === $this->currency) {
          return;         
      }
      
      $this->currency = $newCurrency;
      
      // не сбрасываем уровни
  }
}

а сохранение всего агрегата происходит атомарно

Ну то есть в проекте появилось больше магии. К тому же транзакция теперь запускается всегда, а не только когда нужно, что влияет на производительность.

и мы при написании кода об этом можем больше не задумываться

Зато должны задумываться о куче других вещей. Например искать где находится foreach по уровням.
А также: писать доменный сервис или не писать, как не загружать историю всех событий, как изменить свойства вложенного объекта LoyaltyCard, и т.д.

не может быть ни микросекунды времени, когда ваш агрегат содержит неправильные с точки зрения бизнес-логики данные
в приведенном выше примере объект класса LoyaltyProgram всегда содержит в себе консистентные данные

Это ложь. В середине вызова changeCurrency, после установки newCurrency (которой у вас нет) и до вызова resetRequiredAmounts объект класса LoyaltyProgram содержит неконсистентные данные.
А если оценивать только после завершения метода с логикой, то и с сервисом надо так же делать.

Когда вся логика сосредоточена в агрегатах, сделать это сложнее.

Да нисколько не сложнее. Точно так же берем и пишем новый метод с любой логикой.

При сохранении агрегата в репозитории мы обеспечим атомарное сохранение и того и другого.
$changesObserver = DoctrineEntityChangesObserver::instance();
foreach ($changesObserver->getNewMaterials() as $material)

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

DomainEventPublisher::instance()->publish(new LoyaltyCardRequested())
$event->collection->initCard($card);

Угу, добавим еще больше магии. Убрали event subscriber, и всё перестало работать. Где тут простота поддержки, для которой мы хотели использовать DDD?

и вы возлагаете на слой Application ответственность вытащить карту из репозитория и обернуть в транзакцию сохранение ПЛ и карты

Ну то есть фактически пишете сервис.

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

Ну то есть ответа у вас нет.

Философы и учёные в курсе, что апелляция к авторитету является логической ошибкой.

можете попробовать

Как и аргумент к личности. Я не смогу дать многие определения понятий из квантовой физики, но это не значит, что их не существует или не может существовать.

начав с того, что отнести это понятие к какой-то категории

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

можете попробовать дать определение понятию "пространство"

https://slovarozhegova.ru/word.php?wordid=24901
Пространство
1. Одна из форм существования бесконечно развивающейся материи, характеризующаяся протяженностью и объемом.
2. Протяженность, место, не ограниченное видимыми пределами.
3. Промежуток между чем-н., место, где что-н. вмещается.

потому что только так можно дать корректное определение

Определение:
В рамках этой ветки комментариев словом "абырвалг" будем называть последовательность букв ABCD.

Пример использования:
Как называется последовательность ABCD? В соответствии с приведенным выше определением она называется "абырвалг".

Это корректное определение, при этом ни к какой категории я его не относил. Значит ваше утверждение неверно.

Понятия и их определения существуют независимо от того, что говорил Аристотель. Раз люди их используют, значит что-то ими обозначают.

Представьте, как будет выглядеть этот if для 10 обязательных полей

Так же, как и с логикой в сущности. Если вам надо проверить 10 полей, значит вам надо проверить 10 полей.

часто в такие сервисы с логикой тащат инфраструктурные зависимости, такие как доктриновский EntityManager
При таком подходе код становится существенно грязнее

При таком подходе единственная разница будет в том, что вместо $this->transactionalSession будет $this->entityManager.

Код какого из вариантов чище и лаконичнее, судите сами

Угу, в одном из вариантов молча заменили проверки на один вызов $client->profileComplete(), код которого не привели, и предлагаете сравнивать.
С конструкторами тоже, логика в сервисах не запрещает делать конструктор с параметрами.

Последовательная логика из бизнес-требований теперь разбросана по разным местам.
Что за "accountActivated", какой части бизнес-требований он соответствует?
Открываем метод "BonusAccount::activate()", где там сохранение в истории факта активации бонусной программы?
А-а, это оказывается одно и то же. Потратили много времени просто чтобы найти где что. А в сервисе это написано прямым текстом. Особенно если вынести эти шаги в private-методы с понятными названиями.

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

А с логикой в сущностях вам придется аккумулировать и контролировать знания о том, какие в проекте есть сущности с логикой.

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

Если разработчик, взявший новую задачу в работу, не узнал про метод BonusAccount::activate() (например потому что их там несколько десятков) или не увидел его в структуре проекта, то легко возникнет ситуация, когда в рамках новой логики бонусный счет может быть активирован без соблюдения уже существующих правил: обязательного заполнения профиля и записи события активации в историю.

Чтобы включить старую бизнес-логику в новую, вам придется сделать одно из двух: либо продублировать код со всеми вытекающими, либо запутать код, притащив BonusAccountService в зависимости нового сервиса, и вызывая его там.

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

Заключение и резюме

А, это все минусы? Ну ок.

Проблема в том, что нет такого паттерна как Service.
Возможно стоит именовать предложенный подход как то иначе?

Ну как это нет. Он называется "Бизнес-логика в сервисах". Только это не паттерн, а архитектурный подход.

Необязательно делать отдельный сервис на каждое действие, тогда можно переиспользовать зависимости и private-методы в реализации разных связанных бизнес-действий.

ИИ, как следует из названия, должен быть интеллектом, и понимать такие загадки без подсказок.

Вы действительно можете человеку показать пальцем

При чем тут показать пальцем? Я сказал "Определение того, что такое молния". Показывание пальцем никоим образом не является определением.

Но вы попробуйте объяснить это человеку без примера и объективно.
для "здравого смысла"

Не понял эту логику. То есть для термина "молния" можно считать нормальным, если его без примера и объективно объяснить нельзя, а для другого термина нет?

Вы можете дать такого определение?

Я не смогу дать многие определения понятий из квантовой физики, но это не значит, что их не существует или не может существовать.

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

И в словаре их не будет.

Ок. И?
Я нигде не подразумевал критерий "должно существовать в словаре".

Если слово в каком-то контексте имеет смысл, то оно существует.

Я нигде не говорил, что какого-то слова не существует.

которые буквально так же и говорят, что если слова нет в словаре, то его не существует

Я такого не говорил ни буквально, ни не буквально.

Существует ли в реальном мире "два"?

А это тут при чем? Это оффтоп, мне неинтересно это обсуждать.

Вы сделали утверждение "Определения "сепулек" не существует без рекурсивности к изначальному определению".

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

в случае понятия "здравый смысл" я такого еще не встречал

Определение того, что такое молния, тоже не сразу появилось.

меня устроит, если кто угодно вообще сможет дать определение здравого смысла

Ну через какое-то время возможно и появится. Разговор был можно ли его определить в принципе. В принципе можно.

Книга ничем не отличается от разговора в практическом смысле.

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

Определения "сепулек" не существует без рекурсивности к изначальному определению.

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

Если вы сможете дать

Это подмена тезиса. Мы не говорили о том, что знаю я. Я не смогу дать многие определения понятий из квантовой физики, но это не значит, что их не существует.

Понятие существует, это факт. Люди им что-то называют, это тоже факт. Значит каждый отдельный человек имеет какие-то критерии что им называть, пусть даже не может их сформулировать. Можно сравнить много примеров и найти в них общие черты. Просто формализовать их можно будет только после изобретения ИИ или прибора для чтения мыслей.

Я не говорил, что определение уже существует, и что оно качественное.

Вы уклонились от прямого ответа. Сначала вы сказали, что у понятия "сепульки" есть нюансы, а теперь говорите про "какое-то понятие". Вот если бы вы описали нюансы конкретно понятия "сепульки", то это и было бы практически определение. Не того, что в книге, а того, что люди им обозначают в разговорах.

Вопрос был "Можно ли определить это понятие". Я говорю о том, что раз люди им что-то называют, значит можно определить. В книге этим понятием ничего не называют. В реальности он используется как "пример самозависимого определения, которое неизвестно что означает". Вот то, что в кавычках, вполне можно считать определением понятия "сепульки" в реальности (не в книге). То есть это ответ на вопрос "Что обычно называют словом "сепульки"?".
Аналогично с понятием "здравый смысл". Люди им что-то называют, у этого можно найти общие черты.

Я в курсе, что это за слово и откуда. Я не просто так попросил вас сформулировать явно.

Это какие же? Попробуйте их сформулировать.

Можно ли определить понятие "здравого смысла" у людей?

Раз оно существует, значит можно.

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

Если это решение, значит оно подходит для достижения цели, значит входит в рациональное поведение.

1
23 ...

Information

Rating
1,951-st
Location
Россия
Registered
Activity