• Добро пожаловать в Кремниевую долину

    • Translation
    image

    Как я стала частью этой системы

    Мне повезло, я живу в Кремниевой долине. Здесь я родилась, выросла и в настоящее время работаю продакт-менеджером в Google. Здесь отличная погода, низкий уровень преступности, и хорошее финансирование у школ. У взрослых есть хорошая непыльная работа, а детям открыты миллионы возможностей. Здесь люди наслаждаются суширрито по 15 долларов и запивают их 6-долларовым кофе третьей волны. Улицы заполнены теслами и беспилотными автомобилями.
    Читать дальше →
  • История участия (и победы) в Russian AI Cup 2018 — CodeBall

    Была среда, шло обычное скучное заседание на работе. Дизайнер чесал за ухом, а тестировщик уткнулся в телефон. За окном завелся автомобиль, и мне пришло письмо на телефон — стартовал Russian AI Cup 2018. Вокруг никто ни о чем не подозревал, а я в этот момент уже точно знал, чем буду заниматься в следующие полтора месяца.

    Привет всем, меня зовут Андрей Токарев и я хотел бы поделится опытом участия в Russian AI Cup 2018.



    Что это?


    Russian AI Cup — ежегодное соревнование по искусственному интеллекту, проводимое с 2012 года. Здесь нужно написать алгоритм который управляет кем-то или чем-то, и эти кто-то или что-то соревнуются между собой. В этом году нужно было управлять роботами играющими в футбол.

    У меня уже был некоторый опыт выступления в подобных соревнованиях. В частности я участвовал в Russian AI Cup 2016 (без призового места) и Mini AI Cup 2018 (2-е место).
    Читать дальше →
  • Разработчик SearchFace о возможностях алгоритма

      Всем привет, я один из разработчиков сервиса SearchFace и готов поговорить о нём в комментариях.



      Из-за шумихи с иском ВК на второй план отошло то важное, ради чего мы запустили сервис — чтобы протестировать возможности поиска. А раз уж теперь сервис доступен широкой публике, хочется продемонстрировать всем, на что способны наши алгоритмы распознавания.
      Читать дальше →
    • Обширный обзор собеседований по Python. Советы и подсказки

      Всем привет!


      Кратко о себе. По образованию я математик, а вот по профессии — программист. В сфере разработки с 2006 года. Хотя, поскольку программирование начали изучать ещё в школе, свои первые программки и игры я начал писать ещё в школе (примерно, с 2003). Так сложилось, что пришлось выучить и поработать на нескольких языках. Если не брать во внимание ВУЗ-овские лекции по С, С++, Бэйсику, Паскалю и Фортрану, то реально я работал с Delphi (более 6 лет), PHP (более 5 лет), Embedded (Atmel + PIC около 2.5 лет) и последним временем Python + чуть-чуть Scala. Конечно же без баз данных тоже никак не обойтись.


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

      Читать дальше →
    • Студентам, вечным студентам и жаждущим новых знаний



        В ноябре студиозусы всего мира отмечали Международный день студента. А сегодня мы празднуем свой, «локализованный» День российского студенчества — 264 года назад был подписан указ о создании Московского университета, сегодня известного в узких кругах как МГУ. И в честь праздника ловите подборку курсов GeekBrains и видеолекций на любой вкус. Это ведь 200 лет назад можно было получить диплом и прекрасно жить с полученными знаниями до внуков, а сегодня знания устаревают стремительно.

        И пока будете читать, не забудьте включить фоном бессмертный Gaudeamus Igitur.
        Читать дальше →
      • Можно ли считать статистику при малом количестве данных?

          В целом ответ – да. Особенно, когда есть мозги и знание теоремы Байеса.

          Напомню, что среднее и дисперсию можно считать только, если у вас имеется определенное количества событий. В старых методичках СССР РТМ (руководящий технический материал) говорилось, что чтобы считать среднее и дисперсию необходимо 29 измерений. Сейчас в ВУЗах немного округлили и используют число 30 измерений. С чем это связано – вопрос философский. Почему я не могу просто взять и посчитать среднее, если у меня есть 5 измерений? По идее ничто не мешает, только среднее получается нестабильным. После еще одного измерения и пересчета оно может сильно измениться и полагаться на него можно начиная где-то с 30 измерений. Но и после 31го измерения оно тоже пошатнется, только уже не так заметно. Плюс добавляется проблема, что и среднее можно считать по разному и получать разные значения. То есть из большой выборки можно выбрать первые 30 и посчитать среднее, потом выбрать другие 30 и тд … и получить много средних, которые тоже можно усреднять. Истинное среднее бывает недостижимо на практике, так как всегда имеем конечное количество измерений. В таком случае среднее является статистической величиной со своим средним и дисперсией. То есть измеряя среднее на практике мы имеем в виду «предположительное среднее», которое может быть близко к идеальному теоретическом значению.

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

          Читать дальше →
        • NLP. Основы. Техники. Саморазвитие. Часть 1


            Привет! Меня зовут Иван Смуров, и я возглавляю группу исследований в области NLP в компании ABBYY. О том, чем занимается наша группа, можно почитать здесь. Недавно я читал лекцию про Natural Language Processing (NLP) в Школе глубокого обучения – это кружок при Физтех-школе прикладной математики и информатики МФТИ для старшеклассников, интересующихся программированием и математикой. Возможно, тезисы моей лекции кому-то пригодятся, поэтому поделюсь ими с Хабром.

            Поскольку за один раз все объять не получится, разделим статью на две части. Сегодня я расскажу о том, как нейросети (или глубокое обучение) используются в NLP. Во второй части статьи мы сконцентрируемся на одной из самых распространенных задач NLP — задаче извлечения именованных сущностей (Named-entity recognition, NER) и разберем подробно архитектуры ее решений.


            Читать дальше →
          • Демис Хассабис — великий интеллект, который создал великий интеллект

            • Translation
            «Мы нуждаемся в экспоненциальном улучшении человеческого поведения или в экспоненциальном улучшении технологий, и мир не выглядит так, как будто он действует по первому принципу.»

            image


            Для генерального директора полумиллиардной компании Демиса Хассабиса рабочий день начинается очень обыденно. Никакого коктейля из капусты в 5 часов утра за прочтением The Wall Street Journal, никакой интенсивной тренировки с последующим завтраком. Вместо этого он в приемлемое время прибывает в свой офис, находящийся рядом с Кингс-Кросс в Лондоне, проводит день на собраниях, а затем возвращается домой к семейному обеду с женой и двумя детьми в 19:30.

            Там он может расслабиться и уложить детей спать в 10 часов вечера, начиная то, что он называет «вторым рабочим днем». И тогда все становится немного менее обыденным.

            «Я не сплю до 4 утра», — говорит он. «Иногда до 4.30, в зависимости от того, как идут дела».

            Если первая половина его рабочего дня посвящена ведению бизнеса и управлению 700 сотрудниками — 400 из которых доктора наук, стремясь сохранить свои позиции в качестве ведущей мировой компании в области искусственного интеллекта, то во второй половине рабочего дня он напоминает себе зачем он в принципе руководит этой компанией. Речь идет о компьютерных науках, математике и о том, как идти в ногу со временем. «Именно тогда я занимаюсь своей исследовательской работой».

            Перевод — Диана Шеремьёва.
            Читать дальше →
          • Всегда ли нужны Docker, микросервисы и реактивное программирование?

            • Tutorial


            Автор: Денис Цыплаков, Solution Architect, DataArt

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

            Если вы не делаете что-то принципиально новое, например, первый в мире интернет-поисковик или искусственный интеллект для управления запуском ядерных ракет, создать дизайн хорошей системы довольно просто. Достаточно учесть все требования, посмотреть на дизайн похожих систем и сделать примерно так же, не совершив при этом грубых ошибок. Звучит как чрезмерное упрощение вопроса, но давайте вспомним, что на дворе 2019 год, и «типовые рецепты» дизайна систем есть практически для всего. Бизнес может подкидывать сложные технические задачи — скажем, обработать миллион разнородных PDF-файлов и вынуть из них таблицы с данными о расходах — но вот архитектура систем редко отличается большой оригинальностью. Главное тут — не ошибиться с определением того, какую именно систему мы строим, и не промахнуться с выбором технологий.

            В последнем пункте регулярно возникают типичные ошибки, о некоторых из них я расскажу в статье.
            Читать дальше →
          • PERDIX: алгоритм автоматического проектирования ДНК-оригами разной геометрии



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

              Шутки в сторону. Сегодня мы с вами познакомимся с алгоритмом, позволяющим автоматически создавать ДНК-оригами достаточно разнообразной формы. Ранее изменение формы нитей ДНК до необходимой выполнялось вручную, что сильно ограничивало возможности подобной процедуры. Данный же алгоритм позволяет создавать детали ДНК конструктора автоматически, что позволяет в дальнейшем использовать их для формирования двумерных и трехмерных наноструктур. Плюс этот алгоритм доступен всем желающим. Доклад исследовательской группы поможет нам разобраться что и как работает. Поехали.
              Читать дальше →
              • +22
              • 3.8k
              • 7
            • Повторная децентрализация веба. На этот раз навсегда

              • Translation
              В последние годы веб стал сильно централизованным. Чтобы восстановить свободу и контроль над цифровыми аспектами нашей жизни, нужно понять, как мы дошли до такого состояния и как вернуться на правильный путь. В этой статье рассказана история децентрализации веба и роль Тима Бернерса-Ли в продолжающейся борьбе за свободный и открытый интернет. Проблемы и решения носят не чисто технический характер, а скорее вписываются в более масштабную социально-экономическую головоломку. Мы все вместе должны заняться её решением. Давайте вернём себе Интернет на этот навсегда, и используем весь потенциал веба, как это предусмотрено его создателем.
              Читать дальше →
            • Бортовое видео процессов подготовки и совершения посадки, а так же панорама обратной стороны Луны от «Чанъэ-4»

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


                Читать дальше →
              • Трехмерный движок внутри запроса SQL

                • Tutorial
                Несколько лет назад на форуме SQL.ru решили провести сравнение реализаций трассировщиков лучей на разных языках программирования. К сожалению, моя заявка не может участвовать т.к. она не выводит надпись «PIXAR», поэтому публикую ее здесь.

                Для чистоты эксперимента я использовал SQLite без расширений. Оказалось, что там нет даже функции SQRT.

                WITH RECURSIVE numbers AS (SELECT 0 AS n UNION ALL SELECT n+1 FROM numbers WHERE n<89),
                pixels AS (SELECT rows.n as row, cols.n as col FROM numbers as rows CROSS JOIN
                numbers as cols WHERE rows.n > 4 AND rows.n < 38 AND cols.n > 9 AND cols.n < 89),
                rawRays AS (SELECT row, col, -0.9049 + col * 0.0065 + row * 0.0057 as x,
                -0.1487 + row * -0.0171 as y, 0.6713 + col * 0.0045 + row * -0.0081 as z FROM pixels),
                norms AS (SELECT row, col, x, y, z, (1 + x * x + y * y + z * z) / 2 as n FROM rawRays),
                rays AS (SELECT row, col, x / n AS x, y / n AS y, z / n AS z FROM norms),
                iters AS (SELECT row, col, 0 as it, 0 as v FROM rays UNION ALL
                SELECT rays.row, rays.col, it + 1 AS it, v + MAX(ABS(0.7+v*x) - 0.3,
                ABS(0.7+v*y) - 0.3, ABS(-1.1+v*z) - 0.3, -((0.7+v*x) * (0.7+v*x) +
                (0.7+v*y) * (0.7+v*y) + (-1.1+v*z) * (-1.1+v*z)) * 1.78 + 0.28) AS v
                FROM iters JOIN rays ON rays.row = iters.row AND rays.col = iters.col WHERE it < 15),
                lastIters AS (SELECT it0.row, it0.col, it0.v AS v0, it1.v AS v1, it2.v AS v2
                FROM iters as it0 JOIN iters AS it1 ON it0.col = it1.col AND it0.row = it1.row
                JOIN iters AS it2 ON it0.col = it2.col AND it0.row = it2.row
                WHERE it0.it = 15 AND it1.it = 14 AND it2.it = 13),
                res AS (SELECT col, (v0 - v1) / (v1 - v2) as v FROM lastIters)
                SELECT group_concat(
                substr('$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,"^. ',
                round(1 + max(0, min(66, v * 67))), 1) || CASE WHEN col=88 THEN X'0A' ELSE '' END, '')
                FROM res;
                



                Здесь можно покрутить кубик

                Под катом построчный разбор запроса. Как обычно, достаточно знания основ SQL и школьной математики.
                Читать дальше →
              • Data Science: книги для начального уровня

                  Data Science — наука о данных, возникшая на стыке нескольких обширных направлений: программирования, математики и машинного обучения. Этим обусловлен высокий порог вхождения в профессию и необходимость постоянно получать новые знания.

                  Ключевыми навыками для начинающих специалистов являются:

                  • умение писать код (Python);
                  • способность визуализировать свои результаты;
                  • понимание того, что происходит «под капотом».

                  На эти три категории разделены книги, которые специалисты Plarium Krasnodar подобрали для читателей с начальными знаниями в Data Science.

                  Читать дальше →
                  • +17
                  • 50.3k
                  • 8
                • Анализ результатов 2018 Kaggle ML & DS Survey


                    Kaggle — известная платформа для проведения соревнований по машинному обучению на которой количество зарегистрированных пользователей перевалило за 2.5 миллиона. В соревнованиях участвуют тысячи data scientist из разных стран, и Kaggle стал интересоваться тем, что из себя представляет аудитория. В октябре 2018 года был организован уже второй опрос и на него ответило 23859 людей из 147 стран.


                    В опросе было несколько десятков вопросов на самые разные темы: пол и возраст, образование и сфера работы, опыт и навыки, используемые языки программирования и софт и многое другое.


                    Но Kaggle — не просто площадка для соревнований, там также можно публиковать исследования данных или решения соревнований (они называются кернелы и похожи на Jupyter Notebook), поэтому датасет с результатами опроса был выложен в открытый доступ, и было организовано соревнование на лучшее исследование этих данных. Я тоже принимал участие и пусть денежный приз не получил, но мой кернел занял шестое место по количеству голосов. Я хотел бы поделиться результатами моего анализа.


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


                    Большая часть графиков и анализа взята из моего кернела (желающие могут там увидеть код на Python) но есть и новые идеи.

                    Читать дальше →
                  • Космический 2019: пилотируемые корабли, новые ракеты и лунные зонды

                      Космический 2019 начался уже весьма бодро — китайский «Чанъэ-4» успешно сел на обратной стороне Луны, а межпланетная станция NASA «Новые горизонты» пролетела мимо транснептунового астероида (486958) 2014 MU69, сделав его самым отдаленным объектом из посещенных земными аппаратами. Тем не менее, главный фокус года лежит в области пилотируемых космических кораблей — первые полеты готовятся совершить Dragon 2 от SpaceX и Starliner от Boeing, а суборбитальные New Shepard и SpaceShipTwo должны будут наконец добраться до отметки 100 км с людьми на борту. Но и кроме этого будет немало интересного.


                      Starliner и Dragon 2, пристыкованные к МКС. Графика Nathan Koga/NSF
                      Читать дальше →
                    • Космонавтика 2018 — итоги года



                        2018 год подходит к концу и думаю можно подвести итоги. В 2018 было много успехов и радостных моментов: Посадка Insight на Марс, сближение зондов Хаябуса-2 и OSIRIS-Rex с астероидами, телескоп-охотник за планетами ТЕSS начал свою работу, Parker Solar Probe достиг солнца, удачные пуски Falcon Heavy и Electron. Но были и грустные моменты: отверстие на Союзе МС-09 и последующий скандал. Авария Союза МС-10. В общем в 2018 году было произведено 112 запусков, из них 38 — Китай, 34 — США, 19 — Россия, 8 — Европа, 7 — Индия и 6 — Япония.
                        Читать дальше →
                      • Стиллер на Python с отправкой по почте

                        Что будем делать?


                        Здравствуй, читатель сегодня поговорим о том почему не надо открывать непроверенные файлы скачанные с неизвестных источников и создадим такой файл чтобы понять что он может наделать на вашем ПК. Создавать мы будем стиллер который соберет все наши пароли и отправит их нам по почте.

                        Читать дальше →