Совершенно не специалист, увы, я их использую исключительно с верхнего уровня) Но на Реддите говорят, что CUDA просто действительно успела раньше, плюс для нее есть готовая версия BLAS.
Ох, I can relate. Про образование — это правда очень плохо. Люди, которые подхватили свое увлечение условно с раннего возраста и достаточно им зажглись, судя по комментам, не очень видят тут проблемы вообще — самостоятельность, интернет, StackOverflow и т.д. Это все прекрасно в той ситуации, когда ты в принципе знаешь, что этот увлекательный мир программирования вообще существует, что там интересно и тебе есть чем (потенциально) заняться. А если нет?
Я курса до третьего совершенно не умел ни на чем писать, и даже не интересовался, а математика мне была скучна и индифферентна, пока кто-то не предложил мне разложить на множители 256-битное число. И поехало: википедия -> теория чисел -> длинная арифметика -> а как вообще эта фигня работает? -> а можно мне какой-нибудь язык получше чем Pascal, где длинное число не помещается в строку?.. и в результате ты все равно уже на несколько лет отстал от людей, которые поняли, что им нравится программирование еще в школе.
Показать, что все это интересно и увлекательно, что можно делать прекрасные вещи строчками кода и символами — вот это хотелось бы увидеть от образования, а все остальное, честное слово, заменяют учебники.
Из остальных проблем топикстартера, по-моему, самая суровая — это незнание английского. Это действительно плохо, потому что StackOverflow автоматически решает все проблемы по «где найти нужную информацию», плюс много всяких обзорных туториаловых постов, которые даются легче книжек и позволяют сразу бежать в бой, размахивая новым фреймворком/методом/скиллом. Но опять-таки, знал бы, где споткнешься…
В общем, это действительно грустная история, и — давайте посмотрим в глаза правде — несмотря на всевозможные отсылки к самостоятельности и стоянию на своих ногах, если бы наше образование было лучше, таких людей и таких историй было бы значительно меньше.
Эммм… звучит короче и читабельней, чем «состязающиеся», но это точно нормально с точки зрения русского языка? Не уверен, но гугл выдает скорее «состязательные мероприятия/состязательные игры» и т.д., не «состязательные спортсмены».
Хотя черт, после того, как автоэнкодер мне предложили перевести как «автокодировщик» — берем!))
Черт, вот на чем надо тренировать эти ваши рекуррентные сети. К черту Шекспира, нам нужен генератор пирожков! Не поделитесь, откуда выборку брали и можно ли достать еще?
По теме — выглядит круто, никогда не занимался текстом, но word2vec издалека выглядел очень интересной штукой. Дилетантский вопрос — а сделать условный шаг дальше и семантически сравнивать предложения/фразы кто-нибудь же наверняка пробовал, да?
Ну то есть могли сказать, что не выжил никакой Уотни, и тихо свернуть все попытки помощи. Связь можно было проигнорировать и т.д., любые обвинения отрицать — никто ни о чем не узнает, никаких репутационных потерь, а любой, кто будет утверждать, что на Марсе остался в живых человек, немедленно попадет в ряды теоретиков заговора)
Так вот, в книге даже такой мысли ни у кого не возникает — все высшие чиновники НАСА как один согласны с тем, что мы все публикуем и открыто идем в спасательную операцию. Прям-таки все такие единодушные и бескорыстные? Что-то там еще было на тему того, что они были обязаны публиковать все снимки, и на них бы общественность увидела следы жизни — этот момент я до конца не изучил…
Самый нереалистичный момент, по-моему — это то, что ни у кого даже не возникло вопроса «а зачем нам тратить столько денег, чтобы вытащить одного чувака с Марса»?)
При этом с одной стороны это выглядит как такой теплый и добрый месседж — мол, мы, люди, и особенно в космосе мы без всяких разногласий друг за друга стоим, но вообще было бы очень интересно, как бы на такую ситуацию отреагировали бы на самом деле. Попытались бы замолчать? Сказать, что безнадежно/не хватит денег и ресурсов? (что вполне могло быть). Решился бы кто-то сказать «на эти эн миллионов денег можно спасти больше жизней, чем одну, поэтому пока-пока, Уотни»?
Эти обе штуки описываются в книге примерно как фантдопы двадцать первого века — мол, у нас есть крутой клей и крутые солнечные батареи с КПД 25%. В принципе, тут нет ничего невозможного — клей даже сейчас, ЕМНИП, вполне себе используется для соединений под суровыми нагрузками где-то в промышленности (без пруфов, к сожалению).
Вот что они совершенно точно зря сделали — это полет в стиле железного человека в конце, которого в книге не было. Что забавно, про него в посте ничего нет, хотя выглядит он, на дилетантский взгляд, как-то совсем нереально.
Черт, да даже если не искусство — это ведь поиск каких-то закономерностей в окружающем мире. Почему он устроен так, а не иначе? Вопрос «как расположены простые числа», по сути, ничем не отличается от «что заставляет камни падать сверху вниз».
Меня в этом отношении вечно удивляет, почему математику считают немного не тру-наукой, а фантазиями на бумаге. Люди же исследуют условную дзета-функцию, как геолог — гору; пытаются понять, как она выглядит, взбираются наверх и считают ее нули, пытаются понять, когда возникнет очередное какое-нибудь нарушение Литтлвуда — это же вещи, которые нельзя просто придумать из пальца, их нужно понять и объяснить. Точно так же, как физику и биологию. Если математика непрактична и бесполезна, то эти штуки — тоже.
Бывает, ага. В своем институте на меня тоже иногда так непонимающе смотрят, в духе «нейронные сети, втф? про них же еще в 60-х сказали, что это неинтересно»)
Если вы под «численным» имеете в виду вот эту штуку, то так как раз не делают — это очень медленно. Для нейронов ищут такие функции, чтобы у них были легкие аналитические производные — скажем, для сигмоиды это f(x) * (1 — f(x)), а для RELU вообще просто либо 0, либо 1. Сами производные вычисляются аналитически, а в коде вы просто используете полученную формулу.
Если вы имеете в виду, что такого делает Theano/TensorFlow, чего не умели раньше, то ничего особенного) Чтобы получить производную от ошибки (которая считается на выходе) по весу отдельного нейрона, нужно много-много раз (в зависимости от глубины сети) применить chain rule (вот тут подробности, а вот тут подробности человеческим языком). Чтобы не выписывать для каждого нейрона длинное выражение, проще делать это итеративно — посчитать производную для последнего слоя, вычислить нужную дельту, сделать шаг назад на один слой, использовать дельту для производной следующего слоя, вычислить новую дельту и т.д. Theano может составлять выражение для chain rule автоматически, поэтому ему это не сложно) А так — механизм получается абсолютно одинаковый.
О, я тоже сначала долго думал над строковыми столбцами, решая, какие из них переводить в one-hot и считать категориальными, а какие нет. Ориентировался по разбросу значений, само собой — столбец, где было ~1500 разных значений, допустим, точно можно выбросить, а тот, где их всего три, стоит и оставить. Испытал легкое разочарование, когда оказалось, что их все можно выкинуть и точность только вырастет)
Я не поднялся сколь-либо далеко до топа, в процессе получил что-то вроде 76.6 на случайном лесе из scikit-learn. Какое-то время игрался с отбрасыванием шумящих фич, что давало забавный эффект — маленький лес лучше работал при выкидывании половины неважных фич, но уже большой (~2000 деревьев) показывал результат наоборот — видимо, все шло в ход.
Лучи легкого неодобрения авторам реализации мультипроцессного леса в scikit-learn, который для каждого процесса копирует дополнительно выборку в память. x8 процессов — x8 памяти, пожалуйста.
Очень много времени убил на попытки решить это кастомной нейросетью из Theano+Lasagne, результаты на удивление грустные (см. чуть выше). Зато в качестве бонуса — много опыта на тему влияния разных метапарамтеров. Learning rate decay и много-много дропаута сильно помогли.
Кстати, плюс один, тоже очень разочаровался, когда нейросеть оказалась хуже случайного леса здесь) (у меня на ней было что-то типа 75.25)
Прямо даже интересно, почему, потому что самая лучшая сеть в итоге оказалась довольно слабенькой — два слоя, не больше.
Во многом очень клево, но по-моему, вывод получился какой-то не такой. То есть мы не строим атомные самолеты, потому что они нам не нужны и это совершенно нормально. И мы не построим опутавший планету интернет-рай, потому что он нам тоже не нужен, ну так и это тоже нормально, а почему такая паника про то, что Курцвейл и Маск нас «отвлекают», и от чего тогда? От какой-то глобально-утопической цели в духе осчастливить всех людей на земле и дать каждому крестьянину на рисовых полях образование и лаптоп? Вот эти планы явно выглядят недостоверно.
Я курса до третьего совершенно не умел ни на чем писать, и даже не интересовался, а математика мне была скучна и индифферентна, пока кто-то не предложил мне разложить на множители 256-битное число. И поехало: википедия -> теория чисел -> длинная арифметика -> а как вообще эта фигня работает? -> а можно мне какой-нибудь язык получше чем Pascal, где длинное число не помещается в строку?.. и в результате ты все равно уже на несколько лет отстал от людей, которые поняли, что им нравится программирование еще в школе.
Показать, что все это интересно и увлекательно, что можно делать прекрасные вещи строчками кода и символами — вот это хотелось бы увидеть от образования, а все остальное, честное слово, заменяют учебники.
Из остальных проблем топикстартера, по-моему, самая суровая — это незнание английского. Это действительно плохо, потому что StackOverflow автоматически решает все проблемы по «где найти нужную информацию», плюс много всяких обзорных туториаловых постов, которые даются легче книжек и позволяют сразу бежать в бой, размахивая новым фреймворком/методом/скиллом. Но опять-таки, знал бы, где споткнешься…
В общем, это действительно грустная история, и — давайте посмотрим в глаза правде — несмотря на всевозможные отсылки к самостоятельности и стоянию на своих ногах, если бы наше образование было лучше, таких людей и таких историй было бы значительно меньше.
Немного послушал, и правда похоже, ха. Не знаете, они зарелизили эту свою сеть с двумя ветками где-нибудь в статье?
Хотя черт, после того, как автоэнкодер мне предложили перевести как «автокодировщик» — берем!))
По теме — выглядит круто, никогда не занимался текстом, но word2vec издалека выглядел очень интересной штукой. Дилетантский вопрос — а сделать условный шаг дальше и семантически сравнивать предложения/фразы кто-нибудь же наверняка пробовал, да?
Так вот, в книге даже такой мысли ни у кого не возникает — все высшие чиновники НАСА как один согласны с тем, что мы все публикуем и открыто идем в спасательную операцию. Прям-таки все такие единодушные и бескорыстные? Что-то там еще было на тему того, что они были обязаны публиковать все снимки, и на них бы общественность увидела следы жизни — этот момент я до конца не изучил…
При этом с одной стороны это выглядит как такой теплый и добрый месседж — мол, мы, люди, и особенно в космосе мы без всяких разногласий друг за друга стоим, но вообще было бы очень интересно, как бы на такую ситуацию отреагировали бы на самом деле. Попытались бы замолчать? Сказать, что безнадежно/не хватит денег и ресурсов? (что вполне могло быть). Решился бы кто-то сказать «на эти эн миллионов денег можно спасти больше жизней, чем одну, поэтому пока-пока, Уотни»?
Вот что они совершенно точно зря сделали — это полет в стиле железного человека в конце, которого в книге не было. Что забавно, про него в посте ничего нет, хотя выглядит он, на дилетантский взгляд, как-то совсем нереально.
Меня в этом отношении вечно удивляет, почему математику считают немного не тру-наукой, а фантазиями на бумаге. Люди же исследуют условную дзета-функцию, как геолог — гору; пытаются понять, как она выглядит, взбираются наверх и считают ее нули, пытаются понять, когда возникнет очередное какое-нибудь нарушение Литтлвуда — это же вещи, которые нельзя просто придумать из пальца, их нужно понять и объяснить. Точно так же, как физику и биологию. Если математика непрактична и бесполезна, то эти штуки — тоже.
Кстати, потрясающая книга, читал как самый интригующий в мире детектив. Подсуньте жене, может, она втянется)
Если вы имеете в виду, что такого делает Theano/TensorFlow, чего не умели раньше, то ничего особенного) Чтобы получить производную от ошибки (которая считается на выходе) по весу отдельного нейрона, нужно много-много раз (в зависимости от глубины сети) применить chain rule (вот тут подробности, а вот тут подробности человеческим языком). Чтобы не выписывать для каждого нейрона длинное выражение, проще делать это итеративно — посчитать производную для последнего слоя, вычислить нужную дельту, сделать шаг назад на один слой, использовать дельту для производной следующего слоя, вычислить новую дельту и т.д. Theano может составлять выражение для chain rule автоматически, поэтому ему это не сложно) А так — механизм получается абсолютно одинаковый.
Лучи легкого неодобрения авторам реализации мультипроцессного леса в scikit-learn, который для каждого процесса копирует дополнительно выборку в память. x8 процессов — x8 памяти, пожалуйста.
Очень много времени убил на попытки решить это кастомной нейросетью из Theano+Lasagne, результаты на удивление грустные (см. чуть выше). Зато в качестве бонуса — много опыта на тему влияния разных метапарамтеров. Learning rate decay и много-много дропаута сильно помогли.
А вообще было весело.
Прямо даже интересно, почему, потому что самая лучшая сеть в итоге оказалась довольно слабенькой — два слоя, не больше.