Pull to refresh

Comments 22

Я бы хотел узнать у автора статьи, каким образом изложенные, безусловно содержательные, математические конструкции помогают практику (и даже кагглеру) быстро и вычислительно эффективно подобрать структуру нейросети, способом близким к оптимальному решающую конкретную задачу?

Спасибо
Увы, пока что никак, если не считать ResNet'ы, batch normalization и итерирование по маленьким batch'ам вместо градиентного спуска с использованием всего датасета, что все и так делают без всякого на то теоретического основания. Зато они подсказывают почему именно всё вышеперечисленное хорошо работает. Эти исследования не влияют на практику напрямую, а показывают в каком направлении нужно двигаться в научных работах, исследующих прикладные методы, которые, в свою очередь, будут нести практическую пользу. Если периодически не нырять в теорию, нейронные сети так навсегда и останутся шаманством, которое вроде работает, но непонятно почему.
То есть подобные рассуждение постфактум создают наукоподобное обоснование сложившейся практике и больше ничего, я правильно понял?
> наукоподобное обоснование сложившейся практике

Я бы не был столь жёсток с учёными. Я бы тоже предпочёл, чтобы сначала было обоснование, а потом развивался метод. Но наука не всегда движется по красивому циклу гипотеза->модель->эксперименты->практический метод->ништяки->повторить. В машинном обучении сложилась такая ситуация, что практика убежала далеко вперёд от теории, и чтобы восстановить равновесие, теперь нужно сначала подумать, почему работают существующие методы. Это не «наукоподобное», а вполне «научное» обоснование, просто оно слегка запоздало.

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

А почему бы и нет? Эти люди существуют на мои налоги, определяют уровень моего образования (и образования моих детей), выполняют экспертную роль. Я хотел бы знать, за какие такие достижения общество наградило их такой функцией и такими полномочиями.
Ладно, я всё понял, больше не буду, не минусуйте пожалуйста.

И всё-таки она вертится важность и ценность теоретических работ значительно переоценена обществом.
Подобные рассуждения являются источником открытия новых оптимизаторов, а иногда и новых архитектур сетей.
Те же свёрточные сети начинались тоже как глубоко теоретические модели (потому что тогда вычислительных мощностей не хватало, чтобы их эффективно использовать), а сейчас являются передовыми алгоритмами.
Да, это правда. Я бы сказал, что сверточные сети — это простая (но, безусловно, трудно придумываемая) эвристика. Но вот незадача — аргументы для ее придумывания казалось бы радикально более просты, чем рассуждения о NP-сложности и особенностях функции потерь.
В общем-то абсолютно все алгоритмы и подходы в машинном обучении родились(хотя бы в качестве концепций) как раз из подобных размышлений, а не из соревнований на каггле. Не очень хорошо пользоваться ими, и считать что ученые ерундой маются. Со сверточными сетями правда хороший пример — пыхтели люди, до ума все доводили, таки довели, получили хороший результат. Но у большого количества людей в голове как-то не откладывается, что прежде чем появилась возможность реализовать эту архитектуру в уютной библиотечке на питоне, её надо было еще придумать.
Меня чуть выше уже заминусовали, но все-же, все-же, все-же. Неужели не очевидно, что для того, чтобы сделать переход от полносвязной нейросети к сверточной не нужны высокие размышления о свойствах поверхностей в R^n, а достаточно замечания о том, что многие свойства анализируемого изображения локальны и поэтому имеет смысл не полениться и попробовать принудительно занулить все веса кроме соответствующих близким пикселям (=нейронам входного слоя) в первом слое-двух? Неужели это не очевидно всякому, владеющему матаппаратом на уровне второкурсника мат факультета и имеющему минимальный опыт применения машинного обучения на практике или в соревнованиях? Ну как так?
Насколько я знаю, там основную идею вообще подсмотрели из физиологии глаза и творчески переработали. Вся сложная математика понадобилась не для самой идеи, а для его математического обоснования и построения вменяемой модели. Так довольно часто бывает в науке в целом — идею вывели эмпирически, но для полноты картины( и воспроизводимости) необходимо описание на математическом языке.
P.S. Да и не надо смущаться математики в машинном обучении, анализе данных и прочем. Тут еще довольно приятные разделы — методы оптимизации, линейная алгебра, теория вероятностей и т.д. Я в минуты похожих сомнений открываю в онлайн-читалке какую-нибудь книжку по абстрактной математике, любуюсь на все эти многообразия над кольцом вычетов с конформным полем Галуа(или что там), и как-то сразу становится мирно на душе).
Да ладно, принудительное обнуление значительной части связей в 1-2-3 первых слоях нейронной сети (=сверточный слой) — сложная математика? Замораживание фиксированного количества случайных весов в слое на протяжении батча или эпохи (=дропаут) — сложная математика? Ну знаете ли, от этого уровня математической сложности до описанного в статье, мягко говоря, довольно неблизко. Меня расстраивает не алгоритмическая формулировка — с ней как раз все в порядке, а разводимый вокруг не слишком научный по содержанию, но крайне научный по форме, шум.

P. S. Я думаю, что многообразия и и кольцами вычетов смутить меня довольно трудно — до этой степени я в свое время основы высшей математики изучить успел. Что же касается многообразий над кольцами вычетов (и вообще над теми или иными алгебраическими структурами не являющимися полями, еще и, наверное, алгебраическими замкнутыми), то либо (скорее всего) это то самое сознательное разведение безосновательного наукоподобия, которое по неведомым причинам меня так раздражает, либо автор действительно с непонятными мне целями открывает книги по относительно продвинутой теоретической математике о которой лично я не имею почти никакого понятия.
> Что же касается многообразий над кольцами вычетов (и вообще над теми или иными алгебраическими структурами не являющимися полями, еще и, наверное, алгебраическими замкнутыми), то либо (скорее всего) это то самое сознательное разведение безосновательного наукоподобия, которое по неведомым причинам меня так раздражает

Довольно странно называть «разведение безосновательного наукоподобия» многообразия над кольцами вычетов. Если доказательство теоремы верно и следует из определённых аксиом или других доказанных теорем, то это вполне обоснованная и вполне наука.

Сдаётся мне, что вас скорее раздражает математика, которую некуда приложить, которая не описывает ничего в реальном мире. Натуральные числа норм потому что ими можно считать яблоки, дифуры норм потому что ими можно описывать многие физические процессы, многообразия над кольцами вычетов норм потому что — ???

На самом деле я вас понимаю, я в душе практик =) Но посмотрите, конкретно эти ребята (Saxe, Chromanska, Kawaguchi и прочие) делом занимаются. Они применяют довольно хардкорную математику, но применяют для дела. Их результаты будут полезны учёным-практикам, а результаты тех — каггельщиками и остальным ребятам. Можно сравнить это с положением учёных в обществе. Учёный не производит ничего сам, но говорит, что нужно делать инженеру. А уже инженер-конструктор производит, скажем, самолёты, которыми пользуется простой народ. Чтобы сконструировать что-нибудь летающее не обязательно глубоко знать аэродинамку, достаточно интуитивно понимать основы. Но если хочешь сделать Боинг, будь добр покурить уравнения течения газа.

Но, пожалуйста, отличайте «наукоподобие» от «науки, которую фиг знает, куда применить».
1) Как уже упоминалось ранее, практика в машинном обучении убежала вперед и нужно теоретическое обоснование (проработка). Если что-то работает, то разве не нужно понимать почему оно работает? Или и так сойдет? Я думаю, чтобы все было хорошо и качественно нужно теорию и эксперименты проработать долго и мучительно, чтобы понимать все возможные входы и выходы этой штуки. И думаю вы хотите жить в понятном и качественном мире с не падающими самолетами, верно?

Вот ученые этим и занимаются и труд этот адский и подчас неблагодарный потому что все к ним лезут с вопросом «а что нам это даст прям здесь и сейчас? а? а?».

2)
Неужели не очевидно, что для того, чтобы сделать переход от полносвязной нейросети к сверточной не нужны высокие размышления


Слушайте, ну если для вас это очевидно, то может у вас реально высокий уровень понимания. Сейчас есть куча проблем в нейронных сетях и в машинном обучении. Например требуется очень много данных и одна из задач это сокращение выборки. Круто было бы добиться повышения обобщения на пространственные изменения без явной демонстрации кучи образов. А еще есть задача выделения событий и объектов во временном ряде (в обучении с подкреплением). Над ней многие бьются. Я думаю в итоге родиться простой механизм и другие скажут «пфф, ну так очевидно же.»
Так что дерзайте, пишите статьи, изобретайте.

PS: Если не ошибаюсь, то на наши с вами налоги еще военные живут. И потребляют они гораздо больше. А знаете еще кто налоги не платит и тоже неплохо живет? Ну такие чуваки с золотыми куполами. Они производят очень полезные вещи. У вас к ним нет никаких вопросов? Я ни в кои случае не призываю к какой-то ненависти и т.п. Но странно, что у вас (у человека, который явно что-то понимает в математике и программировании) возникли такие замечания относительно ученых.
Эх, хаброкарма моя хаброкарма.

1) Да, и так сойдёт. Критерий применимости — эксперимент, а не псевдотеоретические обоснования.

2) Цитата выдернута из контекста. "… не нужны высокие размышления о свойствах поверхностей в R^n", а не «не нужны размышления вообще». Размышления очень нужны — но совсем другого характера и формулировки.

PS) У меня накопилась масса вопросов к самым разным людям. Но военных и служителей культа среди них (пока что?) нет. А вот к социальной страте людей, профессионально симулирующих труд на пользу общества, с учётом того, что я в самом деле человек, который «явно что-то понимает в математике и программировании» и, заодно ещё в том, что находится под капотом у самых разных академических организаций, у меня претензии есть — и весьма серьезные.
1) Да, и так сойдёт. Критерий применимости — эксперимент, а не псевдотеоретические обоснования.


Вообще двумя руками ЗА! Но что здесь вы увидели псевдотеоретического, я не пойму? Эксперименты то есть, данные есть. Просто теория подразумевает проверку множества моментов. То есть нельзя за одно предположение и один эксперимент все сделать и написать четкую статью. Предположений надо выдвинуть множество и долго их проверять, спорить, дискутировать и т.п. И вот на этом этапе можно спутать науку с чем-то наукоподобным. Но это не так.

2) Цитата выдернута из контекста. "… не нужны высокие размышления о свойствах поверхностей в R^n", а не «не нужны размышления вообще». Размышления очень нужны — но совсем другого характера и формулировки.


Какого например? Просто может быть у вас больше претензий к данной конкретной статье? А те ученые (Ле Кун, Хинтон и т.п.) написали и сделали еще много чего. Надо смотреть всю картину в целом. Может мы говорим о разном и не понимаем друг друга :)

PS) У меня накопилась масса вопросов к самым разным людям. Но военных и служителей культа среди них (пока что?) нет. А вот к социальной страте людей, профессионально симулирующих труд на пользу общества, с учётом того, что я в самом деле человек, который «явно что-то понимает в математике и программировании» и, заодно ещё в том, что находится под капотом у самых разных академических организаций, у меня претензии есть — и весьма серьезные.


Ну тут надо отличать тех, кто проедает гранты\инвестиции за просто клепание отчетов и статей из воды и тех кто реально долго работает, но пока не дошел до выдающихся результатов. Но это холивар про то кто работает честно или нет, ИМХО это надо в конкретном случае смотреть.

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


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


По сабжу последнее, что хотел бы заметить — это то, что в свое время я собирался заниматься академической наукой — и имел все предпосылки для этого, однако был шокирован реальными практиками академического сообщества и забил. Касательно конкретно машинного обучения я могу сослаться на Макса Милованова (Nvidia, результаты на каггле), утверждавшего что зачастую академические ресерчеры делают грубейшие ошибки при валидации своих алгоритмов и на упоминавшегося Хинтона, где-то жаловавшегося на невозможность публиковать определенные статьи ввиду необоснованного отказа со стороны сообщества. Фактический масштаб бедствия значительно больший и я мало где наблюдал такой уровень неприкрытого цинизма как в неформальных обсуждениях в академической среде.


============


1) В статье — вроде ничего. С концепцией черезмерного теоретизирования на тему уже подобранных эвристик при этом совершенно не согласен.
2) Тут я, пожалуй, погорячился. Всё-таки похоже на то, что основываясь на размышлениях о локальных максимумах функций в R^n можно придумать что-то разумное на тему последующих эвристик.

Ну сейчас-то конечно очевидно, когда Хинтон, ЛеКун и товарищи все придумали и разжевали.

Можно подробнее про «реалистичное ограничение 4». Надо ли это трактовать как то, что рассматриваются только такие конфигурации сетей, в которых сумма векторов равна некоторой наперед заданной константе? Или как-то иначе?
> Надо ли это трактовать как то, что рассматриваются только такие конфигурации сетей, в которых сумма векторов равна некоторой наперед заданной константе?
Да, я думаю, что имеется в виду, что у нас есть некоторый «бюджет» весов, который мы можем распределять по сети.

На самом деле, хороший вопрос. Это тоже довольно сильное ограничение сомнительной реалистичности. В трёх источниках с Chromanska, которые я могу быстро просмотреть, просто упоминается это ограничение без особого объяснения или приведена формула вообще без С, вот так: $inline$ \frac{1}{\Lambda}\sum_{i=1}^{\Lambda} w_i = 1 $inline$.
Сумма весов в квадрате, разумеется. Опечатался.
Спасибо за подробный и очень содержательный обзор. Когда глубоко погружаться неохота или нет времени, но тема в принципе интересна, подобные обзоры помогают взглянуть на нее более широко и получить общее представление.

Бросились в глаза несколько опечаток:
1. Очень во многих местах ошибочно написана фамилия Choromanska (без первой «o»)
2. В начале в одном месте Гессиан назван Гауссианом (или я не понял, о чем речь)
3. Там, где речь идет о квадрате числа параметров сети, у 12-й степени двойка слезла в строку.
Only those users with full accounts are able to leave comments. Log in, please.