• Обзор топологий глубоких сверточных нейронных сетей

      Это будет длиннопост. Я давно хотел написать этот обзор, но sim0nsays меня опередил, и я решил выждать момент, например как появятся результаты ImageNet’а. Вот момент настал, но имаджнет не преподнес никаких сюрпризов, кроме того, что на первом месте по классификации находятся китайские эфэсбэшники. Их модель в лучших традициях кэгла является ансамблем нескольких моделей (Inception, ResNet, Inception ResNet) и обгоняет победителей прошлого всего на полпроцента (кстати, публикации еще нет, и есть мизерный шанс, что там реально что-то новое). Кстати, как видите из результатов имаджнета, что-то пошло не так с добавлением слоев, о чем свидетельствует рост в ширину архитектуры итоговой модели. Может, из нейросетей уже выжали все что можно? Или NVidia слишком задрала цены на GPU и тем самым тормозит развитие ИИ? Зима близко? В общем, на эти вопросы я тут не отвечу. Зато под катом вас ждет много картинок, слоев и танцев с бубном. Подразумевается, что вы уже знакомы с алгоритмом обратного распространения ошибки и понимаете, как работают основные строительные блоки сверточных нейронных сетей: свертки и пулинг.

      Читать дальше →
    • Стилизация изображений с помощью нейронных сетей: никакой мистики, просто матан

        Приветствую тебя, Хабр! Наверняка вы заметили, что тема стилизации фотографий под различные художественные стили активно обсуждается в этих ваших интернетах. Читая все эти популярные статьи, вы можете подумать, что под капотом этих приложений творится магия, и нейронная сеть действительно фантазирует и перерисовывает изображение с нуля. Так уж получилось, что наша команда столкнулась с подобной задачей: в рамках внутрикорпоративного хакатона мы сделали стилизацию видео, т.к. приложение для фоточек уже было. В этом посте мы с вами разберемся, как это сеть "перерисовывает" изображения, и разберем статьи, благодаря которым это стало возможно. Рекомендую ознакомиться с прошлым постом перед прочтением этого материала и вообще с основами сверточных нейронных сетей. Вас ждет немного формул, немного кода (примеры я буду приводить на Theano и Lasagne), а также много картинок. Этот пост построен в хронологическом порядке появления статей и, соответственно, самих идей. Иногда я буду его разбавлять нашим недавним опытом. Вот вам мальчик из ада для привлечения внимания.


        Читать дальше →
      • Kaggle – наша экскурсия в царство оверфита

        • Tutorial
        Kaggle — это платформа для проведения конкурсов по машинному обучению. На Хабре частенько пишут про неё: 1, 2, 3, 4, и.т.д. Конкурсы на Kaggle интересные и практичные. Первые места обычно сопровождаются неплохими призовыми (топовые конкурсы — более 100к долларов). В последнее время на Kaggle предлагали распознавать:


        И многое-многое другое.

        Мне давно хотелось попробовать, но что-то всё время мешало. Я разрабатывал много систем, связанных с обработкой изображений: тематика близка. Навыки более лежат в практической части и классических Computer Vision (CV) алгоритмах, чем в современных Machine Learning техниках, так что было интересно оценить свои знания на мировом уровне плюс подтянуть понимание свёрточных сетей.

        И вот внезапно всё сложилось. Выпало пару недель не очень напряжённого графика. На kaggle проходил интересный конкурс по близкой тематике.Я обновил себе комп. А самое главное — подбил vasyutka и Nikkolo на то, чтобы составить компанию.

        Сразу скажу, что феерических результатов мы не достигли. Но 18 место из 1.5 тысяч участников я считаю неплохим. А учитывая, что это наш первый опыт участия в kaggle, что из 3х месяц конкурса мы участвовали лишь 2.5 недели, что все результаты получены на одной единственной видеокарте — мне кажется, что мы хорошо выступили.

        О чём будет эта статья? Во-первых, про саму задачу и наш метод её решения. Во-вторых, про процесс решения CV задач. Я писал достаточно много статей на хабре о машинном зрении(1,2,3), но писанину и теорию всегда лучше подкреплять примером. А писать статьи по какой-то коммерческой задаче по очевидным причинам нельзя. Теперь наконец расскажу про процесс. Тем более что тут он самый обычный, хорошо иллюстрирующий как задачи решаются. В-третьих, статья про то, что идёт после решения идеализированной задаче в вакууме: что будет когда задача столкнётся с реальностью.


        Читать дальше →
      • Искусственные нейронные сети простыми словами

        image

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

        Допустим, я знаю о девушке две вещи — симпатична она мне или нет, а также, есть ли о чём мне с ней поговорить. Если есть, то будем считать это единицей, если нет, то — нулём. Аналогичный принцип возьмем и для внешности. Вопрос: “В какую девушку я влюблюсь и почему?”


        Можно подумать просто и бескомпромиссно: “Если симпатична и есть о чём поговорить, то влюблюсь. Если ни то и ни другое, то — увольте.”

        Но что если дама мне симпатична, но с ней не о чем разговаривать? Или наоборот?
      • Играть на уровне бога: как ИИ научился побеждать человека



          В 16 играх машины одолели человека (в 17, если брать в расчет поражение Ли Седоля в го), но в будущем их ждут еще более впечатляющие достижения: решение самых ошеломляющих математических, физиологических и биологических проблем, победа над болезнями и старостью, ликвидация дорожных аварий, триумф в военных конфликтах и многое другое.

          Мир изменился прямо на наших глазах, но не все заметили это. Когда и как программы научились играть безошибочно? Всегда ли проигрыш одного человека свидетельствует о поражении всего человечества? Обретет ли искусственный интеллект сознание?

          Об авторе. Статья основана на лекции «Искусственный интеллект. История и перспективы», проведенной в московском офисе Mail.Ru Group Сергеем oulenspiegel Марковым. Сергей Марков занимается machine learning в «Сбербанке». В банковской сфере строят предиктивные модели для управления бизнес-процессом на основе достаточно больших обучающих выборок, которые могут включать несколько сотен миллионов кейсов. Среди своих хобби Сергей указывает шахматное программирование, ИИ для игр, минимаксные задачи. Программа SmarThink, созданная Сергеем Марковым, становилась чемпионом России (2004) и СНГ (2005) среди шахматных программ (2004), и сегодня входит в топ-30 сильнейших программ в мире. Также Сергей является основателем некоммерческого научно-просветительского портала 22 век.
          Читать дальше →
        • Как общаться с заказчиками и договариваться о проектной работе

            Я занимаюсь мобильной разработкой в статусе ИП вот уже полтора года. За это время пришлось поработать с разными людьми. После одного досадного случая, я решил, что мне необходимо усилить навыки общения с заказчиками и отстаивания своих интересов. Я попытался собрать свой опыт и опыт своих коллег. В результате получилось что-то вроде методических указаний для фрилансеров. Начинающих и не только.
            Читать дальше →
            • +13
            • 32,8k
            • 9
          • Kaggle: определение тональности текстов

              Привет, хабр!



              #{Data Science для новичков}

              Меня зовут Глеб Морозов, мы с Вами уже знакомы по предыдущим статьям. По многочисленным просьбам продолжаю описывать опыт своего участия в образовательных проектах MLClass.ru (кстати, кто еще не успел — рекомендую скачать материалы, пока они еще доступны).
              Читать дальше →
              • +17
              • 19,7k
              • 4
            • Механизмы профилирования Linux



                Последние пару лет я пишу под ядро Linux и часто вижу, как люди страдают от незнания давнишних, общепринятых и (почти) удобных инструментов. Например, как-то раз мы отлаживали сеть на очередной реинкарнации нашего прибора и пытались понять, что за чудеса происходят с обработкой пакетов. Первым нашим позывом было открыть исходники ядра и вставить в нужные места printk, собрать логи, обработать их каким-нибудь питоном и потом долго думать. Но не зря я читал lwn.net. Я вспомнил, что в ядре есть готовые и прекрасно работающие механизмы трассировки и профилирования ядра: те базовые механизмы, с помощью которых вы сможете собирать какие-то показания из ядра, а затем анализировать их.
                Читать дальше →
              • Быстрый фильтр каталога для интернет-магазинов на основе битмапов Redis



                  Не секрет, что каждый интернет-магазин должен помогать пользователям найти то, что им нужно. Особенно, если товаров у вас много (> 10). На помощь приходит каталогизация товаров, но разбить товары по категориям — полдела. Товары внутри категории нужно уметь фильтровать по их свойствам. Особенно, если товары у вас разношёрстные, например, одежда, электроника, ювелирные изделия и т.д. И тут любой разработчик, пишущий свой e-commerce продукт, сталкивается с неприятными реалиями жизни: у товаров могут быть совершенно разные свойства, у некоторых товаров они могут отсутствовать, некоторые товары по одному свойству могут попадать под разные значения (цвет платья то ли синий, то ли голубой, соответственно, неплохо бы его показать и по синему и по голубому цвету). Проще говоря, у вас EAV. Бывает ещё, что EAV вам диагностирует заказчик ближе к концу разработки, а то и просит добавить фильтр по динамическим свойствам уже после релиза.
                  Читать дальше →
                • Проблемы распределённых команд и способы их решения

                    Наша команда растёт и успешно развивается с 2009-го года, при том, что преобладающее большинство сотрудников не ходят в офис. Они сидят в своих московских и питерских квартирах, львовских и харьковских дачах, минских и нижегородских домах, тайских кондо и турецких бунгало. Проводя очередную бизнес-встречу в красивом московском офисе с потенциальным клиентом мы неизбежно слышим вопрос: «А где у вас офис?». Мы отвечаем честно: «В Нижнем Новгороде, но вообще-то, большинство наших сотрудников туда не ходит, они работают из дома».
                    Наступает небольшая пауза, во время которой, скорее всего, заказчик представляет себе примерно вот такую картину:

                    image

                    За шесть с лишним лет работы мы столкнулись с небольшим количеством трудностей «удалёнки», и со значительно бOльшим количеством недоверия и мифов об удалённой работе. Книга Remote нас порадовала и как будто сказала «ребята, вы на правильном пути», но полезных советов по трудностям, к сожалению, не дала. Поэтому в этой статье я соберу те советы и решения, которые помогут не наступать на наши грабли и не изобретать велосипеды.
                    Читать дальше →
                  • Как нанять проектировщика интерфейсов: мифы, ошибки, оценки рынка и выигрышные стратегии

                      За последние 7–8 лет наши сотрудники прочитали около 2000 резюме UX-проектировщиков. Отсобеседовали — под сотню. Пару десятков приняли на временную или постоянную работу. А параллельно пережили неисчислимое количество однотипных бесед с теми, кто «тоже хочет» (или делает вид, что хочет) заполучить себе в команду подобного специалиста.

                      Смеем надеяться, что теперь мы что-то понимаем в поиске и найме проектировщиков интерфейсов. И хорошо видим, что руководители, которые никогда с этой задачей не сталкивались, подходят к ней с довольно стандартным шаблоном мифов и легенд.

                      Попробуем немножко расшатать самые распространенные мифы. Вдруг это кому-то поможет подойти к вопросу найма UX-проектировщика чуть более рационально и эффективно.

                      Читать дальше →
                    • Как я повышал конверсию машинным обучением

                        В этой статье я попробую ответить на такие вопросы:
                        • может ли один доклад умного человека сделать другого человека одержимым?
                        • как окунуться в машинное обучение (почти) с нуля?
                        • почему не стоит недооценивать многоруких бандитов?
                        • существует ли серебряная пуля для a/b тестов?

                        Ответ на первый вопрос будет самым лаконичным — «да». Услышав это выступление bobuk на YaC/M, я восхитился элегантностью подхода и задумался о том, как бы внедрить похожее решение. Я тогда работал продуктовым менеджером в компании Wargaming и как раз занимался т.н. user acquisition services – технологическими решениями для привлечения пользователей, в число которых входила и система для A/B тестирования лендингов. Так что зерна легли на благодатную почву.

                        К сожалению, по всяким причинам я не мог плотно заняться этим проектом в обычном рабочем режиме. Зато когда я слегка перегорел на работе и решил устроить себе длинный творческий отпуск, одержимость превратилась в желание сделать такой сервис умной ротации лендингов самостоятельно.
                        Читать дальше →
                      • Психология ценообразования: 10 стратегий и 29 тактик

                        • Перевод


                        Добро пожаловать! Это длинный список стратегий ценообразования, учитывающих психологические факторы.

                        Неважно, запускаете ли вы новый продукт, продаете что-либо на eBay или же заключаете сделку о продаже дома – вы научитесь устанавливать цены, которые максимизируют вашу прибыль.
                        Читать дальше →
                        • +26
                        • 51,7k
                        • 5
                      • Удобоваримый вызов Java методов из нативного кода

                        Существует довольно много приложений под Android, которые совмещают C++ и Java код. Где Java выступает оберткой/прослойкой, а C++ выполняет всю грязную работу. Пожалуй, ярким примером могут служить игры. В связи с этим часто приходится вызывать Java код из нативного для доступа к системным свойствам и плюшкам, которые предоставляет система (переключится на другую активность, послать или скачать что-либо из интернета). Причин много, а проблема одна: каждый раз приходится писать в лучшем случае 5 строчек кода и помнить, какую сигнатуру функции нужно запихнуть в параметр. Потом еще нужно перевести эти параметры в нужный тип. Стандартный пример из туториалов:

                        long f (int n, String s, float g); 
                        

                        Строка-сигнатура для данного метода будет (ILjava/lang/String;F)J.

                        Вам удобно это все запоминать? А переводить С-строки в jstring? Мне — нет. Мне хочется писать:

                        CallStaticMethod<long>(className, “f”, 1, 1.2f); 
                        

                        Подробности под катом
                      • Книги и образовательные ресурсы по алгоритмической торговле



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

                          В нашем сегодняшнем материале — подборка книг, которые помогут лучше подготовиться к началу работы на фондовом рынке и написанию механических торговых систем. Для достижения наибольшей эффективности материала, мы приводим советы экспертов, которые занимаются алгоритмической торговлей на российском и зарубежных фондовых рынках.
                          Читать дальше →
                        • В поисках справедливости: Очевидные принципы мотивации профессионалов, которые не сразу пришли в голову



                            Привет, Мегамозг!

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

                            Disclaimer и благодарности

                            Хочется поделиться множеством мыслей, которые стали моими существенно позднее, чем мне хотелось бы и не пришли в мою голову «сами по себе». Просто довелось нечто услышать, увидеть, прочитать или получить совет, и в голове что-то «встало на место». Я бы хотел сказать спасибо всем поимённо, но не могу — помню только книжки Дэвида Майстера, пересказы семинаров Михаила Гринфельда и еще лица полудюжины умнейших людей, чьи имена я забыл… А скольких уже совсем не помню, но всё равно — всем спасибо! И вдруг еще кому-то пригодятся ваши идеи.
                            Читать дальше →
                            • +17
                            • 26,5k
                            • 4
                          • Разоблачение 12 юридических заблуждений о программах для ЭВМ



                            Заблуждение / опасная привычка На самом деле … Наш совет прост:
                            1. Мы создали программу и автоматически стали ее авторами и правообладателями. Для охраны и продажи программы никаких документов оформлять не нужно, ведь она охраняется авторским правом — ©! Действительно: программа для ЭВМ охраняется авторским правом как литературное произведение (п.1 ст. 1259, ст. 1261 ГК РФ).

                            Но то, что для возникновения авторских прав не требуется регистрация или соблюдение каких-либо иных формальностей (п.4 ст. 1259 ГК РФ), ни в коем случае не освобождает:
                            − от соблюдения набора критериев, установленных законом;
                            − от необходимости документально доказать факт создания программы и свои права на них.

                            Неоформленный SOFT закон не охраняет.

                            Всё просто: если у вас спор о правах на программу, то без документов вы не сможете доказать, что (1) у вас были права и (2) ваши права нарушены, (3) что сама эта совокупность данных и команд на языке программирования является интеллектуальной собственностью (ведь различные версии и релизы никакой новой интеллектуальной собственности не создают).
                            То же самое – при постановке на бухгалтерский учёт и оформлении бухгалтерских проводок.

                            Коротко говоря: нет документов = нет интеллектуальной собственности = нет нарушений прав = нет компенсации за нарушение прав.
                            Оформляйте много хороших и разных документов при создании программ для ЭВМ:
                            — договоры с авторами;
                            — договоры с подрядчиками;
                            — технические задания;
                            — протоколы совещаний и тестов;
                            — соглашения между соавторами;
                            — авторское свидетельство;
                            — сертификат признания интеллектуальной собственности;
                            — спецификация РИД;
                            — свидетельство о регистрации программы для ЭВМ (Роспатент).
                            Читать дальше →
                          • То, чего еще никто не писал про Нокиа, Элопа и горящую платформу

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

                              Традиционно, для тех кто не любит много буков, краткие (более-менее) тезисы:

                              • Будучи долгое время лидером на рынке, Нокиа сильно расслабилась и загадила свою внутреннюю инфраструктуру бюрократией, чрезмерным аутсорсингом и огромным количеством бесполезной «менеджерской прослойки».
                              • Будучи долгое время лидером, Нокиа просрала потратила много денег на ненужные операционные расходы, поглощения никому не нужных фирм и на невменяемую модель аутсорсинга.
                              • Полностью оторвавшись от реальности с уходом Йормы Оллилла, Нокиа, под управлением гениального юриста CEO Олли-Пекки Каласвуо, потратила кучу денег и усилий на создание бесполезной и неконкурентоспособной сервисной инфраструктуры Ovi. В результате этого, помимо денег, Нокиа потеряла уйму полезного времени, которое можно и нужно было потратить на развитие основного бизнеса — телефонов, софта и т.д.
                              • Бюрократия и непотопляемая менеджерская прослойка в Нокиа, последовательно мигрировала из одного передового проекта в другой, в составе одних и тех же групп лиц, самореплицируясь в виде кучи формальных дебилопроцессов комитетов и управленческих групп, немного перетасовываемых с учетом специфики. В итоге именно эта бюрократия убила и Symbian, и Ovi, и MeeGo и остальные попытки догнать уходящий поезд своими силами.
                              • Борьба с бюрократией и прослойкой в Нокиа зашла в полный тупик.
                              • У великого CEO Элопа просто не было другого выхода кроме как прибить всю старую, неповоротливую и прогнившую организацию, путем создания альянса с Майкрософтом и переходом на Windows Phone. Тем самым все старые процессы, компетенции, технологии и самое главное — люди резко стали, что называется, «не в тему». И следовательно тем самым можно было под благовидным предлогом прибить этот табун менеджеров, бесконечно рисующих фэнтезийные роадмапы с единорогами и перекладывающих бумаги с левого края стола на правый.
                              • Новая Нокиа, после 2011 года и старая Нокиа до 2011 года – это две РАЗНЫЕ организации. Их объединяет только общее название и операционка S40 для телефонов Asha.
                              • Горящая платформа, это не Symbian и не MeeGo. Горящая платформа, это то состояние в которое Нокиа загнали годы расслабленного лидерства и тупоголовые амбиции предыдущего CEO – Олли-Пекки Каласвуо с кликой подкаркивающих вице-президентов.
                              • С бюрократией и бизнес процессами, имеющимися на 2010 год, Нокиа не спас бы ни Андроид, ни половина населения Бангалора, пишущих на Qt под MeeGo. Даже если бы Apple бесплатно передал Нокиа iOS и все сервисы, то они бы выродились руками всяких Requirement Managerов в типичные Нокийские дизайн-химеры и в итоге загнулись через какое-то время.
                              • То, что сделал великий CEO Элоп – было единственно возможным разумным решением, дающим хоть какие-то шансы на выживание. Вопрос «каким образом он это сделал?», остается открытым, равно как и вопрос «поможет ли это Нокиа?» в итоге. Не следует забывать, что нынешняя Нокиа — это совершенно новая организация, поэтому глупо предполагать, что она разом вернет себе лидерство. Как и всем новым организациям ей придется за это лидерство долго бороться.
                              • Без ошибок и побед Нокиа никогда не было бы ни Андроида, ни Айфона. И Google и Apple тщательно проанализировали достоинства и недостатки более старших конкурентов перед тем как шагнуть вперед.

                              Все это в деталях — под катом. Предупреждаю что клевых картинок там нет. Сплошное графоманство и ёрничанье.
                              Читать дальше →
                            • Меняем Default country в Google Apps for Domains

                                Так случилось, что при регистрации в Google Apps for Domains мы указали страну, в которой не поддерживается YouTube. Соответственно, мы не могли авторизовываться на YouTube с помощью наших «корпоративных» аккаунтов. Что же делать? Логичный ответ — сменить страну. А вот и нет, этого нельзя сделать в настройках аккаунта (Domain settings → Account information). Погуглив, выяснили, что страну можно изменить только на стороне Google.

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

                                Идем в Dashboard и кликаем ссылку "Try Google Apps for Business Free". На открывшейся странице выбираем желаемую страну (United States) и жмем кнопку "Begin Free Trial". Загрузится страница с формой информации о компании и т.д., просто игнорируем её. Возвращаемся в Domain settings → Account information и радуемся измененной Default country.

                                UPD: Посоветуйте, в какой тематический блог перенести?
                              • Как купить акции IT-компаний на зарубежных биржах? (часть 1)

                                  Stock Investing for Dummies (theory)Многие из вас, читая на Хабре статьи об успешных IT-фирмах и быстро развивающихся высокотехнологичных компаниях, наверняка, задумывались о том, чтобы инвестировать свои деньги в их акции с целью получения прибыли, когда через несколько месяцев или даже лет рыночная стоимость этих акций заметно вырастет.

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

                                  Но в итоге я всё же сделал усилие над собой: сначала немного вник в азы торговли акциями, а потом наконец решился и начал торговать акциями на фондовых рынках США (NYSE, NASDAQ, AMEX). И, самое главное, я понял, что купить акции — это не так уж и сложно, как казалось раньше, и даже не так затратно (в плане накладных расходов), как я предполагал. И в этой статье я хочу поделиться исключительно своим опытом в данной области в виде общих теоретических сведений и практического руководства (HOWTO) для новичков.

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

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

                                  Разделил статью на две части:
                                  1. В первой части рассмотрим теоретические основы торговли акциями.
                                  2. Во второй части будет практическое руководство для новичков по покупке и продаже акций.
                                  Кто заинтересовался, добро пожаловать под кат.