Pull to refresh
4
0.2
Send message

В числовом выражении это сколько?

Зависит от того, что у нас получилось при нормализации :)

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

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

Сочувствую. С таким я почти не сталкивался (помимо обычной боли с ETL и разнообразными пропущенными/ненадёжными данными). Не тот формат данных обычно тривиален, хотя бывают и таланты, пишущие non-compliant код без комментариев и документации.

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

Оно, может, и так, но на практическом уровне разницы в нашем случае особо нет.

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

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

Если даже значительная часть ЦА - инженеры, объясняться им всё равно с менеджерами. А менеджеры хотят сценарий А (стоит столько-то, на выходе то-то, есть такой-то план по реализации) vs сценарий Б (те же параметры).

З.Ы. Касательно датасетов для упражнений, бывают штуки вроде вот такого: https://github.com/HakanKARASU/Gas-Sensor-Array-Drift-Dataset/. Годится? Сначала думал откопать что-то из своих примеров, но там почти всё попытки дрейф оценить косвенно. Гуглилось вроде недолго, проблема известная.

Ну это прямо серьёзная планка. На примере что наших вузов (МГУ, СПбГУ, МФТИ), что зарубежных (ETH Zurich, MIT), для двух статей в год до аспирантуры - это весьма неплохая лаба и студент хороший. Мимокрокодилы столько не пишут.

Отчего это вдруг? Физический как раз будет. И снова получится "примерно два метра". Первый курс, лабы...

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

В чём принципиальная разница между дрейфом приборов и, скажем, плохо подписанными людьми данными (обзор для примера: https://www.sciencedirect.com/science/article/pii/S136184152100270X)? То, что модель (пере)обучилась на шуме - проблема модели. И её обучения. А не мощности этого шума. Если бы датасатанисты систематически брались за учёт возможных источников ошибок, инструментальные ошибки были бы учтены +- первыми, это как раз из более простого. Но этот учёт делать скучно и невыгодно, гораздо приятнее напилить новую модельку с воооооооооот такими метриками.

Не надо. "Как противостоять реверс-инженеру?" - примерно никак. Только если не обфусцируете код, вычисляющий 2*2, в десять слоёв. Иначе говоря - пока экономический эффект от слома меньше, чем стоимость собственной разработки. Наглядный пример - нашумевший взлом криптокошелька (Joe Grand / RoboForm). С достаточной мотивацией и прямым доступом к девайсу/софту ломается практически всё.

То, что происходит на чужом компе, контролировать в принципе нельзя. К моменту, когда конфиденциальная информация утекла туда, you've been pwned. Поэтому не стоит тратить ресурсы на фантазии, надо переосмыслять задачу.

Авто: означает что процесс является автоматическим

Я, конечно, сильно извиняюсь, но меня учили иначе. Увы, подтверждающих ссылок сходу не нашёл.

А именно: авто- в автоэнкодере следует понимать в совершенно классическом, прямо-таки греческом смысле, т.е. он "самоэнкодер" или "самокодировщик". И это "само" относится к входному/выходному сигналам (или даже пространствам). Кодировать можно по-разному, можно, например, числа кодировать буквами или наоборот. AE делают не так, и это важное их свойство. Подобный аргумент для меня по крайней мере звучит убедительнее, нежели написанное у Вас.

Зачем писать про регуляризацию в "просто о сложном", тоже не вполне понятно. Про дискретные значения тоже только читателя путаете: чем верхняя картинка отличается от нижней? Если снизу признаки дискретные, то сверху - нет? Как в VAE что ли?.. Или нет? В каком смысле Вы тогда это слово используете в разных случаях?

Так и представляю, штрафы за срачи в твиттере на госуслуги приходят.

Или там проводишь меньше часа в день втентаклике - держи 10% скидку на страховку авто или платные кружки для детей.

до конца этого года (?!?) может быть быть ещё 5 (ПЯТЬ!!!) запусков Starship

До конца следующего же вроде, не? У нас всё ещё 2024 на дворе...

Чем больше про это думаю, тем больше убеждаюсь в том, что скептики неправы. Не потому, что ИИ такие умные, скорее потому, что кожаные мешки тупые. А LLM не хуже (чаще - гораздо лучше), чем люди, умеют в убеждение. Собственно, мы уже видим, что они замечательно убеждают людей в своей способности решать задачи - заметно лучше, чем именно корректно их решать. И пока нам хватает знаний, опыта и внимательности, чтобы их разоблачить. Но это пока.

Дальше - вопрос этики. С человеческим тупняком за тысячелетия эволюции мы научились взаимодействовать. С галлюцинациями и упоротостью ИИ - пока нет.

Будет заваруха.

На каких размерах данных ещё можно ожидать успеха?

Помню, лет 10 назад заинтересовался этой темой, GUDHI на миллионе точек размерности ~300 сложился. Вникать в топологию я тогда не решился и забросил.

Ясно, думать сложно.

Проехали.

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

Хотите больше конкретики - пожалуйста.

Основная проблема - из

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

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

Теперь касательно той задачи, которую Вы таки решаете. Во-первых, пространство исходов совсем невелико, и правильные ответы для каждого известны; их легко сгенерировать алгоритмически. Нейросети тут - не то что просто из пушки по воробьям, но ещё и с немалой вероятностью попадания из той самой пушки себе в ногу, если плохо сформированы тестовые данные. Если бы "магическая" функция отдавала значения от 0 до 1, было бы больше смысла. Но не с one-hot encoding. Во-вторых, Вы строите всевозможные метрики, графики loss function, но никак их не анализируете. В-третьих (и это ой как важно!), совершенно отсутствуют какие-либо соображения со стороны проектирования всей системы. Во многом это перекликается с первым замечанием, но есть и практические аспекты. Мой любимый пример - задумайтесь на минутку, должна ли функция потерь быть симметрична (иными словами, верно ли, что ложноположительные срабатывания так же плохи, как ложноотрицательный результат), и подумайте, почему Вы делаете то, что Вы делаете.

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

Дальнейшее рассматриваю с позиций "читатель хочет вкатиться в формате "моя первая нейросеть". Пример выбран довольно удачный и наглядный. Не хватает пояснений.

Что могло быть лучше в сутевой части:

  • Размышления на тему, как выбор гиперпараметров влияет на результат работы. Пусть пример "игрушечный", но в нём на кону транспортная безопасность и жизни людей, в конце концов! Если известно, что могут случаться нестандартные ситуации, достаточно ли проведённого исследования на странных сочетаниях? Может, порог принятия решения в 0.5 (=авось, пронесёт) не самый удачный? Зависит ли это от того, сколько сигналов и их сочетаний разрешающие, а сколько запрещающие? Или того, с какой вероятностью они определены неправильно? Или того, что проезд на красный чреват худшими последствиями, чем встать на зелёном и никуда не уехать?

  • Комментарии на тему, какие результаты работы и обучения Вы считаете более удачными и почему. Даже не погружаясь в причины того, почему, например, функции потерь так отличаются - стало хуже? Лучше? Нужен второй слой-то? Почему, кстати, функция потерь не 0, а все приведённые метрики 1?

  • Автоматизация тестирования. Вот вы пообучали нейросеть на семи (!) примерах и пытаетесь распространить на 2^7 = 128 возможных вариантов. Как уже говорилось, если ненадолго задуматься, можно алгоритмически сформировать таблицу исходов. Стало быть, легко показать, как точность зависит, скажем, от размеров обучающей выборки. Тоже методологически полезно.

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

Что тут скажешь, у Вас получился прекрасный пример того, как НЕ надо использовать нейронки.

Ожидание: будем бороться с распознаванием сигналов светофора (см., например, https://www.autoweek.com/news/green-cars/a37114603/tesla-fsd-mistakes-moon-for-traffic-light/)

Реальность: пытаемся научить один-два скрытых слоя по уже заданному one-hot encoding восстанавливать однозначно заданную таблицу соответствия и кривовато экстраполировать вне обучающих данных.

Как учебно-методический пример, всё нормально. Но ПОЖАЛУЙСТА, не делайте вид, что так и надо, и уж тем более не фигачьте такое в продакшн.

Вообще да, но тоже не совсем (насколько я понимаю; аналитиком в индустрии как-то не довелось поработать, не очень знаю, чем они занимаются).

Для затравки - байка. Пришли мы однажды в Яндекс, они взялись пиарить свою платформу для науки и образования. Рассказывают: "вот сюда заливают данные ваши дата инженеры, здесь работают программисты, тут непосредственно учёные что-то ворочают". Слушаю всё это и прямо ощущаю, как развивается шизофрения в духе "цементный завод? Я!". Нарисовали нам там команду человек из 15, по факту всю эту работу выполняю (пускай медленно и плохо) я один. Поднять и настроить виртуалки, организовать сбор данных, ETL, собственно анализ, подготовка материала к публикации и написание статей... В таком раскладе мне нужна золотая середина: если обсчитываться будет месяц, скорее всего, не годится. Если оптимизированная версия считала бы час, но писал бы я её тоже час, это хуже версии, написанной за пять минут и считающей три часа. С очень высокой вероятностью код окажется черновым, и надо делать нечто ВООБЩЕ другое.

Такое вот "и швец, и жнец" не уникально для российской науки: лично видел, как в топовой лабе в Германии профессура точно так же мастерила что-то из запчастей из ближайшего строительного. В индустрии бывает принята точка зрения "зачем платить специалисту $Х в час за плохое исполнение работы, которую может сделать специалист за $X/10 в час". В академической науке это работает очень ограниченно: продуктивно думать сложные мысли дальше какого-то предела не получается. Поэтому всё это рукоделие происходит не за $X в час, а практически бесплатно.

Хотелок много, а денег/квалификации/прочих ресурсов на них совсем не хватает даже близко. Поэтому товарищи учёные (обычно) хорошо разбираются в своей предметной области, но и делают параллельно этому ещё десять разных вещей на уровне бестолкового джуна. Что характерно, завлаб безо всякого формального обучения и опыта управляется с всевозможными питонами куда лучше студента, которого таки несколько лет учили прогать в том числе. Умение мыслить - мощная штука. Согласен с пугающей мыслью товарища комментатора тут: https://habr.com/ru/news/843718/#comment_27302466 -- велик соблазн всё сделать самому/с чатгпт вместо того, чтоб растить смену...

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

Проще в таком случае взять С++ и кастрировать

То так, мне кажется, что многие конторы так и работают с C++. Но управлять процессом сложно; в плюсах за годы появилось много всего хорошего, конечно, но нет какого-то... Ясного видения, что ли. Стандарты выглядят как свалка. "Фичи? Их есть у нас!". То же самое начинает проникать и в код - или у тимлида светлая голова и готовность следить за внутренними стандартами, или "мы пишем без темплейтов кроме вон тех трёх мест, где лучше не придумали". Иногда лучше меньше, да лучше.

Мой аргумент, пожалуй, в том, что "пишем на кастрированном C++" - в некой мере следствие занятой плюсами доли рынка. То бишь уже есть люди, умеющие писать на C++, и дешевле занять их, чем переучивать или находить кого-то, умеющего в идеально подходящий с точки зрения технологии стек. От такого язык не умрёт быстро, но на спад, пожалуй, идёт. Так-то и фортран с коболом "живы".

На плюсах писал лет 8. Пришёл к ощущению, что что-то совсем низкоуровневое лучше на "голых" сях слабать, а если что посложнее, особенно с зависимостями - тулинг незаменим, так что какой-нибудь Rust или Python, да хоть Ruby.

Кажется, что на C++ пишут приложения, которые с одной стороны будут живы и через 15-20-30 лет, с другой - поддерживать их будут плюс-минус те же команды. В современном климате таких не настолько много: или делаем на века и для всех (как ядро Linux), или цикл разработки занимает несколько лет: зашли на рынок, привлекли денег, выросли, выкинули старый код и переписали заново.

С добрым утром! Уже пару десятков лет как нет, хотя действительно заметно стало последние лет 10, задолго до массовых разговоров о ИИ. Прошли времена, когда отучился - и жена-кошка с плошками риса сами собой образуются. С голоду не окочуришься, но и откладывать хоть сколько-то серьёзные деньги получается у сравнительно небольшого количества вчерашних выпускников.

Всё так, но именно поэтому этому утверждению самое место в исходном обосновании ;) Так сразу можно сказать, что если кто не по фэншую принёс данные, то ещё E log E набежит на сортировку рёбер графа, например.

Да, и ещё - сложность для обхода графов обычно выражают как функцию количества рёбер и количества вершин, не пренебрегая ни одной из компонент. А то вдруг решите натравить алгоритм на полные графы, и тут-то выяснится, что O(E) - это O(N^2). А может быть, ближе к O(N). В общем, в таком представлении полезнее выходит.

Если что, есть три классических представления графа - списки вершин и рёбер, матрица смежности, список смежности. Нигде не гарантируется упорядоченность. Это часть задачи.

Пользуясь примером с картой, пусть на входе есть список городов в алфавитном порядке. В том же порядке даны соответствующие рёбра графа. Где-то в самом начале "пути" от Владивостока до Хабаровска встретятся Владикавказ, Воркута и Выборг. Решением задачи мы, собственно, пытаемся навести порядок в структуре, сотворённой без учёта взаимного расположения городов и доступности транспорта. Так понятнее?

"На входе будет произведён поиск в ширину" - тогда включайте в алгоритм. Тоже путь.

Ironic.

Буквально на днях с коллегами спорил, слышал от них ровно обратное - что на stackoverflow соваться не страшно: там помогут не создавая ощущения, что ты - тварь ничтожная, а вот от хабра или тем более ЛОРа такое ощущение есть. По тону статьи хорошо заметно, что автору хочется фидбека, но он боится разгрома в комментах и/или минусов в карму. Это вполне можно рассматривать как признак не очень здоровой среды. А можно и не рассматривать.

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

Information

Rating
2,706-th
Registered
Activity