ailev.ru

Обсуждение

В архиве: 21 комментарий.

Читать и комментировать в ЖЖ ↗

Имя не сохранено · 26 сентября 2015

Комментарий

Огромное спасибо, было очень интересно!

Имя не сохранено · 26 сентября 2015

Комментарий

Касательно ссылки на Хабр по поводу необходимости больших данных. Это переход от экстраполяции к интерполяции за счет практически полного заполнения всего пространства состояний.

Имя не сохранено · 28 сентября 2015

Комментарий

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

Имя не сохранено · 28 сентября 2015

Комментарий

Восхитительное выступление получилось! Это был, наверное, первый раз, когда два с половиной часа слушал доклад не теряя интереса.

Имя не сохранено · 29 сентября 2015

Комментарий

по поводу цены входа в 20 тыщ (GTX 970) - это есть misleading GPU для нейросеток не обязателен - он может существенно ускорить некоторые операции, а может и нет, в зависимости от (еще ведь нужно данные закачать в GPU а это может нивелировать выигрыш) - в частности, GPU актуален для CNN (ибо картинки - это оооочень много данных) к примеру, я тренил 6ти или 7ми слойную нейросетку на Октаве под виртуалкой (мягко говоря, не самый оптимальный конфиг) и не жужжул - кулер, правда, жужжал :) я бы сказал цена входа: - нормальный комп (подороже 20 тыщ скорее всего, но скорее всего уже есть :)) - матан, линалгебра, немного теорвера и статистики - хорошего знания стандартных вузовских должно хватить - желательно, выпуклую/математическую оптимизацию - немного программирования я лично в универе несколько халявно учился, в частности, линалгебру освоил явно недостаточно :) а без нее в машин лёрнинге далеко не уползёшь, впрочем по ходу дела разобрался

Имя не сохранено · 17 октября 2015

Комментарий

Без GPU обучение большх сеток будет очень медленно. GPU дает прирост скорости на 1-2 порядка по сравнению с CPU. Вот здесь есть рекоммендации по выбору компонентов компьютера и по выбору GPU, с разбором требований для некоторых видов задач, и аналзом разных характеристик (типа GPU memory bandwidth, который может быть важнее чем скорость работы самого GPU) https://timdettmers.wordpress.com/2015/03/09/deep-learning-hardware-guide/ https://timdettmers.wordpress.com/2014/08/14/which-gpu-for-deep-learning/

Ответ на комментарий

Имя не сохранено · 19 октября 2015

Комментарий

Мой поинт не в том, что GPU не нужны для нейросеток (понятно что порой очень даже нужны). А в том, что GPU не есть цена входа. Может в какой-то области (типа для участия в соревнованиях по распознаванию каких-то картинок) цена входа включает и GPU (а скорее кластер из multi-GPU машин). Но для входа именно в нейросетки хватит и обычного достаточно мощного компа. А вот некий минимальный набор знаний по матану/линалгебре/теорверу/оптимизации необходим (если охота не просто туториал запустить). Ну и пока его освоишь плюс специфику нейросеток, там уже какие-то новые GPU появяться :).

Ответ на комментарий

Имя не сохранено · 19 октября 2015

Комментарий

А для какого из уровней интеллект-стэка эти требования? Матан и линалгебра наверное очень важны на уровне 3 (обучающиеся алгоритмы) и наверное 4 (вычислительные библиотеки). Для других уровней требования будут отличаться.

Ответ на комментарий

Имя не сохранено · 19 октября 2015

Комментарий

ну я "цену входа" в целом рассматриваю если касательно стэка, то мне думается что уровень 2 (когнитивная архитектура) тоже требует глубокого понимания лёрнинга, которое в свою очередь требует матана/алгебры и проч а так, конечно, если скажем верхние уровни рудиментарные (например, стоит задача прогнать туториал по Theano/Torch/что-то другое, ну или чутка адаптировать их под свои данные), то там матан/алгебра вобщем-то и не нужны

Ответ на комментарий

Имя не сохранено · 19 октября 2015

Комментарий

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

Ответ на комментарий

Анатолий Левенчук · 19 октября 2015

Комментарий

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

Ответ на комментарий

Имя не сохранено · 20 октября 2015

Комментарий

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

Ответ на комментарий

Имя не сохранено · 20 октября 2015

Комментарий

в принципе, гиперпараметры на данный момент не есть проблема есть скорее всего уже сервисы, которые автоматически их варьируют и прогоняют нейросетку ну т.е. юзер там может какие-то ограничения на конфиги или диапазоны вводить, а мета-алгоритм обучения будет случайно/байесовски сэмплировать пространство гипер-параметров только это может быть довольно дорого :) ну и надо на вход все же подать пре-процессенные фичи (понятно что стандартную а внормализацию/PCA/ZCA такой сервис тоже без проблем сделает) ну и надо в выходе разобраться вобщем, я как-то сильно уверен, что нейросетки не могут быть глубоко чорным ящиком для юзеря - т.е. могут конечно, но толку с этого мало если взять к примеру линейные модели, то и там уже нужно заботиться о том чтобы правильные данные на вход подавать (регуляризация, мультиколлинеарность, фичи). да, в простых случаях, стандартный статистический блэкбокс все посчитает, но скажем если данных много или очень, то он будет медленным вобщем, даже в рамках казалось бы простых линейных моделей столько вариантов, что ой-ой-ой

Ответ на комментарий

Имя не сохранено · 20 октября 2015

Комментарий

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

Ответ на комментарий

Имя не сохранено · 20 октября 2015

Комментарий

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

Ответ на комментарий

Имя не сохранено · 20 октября 2015

Комментарий

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

Ответ на комментарий

Анатолий Левенчук · 20 октября 2015

Комментарий

Есть единственный способ решать сложные задачи -- separation of concerns, разделение труда. Нужно всю эту деятельность разбить на какие-то поддеятельности с более-менее внятными интерфейсами, и организовывать командную работу. Другого пути борьбы со сложностью пока не придумали. Сложность -- это как раз необходимость иметь в одной голове а) бесконечно большое число предметных знаний, быть знакомым с нюансами и типовыми ошибками и б) крутить для каждого (учебного, научного) предмета огромного размера по числу задействованных элементов задачу. Раньше была профессия "вебмастер", она просуществовала лет пять. Потом на её месте появился пяток других профессий -- веб-дизайнер, программист веб-движков, верстальщик, редактор, контент-менеджер, сисадмин, модератор и т.д.. Думаю, то же самое ждёт representation learning: уж больно разные тусовки разрабатывают тамошнее знание, одна голова это очень хорошо, но вряд ли будет справляться.

Ответ на комментарий

Анатолий Левенчук · 20 октября 2015

Комментарий

Мысль интересная, потому как learning занимает промежуточное место между инженерией и исследованиями. Системный инженер -- это понятно, что такое. А вот системный исследователь -- это непонятно, что такое, такого не бывает. Исследования всегда дисциплинарны, и "междисциплинарность" обычно означает занятия порождением новых дисциплин, "методологию". С representation learning я согласен, что есть общее основание (например, нужно понимать хотя бы http://rinuboney.github.io/2015/10/18/theoretical-motivations-deep-learning.html) и дальше хитро дробить знание так, чтобы был шанс разложенное по разным мозгам и инструментам знание склеить вместе. Понятно, что произвольным образом раздробленное знание имеет мало шанса склеиваться. А говорить, что "на основании общих принципов -- системного подхода и математики -- всё само склеится" -- это самонадеянно. Там есть и ещё один аспект того же самого: transfer learning (learning-in-the-small и learning-in-the-large) -- как разные языки программирования могут поощрять или не поощрять модульность и распределённую разработку, создание фреймворков и библиотек (помним, что php победил всех, как и perl -- оказались удобны для программирования-в-большом), так и парадигма лернинга может поощрять или не поощрять перенос знаний из одного проекта в другой. Так что у этой парадигмы кроме математических оснований может приключиться много других оснований при её создании. Но задача интересная: понять, какие там есть сейчас специализациии и нарезать дисциплины на разные специализации в рамках лёрнинга, сделать соответствующие этим дисциплинам инструменты (помним про развитие веб-инструментария по сравнению с HTML первой версии и тогдашними веб-серверами образца 1994 года).

Ответ на комментарий

Имя не сохранено · 22 октября 2015

Комментарий

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

Ответ на комментарий