Задать вопрос
Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (9)

Наибольший вклад в теги

Все теги (32)

Лучшие ответы пользователя

Все ответы (39)
  • Как найти удаленную работу по машинному обучению?

    @lightcaster
    Довольно долго работаю как (удаленный) консультант по ML. Это возможно, просто пробуйте.

    Где искать, мой опыт:
    - первого заказчика нашел на odesk
    - второго - в треде 'who is hiring' на hackernews
    остальные приходили по рекомендациям

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

    Плюсы удаленной работы:
    - если сравнивать с нашими конторами (mail.ru, yandex), можно выйти на гораздо более высокую зарплату.
    - все заказчкики, с кем я работал, устраивали мне бесплатные поездки on-site. К примеру, так я побывал в Штатах, Ирландии, Сербии, Австрии
    - меньше долбят с проблемами, не имеющими отношения к ML

    Минусы:
    - если ты один специалист в команде, часто не с кем обсудить текущие задачи. Если постоянно не учиться, начнете деградировать.
    - сложней коммуникации. Разница во времени. Но это общие проблемы удаленки.

    ps не читайте предыдущих комментаторов :)
    pps мне так часто задают этот вопрос, что начинаю задумываться о создании специализированного сервиса по поиску удаленных data scientist'ов
    Ответ написан
    6 комментариев
  • Какие есть материалы, где более или менее человеческим языком объясняется, что такое дифференцирование, интегрирование, логарифмирование?

    @lightcaster
    Очень рекомендую книжку - "Курант - Что такое математика".

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

    @lightcaster
    Был в подобной ситуации - 27 лет, перешел из PM/Аналитика в nlp/ml. Главный совет - Do not panic :).

    1) Это препятствие, но оно больше в голове. Просто пробуйте.
    2) Если можете сделать быстро - делайте. Нет - лучше не тратье время.
    3) Вообще не вижу смысла искать в России. Поищите на odesk, укажите небольшой рейт. Кто-нибудь да подвернется.
    4) Не знаю
    5) Готовиться бесполезно imo. Просто постоянно учитесь.
    6) Если вы правда хотите работать в тех областях, что указали - математику. Линейную алгебру, немножко функционального анализа, обязательно теорию вероятностей и статистику. Язык вторичен - вам будет все равно, где матрицы перемножать. Хоть в питоне, хоть в C++. Для nlp лучше python.
    7) Вы уж тут определитесь с направлением сначала.
    Ответ написан
    2 комментария
  • Что вас останавливает в процессе создания ИИ?

    @lightcaster
    Давайте напишем ИИ. Пусть болтает с людьми, делает что-нибудь полезное. В самом деле, сколько можно — 60 лет прошло, а ИИ все нет.

    1) И так, попробуем с языка. Пусть слушает, понимает и отвечает.

    Вот у нас текст. Разобъем на слова. Обработаем окончания и прочая. Готов модуль морфологии, это было несложно. Далее, как-то нужно вытащить структуру из текста. То же не проблема — контекстно-свободные грамматики в помощь, и готов модуль синтаксиса. Пока все хорошо: разобрали морфологию, построили дерево связей слов. Но что дальше? По-хорошоему, нужно чтоб ИИ понимал текст. Вот тут и начинаются пляски с бубнами. Что такое «понимать» никто толком не понимает :).

    а) Вариант первый — логика в помощь. Нам вообще не нужно понимание, главное чтоб все было четко:
    Все люди смертны
    Сократ человек,
    Сократ — смертен

    Modus ponens, это все что нужно. Пролог умеет с этим работать. Выделяем из текста (синтаксического дерева) конструкции типа VB (SUBJ OBJ), запихиваем в предикат VB(SUBJ, OBJ) и готово.

    Но тут, внезапно:

    > «Сократ был человеком.»

    Эм… это что, время? Мы такое не обрабатываем. Ну не страшно, изобретем какую-нибудь темпоральную логику.

    > «По моему, Сократ — человек»

    Это что, модальность? Откуда она взялась? Придется как-то обрабатывать степерь уверенности поставляемых кем-то фактов…

    И что, для каждого языкового ньюанса выпиливать свою логику? А потом их как-то объединять? А потом вывод еще будет и неразрешим, ИИ зависнет на фразе «привет мир». Нет, сложновато получается. Нужно придумать что-то другое.

    Можно конечно обратится к лингвистам. Но они над одной простой конструкцией могут десятилетием копья ломать, а нам тут нужно весь язык сразу выучить. Не пойдет.

    Вообще-то, это работает, но только очень ограничено. Попытки были, но провалились. Гуглить по имени «Терри Виноград» и его программе SHRDLU. Также полезно загуглить рамматику Монтегью.

    б) Да к черту логику. Давайте напишем граф, который бы описал любую ситуацию.

    Так, чтобы сделать граф, нужно задать какие-то концепты. Оптимально — описываем термины, и задаем как они взаимодействуют друг с другом. Понятно, что граф получится большой, но если постараться, у нас все получится. Так?

    Нет, не так. Гуглим проект Cyc. Начинал писаться с 1984. Большинство, участвующих в данной дискуссии еще и не родились. Так и где результаты? Они есть, довольно-таки средненькие:
    — граф получается громадный
    — отношения между терминами не очень хотят выстраиваться в красивый граф
    — многозначность
    — сложность добавления знаний

    См также язык Фреймов и другие представления знаний.

    Но похоже мы тут тоже провалились. Что дальше?

    2) А давайте зайдем совсем с другой стороны — напишем свой язык программирования. Видимо, с ним проще пойдет.

    Но и тут затык — какой бы язык мы не написали, он будет эквивалентым (или слабее) машины Тьюринга или любой Тьюринг-полной вычислительной системе. Да, да, и даже Брейнфаку.

    3) Может запихнуть это все в НЕЙРОННУЮ СЕТЬ и обучить все ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ? Звучит заманчиво, только если перевести это на математический язык — мы всего лишь занимаемся оптимизацией, пытаясь найти некое вероятностное распределение. Вообще, машинное обучение довольно конкретно. Здесь мы решаем узкие и конкретные задачи — строим классификаторы или регрессии. Не очень похоже на сильный ИИ, да и выглядит вся эта математика как-то не секси :) — градиентные спуски, гессианы, энтропии.

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

    Простите меня за сарказм. Видимо, я слишком часто натыкаюсь на такие вопросы. Надеюсь, я дал ответ. Я предлагаю для погружения в обалсть написать простой POS-таггер. Это самый первый шаг в комп. лингвистике. Но он позволяет почуствовать всю сложность проблемы.
    Ответ написан
    2 комментария
  • Вычислитель в аренду

    @lightcaster
    Да. Amazon EC2 вам в помощь. Можете развернуть много слабых юнитов, если задача хорошо параллелится. Я языковую модель большую через EC2 обсчитывал. В принципе, удобно.

    Правда, на счет Mathematica сильно сомневаюсь. Теоретически, можно ее поставить на созданные инстансы. Однако, почему бы не воспользоваться какими-нибудь специализированными инструментами попроще.
    Ответ написан
    1 комментарий

Лучшие вопросы пользователя

Все вопросы (9)