>> Удачи тому, кто разберётся, например, в обратном проходе в batch normalization по статье из Википедии. :)
Справедливости ради в батчнорме не разбираются даже те, кто его придумал. :))
Вы, например, знали, что примерно половина эффекта от батчнорма в том, что там есть свой bias, и когда люди batchnorm добавляют, то обычно убирают bias у обычного слоя перед ним, а поскольку в батчнорм встроено своё экспоненциальное сглаживание, по умолчанию 0.9, обычно, то bias обучается с в десять раз меньшей дисперсией чем нормальные веса. Если убрать батчнорм, и учить bias обычных слоёв с моментом в десять раз сильнее, половину всей прибавки от батчнорма вы получите на одном этом.
Такого вы ни в какой википедии не прочитаете, тут нужно велосипеды изобретать. :)))
В одной из моих сетей используется операция topk, и возвращаемые ей индексы, её вы тоже к матричному умножению сведете? :)))))
Вы вольны остаться при своём мнении, но полезно знать, что некоторые люди считают его неправильным, и работающим кодом это демонстрируют, поэтому не нужно насаждать своё мнение подрастающему поколению. Пусть они составят своё мнение, и возможно потом расскажут вам что-нибудь интересное.
За ссылку спасибо. Я конечно же спутал и имел в виду гугленет, а не обычный ленет, но это не важно. Дело только в размере, ну и максимум вам ещё конкатинация матриц потребуется. Очевидно, что в виде матричных операций записывается всё что популярно, потому что большинство людей искали ответ именно в такой форме, петля положительной обратной связи или же замкнутый круг. Мне просто неприятно, что новые и новые поколения людей продолжаю копаться там же, на месте, где уже всё выкопано, и автомл давно лучше людей справляется.
И то, что я тут с пол десятка примеров привёл, которые к матричным операциям не сводятся, а вы их все игнорируете лишь убеждает меня в полезности не матричного подхода, чтобы новые люди имели в своем арсенале мысленных внутренние представления, позволяющие им не пропустить что-то необычное, если оно промелькнёт мимо них.
>> Знаете, какая основная претензия к таким статьям? Они бы были бы вполне ничего, если бы их авторы шли бы дальше. Я вот пошёл. В моей первой статье на хабре были классы нейронов, и даже хуже того, для всяких циклических операций использовался Linq - это такой объектный движок над итераторами на C#. Я конечно, не самый типичный любитель нейросетей по ряду причин, ну так и этот парень может оказаться нетипичным. Не подождём - не узнаем.
>>32x32 — это только поиграться с мутными картинками. Вернее даже с мутными текстурками, но тем не менее именно играясь с ними я придумал neck для компьютервижена, который из фичеэкстрактора вынимает информацию в такой форме, что ему пофигу на размеры картинки вообще. То-есть картинка 1024x320 и маленький её кусочек 256x256 на котором расположен интересующий объект, с точностью до простого линейного преобразования дают одинаковый эмбединг.
Чуть больше веры в людей, изобретающих велосипеды, и они смогут вас удивить. :))
>> Тензоры тоже очень просто. И при этом очень быстро. Существует адская пропасть между "быстро считается" и "быстро запрограммировать". Для второго нужны классы абстракций - первое в процессе исследования вообще мало кого интересует, до тех пор пока код работает приемлемое время никто даже и не парится его оптимизацией. Попробуйте безо всяких абстракций на голых матричных умножения запрогать какой-нибудь ленет или йоло, зрелище будет презабавненькое, но очень долгое. Говоря о быстроте экспериментов я имел в виду конечно же время на то чтобы написать экспериментальный код, а не то с какой скоростью он учится. До тех пор, пока он учится быстрее, чем я сделал и съел бутерброд меня его скорость не интересует.
P.S. Зашёл на ваш ютуб-канал и увидел голограммы. Не подскажите случайно где можно в наше время прикупить настоящую толстую голограмму, ну такую, которую можно в белом свете смотреть. хочу дитёнышу показать. А то сейчас в ответ на такой запрос в поисковик выпадает стопятьсот страниц с переливающимися наклейками.
>> Понимание происходящего и правильная реализация — разные вещи. Из того, что вы поняли, как работает нейрон или свёртка, вовсе не следует, что делать их надо нативно и писать про это статью
Как вы собираетесь что-то исследовать не реализуя это в коде? :\ Чтобы что-то понять, нужно с ним поиграться, а чтобы с ним поиграться нужно иметь реализацию, в которой эти игры делаются просто. Уровень абстракций подбирается под задачу. Для кого-то понимания минимальный уровень - всё дерево вычислений, для каких-то пониманий нужно ковыряться в терминах слоёв, а для каких-то пониманий приходится опускаться в более мелкие абстракции, иначе каждый эксперимент будет занимать сутки кодинга.
А если не написать статью, так никто и не поддержит и идеями своими не поделится.
>> Я не использую pytorch и с питоном не знаком. Я работаю только с С++. Торч под капотом уже почти весь на плюсы переписан, кстати. При желании вы можете насладится всеми прелестями автограда, в том числе для очень необычных функций, типа topk. Попробуйте, вам может понравиться. :)
>> в противном случае вы не дождётесь обучения хоть сколько-нибудь большой модели за приемлемое время.
Вопрос с какого размера моделями и датасетами вы хотите работать. Например для многих моих экспериментов я использую cifar100 - задача уже приближённая к реальным, но обучить сеть на её на домашнем 3060 можно за считанные минуты и большинство выводов полученных на нем распространяются и на imagenet. А уже потом, когда эксперименты проделаны и выводы понятны, можно брать сети потолще и какой нибудь COCO. Но при этом свои первые работы и первые выводы я делал вообще на синтетическом датасете на основе одной единственной картинки x - координаты точки, y - rgb этой точки. Очень простая задача, с которой справляется даже сетка написанная на CPU и при этом посмотрев что нарисовала вам сеть и сравнив с исходной картинкой можно многое понять о том как и почему сеть работает. Там на картинке разделяющие плоскости прямо буквально видны - роскошь, которую не могут себе позволить люди изучающие реальные задачи.
Он же вам тут не трансформеры на классах делает миллиардные, а просто учебную сетку. Какова исследовательская задача, такие и инструменты.
Потом переносить придётся, хотя опять скажу - разреженные спарс матрицы и матрицами то называются только чтобы страусов не пугать.
Я тут говорю про то, что если сначала сделать матрицы на классах и и более обычные, то вы сможете понять их работу и другими способами, научитесь смотреть на них с двух сторон, а не с одной, к которой все привыкли и почти всё, что можно будет с этой стороны разглядеть уже разглядели.
>> Так что нет, никаких классов не должно быть Вас же не смущают классы модуля в том же пайторче. Если бы не было инкапсуляции внутри этого класса всего функционала автограда куча людей стучалось бы лбом о дифференциирование того что они напридумывали и больше половины этого столкновения с реальностью бы не вывезли. а те кто вывезли, делали свои сети на много дольше. Класса нейрона не должно быть в инференсе, до поры до времени, тут я согласен, но если человек умеет думать в терминах классов, он сможет сделать с сетями такие вещи, о которых он бы даже не подумал если думает о происходящем только как о матричных операторах не вникая в то, какие более мелкие сущности были представлены в виде матриц.
Возвращаясь к тем же CNN, если человек смотрит на свёртку только как на матричное умножение, а не рассматривает каждое ядро свёртки как отдельную сущность, по сути дела такой вот нейрон, ему просто в голову не придёт задуматься, а какие из свёрток для его сети полезны, а какие нет, и нельзя ли часть свёрток из сети повыкидывать, сильно ускорив инференс (спойлер:можно), или даже оставить всю свёртку тех же размеров, но заменив часть ядер на другие, более полезные. И вот эту операцию уже очень трудно делать если не иметь отдельного класса для нейрона(или отдельного ядра свёртки, математика за ними стоит одинаковая), как минимум потому что вы захотите иметь класс в который нейрон можно из свёртки выделить и из которого отдельное ядро можно обратно в свёртку положить, даже если внутри сети он в виде сетки не представлени и существует только в виде индекса в матрице.
Что-то дернуло меня перечитать комментарии к своей допотопной статье, и это было прикольно. :))) Во-первых могу посоветовать посмотреть мой доклад на последнем ODSфесте: https://www.youtube.com/watch?v=Npm-awHtfeM, почти всё, о чём я говорил тогда в 2015-ом году прекрасно подтверждается и на типовой задаче кормпьютервижена, в котором, казалось бы, всё изучено вдоль и поперёк. Тут в докладе, я кстати, привожу и строгую математику, описывающую связь размеров батча и стохастики с другими параметрами обучения. Подавляющее большинство людей как не понимали всего вот этого, так и продолжают не понимать. Восемь лет прошло, а мои велосипеды все ещё едут лучше общепринятых. :))) Во-вторых, вы тут упоминали, что вам не нравятся мои определения "обобщений", вернее то что я вам их не раскрыл тогда в дискуссии. Если вам интересно, то посмотрите свежие статьи про такое явление как гроккинг в нейросетях, обнаруженное совсем недавно. Вот мои обобщения, как я убеждён, это и есть то, что ведёт к гроккингу. Строго я это ещё не доказал, но очень похоже по всем признакам. Если бы тогда в 2015-ом встретил больше заинтересованности от людей, которые занимались уже тогда нейросетями возможно гроккинг был бы открыт в 2016-ом, а не в 2023-ем, и в России, а не за её пределами.
Моя статья "Давайте изобретать велосипеды": https://habr.com/ru/articles/249657/ Там в качестве пример показана визуализация, которую я придумал изобретая велосипеды в далёком 2014-ом году. Этой весной выступал на ODS фесте и показывал там в частности кое какие вещи, которые видны из этой визуализации и в частности упоминавшиесмя в той далёкой статье 2015-ого года, и люди такие "Ого чувак! Ты открыл мне целый мир!". А всё потому что в самом начале своих занятий нейросетями я изобретал велосипеды, а многие люди просто берут готовое не пробуя его на прочность в свободное от работы время.
Почему-то из статьи по вашей ссылке нет ссылки на то место, из которого эти алгоритмы выросли: https://ru.wikipedia.org/wiki/Метод_коррекции_ошибки, а выросли они из алгоритмя придуманного ещё розенблаттом, и у него много интересных особенностей о которых люди не в курсе. Я свою первую нейросеть тоже на этом алгоритме делал. Например для алгоритма коррекции ошибки доказана теоретическая сходимость, в отличии от обратного распространения.
Я вам больше скажу в моих первых сетях был ещё и класс синапса, Здесь на хабре есть мои статьи 2014-215-ого годов. И знаете что? Благодаря этому я мог делать такие вещи с сетями, которые в матрицу хоть и можно запихать, но они туда так плохо лезут, что никому тупо в голову такая мысль не приходит.
Например я красиво визуализировал сетки и их состояния и когда столкнулся с проблемой затухания градиента я просто прокинул несколько синапсов с нескольких последних слоёв в несколько первых. Оказалось, что всего 3-5 синапсов (а не матриц) достаточно чтобы проблему полностью преодолеть.
Понятно что это можно выразить и на матрицах, умножая на спарс матрицы, которые почти пусты, и получится очень частный случай резидуал коннекшенов, но даже те люди, которые знают про архитектуру резнета не догадываются попробовать как себя поведет сеть если добавить в неё несколько скипконнекшенов не матриц, а одиночных чисел. В результате теперь я знаю про затухание градиентов больше, чем 95% людей занимающихся нейросетями.
Так что не стоит мешать человеку знакомиться с нейросетями его собственным персональным способом. Да, это очень далеко от оптимума, но по дороге он может приобрести разные полезные интуиции, которые потом сможет и на матрицы перенести, если захочет.
Люди читают жопой... Я всего лишь напомнил, что тот факт, что пьесу ставили год и выдали престижную российскую театральную премию, дискредитирует человека точно так же как если бы он с голой жопой вышел на красную площадь и мошонку гвоздём к площади прибил.
И да, я тут погуглил и изменил своё мнение на счёт домоклова меча. Я просто цитирую из википедии "Финист Ясный Сокол": "пьеса российского драматурга Светланы Петрийчук, рассказывающая о российских женщинах, которые бегут в Сирию, чтобы там стать жёнами террористов. Постановка основана на материалах уголовных дел против женщин, уезжавших в Сирию, которых затем судили за «пособничество терроризму»."
Кто бы мог подумать ставя пьесу о Ясных Соколах из ИГИЛ, что что-то может пойти не так... :))))))))
Я более чем уверен, что статья об оправдании терроризма прямым и явным образом была придумана именно для того чтобы бороться именно с таким творчеством.
>> шел больше года и получил престижную российскую театральную премию
Ассоциация театральных критиков назвала режиссера этого спектакля «Человеком года». Вряд ли может быть что-то сильнее дискредитирующее человека, чем получение престижной российской театральной премии.
Грузовым автомобилям следовать впритык запрещает Ньютон, который в своих законах говорит, что у гружёного грузовика тормозной путь становится таким, что между ним и впереди идущим грузовиком как раз помещается легковушка, которую они в случае чего расплющат. :))))
Видел один раз на дороге прекрасную аварию, когда девушка вовремя не перестроилась в левый ряд для поворота, поэтому юркнула из правого в свободное место перед грузовиком и начала тормозить с привычной ей силой. Водитель самосвала, гружёного песком честно тормозил изо всех сил, и я более чем уверен, ни сказал за это время ни одного слова, которое можно было бы процитировать. Скорее всего предлоги были тоже не очень... Дёшево отделалась, в общем-то.
>>> К сожалению, в России с мужчиной может случиться всё что угодно - арестуют, убьют, ограбят, оклевещут, бизнес отожмут, покалечат. И тогда о "хорошем питании, хороших врачах, хорошем образовании, хороших условиях жизни" детей придётся заботиться матери.
В этом месте сразу вспоминается история Иана Мёрдока - создателя Debian Linux-а, которого убили американские полицейские, за то что он угрожал судом и расследованием, за то что они с ним сделали дубинкой.
Для верующих, что с ними что-то может случиться только в России последнее время открылось огромное пространство для прозрений. Но если хотите учиться на чужих ошибках, а не на своих - посмотрите на демографическую пирамиду выбранной вами страны. На них обычно кроме половозрастного состава показывается ещё и кого и на сколько больше, мужчин или женщин. И почти во всех странах мужчин рождается больше, но уже в 30-35 лет мужчин остаётся в живых меньше, и чем дальше тем сильнее. Вот например картинка для Австралии, в которой вроде как нет сталина путина и войны.
Демографическая пирамида Австралии
В России ситуация, конечно, сильно хуже, но только за счёт старшего поколения которое активно вымирало в процессе перестройки. Старше 80-ого года как минимум. На пирамиде Это прям невооружённым взглядом видно, а в вашем поколении ничего драматического не происходит по крайней мере в части смертности.
Ну и женщина, когда выбирает себе мужчину, она, внезапно, ещё и хочет чтобы её детки были получше, а как сказал глава кафедры эволюции МГУ А. Марков: "К сожалению исследования показывают, что лучшее, что вы можете сделать для интеллекта своих детей - это выбрать им правильных родителей". Даже если с мужчиной случается что-то непредвиденное, его гены, давшие ему хороший интегральный показатель успеха, достаются его детям. Что интеллект, что доход, что многие личные качества имеют неплохой такой процент генетической обусловленности. Далеко от 100% конечно, но исследования показали, что как минимум у некоторых личных качеств вклад генов как минимум выше чем вклад всего семейного воспитания вместе взятого. Причём по интеллекту, например, это чрезвычайно серьёзные исследования в которых выборка составляет больше 100000 человек чей геном был прочтён, по любым академическим меркам выводы запредельно достоверные и надёжные.
Ну а если девушки не хотят с вами быть просто за то что вы такой прекрасный и умный, а ещё хотят чтобы вы были успешным и с деньгами возможно это потому что вы не такой умный как какой-нибудь Ландау. Скажите за это спасибо своим родителям, и чуть меньше - свои учителям.
Мальчику - ничего кроме секса, а вот когда он повзрослеет и станет мужчиной тогда ещё лучшую из возможных спутниц, и детишек е.. лучших.
Поскольку не все мальчики становятся мужчинами без посторонней помощи иногда детки заводятся по неосторожности и помогают им пройти эту трансформацию, не всегда, впрочем. Где-то видел статистику, что больше 40% браков в США начинаются со случайного секса.
По сути смысл половины статьи: не пытайтесь - влиять на сотрудников, просто выкиньте их на помойку и берите новых если что-то пошло не так. Просто выкиньте этих и возьмите новых.
И это реально работает, особенно в очень крупных компаниях с хорошим документированием процессов. В Гипермаркетах кассиров например. Вон Амазон так работает, у них годовая текучка кадров - 120%
>> Сглаживание? Где? Там нормализация, а потом сдвиг и сжатие. Или это в pytorch добавлено?
Это везде добавлено и из коробки просто по умолчанию включено.
Keras/TF: https://keras.io/api/layers/normalization_layers/batch_normalization/ , https://www.tensorflow.org/api_docs/python/tf/keras/layers/BatchNormalization переменная momentum = 0.99
Pytorch: https://pytorch.org/docs/stable/generated/torch.nn.BatchNorm2d.html переменная momentum=0.1 (это обратная величина, соответствует 0.9)
Theano https://docs.huihoo.com/theano/0.9/library/tensor/nnet/bn.html переменная running_average_factor=0.1
А вы хоть какую-нибудь библиотеку используете или всё сами? Как вы могли этого не знать, это же половина самого важного, что есть в батчнорме.
>> Удачи тому, кто разберётся, например, в обратном проходе в batch normalization по статье из Википедии. :)
Справедливости ради в батчнорме не разбираются даже те, кто его придумал. :))
Вы, например, знали, что примерно половина эффекта от батчнорма в том, что там есть свой bias, и когда люди batchnorm добавляют, то обычно убирают bias у обычного слоя перед ним, а поскольку в батчнорм встроено своё экспоненциальное сглаживание, по умолчанию 0.9, обычно, то bias обучается с в десять раз меньшей дисперсией чем нормальные веса. Если убрать батчнорм, и учить bias обычных слоёв с моментом в десять раз сильнее, половину всей прибавки от батчнорма вы получите на одном этом.
Такого вы ни в какой википедии не прочитаете, тут нужно велосипеды изобретать. :)))
В одной из моих сетей используется операция topk, и возвращаемые ей индексы, её вы тоже к матричному умножению сведете? :)))))
Вы вольны остаться при своём мнении, но полезно знать, что некоторые люди считают его неправильным, и работающим кодом это демонстрируют, поэтому не нужно насаждать своё мнение подрастающему поколению. Пусть они составят своё мнение, и возможно потом расскажут вам что-нибудь интересное.
За ссылку спасибо. Я конечно же спутал и имел в виду гугленет, а не обычный ленет, но это не важно. Дело только в размере, ну и максимум вам ещё конкатинация матриц потребуется. Очевидно, что в виде матричных операций записывается всё что популярно, потому что большинство людей искали ответ именно в такой форме, петля положительной обратной связи или же замкнутый круг. Мне просто неприятно, что новые и новые поколения людей продолжаю копаться там же, на месте, где уже всё выкопано, и автомл давно лучше людей справляется.
И то, что я тут с пол десятка примеров привёл, которые к матричным операциям не сводятся, а вы их все игнорируете лишь убеждает меня в полезности не матричного подхода, чтобы новые люди имели в своем арсенале мысленных внутренние представления, позволяющие им не пропустить что-то необычное, если оно промелькнёт мимо них.
>> Знаете, какая основная претензия к таким статьям? Они бы были бы вполне ничего, если бы их авторы шли бы дальше.
Я вот пошёл. В моей первой статье на хабре были классы нейронов, и даже хуже того, для всяких циклических операций использовался Linq - это такой объектный движок над итераторами на C#. Я конечно, не самый типичный любитель нейросетей по ряду причин, ну так и этот парень может оказаться нетипичным. Не подождём - не узнаем.
>>32x32 — это только поиграться с мутными картинками.
Вернее даже с мутными текстурками, но тем не менее именно играясь с ними я придумал neck для компьютервижена, который из фичеэкстрактора вынимает информацию в такой форме, что ему пофигу на размеры картинки вообще. То-есть картинка 1024x320 и маленький её кусочек 256x256 на котором расположен интересующий объект, с точностью до простого линейного преобразования дают одинаковый эмбединг.
Чуть больше веры в людей, изобретающих велосипеды, и они смогут вас удивить. :))
>> Тензоры тоже очень просто. И при этом очень быстро.
Существует адская пропасть между "быстро считается" и "быстро запрограммировать". Для второго нужны классы абстракций - первое в процессе исследования вообще мало кого интересует, до тех пор пока код работает приемлемое время никто даже и не парится его оптимизацией.
Попробуйте безо всяких абстракций на голых матричных умножения запрогать какой-нибудь ленет или йоло, зрелище будет презабавненькое, но очень долгое. Говоря о быстроте экспериментов я имел в виду конечно же время на то чтобы написать экспериментальный код, а не то с какой скоростью он учится. До тех пор, пока он учится быстрее, чем я сделал и съел бутерброд меня его скорость не интересует.
P.S. Зашёл на ваш ютуб-канал и увидел голограммы. Не подскажите случайно где можно в наше время прикупить настоящую толстую голограмму, ну такую, которую можно в белом свете смотреть. хочу дитёнышу показать. А то сейчас в ответ на такой запрос в поисковик выпадает стопятьсот страниц с переливающимися наклейками.
>> Понимание происходящего и правильная реализация — разные вещи. Из того, что вы поняли, как работает нейрон или свёртка, вовсе не следует, что делать их надо нативно и писать про это статью
Как вы собираетесь что-то исследовать не реализуя это в коде? :\ Чтобы что-то понять, нужно с ним поиграться, а чтобы с ним поиграться нужно иметь реализацию, в которой эти игры делаются просто. Уровень абстракций подбирается под задачу. Для кого-то понимания минимальный уровень - всё дерево вычислений, для каких-то пониманий нужно ковыряться в терминах слоёв, а для каких-то пониманий приходится опускаться в более мелкие абстракции, иначе каждый эксперимент будет занимать сутки кодинга.
А если не написать статью, так никто и не поддержит и идеями своими не поделится.
>> Я не использую pytorch и с питоном не знаком. Я работаю только с С++.
Торч под капотом уже почти весь на плюсы переписан, кстати. При желании вы можете насладится всеми прелестями автограда, в том числе для очень необычных функций, типа topk. Попробуйте, вам может понравиться. :)
>> в противном случае вы не дождётесь обучения хоть сколько-нибудь большой модели за приемлемое время.
Вопрос с какого размера моделями и датасетами вы хотите работать. Например для многих моих экспериментов я использую cifar100 - задача уже приближённая к реальным, но обучить сеть на её на домашнем 3060 можно за считанные минуты и большинство выводов полученных на нем распространяются и на imagenet. А уже потом, когда эксперименты проделаны и выводы понятны, можно брать сети потолще и какой нибудь COCO. Но при этом свои первые работы и первые выводы я делал вообще на синтетическом датасете на основе одной единственной картинки x - координаты точки, y - rgb этой точки. Очень простая задача, с которой справляется даже сетка написанная на CPU и при этом посмотрев что нарисовала вам сеть и сравнив с исходной картинкой можно многое понять о том как и почему сеть работает. Там на картинке разделяющие плоскости прямо буквально видны - роскошь, которую не могут себе позволить люди изучающие реальные задачи.
Он же вам тут не трансформеры на классах делает миллиардные, а просто учебную сетку. Какова исследовательская задача, такие и инструменты.
Потом переносить придётся, хотя опять скажу - разреженные спарс матрицы и матрицами то называются только чтобы страусов не пугать.
Я тут говорю про то, что если сначала сделать матрицы на классах и и более обычные, то вы сможете понять их работу и другими способами, научитесь смотреть на них с двух сторон, а не с одной, к которой все привыкли и почти всё, что можно будет с этой стороны разглядеть уже разглядели.
>> Так что нет, никаких классов не должно быть
Вас же не смущают классы модуля в том же пайторче. Если бы не было инкапсуляции внутри этого класса всего функционала автограда куча людей стучалось бы лбом о дифференциирование того что они напридумывали и больше половины этого столкновения с реальностью бы не вывезли. а те кто вывезли, делали свои сети на много дольше. Класса нейрона не должно быть в инференсе, до поры до времени, тут я согласен, но если человек умеет думать в терминах классов, он сможет сделать с сетями такие вещи, о которых он бы даже не подумал если думает о происходящем только как о матричных операторах не вникая в то, какие более мелкие сущности были представлены в виде матриц.
Возвращаясь к тем же CNN, если человек смотрит на свёртку только как на матричное умножение, а не рассматривает каждое ядро свёртки как отдельную сущность, по сути дела такой вот нейрон, ему просто в голову не придёт задуматься, а какие из свёрток для его сети полезны, а какие нет, и нельзя ли часть свёрток из сети повыкидывать, сильно ускорив инференс (спойлер:можно), или даже оставить всю свёртку тех же размеров, но заменив часть ядер на другие, более полезные. И вот эту операцию уже очень трудно делать если не иметь отдельного класса для нейрона(или отдельного ядра свёртки, математика за ними стоит одинаковая), как минимум потому что вы захотите иметь класс в который нейрон можно из свёртки выделить и из которого отдельное ядро можно обратно в свёртку положить, даже если внутри сети он в виде сетки не представлени и существует только в виде индекса в матрице.
Что-то дернуло меня перечитать комментарии к своей допотопной статье, и это было прикольно. :)))
Во-первых могу посоветовать посмотреть мой доклад на последнем ODSфесте: https://www.youtube.com/watch?v=Npm-awHtfeM, почти всё, о чём я говорил тогда в 2015-ом году прекрасно подтверждается и на типовой задаче кормпьютервижена, в котором, казалось бы, всё изучено вдоль и поперёк. Тут в докладе, я кстати, привожу и строгую математику, описывающую связь размеров батча и стохастики с другими параметрами обучения. Подавляющее большинство людей как не понимали всего вот этого, так и продолжают не понимать. Восемь лет прошло, а мои велосипеды все ещё едут лучше общепринятых. :)))
Во-вторых, вы тут упоминали, что вам не нравятся мои определения "обобщений", вернее то что я вам их не раскрыл тогда в дискуссии. Если вам интересно, то посмотрите свежие статьи про такое явление как гроккинг в нейросетях, обнаруженное совсем недавно. Вот мои обобщения, как я убеждён, это и есть то, что ведёт к гроккингу. Строго я это ещё не доказал, но очень похоже по всем признакам. Если бы тогда в 2015-ом встретил больше заинтересованности от людей, которые занимались уже тогда нейросетями возможно гроккинг был бы открыт в 2016-ом, а не в 2023-ем, и в России, а не за её пределами.
Моя статья "Давайте изобретать велосипеды": https://habr.com/ru/articles/249657/
Там в качестве пример показана визуализация, которую я придумал изобретая велосипеды в далёком 2014-ом году. Этой весной выступал на ODS фесте и показывал там в частности кое какие вещи, которые видны из этой визуализации и в частности упоминавшиесмя в той далёкой статье 2015-ого года, и люди такие "Ого чувак! Ты открыл мне целый мир!". А всё потому что в самом начале своих занятий нейросетями я изобретал велосипеды, а многие люди просто берут готовое не пробуя его на прочность в свободное от работы время.
Почему-то из статьи по вашей ссылке нет ссылки на то место, из которого эти алгоритмы выросли: https://ru.wikipedia.org/wiki/Метод_коррекции_ошибки, а выросли они из алгоритмя придуманного ещё розенблаттом, и у него много интересных особенностей о которых люди не в курсе. Я свою первую нейросеть тоже на этом алгоритме делал. Например для алгоритма коррекции ошибки доказана теоретическая сходимость, в отличии от обратного распространения.
Я вам больше скажу в моих первых сетях был ещё и класс синапса, Здесь на хабре есть мои статьи 2014-215-ого годов. И знаете что? Благодаря этому я мог делать такие вещи с сетями, которые в матрицу хоть и можно запихать, но они туда так плохо лезут, что никому тупо в голову такая мысль не приходит.
Например я красиво визуализировал сетки и их состояния и когда столкнулся с проблемой затухания градиента я просто прокинул несколько синапсов с нескольких последних слоёв в несколько первых. Оказалось, что всего 3-5 синапсов (а не матриц) достаточно чтобы проблему полностью преодолеть.
Понятно что это можно выразить и на матрицах, умножая на спарс матрицы, которые почти пусты, и получится очень частный случай резидуал коннекшенов, но даже те люди, которые знают про архитектуру резнета не догадываются попробовать как себя поведет сеть если добавить в неё несколько скипконнекшенов не матриц, а одиночных чисел. В результате теперь я знаю про затухание градиентов больше, чем 95% людей занимающихся нейросетями.
Так что не стоит мешать человеку знакомиться с нейросетями его собственным персональным способом. Да, это очень далеко от оптимума, но по дороге он может приобрести разные полезные интуиции, которые потом сможет и на матрицы перенести, если захочет.
Люди читают жопой... Я всего лишь напомнил, что тот факт, что пьесу ставили год и выдали престижную российскую театральную премию, дискредитирует человека точно так же как если бы он с голой жопой вышел на красную площадь и мошонку гвоздём к площади прибил.
И да, я тут погуглил и изменил своё мнение на счёт домоклова меча. Я просто цитирую из википедии "Финист Ясный Сокол": "пьеса российского драматурга Светланы Петрийчук, рассказывающая о российских женщинах, которые бегут в Сирию, чтобы там стать жёнами террористов. Постановка основана на материалах уголовных дел против женщин, уезжавших в Сирию, которых затем судили за «пособничество терроризму»."
Кто бы мог подумать ставя пьесу о Ясных Соколах из ИГИЛ, что что-то может пойти не так... :))))))))
Я более чем уверен, что статья об оправдании терроризма прямым и явным образом была придумана именно для того чтобы бороться именно с таким творчеством.
>> шел больше года и получил престижную российскую театральную премию
Ассоциация театральных критиков назвала режиссера этого спектакля «Человеком года». Вряд ли может быть что-то сильнее дискредитирующее человека, чем получение престижной российской театральной премии.
P.S. На счёт домоклова меча вы, конечно, правы.
Стоило один раз неосторожно примкнуть к республиканской партии, как невидимая рука рынка крепко схватила маска за выступающие части. :)
Грузовым автомобилям следовать впритык запрещает Ньютон, который в своих законах говорит, что у гружёного грузовика тормозной путь становится таким, что между ним и впереди идущим грузовиком как раз помещается легковушка, которую они в случае чего расплющат. :))))
Видел один раз на дороге прекрасную аварию, когда девушка вовремя не перестроилась в левый ряд для поворота, поэтому юркнула из правого в свободное место перед грузовиком и начала тормозить с привычной ей силой. Водитель самосвала, гружёного песком честно тормозил изо всех сил, и я более чем уверен, ни сказал за это время ни одного слова, которое можно было бы процитировать. Скорее всего предлоги были тоже не очень... Дёшево отделалась, в общем-то.
>>> К сожалению, в России с мужчиной может случиться всё что угодно - арестуют, убьют, ограбят, оклевещут, бизнес отожмут, покалечат. И тогда о "хорошем питании, хороших врачах, хорошем образовании, хороших условиях жизни" детей придётся заботиться матери.
В этом месте сразу вспоминается история Иана Мёрдока - создателя Debian Linux-а, которого убили американские полицейские, за то что он угрожал судом и расследованием, за то что они с ним сделали дубинкой.
Для верующих, что с ними что-то может случиться только в России последнее время открылось огромное пространство для прозрений. Но если хотите учиться на чужих ошибках, а не на своих - посмотрите на демографическую пирамиду выбранной вами страны. На них обычно кроме половозрастного состава показывается ещё и кого и на сколько больше, мужчин или женщин. И почти во всех странах мужчин рождается больше, но уже в 30-35 лет мужчин остаётся в живых меньше, и чем дальше тем сильнее. Вот например картинка для Австралии, в которой вроде как нет сталина путина и войны.
В России ситуация, конечно, сильно хуже, но только за счёт старшего поколения которое активно вымирало в процессе перестройки. Старше 80-ого года как минимум. На пирамиде Это прям невооружённым взглядом видно, а в вашем поколении ничего драматического не происходит по крайней мере в части смертности.
Ну и женщина, когда выбирает себе мужчину, она, внезапно, ещё и хочет чтобы её детки были получше, а как сказал глава кафедры эволюции МГУ А. Марков: "К сожалению исследования показывают, что лучшее, что вы можете сделать для интеллекта своих детей - это выбрать им правильных родителей". Даже если с мужчиной случается что-то непредвиденное, его гены, давшие ему хороший интегральный показатель успеха, достаются его детям. Что интеллект, что доход, что многие личные качества имеют неплохой такой процент генетической обусловленности. Далеко от 100% конечно, но исследования показали, что как минимум у некоторых личных качеств вклад генов как минимум выше чем вклад всего семейного воспитания вместе взятого. Причём по интеллекту, например, это чрезвычайно серьёзные исследования в которых выборка составляет больше 100000 человек чей геном был прочтён, по любым академическим меркам выводы запредельно достоверные и надёжные.
Ну а если девушки не хотят с вами быть просто за то что вы такой прекрасный и умный, а ещё хотят чтобы вы были успешным и с деньгами возможно это потому что вы не такой умный как какой-нибудь Ландау. Скажите за это спасибо своим родителям, и чуть меньше - свои учителям.
Мальчику - ничего кроме секса, а вот когда он повзрослеет и станет мужчиной тогда ещё лучшую из возможных спутниц, и детишек е.. лучших.
Поскольку не все мальчики становятся мужчинами без посторонней помощи иногда детки заводятся по неосторожности и помогают им пройти эту трансформацию, не всегда, впрочем. Где-то видел статистику, что больше 40% браков в США начинаются со случайного секса.
Ну вы как читаете, так вам и грустно. Советую вместо этого почитать https://ru.wikipedia.org/wiki/Задача_о_разборчивой_невесте возможно станет повеселее.
В медиа другие пропорции, например в мобильных играх деньги в товарном количестве приносят всего несколько сотен игр
По сути смысл половины статьи: не пытайтесь - влиять на сотрудников, просто выкиньте их на помойку и берите новых если что-то пошло не так. Просто выкиньте этих и возьмите новых.
И это реально работает, особенно в очень крупных компаниях с хорошим документированием процессов. В Гипермаркетах кассиров например. Вон Амазон так работает, у них годовая текучка кадров - 120%