• Unity: процедурное редактирование Mesh

      Преобразование моделей «на лету» — нередкая практика в симуляции физики деформаций, а также в играх с динамически генерируемым и изменяемым контентом. В таких случаях удобно применять методы процедурного редактирования и создания геометрии. Последние часто позволяют сэкономить заветные байты при передаче подгружаемых из сети данных. Кроме того — это весело!

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

      Читать дальше →
      • +18
      • 4,3k
      • 9
    • Изучение понятий через сенсомоторное взаимодействие

      • Перевод


      Мысленный эксперимент


      Представьте, что вы проснулись в странной комнате. Это не уютная спальня, в которой вы засыпали, а тускло освещенная камера с холодным влажным полом. На стенах потрескавшаяся штукатурка. И единственным входом и выходом предположительно является массивная железная дверь, запертая навесным замком изнутри. Немного выше на стене зарешеченное окно, пропускающее немного света. Если окинув взглядом всё вокруг вы пришли бы к выводу что вы в ловушке, это было бы вполне разумно. Выглядит это ужасно.
      Читать дальше →
      • +19
      • 3,2k
      • 3
    • Микросервисы на Go с помощью Go kit: Введение

      • Перевод

      В этой статье я опишу использование Go kit, набора инструментов и библиотек для создания микросервисов на Go. Эта статья — введение в Go kit. Первая часть в моем блоге, исходный код примеров доступен здесь.

      Читать дальше →
      • +18
      • 12,4k
      • 7
    • Зачем изучать непопулярные языки. Пример сообщества F#



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

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

        Я попытался узнать, в чем причина. И вообще — кто те люди, которые на нем пишут, и зачем они это делают, если язык не нужен бизнесу? Для этого я постучался поговорить в русскоязычное сообщество F# в «Телеграме». Здесь — наш круглый стол.
        Читать дальше →
      • Операционные системы с нуля; Уровень 1 (младшая половина)

        • Tutorial

        Эта часть посвящена улучшению навыков работы с Rust и написанию парочки полезных утилиток и библиотек. Напишем драйверы для GPIO, UART и встроенного таймера. Реализуем протокол XMODEM. Используя это всё, напишем простенький шелл и загрузчик. Перед прочтением настоятельно рекомендуется убедиться в прочтении Книги. По крайней мере от начала и до конца. Для ленивых, но чуть более опытных можно рекомендовать это. На русском можно поковырять вот тут.


        Ну и разумеется обходить стороной нулевой уровень совершенно не стоит. Алсо где-то половина этой части не требует малинки.

        Читать дальше →
        • +33
        • 34,6k
        • 5
      • Скрипт отключения компонентов Windows

          Продолжаю серию статей по администрированию операционной системы Windows. В предыдущей статье работа велась с пакетами обновлений, а в этой с компонентами системы. Дополнительные компоненты расширяют функциональные возможности ОС, но многие из них попросту бесполезны для большинства пользователей. Я предлагаю удобный скрипт отключающий «ненужные» компоненты. Команды скрипта обращаются к средствам DISM и могут быть применимы как к установленной системе, так и к автономному образу. Скрипт определяет версию утилиты dism.exe и подставляет нужные команды. Реализовано ветвление по версии целевой ОС, таким образом что в одном скрипте можно указать отключаемые компоненты для разных версий Windows.
          Читать дальше →
        • Глубокое обучение с R и Keras на примере Carvana Image Masking Challenge



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

            Пользователи R долгое время были лишены возможности приобщиться к deep learning-у, оставаясь в рамках одного языка программирования. С выходом MXNet ситуация стала меняться, но своеобразная документация и частые изменения, ломающие обратную совместимость, все еще ограничивают популярность данной библиотеки.

            Гораздо привлекательнее выглядит использование R-интерфейсов к TensorFlow и Keras с бекендами на выбор (TensorFlow, Theano, CNTK), подробной документацией и множеством примеров. В этом сообщении будет разобрано решение задачи сегментации изображений на примере соревнования Carvana Image Masking Challenge (победители), в котором требуется научиться отделять автомобили, сфотографированные с 16 разных ракурсов, от фона. "Нейросетевая" часть полностью реализована на Keras, за обработку изображений отвечает magick (интерфейс к ImageMagick), параллельная обработка обеспечивается parallel+doParallel+foreach (Windows) или parallel+doMC+foreach (Linux).

            Читать дальше →
            • +56
            • 11,4k
            • 1
          • Моноиды, полугруппы и все-все-все

            • Перевод

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


            Mark Seeman расскажет о функциональном программировании просто и быстро. Для этого он начал писать цикл статей, посвященных связи между паттернами проектирования и теорией категорий. Любой ООПшник, у которого есть 15 минут свободного времени, сможет заполучить в свои руки принципиально новый набор идей и инсайтов, касающихся не только функциональщины, но и правильного объектно-ориентированного дизайна. Решающим фактором является то, что все примеры — это реальный код на C#, F# и Haskell. Этот хабрапост — перевод самого начала цикла, первых трех статей, слитых воедино для удобства понимания.


            Кроме того, с Марком можно пообщаться вживую, посетив конференцию DotNext 2017 Moscow, которая состоится 12-13 ноября 2017 г. в Москве, в «Славянская Рэдиссон». Марк прочитает доклад на тему «From dependency injection to dependency rejection». Билеты можно взять здесь.

            Читать дальше →
          • Чтение на выходных: 17 независимых блогов по математике, алгоритмам и языкам программирования

              Сегодня мы подготовили очередную [наш IaaS-дайджест и материалы по структурированию кода] подборку полезных источников. На этот раз мы решили изучить тематическую ветку на Hacker News и рассказали о блогах, которые могут хорошо дополнить чтение «Хабра».

              Авторы данных блогов готовят как материалы для новичков с туториалами и разъяснениями основ, так и более углубленные статьи и исследования. Всех заинтересовавшихся приглашаем под кат.

              Disclaimer: мы решили разбить подборку на несколько частей в соответствии с тематическими потоками и хабами. Начнем с блогов по математике, алгоритмам и языкам программирования, а в следующих выпусках перейдем к веб-разработке и дизайну.

              Читать дальше →
              • +17
              • 53,9k
              • 1
            • Учим робота готовить пиццу. Часть 2: Состязание нейронных сетей


                Содержание



                В прошлой части, удалось распарсить сайт Додо-пиццы и загрузить данные об ингредиентах, а самое главное — фотографии пицц. Всего в нашем распоряжении оказалось 20 пицц. Разумеется, формировать обучающие данные всего из 20 картинок не получится. Однако, можно воспользоваться осевой симметрией пиццы: выполнив вращение картинки с шагом в один градус и вертикальным отражением — позволяет превратить одну фотографию в набор из 720 изображений. Тоже мало, но всё же попытаемся.


                Попробуем обучить Условный вариационный автоэнкордер (Conditional Variational Autoencoder), а потом перейдёт к тому, ради чего это всё и затевалось — генеративным cостязательным нейронным сетям (Generative Adversarial Networks).

                Читать дальше →
              • 36 материалов о нейросетях: книги, статьи и последние исследования

                  Что делать, если хочется побольше узнать про нейронные сети, методы распознавания образов, компьютерное зрение и глубокое обучение? Один из очевидных вариантов — подыскать для себя какие-либо курсы и начать активно изучать теорию и решать практические задачи. Однако на это придется выделить значительную часть личного времени. Есть другой способ — обратиться к «пассивному» источнику знаний: выбрать для себя литературу и погрузиться в тему, уделяя этому всего полчаса-час в день.

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

                  Читать дальше →
                  • +23
                  • 47k
                  • 8
                • Нейросетевая игра в имитацию

                    Здравствуйте, коллеги. В конце 1960-ых годов прошлого века Ричард Фейнман прочитал в Калтехе курс лекций по общей физике. Фейнман согласился прочитать свой курс ровно один раз. Университет понимал, что лекции станут историческим событием, взялся записывать все лекции и фотографировать все рисунки, которые Фейнман делал на доске. Может быть, именно после этого у университета осталась привычка фотографировать все доски, к которым прикасалась его рука. Фотография справа сделана в год смерти Фейнмана. В верхнем левом углу написано: "What I cannot create, I do not understand". Это говорили себе не только физики, но и биологи. В 2011 году, Крейгом Вентером был создан первый в мире синтетический живой организм, т.е. ДНК этого организма создана человеком. Организм не очень большой, всего из одной клетки. Помимо всего того, что необходимо для воспроизводства программы жизнедеятельности, в ДНК были закодированы имена создателей, их электропочты, и цитата Ричарда Фейнмана (пусть и с ошибкой, ее кстати позже исправили). Хотите узнать, к чему эта прохладная тут? Приглашаю под кат, коллеги.

                    Читать дальше →
                  • Интересующимся мозгом/ИИ: ссылки на почитать

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

                      Этот набор (порядка 400 ссылок) ни в коей мере не претендует на полноту или объективность. Наоборот, приглашаются все желающие дополнить и исправить (например раздел «Онлайн Курсы» подозрительно пуст). Если будет интерес, буду апдейтить этот пост новыми линками + апдейты отдельными постами оформлять.

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

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

                      PS: я оставил ссылки как есть, чтобы было видно куда ведет. Если кого напрягает — пишите, апдейтом спрячу.

                      Знание - сила!
                    • Комплексная нейронная сеть на основе ряда Фурье от функции многих переменных

                        Есть много задач, для решения которых нейронные сети прямого распространения с сигмоидальной активационной функцией не являются оптимальными. Например — задачи распознавание бинарных изображений, с первичной обработкой с помощью преобразования Фурье. В ходе этих преобразований изображение становится инвариантным к смещениям, масштабированию и поворотам. Пример таких преобразований приведен ниже.[1] На выходе такой метод выдает вектор комплексных чисел. Современные нейронные сети не могут с ними работать т.к. они работают только с вещественными числами.

                        image

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



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

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

                            Что ж, пожалуй, пора разобраться, умеют ли коты строить регрессию или нет?
                          • This is Science: Что внутри нейроморфного чипа?



                              После недавнего анонса нейроморфного чипа от IBM на Хабре, настало время познакомиться с тем, как работа реальных нейронов переносится в железо нейроморфных чипов. А поможет нам в этом статья, опубликованная в ACSNano, о трёхмерном электронном синапсе.
                              Нейроморфные чипы рады приветствовать вас!
                            • Что читать о нейросетях


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


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


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

                                Читать дальше →
                              • Создание шейдеров

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

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


                                Сцена из Minecraft, до и после добавления нескольких шейдеров.

                                Задача этого туториала


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

                                  В подавляющем большинстве источников информации о нейронных сетях под «а теперь давайте обучим нашу сеть» понимается «скормим целевую функцию оптимизатору» лишь с минимальной настройкой скорости обучения. Иногда говорится, что обновлять веса сети можно не только стохастическим градиентным спуском, но безо всякого объяснения, чем же примечательны другие алгоритмы и что означают загадочные \inline \beta и \inline \gamma в их параметрах. Даже преподаватели на курсах машинного обучения зачастую не заостряют на этом внимание. Я бы хотел исправить недостаток информации в рунете о различных оптимизаторах, которые могут встретиться вам в современных пакетах машинного обучения. Надеюсь, моя статья будет полезна людям, которые хотят углубить своё понимание машинного обучения или даже изобрести что-то своё.


                                  image


                                  Под катом много картинок, в том числе анимированных gif.

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