Александр Геннадьевич, подскажите, пожалуйста, почему на слайде 19 вероятность считается по указанной формуле? По идее, нам нужна оценка вероятности слова_контекста при условии слова_цели, которую мы должны оценить из тренировочных данных. И тут не совсем понятно, как это коррелирует софтмаксом скалярного произведения эмбедингов.
@drumcord2 ай бұрын
Нашёл простое визуализированное объяснение, в виде графических абстракций, на канале "Google for Developers" Название: A.I. Experiments: Visualizing High-Dimensional Space Если не удалят - ссылка будет в комментарии ниже. Я смотрел через яндекс браузер с переводчиком.
@drumcord2 ай бұрын
A.I. Experiments: Visualizing High-Dimensional Space kzbin.info/www/bejne/rafWdmugopZ6sKc&ab_channel=GoogleforDevelopers
@drumcord2 ай бұрын
Спасибо большое за объяснения ) почувствовал себя умственно отсталым По сравнению с вашим уровнем развития в этой области, так и есть. Думаю тут стыдиться нечего. Наверное без знаний математики бессмысленно пытаться понять устройство LLM на примерах и упрощённых аналогиях? Всгего то пытался понять, как это "слова" шифруются в числа, и кодируются в векторные "ембединги" в пространствах и измерениях с сотнями координатных осей. Это за пределами моего понимания евклидовой геометрии. И всё через формулы, формулы и ещё раз формулы... Никакого понимания, как это шестисотмерное пространство вообразить, и какие там координатные оси...
@egger_22832 ай бұрын
Здравствуйте, на 49:07 Вы говорите, что мы подаем в нейронку слова, но откуда мы получаем векторное представление для того, чтобы передать его в модель. Из того же самого ворд ту века, с которым мы потом конкатим эмбеддинг? И используем ли мы какую-то аугментацию для ворд-ту-века? Условно в русском языке можно попробовать поварьировать падеж или множественное/единственное число?
@alexanderdyakonov83052 ай бұрын
Там на картинке - используется Glove-представление слов.
@user-qb2od7es2y2 ай бұрын
По задаче Прогнозирования визитов покупателей хотел добавить комментарий - неделя же циклична, потому считать вероятность для ПН как дня первого прихода как p1 может дать не лучший результат. Ведь за начало недели можно условно принять и ВС, и ПТ и другой день, тогда и все распределения вероятностей станут другими.
@alexanderdyakonov83052 ай бұрын
На 54:30 я говорю, что 1й день - это первый день после того, как заканчивается наша обучающая выборка. Это может быть любой день недели. Но для простоты я буду дальше говорить понедельник, вторник и т.д. Чтобы не говорить "первый день теста", "второй день теста" и т.д.
@user-qb2od7es2y2 ай бұрын
@@alexanderdyakonov8305 прошу прощения, упустил этот момент
@71sephiroth3 ай бұрын
wish I know Russian...
@andreib88713 ай бұрын
Александр Геннадьевич! Большое вам спасибо за ваши лекции! Мне было очень интересно и очень познавательно! Спасибо за возможность учиться у вас)
@alexanderdyakonov83053 ай бұрын
Пожалуйста. Рад, что пригодилось и понравилось! И спасибо за вопросы (сейчас ответил на те, что раньше не успел).
@andreib88714 ай бұрын
Александр Геннадьевич, подскажите, пожалуйста, по слайду 13: для чего нам нужно второе слагаемое в первой оптимизации? Почему бы не убрать его и просто оставить: (1) max[E logD(x)] (2) max[E log(D(G(z))]?
@alexanderdyakonov83053 ай бұрын
Так это для того, чтобы дескриминатор фейки правильно классифицировал
@andreib88714 ай бұрын
Александр Геннадьевич, добрый день! Можете, пожалуйста, пояснить слайд 72. У нас есть случайная величина x, мы нашли функцию f, которая отображает “x” в “z” ( уже имеет удобное для нас распределение, например, нормальное). Но как мы получили формулу: p_x = p_z|det df/dx|?
@alexanderdyakonov83054 ай бұрын
Это просто формула замены переменной. Например, в одномерном случае: lms2.sseu.ru/courses/eresmat/course1/razd5z1/par5_5z1.htm
@andreib88714 ай бұрын
Александр Геннадьевич, попробую уточнить свой вопрос. У нас есть z=f(x), p(z) - плотность распределения z, интеграл обозначу []. Тогда получим: [p(z)dz] = [p(f(x))df/dx]. Поскольку f - многомерная функция, а х - вектор, то рождается якобиан. Какие у меня появляются вопросы: в моих вычислениях все находится под знаком интеграла, а на слайде (1) без интеграла (2) слева p(x), а не p(z) как у меня (3) справа не якобиан, а модуль детерминанта якобиана. Как это получилось?
@alexanderdyakonov83053 ай бұрын
@@andreib8871 Там на самом деле должен быть модуль. Вот например вывод формулы: matan.math.msu.su/files/zorich/2%20Uchebnye%20materialy/8%20Lecture%20Zamena%20peremennykh.pdf
@andreib88715 ай бұрын
Александр Геннадьевич, здравствуйте! Возник вопрос по слайду 48. Авторы обучили контекстный кодировщик, а как они его сравнивают по категории «Detection»? Ведь для работы детектора нужна другая архитектура, лоссы. Для классификации более понятно - можно заморозить веса кодировщика, добавить линейный слой и обучить его. А вот для детекции и сегментации не совсем понятно.
@alexanderdyakonov83054 ай бұрын
Здравствуйте! Они использовали в Fast R-CNN свой предобученный кодировщик, а дальше уже на стандартной архитектуре дообучались детектированию. arxiv.org/pdf/1604.07379.pdf
@Vadim_Ozheredov5 ай бұрын
Прикладные Интересные Задачи Дата-Анализа
@antone27755 ай бұрын
Но тогда и 4к должно быть меньше, т к если будет 2 или 3 то это сдвинет в центр распределение
@andreib88715 ай бұрын
Александр Геннадьевич, здравствуйте! Прослушивая слайд 77, решил сделать эксперимент - 4 реализации одной и той же сети : (1) сеть с nn.Parameter (2) cеть без nn.Parameter (тензоры с градиентом) (3) cеть без nn.Parameter (тензоры без градиента) (4) сеть с nn.Linear. Далее сделал одинаковую инициализацию всех сетей. ForwardPass: для всех 4х сетей совпал. Backward pass: для сети (3) упал с ошибкой. Градиенты сети 1 и 4 совпали, а вот у сети 2 получились иные значения градиента ...
@alexanderdyakonov83055 ай бұрын
ForwardPass: конечно, у Вас формула одинаковая Backward pass: (3) - Pytorch не считает градиенты для этих параметров, т.к. Вы не сказали ему это делать Там надо ещё, чтобы инициализация совпадала этих параметров, а то и прямой проход будет разным
@aneleg2336 ай бұрын
Очень интересно! Огромное спасибо! ❤
@andreib88716 ай бұрын
Александр Геннадьевич, добрый день! Вопрос возник по слайду 45. Я правильно понимаю, что при обучении сети GPT2 как раз использовался язык MQAN? Этот набор «команд» при обучении был ограничен? Сложно представляется, как модель смогла научиться отвечать на любой вопрос …
@alexanderdyakonov83056 ай бұрын
Нет, как раз не был... поверить действительно сложно, но она и не научилась идеально отвечать. Скажем, сколько будет 2*2 - отвечала, а 3*12 - ошибалась. Вот уже потом GPT3 тьюнили "под надзором людей": arxiv.org/pdf/2203.02155.pdf И она уже очень неплохо отвечала!
@boriswithrazor69927 ай бұрын
На 49:15 говорится, что усреднение весов моделей почти всегда не работает Сейчас появилась парадигма Model Soup, которая показывает, что очень даже работает (хотя конечно это не усреднение в лоб, а есть нюансы, как модели получать) и местами даже лучше, чем ансамбли) За лекцию огромное спасибо, очень информативно!
@user-dp3hj4df6j8 ай бұрын
Спасибо, очень круто!!!
@user-jo5pg8ss5z8 ай бұрын
Здравствуйте, спасибо большое Вам за ваш курс и за то, что Вы им поделились ) Узнаю для себя очень много нового из ваших лекций (я CV ML инженер). Спасибо большое за ваш труд, блог и потрясающие лекции. Очень нравится ваша авторская подача материала, работа с аудиторией, демонстрация основных идей и погружение в детали и нюансы.
@doniyordjon_pro8 ай бұрын
А про какой сорев идет речь в конце, можно ссылку
@user-op2vt8zj8t9 ай бұрын
Добрый день! А где можно найти вторую часть? Спасибо!
@alexanderdyakonov83059 ай бұрын
Наверное нигде.
@user-ze9eu4lt3y9 ай бұрын
Спасибо за лекцию! Странно получается: сигмоида в качестве функции активации плоха тем, что для больших значений abs(Xij) ее производная = 0 и веса, зависящие от этой производной, не обновляются (в том числе с предыдущих слоев). А ReLU, обнуляющая градиенты, где соответствующие элементы Xij < 0 (+ часть градиентов с предыдущих слоев) - это хорошо. Хотя обе не обновляют кучу весов и еще вопрос кто больше.
@alexanderdyakonov83059 ай бұрын
Да, тут тонкий момент. И он до конца не интуитивен. ReLU хотя бы на половине своей области определения хороша с точки зрения градиента: мы в SGD будет правильно идти и не маленькими шагами. У сигмоиды хорошая зона только около нуля. В целом, инициализацией и грамотной оптимизацией там можно удерживаться, но, как показывает практика, сложно. А самое плохое, что если ошибка большая, то мы шагаем очень медленно (т.к. при больших по модулю значениях аргумента сигмоида имеет пости нулевую производную). Почему нулевая производная и само значение ReLU на половине оси ничему не мешает - открытый вопрос. Но думаю, что это срабатывает как аналог DropOut-a, т.е. как регуляризация.
@user-ze9eu4lt3y9 ай бұрын
@@alexanderdyakonov8305, спасибо за ответ! То есть, если даже мы удерживаем входные значения Xij для слоя сети в "хорошей зоне сигмоиды", то при backpropagation уже на пяти слоях производная сигмоиды уменьшит градиенты минимум в 1000 раз (максимум производной = 1/4, 1/4**5 ~ 1к) и веса не будут почти обновляться? Получается, есть корреляция между большой ошибкой на конкретном объекте и большими по модулю входными для слоев Xij формирующими эту ошибку? Интересно, если ReLU отключает обновление половины весов, регуляризируя тем самым нейронку и мешая переобучаться, почему тогда всякие ее модификации часто лучше себя показывают, хотя они, вроде, и не обнуляют градиенты у весов... Столько всего тут происходит))
@andreib88719 ай бұрын
Александр Геннадьевич, здравствуйте! Позвольте еще вопрос по слайду 51. Если ячейка (например, верхняя левая) не является центром какой-либо рамки, то что модель должна выдавать для нее в координаты x, y, w, h?
@alexanderdyakonov83059 ай бұрын
Ничего, точнее в данном случае нулевые уверенности.
@KobylkinKS10 ай бұрын
1:03:53 прошу прощения, не совсем понял. Если взять в качестве phi эмпирическую функцию распределения выборки различных x_i для нечетного n, разве у нас не получится медиана ?
@KobylkinKS9 ай бұрын
Не совсем корректная догадка, так как эмпирическая функция не имеет обратной.
@KobylkinKS10 ай бұрын
6:14 не совсем понял, разве закон больших чисел не утверждает, что выборочное среднее является состоятельной оценкой матожидания?
@alexanderdyakonov830510 ай бұрын
Да, всё верно. Это я там тупанул.
@andreib887110 ай бұрын
Александр Геннадьевич, здравствуйте! А если на слайде 13 добавить еще одно фото, на котором котенок есть (ground true = 1), но детектор вообще ничего не обнаружил (т.е. даже ошибочных детекций там нет). Как такой пример добавить в таблицу расчета AP?
@alexanderdyakonov830510 ай бұрын
В таблице измениться столбец Recall: будет [1/5, 2/5 ,3/5, 3/5]
@andreib887110 ай бұрын
Понял, спасибо)
@nadirbekovnadir11 ай бұрын
10/10
@anatolyalekseev10111 ай бұрын
Получается, случайное кодирование категорий призвано найти возможный ординальный порядок в номинальных данных? По поводу кодирования мелких категорий в одну, а нельзя ли это как-то улучшить с помощью теории информации? Что, если в категориальном признаке только некоторые уровни несут информацию о таргете, нельзя ли все остальные сплавить в "общую категорию бесполезных"?)
@alexanderdyakonov830511 ай бұрын
- что-то типа того - ну вот проблема мелких категорий в том, что у них опасно смотреть на таргет: мало статистики. Если только как-то по-другому их упорядочить...
@spke11 ай бұрын
@alexanderdyakonov8305, вы конечно сейчас будете смеяться, но полученный вами оптимальный порог для F-меры - совсем не случайное число; на самом деле оно равно 1 - 1/phi, где phi - это золотое сечение :)
@alexanderdyakonov830511 ай бұрын
Хорошее замечание. Но золотое сечение можно притянуть к любому выражению с корнем из 5;) Надо подумать, есть ли здесь какая-то здравая интерпретация этого факта...
@spke11 ай бұрын
@@alexanderdyakonov8305 как прикладной математик, я не верю в случайные совпадения: introspec.retroscene.org/other/dyakonov_golden_ratio_youtube.jpg :)
@spke11 ай бұрын
@@alexanderdyakonov8305 извините за назойливость, но я подумал что м.б. приложенные мной выкладки до вас не дошли. Там действительно возникает золотое сечение, хотя видимо не из-за каких-то особенный свойств F_1, а просто по стечению обстоятельств для выбранного вами примера.
@alexanderdyakonov830511 ай бұрын
@@spke Да, спасибо за замечание!
@anatolyalekseev10111 ай бұрын
Кстати, не ясно, почему это leave one out стратегия для target encoding может вызывать утечки таргета. Но раз катбуст-подход с expanding window даёт хорошие результаты, наверное, случайное сэмплирование N раз может дать ещё лучшее? По кодированию категориальных факторов лекция в общий доступ, видимо, не попала (
@alexanderdyakonov830511 ай бұрын
kzbin.info/www/bejne/mIXYpH6gesZngac 18:51
@VladyslavHadzhykhanov Жыл бұрын
Подскажите, пожалуйста, как соотносится то, что размерности матриц W^Q, W^K, W^V не зависят от числа объектов -- s и то, что трансформер работает с батчами, "добитыми" паддингом до фиксированной длины, а не до максимальной длины по батчу? То есть по сути модель таки требует фиксированное число токенов на вход, но не понятно, почему?
@marky200024 Жыл бұрын
Лучшая лекция по бустингам из тех, что я слушал. Большое спасибо!
@andreib8871 Жыл бұрын
Александр Геннадьевич, добрый день! Вопрос возник по слайду 20 (42:30). На самом нижнем уровне нарисован исходный тензор для предложения "The cat sat on the red mat". Судя по изображению, слова представляются векторами размерности 5. Тогда ведь свертка (красная линия) должна действовать не по строке, а захватывать всю размерность 5? (по аналогии с канальностью изображений).
@alexanderdyakonov8305 Жыл бұрын
Да, вроде так и делается, если верить оригинальной статье (п.3.1) и реализациям, которые есть на гитхабе. Возможно, рисунок не совсем корректный, тут возникает ещё вопрос, почему не меняется размерность представлений (число строк в нарисованных матрицах).
@user-mhlrfvv Жыл бұрын
На 5:57 нужно домножать не на exp(z), а на exp(z/2), тогда получается softmax(z/2, -z/2). Получается сигмоида выдаёт значения вероятностей ближе к 0.5, чем softmax.
@alexanderdyakonov8305 Жыл бұрын
Да, верно.
@doniyordjon_pro Жыл бұрын
А как увеличивать масштаб визуализации, в конце про точек?
@alexanderdyakonov8305 Жыл бұрын
Это 1:14:03? Например, поменять xlim, ylim - т.е. видимую область.
@doniyordjon_pro Жыл бұрын
@@alexanderdyakonov8305 axa, спасибо
@andreib8871 Жыл бұрын
Александр Геннадьевич, еще вопрос возник: производные dL/dw нужны нам для обновления параметров сети, поэтому мы их считаем, а для чего нам нужны производные dL/dx?
@alexanderdyakonov8305 Жыл бұрын
А... хороший вопрос! Они пока нам не нужны, но потом понадобятся. Например, для стилизации изображений по методу Гатиса. Или для "атак на нейросети".
@user-fz1hn1sl8i Жыл бұрын
Спасибо за лекцию! А будут ли выкладываться обновленные слайды? А то в репе ссылка на слайды 20го года.
@alexanderdyakonov8305 Жыл бұрын
Видимо пока нет. Но по новым лекциям будут новые слайды залиты.
@rinkornalb Жыл бұрын
А "Self-Supervision часть 2" планируется в этом плейлисте? Так-то весьма интересная тема!
@alexanderdyakonov8305 Жыл бұрын
Вроде она не очень хорошо записалась, поэтому пока не будет.
@albertatlasov1411 Жыл бұрын
Спасибо за ваш курс лекций! ❤
@alexanderdyakonov8305 Жыл бұрын
Пожалуйста!
@dronnet Жыл бұрын
Да уж...вот это класс. Есть чему поучиться )) Спасибо, для меня довольно необычная задача.
@anatolyalekseev101 Жыл бұрын
На 16:48 про генерацию некоррелирующих признаков MAD из двух видов средних подумалось провести мини-исследование: нагенерить много случайных 1d массивов с разным распределением, возможно, взять какие-то реальные датасеты, для них всех рассчитать все возможные комбинации таких средних и MAD, посмотреть, какие наиболее некоррелированы (в линейном смысле и смысле взаимной информации) с остальными того же датасета. Возможно, даже потестировать предсказательную силу таких фичей (если составить искусственные зависимости) по сравнению со случайной подвыборкой. Не знаю, можно ли тут ожидать вообще какого-то стабильного обобщения, но если такое вдруг обнаружится, это позволит в реальной работе быстро проверять экзотические "киллер фичи", до которых в конкретном проекте и руки бы не дошли.. Хм, тогда уже и комбинации математических операций полезные исследовать на 18:40.
@dronnet Жыл бұрын
Решил не просто лекцию просмотреть, а и понабирать за автором код в юпитере. И вот как только начал набирать так сразу улыбнулся. В самом начале, где задатся функция y, в скобочках есть sin x **2 + сos x **2, а это же единица :) итого вся функция y = sin x но это я не с целью докопаться, просто заметил :)
@alexanderdyakonov8305 Жыл бұрын
Естественно, это "на вид сложная функция", производная которой вычисляется в уме. Но Pytorch же не знает тригонометрических формул.
@anatolyalekseev101 Жыл бұрын
Приведённый алгоритм вычисления среднего Шурыгина кажется неполным. Хотел реализовать, но слишком много неясностей. (
@andreib8871 Жыл бұрын
Александр Геннадьевич, добрый день! Возник вопрос по лекции, подскажите, пожалуйста. Не совсем понятна размерность результата для dz / dW (1:02:30). Ведь если мы говорили на слайде 42 о "форме" производных: производная (число), градиент (вектор), якобиан (матрица), то для dz/dW должен быть какой-то трехмерный результат (ведь z - это вектор, а W - это матрица)? А получилось, что dz/dW = x^T.
@alexanderdyakonov8305 Жыл бұрын
Совершенно верно. Формально должен быть 3х-мерный результат. Но тут мы немножко схалтурили, т.к. мы берём "прозводную по матрице", в ответ выписали матрицу такого же размера, её ij-й элемент это как раз производная по w_ij. И если так сделать, то формально представленное равенство верно. Тут ещё важный момент наше произведение стало внешним: мы умножаем не на вектор-столбец, а на вектор-строку. Смотрите сразу на последнюю строчку на слайде. Там объясняется, почему записанную выше запись можно считать верной.
@Beowulf245 Жыл бұрын
Спасибо огромное за продолжение DL) А то я уже весь курс по 3-му разу пересматриваю - очень интересно.
@andreib8871 Жыл бұрын
Александр Геннадьевич, здравствуйте! В лекции (26:50) вы делаете допущение о нулевом смещении при линейных операциях внутри сети. Можете подсказать почему делается это допущение или где можно почитать, чтобы разобраться в этом вопросе?
@alexanderdyakonov8305 Жыл бұрын
Если у нас есть константный ненулевой признак, то на первом слое смещение не нужно. А на последующих можно тоже обойтись без него, ведь если, например, мы используем сигмоиду, то при нулевых весах нейрон всегда выдаёт константу 1/2, т.е. он реализует смещение для следующего слоя. Поэтому, если смещение необходимо, сеть сама научится его реализовывать (ценой выучивания некоторых параметров). Впрочем, в общем случае смещением нельзя пренебречь .
@pss506 Жыл бұрын
Картинка справа вверху не нужна.
@belovegor2064 Жыл бұрын
🥰
@andreib8871 Жыл бұрын
Александр Геннадьевич, спасибо вам за курс лекций! Очень интересные и полезные материалы! Есть ли видео лекция "Рекомендательные системы"? (нашел только слайды)
@alexanderdyakonov8305 Жыл бұрын
Пока в виде доступного видео нет.
@SergeySkripko Жыл бұрын
была затравка, что завтра вы проверите догадку, которой объясняете резкий отрыв по качеству предсказания у первого места лидерборда. Так как, догадка подтвердилась?
@alexanderdyakonov8305 Жыл бұрын
Ой, я уже и не помню...
@user-lm3hu9ng9g Жыл бұрын
@Alexander D'yakonov Александр, спасибо за лекцию! я правильно понял по kzbin.info/www/bejne/f2HWhoiumJ6LnrM чтобы понять, будет ли наша модель работать с новыми данными, нам нужно обучить новую модель с пометками за 1 как новые данные 0 - старые, результаты которой мы будем принимать как критерий актуальности модели? или мы используем старую модель? заранее спасибо за ответ!
@alexanderdyakonov8305 Жыл бұрын
Мы учим новую модель. Строго говоря, её качество не скажет нам "будет ли работать модель, обученная на обучении, на тесте". Оно скажет, насколько тест не похож на обучение.