Продолжаю рассказывать про жизнь Inception architecture — архитеткуры Гугла для convnets.
(первая часть — вот тут)
Итак, проходит год, мужики публикуют успехи развития со времени GoogLeNet.
Вот страшная картинка как выглядит финальная сеть:
Что же за ужас там происходит?
User
Эволюция нейросетей для распознавания изображений в Google: GoogLeNet
У меня тут синхронизируется VM надолго, поэтому есть время рассказать про то, что я недавно читал.
Например, про GoogLeNet.
GoogLeNet — это первая инкарнация так называемой Inception architecture, которая референс всем понятно на что:
(кстати, ссылка на него идет первой в списке референсов статьи, чуваки жгут)
Она выиграла ImageNet recognition challenge в 2014-м году с результатом 6.67% top 5 error. Напомню, top 5 error — метрика, в которой алгоритм может выдать 5 вариантов класса картинки и ошибка засчитывается, если среди всех этих вариантов нет правильного. Всего в тестовом датасете 150K картинок и 1000 категорий, то есть задача крайне нетривиальна.
Чтобы понять зачем, как и почему устроен GoogLeNet, как обычно, немного контекста.
Прогресс в разработке нейросетей для машинного обучения

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

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

< 3% заявлений становились предложениями
Я окончил Hack Reactor в июле 2016, и мне потребовалось почти 3 месяца, прежде чем я принял предложение от Radius Intelligence. Я подавал заявления в 291 компанию, прошел 32 собеседования по телефону и 16 обычных, а также выполнил 13 задач по программированию, 11 из них — в офисах. И получил в итоге 8 предложений. Мне предлагали 60-125 тысяч долларов в компаниях США. В общем 2.8% заявок обернулись для меня выгодными предложениями.
Вот 5 вещей, которые я хотел бы знать, прежде чем устраивался на работу.
7 самых неприятных проблем в программировании

Известно, что на старых картах, на неизведанных территориях, часто помещали зловещее предупреждение: «Здесь живут драконы». Вероятно, смысл этого предупреждения состоял в том, что не стоит входить в это пространство мира, не будучи готовыми сражаться с внушающим ужас противником. Всё что угодно может случиться на этих загадочных просторах, и нередко такое «что угодно» может закончиться очень плохо.
Программисты, возможно, являются несколько более цивилизованными, чем средневековые рыцари — однако это вовсе не означает, что современный технический мир не имеет своих технических драконов, поджидающих нас в непредвиденных местах: сложные проблемы, которые всплывают именно тогда, когда подходит срок сдачи работы или в моменты особенно высоких нагрузок и ответственной работы; конкуренты, которые прочитали руководство и знают, что недостаточно хорошо реализовано; злые «бесы», которые знают, как использовать неустранённые до конца баги и дефекты программ, причём узнают это часто сразу же после того, как программа сдана в использование.
Находятся люди, которые спокойно спят ночью, согреваемые своей наивной уверенностью, что компьютеры совершенно предсказуемы и без устали выдают потоком правильные ответы. Как же мало им ведомо! Несмотря на серьёзнейшие усилия разработчиков чипов, создателей языков и миллионов программистов, есть ещё в программировании опасные чащи, которые могут погубить даже самых продвинутых из программистов и разработчиков.
Вот семь из устрашающих уголков мира программирования, на которых легко можно написать: «Здесь живут драконы».
Что означает ноябрьское обновление Steam для инди-разработчиков?

Что же произошло?
Ваш язык программирования — отстой
1 Почему JavaScript отстой
• 1.1 Плохая конструкция
• 1.2 Система типов
• 1.3 Плохие функции
• 1.4 Отсутствующие функции
• 1.5 DOM
2 Почему Lua отстой
3 Почему PHP отстой
• 3.1 Исправлено в поддерживаемых в настоящее время версиях
4 Почему Perl 5 отстой
5 Почему Python отстой
• 5.1 Исправлено в Python 3
6 Почему Ruby отстой
7 Почему Flex/ActionScript отстой
8 Почему скриптовые языки отстой
9 Почему C отстой
10 Почему C++ отстой
11 Почему .NET отстой
12 Почему C# отстой
13 Почему VB.NET отстой
15 Почему Objective-C отстой
16 Почему Java отстой
• 16.1 Синтаксис
• 16.2 Исправлено в Java 7 (2011)
• 16.3 Модель
• 16.4 Библиотека
• 16.5 Обсуждение
17 Почему Backbase отстой
18 Почему XML отстой
19 Почему отстой XSLT/XPath
20 Почему CSS отстой
• 20.1 Исправлено в CSS3
21 Почему Scala отстой
22 Почему Haskell отстой
23 Почему Closure отстой
24 Почему Go отстой
• 24.1 Базовые средства программирования (базовый язык)
• 24.2 Взаимосовместимость
• 24.3 Стандартная библиотека
• 24.4 Набор инструментальных средств
• 24.5 Сообщество
25 Почему Rust отстой
• 25.1 Безопасность
• 25.2 Синтаксис
• 25.3 Конструкция API и система типов
• 25.4 Сообщество
• 25.5 Набор инструментальных средств
Почему JavaScript отстой
Учтите, что некоторые положения относятся не к самому JavaScript, а к программным интерфейсам веб-приложений (https://developer.mozilla.org/en/docs/Web/API).
Плохая конструкция
• Каждый скрипт исполняется в едином глобальном пространстве имён, доступ в которое возможен в браузерах с оконным объектом.
• Camel-регистр никуда не годится:
XMLHttpRequest
HTMLHRElement
Извилистый путь разработчика
Учиться программированию — пожизненная затея. Почти всегда будет попадаться что-то новое, о существовании чего вы ещё не знали.
Я общаюсь с большим количеством студентов, изучающих информатику, и многие из них считают, что научатся в университете программированию, а потом просто пойдут и применят эти знания в своей работе. Возможно, они постигнут какие-то бизнес-знания в процессе. Но профессиональные программисты сразу поймут, что они совсем новички, эти университетские выпускники.
После разговора с @PrototypeAlex, где мы обсуждали множество этапов, которые проходят разработчики, у меня появилось вдохновение написать об этом. За 30 лет, которые я пишу код, я прошёл почти через каждый описанный в статье этап, и некоторые были особенно болезненными.
Узнаёте себя на каком-нибудь из этих этапов? И что я пропустил? Многие этапы ускользают из моего поля зрения; мы никогда не перестаём учиться и делать открытия.
Великий Копипастер
Писать код трудно, но люди решили проблему за вас! Ваш браузер переходит к Stack Overflow при вводе "s" в адресной строке, и вы часами вставляете различные фрагменты кода, чтобы увидеть, какой из них выполняет то, что вам требуется. Иногда это высасывает моральные силы, но в итоге у вас появляется хоть какой-то рабочий код.
Как объяснить бабушке, что такое Agile за 15 минут с картинками
— закон Хофштадтера

Самый просматриваемый ролик на YouTube по теме agile. 744 625 просмотров на момент публикации данной статьи. Легкий стиль изложения, картинки и всего 15 минут — лучшее что я видел. TED отдыхает.
«Сферический трейдер в вакууме»: инструкция по применению

Если проанализировать
Пессимисты утверждают: рынок случаен «потому что я построил график случайного процесса и мой друг (профессиональный трейдер) не смог отличить его от графика EURUSD», а значит иметь стабильный доход на рынке( на Форекс) невозможно по определению!
Оптимисты им возражают: если бы рынок был случаен, котировки не гуляли бы в окрестности 1, а ушли в бесконечность. Значит рынок неслучаен и на нём можно зарабатывать. Я видел реально стабильно зарабатывающую стратегию с большим профит-фактором (больше стольки-то)!
Попробуем остаться реалистами и извлечь пользу из обоих мнений: предположим, что рынок случаен, и на основании этого предположения построим методику проверки доходности торговой системы на неслучайность.
Рассматриваемые в статье методики универсальны для любых рынков, будь то фонд, Форекс или любой другой!
Нейронные сети для начинающих. Часть 1

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

Трансгуманизм: Новая ступень эволюции или конец человечества
Его поддерживает сооснователь и директор по технологиям корпорации Oracle, Ларри Эллисон (Larry Ellison), который не понимает готовность людей мириться с тем, что они смертны. Сооснователи Google Лэрри Пэйдж (Larry Page) и Сергей Брин (Sergey Brin), как и Марк Цукерберг, также инвестируют в исследования по продлению жизни.
Последователи движения трансгуманизма уверены, что человек сможет эволюционировать (несмотря на все физические и умственные ограничения) в «суперчеловека» и в итоге достигнуть бессмертия.

/ фото Logan Ingalls CC
Я тут это… Трекалку для времени написал. За 628 минут
И вот что получилось:

Код + Сайт
Что нужно знать, уметь и понимать, чтобы не иметь проблем с поиском работы питонистом
Язык — лишь малая часть того, что вам нужно знать. Может быть около 5%, а то и меньше.
Эта статья повторяет и дополняет содержание моего выступления «Что отличает джуниора от сеньора или как питонисту не иметь проблем с поиском работы» на последнем MoscowPython Meetup 39. Многие обращались ко мне после выступления с вопросами и я обещал опубликовать статью на Хабре и обсудить в комментариях.
Под катом вы найдете ответ на тему статьи

Функциональное программирование на Javascript

Краткое содержание:
Возьмем немного функций высшего порядка, добавим частичное применение функций, приправим fold с map-ом и получим Javascript DSL для работы с DOM.
Человеческим языком:
Простое и понятное введение в функциональное программирование на чистом и понятном Javascript.
В отличие от «Через тернии к Haskell» все разжевано (возможно даже слишком) и разложено по полочкам.
Прочтение статьи развоплотит миф о неприменимости ФП в реальной жизни. Вы сможете смотреть на решение одной и той же задачи с разных точек зрения. Прямо как на картинке.
Функциональное программирование для всех

Доброго времени суток. Это статья — перевод заинтересовавшего меня поста в блоге аспиранта Университета штата Нью-Йорк в Стоуни-Брук. Статья в доступной форме описывает основные концепции функционального программирования, их преимущества и недостатки. Думаю она будет полезна широкому кругу читателей, которые сомневаются, нужно ли им углубляться в мир функционального программирования или нет. Пожелания, предложения и замечания по переводу и терминологии принимаются по личной почте.
Мнение переводчика может иногда не совпадать с мнением автора, но переводить статью было крайне занимательно.
UPD: альтернативный вариант перевода вы можете найти на rsdn (спасибо flamingo за ссылку).
Javascript-фреймворки: должен остаться только один
Сергей Аверин ( XEK )

Изначально я хотел сделать доклад про сравнение фреймворков, но потом подумал, что закидают помидорами, поэтому доклад — просто адский троллинг, как водится у меня. И он, скорее, не про HighLoad, а про менеджерскую задачу, которая стоит над всем этим делом, включая фронтенд.
Про что же, все-таки, получился доклад? Доклад про то, как выбирали новый фреймворк, почему выбирали, и какие задачи решали.
Лекции Техносферы. 1 семестр. Введение в анализ данных (весна 2016)
Лекция 1. Введение в Python
Из первой лекции вы узнаете, что такое анализ данных, какие инструменты используют для анализа данных, а также как работает Python.
Скрипт для тех, кому лень разбираться в Linux
Да мне и самому надоело лазить по специализированным форумам, каждый раз, когда приходится сделать шаг влево или шаг вправо относительно того, что я уже научился делать. Именно поэтому, со временем, все типовые вещи я свёл в один скрипт с дружелюбным интерфейсом, который умеет делать всё сам. Начиналась всё с малого. Скрипт просто автоматизировал установку нужного мне софта. Но за полгода он превратился уже в весьма серьёзную утилиту весом более 100 Кб, в которой около 2,5 тысяч строк кода. Скрипт ранее нигде не выкладывался. Использовался только в личных целях мной и несколькими моими товарищами. Пришло время им поделиться с публикой. Уверен, многим людям он способен сэкономить кучу времени.
Чтобы понять, что он умеет, проще всего глянуть на заглавный скриншот:

Далее подробнее опишу, что и как он делает.
Information
- Rating
- Does not participate
- Registered
- Activity