Pull to refresh
20
0
Dmytro Panchenko @roryorangepants

Senior ML Engineer

Send message
В рекламной части вы описываете HOG-based алгоритмы, которые сейчас никто не использует нигде, кроме очень редких задач, где нужно супер-быстрое и грубое распознавание.
После этого вы рассказываете про абстрактное «распознавание изображений» на примерах, все из которых решаются нейросетями.
Почему так непоследовательно?

Ну и, да:
но одним из самых перспективных признан метод гистограмм ориентированных градиентов (HOG)

Одним из самых перспективных он был лет восемь назад.
Логично. Несмотря на то, что на картинках нет, как выражается автор, «линий явных, одноцветных нет, и углов, соответственно, нет», они, вероятно, появятся после первой же комбинации свертки и макспула.
Подбор параметров с помощью градиентного спуска.

Ну так вот это не решение в лоб. Это уже нужно, когда речь идет о регуляризации. Решение в лоб именно линейной регрессии — через уравнение.

Вот я тут проверил даже на регрессии от двух переменных. При разнице диапазонов в миллион решение через псевдобратную матрицу даёт ошибку в третьем знаке. Если нормировать, то всё OK.

Расчехляю sklearn, который автор привел в пример

Разница в коэффициентах в тринадцатом знаке. Это реальный пример реального использования линрега в лоб на ненормированных фичах.
А вот разница в скорости работы в этом же примере:

Скорость с отнормированными фичами лучше, но в пределах погрешности.

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

Обычно я бы никогда не сказал такой, на первый взгляд, бред, но в контексте ваших слов скажу: машинное обучение — это не численные методы. То расхождение, ради которого вы нормируете величины, в реальных задачах ML не выстрелит, если мы всё ещё говорим про пример с линрегом.

Нам в головы на матстате вдалбливают, что перед регрессией фичи надо нормализовывать. Но на практике это нужно в двух конкретных случаях: регуляризация и интерпретируемость.
Поэтому мне показалось забавным, что автор привел именно это полузаблуждение в качестве примера того, где математика нужна в ML.
Интепретируемые коэффициенты — это другое дело. Или, например, регуляризованная регрессия. Там мне понятно, зачем нормировать данные.
Но если вы учите простой линрег с целью получить предсказание, то вроде бы и нормировать необязательно.
когда знание математики помогает лучше и проще решить задачу, чем перебор гиперпараметров и нагромождение ансамблей.

Как вам такая теория, что нужно знать математику, чтобы разумно перебирать гиперпараметры и правильно тюнить модели в ансамбль?
Очевидный пример: линейная регрессия на не-нормированных данных.

А почему он очевидный? Ведь если ваша цель — зафитить линрег, то вы сможете сделать это и на ненормированных данных.

DenseNet, SENet, MobileNetV2, DPN.
Да, это не такой быстрый прогресс как раньше, но про различие резнета и инсепшена на Хабре уже статей двадцать, а про эти архитектуры практически ни одной.

Это довольно критично в такой быстрорастущей области как deep learning

«Часто случается, что по ходу решения прикладной задачи по анализу данных не сразу очевидно (или совсем неочевидно) какая модель обучения подходит наилучшим образом.»

Справедливо. Но автор нигде вроде бы и не советовал использовать ансамбли как абсолютно правильную стратегию на все случаи жизни. Он лишь сказал, что будет гарантированно хорошая точность.

Там, где забыли, что производительность — тоже метрика модели.

Это не метрика качества. Придираться к этому в контексте фразы автора «ансамбль скорей является более стабильной моделью, способной показать ± схожий результат на тестовой выборке и в «бою», а значит снизить риск переобучения» — это демагогия.

Одно противоречит другому. Перформанс — это тоже потеря; следовательно, можно делать анализ того, насколько (потенциальный) выигрыш оправдан.

Где противоречие? У автора про точность, а перфоманс — это про скорость работы или требуемую память. Это разные характеристики, и теряя в одной мы приобретаем другую, но в контексте статьи речь исключительно про метрики точности модели, и когда я писал «это так на самом деле», я говорил тоже про метрики.

Беда в том, что одно дело — применять что-то для того, чтобы выиграть Каггл, и совсем другое — утверждать, что это гарантированно правильная стратегия для «в бою».

Ну автор же и рассказывает про Kaggle InClass соревнование, а не про продакшен.

Это так на самом деле. Какие-то цифры, подтверждающие данный факт — это топ каждого конкурса на кагле, где выигрывает ансамбль (чаще всего не такой простой, как описано в статье, а стекинг, но все же).


Другое дело, что в реальной жизни использовать ансамбли очень дорого по перфомансу.

Не соглашусь. Когда под рукой пейпер, по которому реализован алгоритм, читать в таком виде, напротив, удобнее.

Может, я вас удивлю, но искусственный нейросети и так не моделируют человеческий мозг. Для того же, чтобы ответить на этот вопрос:
В действительности ИНС пока что вообще ничего не понимают, просто классифицируют полученные данные (если я не ошибаюсь?).

Нужно сначала определить, что такое понимание.
Нет, но справедливости ради статья тоже не про computer vision, а про разные применения AI.
Забавно, что вы прочитали «предложили» как «предположили».

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


В целом, конечно, не понимаю комментатора выше, которому говорят "ИИ", а он слышит "нейросети" и радостно набрасывается на автора.

Нейросети — типичный слабый ИИ. Только почему-то при словах "искусственный интеллект" у всех возникают ассоциации не со слабым ИИ, а со Скайнетом.

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Registered
Activity