Огромное спасибо за лекцию, к сожалению не смог найти ссылки на статьи, о которых вы рассказываете. В прикреплённой вами в описание презентации меньше слайдов и нет ссылок. не могли бы вы, пожалуйста, прикрепить ссылки на статьи.
Считаю что алгоритмы беспилотных автомобилей должны проходить дообучение на данных с дорог России так как вероятность возникновения нестандартных ситуаций высок
33:18. "У нас нету доступа к весам и архитектуре". Я так понимаю, что у нас есть только выходы - предсказанные классы или вероятности. Тогда я не понимаю, как мы можем использовать предпоследний слой сети? Можно про этот момент подробнее?
Мы можем использовать его выходы иногда. Дело в том, что у многих сетей (например, для распознавания лиц) после обучения на классификацию отрезается последний слой и выходом считается предпоследний слой. И именно его мы можем получать в таком сеттинге
@@tatianagaintseva8701 , я не понимаю вас. Вы говорите, что у нас нету доступа к весам и архитектуре модели, т.е. она обученная и то что мы можем получить - это классы либо веса. Как в этом случае мы можем проводить изменения над моделью, отрезая последний слой? В противном случае мы получим доступ к предпоследнему слою, а от него к пред-предпоследнему и так мы получим доступ ко всем весам. Что противоречит тому, что вы утверждаете в лекции.
@@vadimosipov2147 попробую объяснить еще раз. Возьмем сеть, скажем, для распознавания лиц. Когда ее обучают, ее обучают как задачу классификации. Последний слой выдает вероятности, который идут в CE -- все как положено. Когда же ее засовывают в продакшен, последний слой выкидывается. То есть, есть сеть, к весам которой у нас доступа нет. Но мы можем подавать в нее картинки (лица) и получать выход. Выход -- это выход из последнего слоя сети (после откидывая последнего слоя после обучения этот выход станет выходом предпоследнего слоя сети). Вот на этих выходах мы и будем обучать новую сеть
@@tatianagaintseva8701 , теперь стало понятно! Это очень необычное положение вещей. Я знаю, что есть платные модели, где доступны только выходы либо модель своя, тогда работа с ней по принципу "делай что хочу", ну или другой команды, но можно договориться.
Возник вопрос, если набор данных маленький, а мы берем за основу большую сеть, то если не заморозить веса - велика вероятность переобучения. Но взять сильно много весов, то в недавних работах было показано, что наблюдается явление double descent, что качество модели начинает снова расти на тестовой выборке. В данном случае оно здесь не может наблюдаться?
Дайте ссылку на эти работы, пожалуйста. Вообще это может зависеть от разных параметров. Если задачи далеки друг от друга, то имеет смысл размораживать большее количество весов, потому что веса, обученные на одной задаче, могут выделять фичи, которые не очень полезны на второй. И нужно дообучать почти все.
17:20. Пример с NLP очень понятный. А как быть, если случай тяжелее? Если у нас задача, скажем, скоринга, и есть 2 домена: А - 50 признаков, Б - 70 признаков; общих признаков 15, остальные - уникальные. Если я урезаю у новой модели Б часть уникальных признаков, то домен Б - подмножество домена А. Если я оставляю все 70, то пространства пересекаются, но все же разные. И тогда я не понимаю, считать эти пространства разными или нет. И что потом делать с этим, когда я выясню. Я понимаю, что это важно для заморозки слоев, но мы все время тестим, эксперементируем, то что дальше? На что опираться при определении, являются пространства признаков разные или нет? И как эту информацию применять?
В случае задачи скоринга, где в принципе разное количество (то есть разный Шейп) признаков, просто дообучением сети вам не поможет. Для дообучения нужно, чтобы размерности входящих данных совпадали. Ваша задача скоринга - задача классического мл