Re[3]: Почему взлетел Deep Learning?
От: Vzhyk2  
Дата: 11.11.20 05:11
Оценка: 5 (1)
Здравствуйте, Nuzhny, Вы писали:

N>Я работаю около, фактически являюсь пользователем: беру готовый фреймворк, готовую архитектуру, а там дальше уже дообучить под себя, интегрировать фреймворк к себе в систему, сделать максимально параллельный пайплайн, оптимизировать всё вокруг. Там пока что достаточно и чисто алгоритмических задач, которые нейросети не могут оптимально (пока не могут?) взять на себя: банальный NMS, трекинг, многокамерность, 3D компьютерное зрение и т.д.

Подожди еще 3-4 года, пока LSTM сети добавят к сверточным и сделают тебе американцы треккинг — юудешь юзать, каки положено местному машин леннингу.
Re[4]: Почему взлетел Deep Learning?
От: Vzhyk2  
Дата: 11.11.20 05:15
Оценка:
Здравствуйте, Je suis Mamut, Вы писали:

JSM>ну под "там" я имел ввиду внутри, конечно, а не вокруг

JSM>если меня, например, возьмут какую-то вебню прикручивать к DL — пойду с удовольствием
На уровне прикручивать там всё просто. Ставишь pytocrh или tensorflow (pip install ... обычно достатояно). Затем подсовываешь обыченную модель (их уже много в инете валяется). Всё, дальше тупо юзаешь одну фукнцию на питоне. Вот ты и машин лемминг.
В общем море туториалов на в инете, как всё это сделать в 3-10 строк кода.
Re[7]: Почему взлетел Deep Learning?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.11.20 08:26
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

N>>Тогда скажи, что именно тебя в этом удивляет. Какая часть сети по распознаванию, например, или сегментации является загадкой. Свёртки? Полносвязные слои? Что?

V>>То бишь, что там внутри не знает только ну совсем ленивый и тупой, а вот почему такая простая хрень работает — вот это удивительно.

Странно: теория, почему это всё работает известна давно. Много делается инструментов для визуализации и интерпретируемости моделей. Начни, например, с сети Ле Куна 1998 года для распознавания символов. Она простая и разобрана до винтиков.
Re[4]: Почему взлетел Deep Learning?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.11.20 08:32
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

V>Подожди еще 3-4 года, пока LSTM сети добавят к сверточным и сделают тебе американцы треккинг — юудешь юзать, каки положено местному машин леннингу.


Оно уже сделано и по качеству превосходит классические подходы: CenterTrack, FairMOT. Всё это хорошо, работает, но пока не практично.
Re[5]: Почему взлетел Deep Learning?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.11.20 08:35
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

V>На уровне прикручивать там всё просто. Ставишь pytocrh или tensorflow (pip install ... обычно достатояно). Затем подсовываешь обыченную модель (их уже много в инете валяется). Всё, дальше тупо юзаешь одну фукнцию на питоне. Вот ты и машин лемминг.

V>В общем море туториалов на в инете, как всё это сделать в 3-10 строк кода.

А отом выяснится, что работает медленно и начнёшь разбираться с TensorRT, OpenVINO, ffmpeg и всё на C++. Или же в другую сторону: квантование моделей, prunning, следить, чтобы при этом качество не упало и т.д.
Re[8]: Почему взлетел Deep Learning?
От: Vzhyk2  
Дата: 11.11.20 10:41
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Странно: теория, почему это всё работает известна давно. Много делается инструментов для визуализации и интерпретируемости моделей. Начни, например, с сети Ле Куна 1998 года для распознавания символов. Она простая и разобрана до винтиков.

Вот даже интересно, почему ты отвечаешь всё время на вопрос "Как?", который тебе никто не задавал и не можешь понять что вопрос "Почему?".
Re[5]: Почему взлетел Deep Learning?
От: Vzhyk2  
Дата: 11.11.20 10:44
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Оно уже сделано и по качеству превосходит классические подходы: CenterTrack, FairMOT. Всё это хорошо, работает, но пока не практично.

Если превосходит, то почему не практично? А что практично?
Re[6]: Почему взлетел Deep Learning?
От: Vzhyk2  
Дата: 11.11.20 10:47
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>А отом выяснится, что работает медленно и начнёшь разбираться с TensorRT, OpenVINO, ffmpeg и всё на C++. Или же в другую сторону: квантование моделей, prunning, следить, чтобы при этом качество не упало и т.д.

Мда, твой ответ в точности поддтверждает то, что я думаю о постсовковом машин лемминге. Отличаются только некоторые группы в РФ в лучшую сторону — они таки занимаются машинным обучением и придумывают свои подходы или улучшают чужие.
Re[9]: Почему взлетел Deep Learning?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.11.20 10:51
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

N>>Странно: теория, почему это всё работает известна давно. Много делается инструментов для визуализации и интерпретируемости моделей. Начни, например, с сети Ле Куна 1998 года для распознавания символов. Она простая и разобрана до винтиков.

V>Вот даже интересно, почему ты отвечаешь всё время на вопрос "Как?", который тебе никто не задавал и не можешь понять что вопрос "Почему?".

Я не отвечаю ни на вопрос "как?", ни на вопрос "почему?". Я тебе ничего не объясняю и не пытаюсь, а лишь показываю путь. Ещё раз повторю, что на вопрос "почему?" ответ давно известен и границы применимости нейросетей показаны: что какие-то нейросетки Тьюринг полны, что другие есть апроксиматоры гладких функций и т.д. Вопрос "почему?" обсасывается с самого начала нейросетей, когда показывают какой сетки достаточно для моделирования XOR и дальше по усложнению.
Я так понял, что это у тебя какая-то проблема, что не можешь понять почему они работают и пытаюсь помочь.
Re[6]: Почему взлетел Deep Learning?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.11.20 10:52
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

N>>Оно уже сделано и по качеству превосходит классические подходы: CenterTrack, FairMOT. Всё это хорошо, работает, но пока не практично.

V>Если превосходит, то почему не практично? А что практично?

Медленно и узкоспециализированно.
Re[7]: Почему взлетел Deep Learning?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.11.20 10:53
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

N>>А отом выяснится, что работает медленно и начнёшь разбираться с TensorRT, OpenVINO, ffmpeg и всё на C++. Или же в другую сторону: квантование моделей, prunning, следить, чтобы при этом качество не упало и т.д.

V>Мда, твой ответ в точности поддтверждает то, что я думаю о постсовковом машин лемминге. Отличаются только некоторые группы в РФ в лучшую сторону — они таки занимаются машинным обучением и придумывают свои подходы или улучшают чужие.

Просто ты не можешь отличить исследователя от инженера и пытаешься последних назвать обезьянками. Бывает.
Re: Почему взлетел Deep Learning?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 11.11.20 11:12
Оценка:
Здравствуйте, Tai, Вы писали:

Tai>Как думаете, почему взлетел Deep Learning (распознавание картинок, логические игры, беспилотные машины), хотя что там конкретно внутри — никто не знает.


За 2008-2012 при переходе на GPU цена одной операции с числом типа float, при характерных типах действий, упала примерно в 1000 раз — всё за счёт GPGPU.
Дальше типовая инерция IT: 5 лет — на хайп, 10 лет — на широкое освоение.

Дальше такого резкого падения нет и хайп останавливается. Ждём следующего успеха железа.
The God is real, unless declared integer.
Re[7]: Почему взлетел Deep Learning?
От: Vzhyk2  
Дата: 11.11.20 13:39
Оценка:
Здравствуйте, Nuzhny, Вы писали:

NN>Медленно и узкоспециализированно.

Быстрых и хоть чуть качественных я не видел. Быстрые — это тупые на базе IOU простейшего и безумно некачественные. Если хочешь чуть покачественнее, то тут нейронки лучше уже работают.
Узкоспециализирована — переобучи на большей базе на разные объекты, в чем проблема?
Re[8]: Почему взлетел Deep Learning?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.11.20 14:03
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

V>Быстрых и хоть чуть качественных я не видел. Быстрые — это тупые на базе IOU простейшего и безумно некачественные. Если хочешь чуть покачественнее, то тут нейронки лучше уже работают.

V>Узкоспециализирована — переобучи на большей базе на разные объекты, в чем проблема?

Ха! Переобучи. Молодой человек шутить изволит. И всё равно будет медленно.
Методов для multiple object tracking'а придумано много, это проблема комплексная, не исчерпывающаяся одним твоим IoU. В 2020 году продолжают выходить статьи по тому, как с помощью графов быстро и робастно решать проблему ассоциации с перекрытием, пропажей и оявлением объектов. Пока эта проблема больше из computer science, чем из machiene learning области.
Посмотрим, что будет дальше
Re[9]: Почему взлетел Deep Learning?
От: Vzhyk2  
Дата: 12.11.20 05:13
Оценка: :))
Здравствуйте, Nuzhny, Вы писали:

N>Ха! Переобучи. Молодой человек шутить изволит. И всё равно будет медленно.

В чем проблема у тебя переобучить модель. Подходы с приличным качеством не на нейронках еще медленнее. К сведению инженеру.

N>Методов для multiple object tracking'а придумано много, это проблема комплексная, не исчерпывающаяся одним твоим IoU. В 2020 году продолжают выходить статьи по тому, как с помощью графов быстро и робастно решать проблему ассоциации с перекрытием, пропажей и оявлением объектов. Пока эта проблема больше из computer science, чем из machiene learning области.

N>Посмотрим, что будет дальше
Ладно, надоело. Решал я эту проблему не нейронками с MOTA около 70. Но с такими извращениями из стандартных подходов, что таки полез в нейронки. Твои ссылки глянул — так себе решения.
Для решения этой задачки нужна полноценая LSTM сетка на фичах из CNN — аналогично сеткам для распоpнавания речи. C другой стороны HMM сработают, но они сильно геморнее в реализации, чем нейронные сетки.
И тебе к сведению нейронка — это и есть грав, причем направленный.
Re[3]: дообучить сеть
От: Sharov Россия  
Дата: 12.11.20 11:04
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Я работаю около, фактически являюсь пользователем: беру готовый фреймворк, готовую архитектуру, а там дальше уже дообучить под себя, интегрировать фреймворк к себе в систему, сделать максимально параллельный пайплайн, оптимизировать всё вокруг. Там пока что достаточно и чисто алгоритмических задач, которые нейросети не могут оптимально (пока не могут?) взять на себя: банальный NMS, трекинг, многокамерность, 3D компьютерное зрение и т.д.


Все никак руки не дойдут спросить на одс, спрошу тут: что значит "дообучить" сеть?
Т.е. есть уже готовая сетка ( с соотв. весами), я добавляю какие-то свои скрытые слои
и обучаю уже только свои слои, так? Пример, мне надо распознавать кота в сапогах -- я беру
готовую сеть, уже обученную на котах, добавляю туда слой для распознавания шляп и готово.
Это так работает или нет? Т.е. как кусочки Лего, достраиваю\уточняю слой за слоем.
Максимально общий слой -- коты, далее какой-то специфичный слой для распознавания сапог и т.д.
Дообучение так работает?
Кодом людям нужно помогать!
Отредактировано 12.11.2020 11:06 Sharov . Предыдущая версия .
Re[4]: дообучить сеть
От: Vzhyk2  
Дата: 12.11.20 11:41
Оценка: 5 (1)
Здравствуйте, Sharov, Вы писали:

S>Все никак руки не дойдут спросить на одс, спрошу тут: что значит "дообучить" сеть?

Всё тупо и просто. Берешь обученную сетку на некоем датасете. И тупо вызываешь train на своем датасете. Она стартует не со случайных весов, а уже с некоторой точки в их пространстве. все верят, что если сначала обучили на некоем большом, а потом дообучили на своем, то она распознавать в твоих условиях будет лучше. Верят, потому что доказательтсва не существует.
В общем аналогично тому, как GMM построения стартуют с результатов векторного квантования.
Ну и проблема в том, что обучить большую и рабочую сетку с нуля на игровой карточке можно, но за очень очень долго, поэтому берут предобученные гуглами и мордокнигами на своих мощных серверах на imаgenet.

S>Т.е. есть уже готовая сетка ( с соотв. весами), я добавляю какие-то свои скрытые слои

S>и обучаю уже только свои слои, так?
Нет, обучаешь все, но свои стартуешь с чего хочешь, а остальные с предобученных. Но можешь и только свои, остальные заморозить (запретить модификации их параметров и весов).

S>Пример, мне надо распознавать кота в сапогах -- я беру

S>готовую сеть, уже обученную на котах, добавляю туда слой для распознавания шляп и готово.
S>Это так работает или нет? Т.е. как кусочки Лего, достраиваю\уточняю слой за слоем.
S>Максимально общий слой -- коты, далее какой-то специфичный слой для распознавания сапог и т.д.
Не нужно никаких слоев. Или добавляешь класс сапоги, чуть модифицируешь для этого сетку (для некоторых слоев количество классов важно) или тупо дообучаешь на свой датасет котов с сапогами.

З.Ы. И да для всего, что я напсиал лтебе по-русски придумано новая терминология, которая дублируют ту, что юзали ранее в задачах оптимизации. По сути, если решал ранее задачи оптимизации, обработки сигналов и видео, то всё твое обучение — это изучение этой новоявленой терминологии и сопоставление ее с классической.
Отредактировано 12.11.2020 12:00 Vzhyk2 . Предыдущая версия .
Re[5]: дообучить сеть
От: Vzhyk2  
Дата: 12.11.20 11:53
Оценка: 8 (1)
Здравствуйте, Vzhyk2, Вы писали:

V>Здравствуйте, Sharov, Вы писали:

Что такое нейронная сетка. Это направленный граф из функций со своими параметрами. Обучение сетки — это подбор параметров этих функций, что бы ошибка была минимальной. Все.
Сверточные потому, что основной набор функциё — это свертки с матрицей весов и вектор смещений и еще некоторые.
Основная фишка работающих нейронок, что для них есть простые функции вычисления градиента (обратный ход по графу) для градиентного спуска.
Re[4]: дообучить сеть
От: Буравчик Россия  
Дата: 12.11.20 12:20
Оценка: 5 (1)
Здравствуйте, Sharov, Вы писали:

S>Все никак руки не дойдут спросить на одс, спрошу тут: что значит "дообучить" сеть?

S>Т.е. есть уже готовая сетка ( с соотв. весами), я добавляю какие-то свои скрытые слои
S>и обучаю уже только свои слои, так? Пример, мне надо распознавать кота в сапогах -- я беру
S>готовую сеть, уже обученную на котах, добавляю туда слой для распознавания шляп и готово.
S>Это так работает или нет? Т.е. как кусочки Лего, достраиваю\уточняю слой за слоем.
S>Максимально общий слой -- коты, далее какой-то специфичный слой для распознавания сапог и т.д.
S>Дообучение так работает?

Не обязательно (часто и не желательно) добавлять слои в сетку. Вполне возможно, что и старая сеть справится с твоей задачей.
Ей просто никогда не показывали сапоги на котах, поэтому ее веса определяют только котов (без сапог).

Достаточно взять готовую сетку, загрузить туда веса, и продолжить обучение — подсовывать ей котов, но уже с сапогами.
Через некоторое время веса в сетке поменяются — она научится определять эти сапоги на котах.
Best regards, Буравчик
Re[5]: дообучить сеть
От: Vzhyk2  
Дата: 12.11.20 12:30
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Не обязательно (часто и не желательно) добавлять слои в сетку.

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