• Чему я научился на своём горьком опыте (за 30 лет в разработке ПО)

    • Перевод
    • Tutorial
    image

    Это циничная, клиническая коллекция того, чему я научился за 30 лет работы в разработке программного обеспечения. Повторюсь, некоторые вещи весьма циничны, а остальное — результат долгих наблюдений на разных местах работы.
    Читать дальше →
  • Прогулка по заводу желаний

      Откуда приходят и куда исчезают желания?

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

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

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

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

      Или еще проще — проблемы нет, у вас воля слабая, отговорки ищете, возьми и сделай (just do it).

      Позвольте усложнить.
      Читать дальше →
    • Программа как Искусство — новая парадигма управления программным обеспечением

        — Что для тебя Программирование?
        > Программирование? Я не могу ответить.
        — Почему?
        > Даже не знаю…
        — Ты учился когда-нибудь?
        > Конечно, но это было давно.
        — Работу по найму Любишь?
        > Сейчас уже нет.
        — Зачем ты стал Предпринимателем, и неужели ты проработал более 17 лет «программистом» и «аналитиком» в ИТ-компаниях?

        Кто Ты?

        > Многолетние постоянные улучшения, постоянное сопровождение и настройка клиентских рабочих мест создавало ощущение управляемости процессом, но это не всегда так. Просто существовали процессы, управление которыми не входило в KPI тех компаний, где я работал, и поэтому я решил стать Предпринимателем.
        — И? Уже ничего нельзя изменить?
        Любопытно? Тогда жми за подробностями
      • ML.NET 0.7 (Machine Learning .NET)

        • Перевод
        Мы рады объявить о выпуске ML.NET 0.7 — последней версии кросс-платформенной и open source системы машинного обучения для разработчиков .NET (ML.NET 0.1 был выпущен на //Build 2018). Этот релиз направлен на расширение функциональности платформы. Подробнее под катом!

        Читать дальше →
        • +11
        • 8,7k
        • 2
      • Болтай, извлекай: архитектура сложных чат-ботов

          Пользователи, пообщавшись с умными голосовыми ассистентами, ждут от чат-ботов интеллектуальности. Если вы разрабатываете бота для бизнеса, ожидания еще выше: заказчик хочет, чтобы юзер прошел по нужному, заранее прописанному сценарию, а юзер — чтобы робот толково и желательно человеческим языком ответил на поставленные вопросы, помог решить проблемы, а иногда просто поддержал светскую беседу.


          Мы делаем англоязычные чат-боты, которые общаются с пользователями по разным каналам — Facebook Messenger, SMS, Amazon Alexa и веб. Наши боты заменяют службы поддержки, страховых агентов, и уметь просто поболтать. Каждая из этих задач требует своего подхода в разработке.

          В этой статье мы расскажем, из каких модулей состоит наш сервис, как сделан каждый из них, какой подход мы выбрали и почему. Поделимся нашим опытом анализа разных инструментов: когда генеративные нейронные сети — не лучший выбор, почему вместо Doc2vec мы пользуемся Word2vec, в чем прелесть и ужас ChatScript и так далее.

          Читать дальше →
        • 10 интересных новостных IT сайтов, которые стоит добавить в закладки

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

          А чтобы реально разобраться в тексте, советуем взять на заметку такие сайты:
          Читать дальше →
          • –1
          • 23,4k
          • 3
        • Google объявляет конкурс атак на алгоритмы машинного зрения

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

            Часто причина в так называемых «вредных данных» (или «соревновательных элементах», или «вредоносных экземплярах» или еще куче вариантов, поскольку «adversary examples» так и не получили общепринятого перевода). Это данные, которые обманывают классификатор нейросети, подсовывая ему признаки других классов — информацию не важную и не видную для для человеческого восприятия, но необходимую для машинного зрения.

            Исследователи из Google опубликовали в 2015 году работу, где проиллюстрировали проблему таким примером:


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

            В сферах, где машинное зрение должно быть предельно точным, а ошибка, взлом и действия злоумышленников могут иметь тяжелые последствия, вредные данные — серьезная помеха развитию. Прогресс в борьбе идет медленно, и компания GoogleAI (подразделение Google занимающееся исследованием ИИ) решила привлечь силы сообщества и устроить соревнование.
            Читать дальше →
          • Мессенджеровские чтения профессора Ричарда Фейнмана



              Ещё в прошлом году мы начали перевод и озвучку Мессенджеровских лекций Нобелевского лауреата по физике Ричарда Фейнмана, которые он прочитал в Корнелльском университете в 1964 году.

              В прошлом году нам удалось опубликовать 2 лекции из 7. И вот, благодаря нашим подписчикам, мы выпустили 3-ю лекцию, в которой Ричард Фейнман рассказывает о том, какие существуют законы сохранения, как они работают и какие у них есть сходства.

              На случай, если кто не успел посмотреть, мы дублируем первые две лекции этого курса.
              Приятного просмотра!
              Читать дальше →
              • +21
              • 24,5k
              • 8
            • Гарвардский курс CS50 «Основы компьютерных наук и искусства программирования»



                Вот уже несколько месяцев специально для JavaRush мы переводим и озвучиваем самый популярный в мире университетский курс о CS50 — «Основы компьютерных наук и искусства программирования» (трейлер). Его уже много лет очно читают для студентов Гарварда и для воспитанников Йельского университета, а в последнее время ещё и заочно для многомиллионной аудитории интернета.
                Это перевод самой новой версии курса, который стартовал осенью 2015 года. В курсе 24 лекции и постепенно мы переведём их все. Намедни мы перевели 15-ю лекцию, её вы найдёте под катом в списке всех переведённых на сегодняшний день лекций.

                Что вы узнаете, прослушав этот курс:

                • Основы компьютерных наук и программирования;
                • Концепции алгоритмов и алгоритмичности мышления. Какие задачи можно решать с помощью программирования и каким образом;
                • Концепции абстракции, структуры данных, инкапсуляции, управления памятью. Основы компьютерной безопасности. Процесс разработки ПО и веб-разработка;
                • Основы языка программирования C и Scratch;
                • Основы баз данных и SQL;
                • Веб-разработка: основы CSS, HTML, JavaScript и PHP;
                • Основы подготовки презентации проектов по программированию.

                Читать дальше →
              • Методы аутентификации по сетчатке глаза

                • Tutorial
                Первые сканеры сетчатки появились ещё в 80-х годах прошлого столетия. Они получили широкое распространение в системах контроля доступа на особо секретные объекты, так как у них один из самых низких процентов отказа в доступе зарегистрированных пользователей и практически не бывает ошибочного разрешения доступа, но, несмотря на это, сканеры сетчатки не получили широкого распространения в массы из-за дороговизны и сложности оптической системы сканирования. И до недавнего времени всё так и оставалось, хотя алгоритмы продолжали развиваться.

                На сегодняшний день технология 3d печати позволила сильно удешевить сканеры сетчатки глаза. Эндрю Баставрус вместе со своей командой напечатали на 3d принтере насадку для смартфона, которая позволяет наблюдать сетчатку через камеру телефона.

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

                Обзор методов биометрической идентификации/аутентификации приведён здесь.

                Способы сопоставления признаков сетчатки глаза


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

                image
                Рис. 1. Результат движения головы и глаза при сканировании сетчатки.

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

                Алгоритмы аутентификации по сетчатке глаза можно разделить на два типа: те, которые для извлечения признаков используют алгоритмы сегментации (алгоритм, основанный на методе фазовой корреляции; алгоритм, основанный на поиске точек разветвления) и те, которые извлекают признаки непосредственно с изображения сетчатки (алгоритм, использующий углы Харриса).
                Читать дальше →
              • 6 альтернатив MacBook

                image

                После презентации Apple появилось множество разочарованных комментариев: «только USB-C», устаревший процессор, отсутствие сенсорного экрана, и дикий ценник. Посмотрим, какие альтернативы предлагает рынок на новых процессорах Intel.
                Читать дальше →
              • Подавление шумов как задача диффузии

                Hello, Хабр.

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

                Итак. Речь пойдет об обработке изображений, в частности об одном из самых простых, однако красивом с описательной точки зрения, методе подавления шумов в изображении.

                Не так давно я для себя открыл сколько физики заключается в обработке изображений. Меня это очень заинтересовало, в виду того, что эти две ветви науки у меня в голове никогда не пересекались. В этой статье я представлю как можно убрать шумы с изображения решая задачу переноса массы на плоскости.
                Читать дальше →
              • Deep Learning: Сравнение фреймворков для символьного глубокого обучения

                • Перевод
                Представляем вам перевод серии статей посвященных глубокому обучению. В первой части описан выбор фреймворка с отрытым кодом для символьного глубокого обучения, между MXNET, TensorFlow, Theano. Автор подробно сравнивает преимущества и недостатки каждого из них. В следующих частях вы узнаете о тонкой настройке глубоких сверточных сетей, а также о сочетании глубокой сверточной нейронной сети с рекуррентной нейронной сетью.


                Читать дальше →
              • Книга «Изучаем Python. Программирование игр, визуализация данных, веб-приложения»

                  image Привет, Хаброжители! Недавно у нас вышла новая книга Эрика Мэтиза:

                  Цель этой книги — как можно быстрее ввести читателя в курс дела, чтобы тот начал писать на Python работоспособные программы (игры, визуализации данных и веб-приложения), и одновременно заложить основу в области программирования, которая пригодится ему на протяжении всей жизни. Книга написана для людей любого возраста, которые прежде никогда не программировали на Python или вообще никогда не программировали. Если вы хотите быстро изучить азы программирования, чтобы сосредоточиться на интересных проектах, а также проверить свое понимание новых концепций на содержательных задачах — эта книга для вас. Книга также прекрасно подходит для преподавателей, желающих предложить вводный курс программирования, основанный на проектах.
                  Читать дальше →
                • Размышления об алгоритмах и методах. Представление полного алгоритма порождения сочетаний + размещений с повторением

                  Эта статья содержит ряд наблюдений, касающихся проблем алгоритмизации, минимизации ошибок, понимания и изучения чужого кода, а также рассуждения о полном представлении алгоритмов и небольшой эксперимент.
                  Читать дальше →
                • Python для математических вычислений

                  • Tutorial

                  image Экосистема языка python стремительно развивается. Это уже не просто язык общего назначения. С его помощью можно успешно разрабатывать веб-приложения, системные утилиты и много другое. В этой заметке мы сконцентрируемся все же на другом приложении, а именно на научных вычислениях.


                  Мы попытаемся найти в языке функции, которые обычно требуем от математических пакетов. Рассмотрим сильные и слабые стороны идеи использования python вместо MATLAB, Maple, Mathcad, Mathematica.

                  Читать дальше →
                • Обзор курсов по Deep Learning

                    Привет, Хабр! Последнее время все больше и больше достижений в области искусственного интеллекта связано с инструментами глубокого обучения или deep learning. Мы решили разобраться, где же можно научиться необходимым навыкам, чтобы стать специалистом в этой области.

                    image
                    Читать дальше →
                  • Нейронные сети для начинающих. Часть 1

                    image

                    Привет всем читателям Habrahabr, в этой статье я хочу поделиться с Вами моим опытом в изучении нейронных сетей и, как следствие, их реализации, с помощью языка программирования Java, на платформе Android. Мое знакомство с нейронными сетями произошло, когда вышло приложение Prisma. Оно обрабатывает любую фотографию, с помощью нейронных сетей, и воспроизводит ее с нуля, используя выбранный стиль. Заинтересовавшись этим, я бросился искать статьи и «туториалы», в первую очередь, на Хабре. И к моему великому удивлению, я не нашел ни одну статью, которая четко и поэтапно расписывала алгоритм работы нейронных сетей. Информация была разрознена и в ней отсутствовали ключевые моменты. Также, большинство авторов бросается показывать код на том или ином языке программирования, не прибегая к детальным объяснениям.

                    Поэтому сейчас, когда я достаточно хорошо освоил нейронные сети и нашел огромное количество информации с разных иностранных порталов, я хотел бы поделиться этим с людьми в серии публикаций, где я соберу всю информацию, которая потребуется вам, если вы только начинаете знакомство с нейронными сетями. В этой статье, я не буду делать сильный акцент на Java и буду объяснять все на примерах, чтобы вы сами смогли перенести это на любой, нужный вам язык программирования. В последующих статьях, я расскажу о своем приложении, написанном под андроид, которое предсказывает движение акций или валюты. Иными словами, всех желающих окунуться в мир нейронных сетей и жаждущих простого и доступного изложения информации или просто тех, кто что-то не понял и хочет подтянуть, добро пожаловать под кат.
                    Читать дальше →
                  • Факторное моделирование с помощью нейронной сети

                    В статье рассматривается факторное моделирование с помощью метода факторизации на базе нейронной сети и алгоритма обратного распространения ошибки. Этот метод факторизации является альтернативой классическому факторному анализу. Данный метод был усовершенствован для проведения факторного вращения и получения интерпретируемого решения. Факторная структура, полученная с помощью данного метода факторизации, находятся в соответствии с результатами факторного моделирования посредством других методов.
                    Читать дальше →
                    • +13
                    • 15,7k
                    • 1
                  • Обзор топологий глубоких сверточных нейронных сетей

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

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