Хомич Андрей Владимирович@supremum76
люблю думать
Информация
- В рейтинге
- Не участвует
- Откуда
- Домодедово, Москва и Московская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность
Специализация
Бэкенд разработчик, ML разработчик
Средний
От 20 001 $
SQL
Python
Алгоритмы и структуры данных
Объектно-ориентированное проектирование
Прикладная математика
Разработка программного обеспечения
ООП
Базы данных
Но кто организует порядок работы этих элементов ?
В статье предлагается вариант кодирования правил перехода нейронной сетью. То есть предлагаемый подход вполне может быть объединен с нейросетевым подходом, включать его как элемент базы.
Да, имеется ввиду только ML. Экспертные продукционные системы и др. за рамками.
Машина Тьюринга, это лента, головка и набор правил перехода. Ничего не меняем в ленте и головке. Меняем состав правил, начальные данные на ленте, начальное положение и состояние головки. Так мы можем настроить машину на решение любой определенной задачи, если она вообще решается алгоритмически. Например, хотим сортировать список чисел любого конечного размера - один набор правил, хотим переводить текст с английского на финский - другой набор правил и т. д.
Возьмем мощную по потенциальным возможностям архитектуру ИНС - полносвязную рекуррентную сеть. Мы можем менять веса синапсов, начальные состояния нейронов и кодирование входных данных.
Допустим сеть состоит из бесконечного количества нейронов и синапсов. Как настроены начальные веса ? Если случайным образом, то для приведения их к подходящему значению нам понадобится бесконечное количество действий. Синапсов то ведь бесконечно много. Ок, тогда пусть все начальные веса и состояния будут нулевыми. Но тогда это эквивалентно тому, что сеть конечная, но мы можем добавлять к ней новые нейроны и синапсы, пока сеть не начнет решать необходимую нам задачу.
При таких условиях нет возможности собрать сеть, способную обрабатывать данные любого конечного размера. Потому, что нейронная сеть, при любой ее конфигурации, принадлежит классу конечных автоматов. Конечное количество нейронов, конечное количество состояний == конечный автомат.
Для машины Тьюринга же, если задача алгоритмически решаема, всегда можно подобрать таблицу переходов конечного размера, чтобы машина могла решать задачу любой конечной размерности без переделок.
Пусть для практических задач можно ограничить размер данных сверху. Если у машины Тьюринга ограничить ленту, то она превратиться в конечный автомат. Тогда да, такая урезанная машина Тьюринга станет, с точки зрения математики, равна нейронной сети, ибо оба станут относится к конечным автоматам. Хотя и тут есть нюансы. Для удвоения размера обрабатываемых данных для машины Тьюринга достаточно увеличить длину ленты. Менять правила переходов не требуется. В случае же нейронной сети понадобится увеличивать размер сети и переобучать ее. Почувствуйте разницу.
Ну ок, математически все это конечные автоматы. Надо тогда смотреть на задачу. Одну задачу, с учетом возможностей и ограничений доступных нам физических компьютеров, проще решить конечным автоматом, другую нейронной сетью. Например, сортировку списка чисел лучше сделает конечный автомат (CPU обыкновенный или это), а распознавать что-то шаблонное на изображении видимо лучше с помощью нейронной сети.
Но есть задачи, решение которых традиционно (императивным или декларативным формальным языком) закодировать сложно и нейронные сети отработанных архитектур не справляются. Например, качественное решение требует рекуррентной нейронной сети. Математически они многое могут, но обучать их в общем случае сложно (градиент "гаснет" или "взрывается"). Хотелось бы иметь чего-то еще гибкого, настраиваемого на примерах (называю это программированием на примерах), потенциально более мощного, чем нейронные сети. Вот и предлагается попробовать иную базу вычислений. Нейронные сети брали свою базу из интерпретации данных нейрофизиологии. Предлагаемый в статье подход берет базу из формализмов теории вычислений.
---
Насчет "кирпич" vs "комфортное жилье". Комфорт здесь определяется наличием эффективных методов "обучения", программных библиотек и аппаратной поддержки. Если некое направление прямо сейчас не имеет всего этого, это не повод не развивать направление. Когда-то и нейросети не имели этого. Фрэнк Розенблатт начинал с одним паяльником.
Рассматриваемые здесь "мутанты" машины Тьюринга вполне могут использовать SIMD и CUDA. Дело только за отработанными методами оптимизации, удобными библиотеками и шаблонами сценариев использования.
Соотношение уровней шума и полезного сигнала имеет значение.
Представьте себе такую картинку. Студия. В студии несколько человек и LLM. Произносится слово (для людей это слово, для LLM последовательность символов из заданного алфавита ) - "шляпа". У одного человека рождается образ дамы в старинной дамской шляпке. У другого - соломенная шляпа на голове лошади, у третьего - кривой код попавший в прод. В "голове" LLM светится последовательность символов "Ш Л Я П А" и у нее тысячи связей разной "толщины" и с разными дополнительными условиями с "Л О Ш А Д Ь", "В И Н Т А Ж", ...
Одно из печальных последствий. Я учился писать, читая лучшие образцы (классическая литература, статьи в тематических журналах от специалистов и т.п.) На чем будет учиться молодежь ? Предвижу деградацию и ненасильственное окончательное рабство прола (1984) от машин.
Я узнал, что такое лидкод :)
Нас учили на кафедре, все эти штучки дрючки конечно прикольно, но в российской реальности кормить вас будут 1С и эскуэль :) Так реально и выходит.
Можно было бы дополнить реальными практическими примерами.
Я думал, что фрейворк относится к дизайну. Пример rest api - это архитектура. На какой базе реализован сервис - postgresql + fastapi или mysql + Node.js это уже дизайн. Завтра реализация сервиса изменится, но пока api стабилен менять архитектуру не требуется.
Хотя это конечно зависит от уровня рассмотрения - архитектура предприятия, архитектура приложения, архитектура компонента, архитектура модуля, архитектура класса. Сделали мы класс в старом стиле, с явно прописанными get/set-рами или применили декоратор dataclass это уже дизайн. Трогает изменение другие компоненты - архитектура, не трогает - дизайн.
🤖Победителей определял ИИ ? 🦧
order_detail выглядить искусственным с точки зрения OLTP, но он нужен, чтобы линки были без версий в DWH.
Можно спокойно добавить новый источник, не волнуясь, что загрузка других источников и отчеты посыпятся
Вторым шагом можно спокойно подцепить новые сателиты и линки к отчетам.
1) На первый взгляд order_detail не нужен. Если не бояться версионности в линках, то достаточно линка, связывающего заказ с продуктом и сателита линка с атрибутами линка (количество и цена). order_detail позволяет убрать версионность из линка, перенеся ее в искуственную сущность, но понимать это сложней. В общем, считаю, что не надо боятся версионности в линках, где она требуется. Так проще и эффективней.
2) Зачем id-шники в сателитах ? Это бизнес-ключи и их место только в хабах. Данные можно связывать хэш-ключами.
"Бытие определяет сознание". Звучит обидно. Не согласен. Сознание определяет бытие. Червю в куче грязи рай, а мне ад.
---
Возмем крайний случай, некого "маньяка". Мне совершенно все равно, виноват он или нет. В случае угрозы я попытаюсь ее устранить и все.
Никакие социальные условия "маньяка" не исправят. Могут притормозить, заставить быть более осторожным. Но он все равно будет стремиться совершить свое дело. Не надо никакого "морального осуждения". Просто изолируйте его.
Воля есть. Она в основе всего.
Свобода это возможности реализации воли. Ее может быть больше или меньше в моменте.
Да, похоже было такое. Грубо говоря я был дорогой спец по спец вопросам. Компания изменила свой профиль и я как бы стал лишним и дорогим. Просто по сути отстранили от задач и через некоторое время предложили по соглашению сторон. Ок, к рукрводству вопросов нет, а вот к некоторым коллегам вопросов много. Возможно кто-то хотел протащить в компанию знакомого на освободившееся место. Так что не факт, что это была инициатива высшего руководства.
Вообще я патологически плохо переношу конфликты. Но ипотека сильно укрепляет волю :)
Согласен. Общий случай не доказан. Но сейчас не могут.
Допустим мы вознамерились "найчить" этому нейросетку.
Придумаем формальный язык, способный описать любые логические игры (упс, такой язык невозможен. Гёдель запрешает.). Натренируем LLM на описаниях логических игр. Получим генератор описаний, на первый взгляд похожих на описание новых игр. В лучшем случае LLM уловит что-то общее в существующих играх и сделает гибрид.
ИИ - Иллюзия Интеллекта.
alpha-beta pruning в шахматных программах тоже варианты просчитывает, только по этому поводу хайпа нет.
LLM просто генерят пустословие (люди тоже так умеют), повторяют типичное продолжение текста со случайными вариациями, для поддержания иллюзии разумности у неискушенной публики. А под капотом 2*2=4.
"Но ведь и люди так же " - это доказано ?
Нельзя сказать, что я прям мощный специалист, но математической базой ИИ интересуюсь давно, когда еще пайторча не было даже в проекте. Могу нейросети типа MLP делать вообще без ML-библиотек. Читал такие древности как "Персептроны" Марвина Минского и гомеостат Эшби. Сейчас RL изучаю.
В что мы понимаем под ителлектом ? Он вообще потдается реальному определению ? Если это про игру в шахматы, то в это машина может. Но придумать эту игру она не может.
Что такое все нейросетки по сути, с точки зрения математики ? Это результат математической аппроксимации, не больше и не меньше. Это функция. Каким то алгоритмом оптимизации функции (минимизации ошибки) подбирается лучшее по какому то критерию приближение известных данных. Если данные достаточно плотно и равномерно покрывают интересующую нас область (так плотно, что поведение приближаемой функции между известными точками близко к линейному), если все важные показатели измеряются, то все у нас получится. Можно даже в принципе не заморачиваться с нейросетками, а просто закодировать в таблице решений (метод ближайших k-соседей), хотя получится не очень компактно. Все прочее это массштабирование, поиск более эффективных алгоритмов оптимизации, адаптация алгоритмов под классы задач. Можно назвать это программированием машины на примерах. Но это все то же программирование человеком машины. И как и любая другая программа, она сломается если дать ей задачу, для которой она не программировалась. Можно создать массу отличных чудесных машин, удобных, полезных, забавных, поражающих воображение. Но это всегда будут только машины. И пока не доказано, что человек это тоже машина, у нас нет права перестать различать.
Упростим требования. Хочу, чтобы машина могла принимать решения в немарковской среде (в среде с памятью). RL Q-leaning этого в принципе по математическим основаниям не может делать. Можно сгладить проблему, перейдя к Deep Q-learning и прикрутив что-то типа LSTM. Но структуру этой LSTM будем определять мы, человеки, возможно в помощь привлекая другие машины/алгоритмы (например, ГА). LSTM будет заточена под определенный класс задач и перейти к другому классу без человеков не сможет.
Машина не может стать как человек-ученик, так как не может в принципе использовать тетрадь для решения задачек. Машина может жестко закодировать все возможные способы решения типовых школьных задач у себя в "голове", но методом решения не овладеет. Таковы ограничения динамического программирования и Q-learning метода. А других методов для программирования машины на принятиеи решений мы пока не знаем.
result = await asyncio.gather(self.user_repository.delete_user(user_id) , self.kafka_producer.send_message(user_id) , return_exceptions=True)
По поводу иллюзорности пространства (разделение) и времени (изменение) по Пармениду. А что значит "иллюзия". Раз есть слово, то на что-то оно ведь указывает. Чего совсем нет, о том и помыслить нельзя. В метафизическом смысле граница между "светом" и "тьмой" не существует без первых двух. То есть иллюзия, это нечто, принимающее бытие извне, взаймы. Но все равно, для возникновения иллюзит необходимы как минимум двое начал. Единое по Пармениду не может породить иллюзию.
Бытие есть, а небытия нет. Но ведь есть слово "небытие", оно на что-то указывает, мы о нем мыслим. Может "небытие" не такое уж ничто. Может это именно, что НЕбытие, то есть противоположность единого по Пармениду Бытия ? Но отрицание одного сущего не есть ничто, но иное. И вот граница или иллюзорное смешение этих двух и порождает мир?
Есть над чем подумать.
В математике действительно нет ни времени, ни пространства. Там только элементы множеств и операции. Называем переменные "время" и "пространство", считаем и получаем что-то. Потом это что-то, по сути незаконно, отождествляем с некой величиной некоторого явления. Иногда это работает.
На мой взгляд математика это инструмент, который просто иногда работает. Мы ведь не сильно переживаем, что лопата не тождественна копаемой земле. Главное, что земля обрабатывается.
Да, кажется чудом (для тех кто умеет филосовствовать), что математика, изначально возникшая из необходимости "считать баранов", очень точно и просто может описать, к примеру, закон всемирного тяготения. Однако, вероятно это иллюзия. Во первых, возможно все просто только при "локальной аппроксимации". Может масштаб этой "локальности" вся наша видимая вселенная, но это не принципиально. Во вторых, математика имеет успех, там где у нее получается. При этом вне поля нашего внимания остаются лакуны, где математика терпит провал.