KNOWLEDGE_ACCUMULATOR Telegram 319
Class-Incremental Learning: A Survey [2023]

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

Встречайте, Class-Incremental Learning (CIL). Представьте, у модели нет доступа ко всему датасету объектов на все классы, а она получает их последовательно в виде нескольких "задач" по несколько классов. Сначала вам приходят птицы и собаки, затем тигры и рыбы. Задача модели - учиться на каждой следующей задаче, при этом не забывая предыдущие классы. На тесте с модели спросят за умение классифицировать все объекты.

Постановка менее экстремальная, чем при подаче образцов по одному, как я описывал, но тем не менее, известно, что "Finetune", при котором мы просто каждый раз дообучаем модель на последних данных, либо теряет способность учиться на новых классах, либо забывает старые.

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

Коротко взглянем на архетипы техник. Более детально я буду разгребать это сокровище в ближайшие недели.

- Data Replay
Сохраняем часть старых данных в памяти и периодически переобучаемся на них. Можно обучать ещё и генеративную сеть и обучать классификатор на синтетике - это называется Generative Replay.

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

- Регуляризация
В процессе обучения на новых классах, добавляем разного рода ограничения в оптимизацию, чтобы заморозить старые знания.

- Дистилляция
При появлении новых классов, мы одновременно учим модель на них и дистиллируем уже существующую модель.

- Model Rectify
Иногда ресёрчеры изучают особенности поведения нейросети при файнтюне и вставляют костыли, которые напрямую гасят эту особенность. Авторы обернули такие работы в отдельную группу.

Самое классное в этой статье, что авторы понимают важность контроля за затратами памяти. Без этого все эти сравнения теряют смысл, и поэтому памяти уделяется достаточное внимание. Память тратится на 2 вещи - хранение данных и дополнительные обучаемые параметры. Как распределить эти затраты? Как можно сэкономить память, сжимая данные? Class-Incremental Learning предоставляет большой простор для творчества.

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

@knowledge_accumulator
1👍114🔥2



tgoop.com/knowledge_accumulator/319
Create:
Last Update:

Class-Incremental Learning: A Survey [2023]

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

Встречайте, Class-Incremental Learning (CIL). Представьте, у модели нет доступа ко всему датасету объектов на все классы, а она получает их последовательно в виде нескольких "задач" по несколько классов. Сначала вам приходят птицы и собаки, затем тигры и рыбы. Задача модели - учиться на каждой следующей задаче, при этом не забывая предыдущие классы. На тесте с модели спросят за умение классифицировать все объекты.

Постановка менее экстремальная, чем при подаче образцов по одному, как я описывал, но тем не менее, известно, что "Finetune", при котором мы просто каждый раз дообучаем модель на последних данных, либо теряет способность учиться на новых классах, либо забывает старые.

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

Коротко взглянем на архетипы техник. Более детально я буду разгребать это сокровище в ближайшие недели.

- Data Replay
Сохраняем часть старых данных в памяти и периодически переобучаемся на них. Можно обучать ещё и генеративную сеть и обучать классификатор на синтетике - это называется Generative Replay.

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

- Регуляризация
В процессе обучения на новых классах, добавляем разного рода ограничения в оптимизацию, чтобы заморозить старые знания.

- Дистилляция
При появлении новых классов, мы одновременно учим модель на них и дистиллируем уже существующую модель.

- Model Rectify
Иногда ресёрчеры изучают особенности поведения нейросети при файнтюне и вставляют костыли, которые напрямую гасят эту особенность. Авторы обернули такие работы в отдельную группу.

Самое классное в этой статье, что авторы понимают важность контроля за затратами памяти. Без этого все эти сравнения теряют смысл, и поэтому памяти уделяется достаточное внимание. Память тратится на 2 вещи - хранение данных и дополнительные обучаемые параметры. Как распределить эти затраты? Как можно сэкономить память, сжимая данные? Class-Incremental Learning предоставляет большой простор для творчества.

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

@knowledge_accumulator

BY Knowledge Accumulator




Share with your friend now:
tgoop.com/knowledge_accumulator/319

View MORE
Open in Telegram


Telegram News

Date: |

Avoid compound hashtags that consist of several words. If you have a hashtag like #marketingnewsinusa, split it into smaller hashtags: “#marketing, #news, #usa. A Telegram channel is used for various purposes, from sharing helpful content to implementing a business strategy. In addition, you can use your channel to build and improve your company image, boost your sales, make profits, enhance customer loyalty, and more. Some Telegram Channels content management tips Activate up to 20 bots "Doxxing content is forbidden on Telegram and our moderators routinely remove such content from around the world," said a spokesman for the messaging app, Remi Vaughn.
from us


Telegram Knowledge Accumulator
FROM American