Pull to refresh
31
0
Maxim W @maximw

backend developer

Send message

Как я получил сертификат TensorFlow-разработчика (и как его получить вам)

Reading time12 min
Views11K
image

В начале мая я решил получить сертификат TensorFlow-разработчика. Для этого я разработал программу обучения для совершенствования своих навыков и выполнил задания сертификационного экзамена пару дней назад (3 июня). Оказалось, что я сдал экзамен успешно.

Позвольте мне рассказать вам как я это сделал, и как вам сделать то же самое.

Погодите. Что вообще такое TensorFlow?

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

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

Обычно вы пишете код с использованием TensorFlow на очень понятном Python (именно это требуется для экзамена) или JavaScript (tensorflow.js), и он запускает ряд базовых функций, написанных на C. Эти функции выполняют описанные вами ранее команды (производят множество численных вычислений).

Книга «Глубокое обучение с подкреплением. AlphaGo и другие технологии»

Reading time12 min
Views5.4K
image Привет, Хаброжители! Мы издали книгу Максима Лапаня shmuma, это — подробное руководство по новейшим инструментам глубокого обучения с подкреплением и их ограничениям. Мы реализуем и проверим на практике методы кросс-энтропии и итерации по ценностям (Q-learning), а также градиенты по стратегиям.

Для экспериментов используются самые разные среды обучения с подкреплением (RL), начиная с классических CartPole и GridWorld и заканчивая эмуляторами Atari и средами непрерывного управления (на основе PyBullet и RoboSchool). Множество примеров основано на нестандартных средах, в которых мы с нуля разработаем модель окружения.
Читать дальше →

10 ошибок, которые я допустил как Data Scientist

Reading time6 min
Views11K
image

Работать в области data science бывает тяжко, но оно того стоит и, к тому же, приносит хороший доход. Некоторые действия преумножают нашу эффективность (например, отказ от использования Slack). Бездействие порой тоже бывает полезным. Ниже я расскажу о своих ошибках, которые препятствовали развитию либо моей карьеры, либо моей компании.

Непонимание того, что в Data Science существуют различные типы задач


Как-то я пришел в компанию в качестве «data scientist», рассчитывая, что буду заниматься прогнозным моделированием. Но в итоге я писал внутренний код приложения. Я ошибся.

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

Множество видов задач и работ скрывается под эгидой data science. Добавьте к этому неразборчивые должностные инструкции и получите рецепт приготовления превосходной путаницы.
Читать дальше →

Философия преподавания Data Science и Deep Learning от fast.ai

Reading time7 min
Views2.4K
image

Рейчел Томас, соосновательница fast.ai, профессор USF Data Institute

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

К сожалению, именно здесь и начинается упоминание некоторых из немногих ресурсов по глубокому обучению; обучающихся просят знать определение Гессиана и теоремы разложения в ряд Тейлора для функции потерь, но при этом никогда не приводят примеры фактически работающего кода. Я не виню математику. Напротив же, я люблю математику и даже преподавал её на уровне колледжа, однако не считаю, что это можно назвать хорошим или полезным введением в глубокое обучение.
Читать дальше →

PIXI.js создание кликера

Reading time2 min
Views21K
Большинство тех, кто начинает изучать программирование, начали это из-за желания сделать свою игру. Нууу… я не исключение, но судьба меня занесла в веб разработку.

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

10 полезных практик для ML-разработчиков на Питоне

Reading time7 min
Views5.6K
Порой, будучи дата саентистами, мы забываем за что нам платят. А платят нам за то, что мы в первую очередь разработчики, потом исследователи и, возможно, математики. Наша основная обязанность при этом состоит в том, чтобы быстро создавать работоспособные решения для бизнеса.

Тот факт что мы создаем модели не делает нас особенными. Это не дает нам права писать плохой код.

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

109 бесплатных курсов по Data Science

Reading time5 min
Views13K
image

Информационные технологии позволяют получить невероятно крутые образовательные ресурсы в один клик. Бесплатно.

Я сейчас решаю задачу, как из огромной массы жизненно важного контента выбрать тот, который стоит попробовать в первую очередь, как «разметить данные», чтобы нейросеточка у подрастающего поколения обучилась более эффективно. (ontol.org, «Выгорание», «Удаленка», телеграмм-канал).

Предлагаю вам подборку бесплатных онлайн-курсов по Data Science от лучших университетов в мире:

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

Создание псевдотрёхмерной гоночной игры

Reading time17 min
Views14K

В детстве я редко ходил в залы аркадных автоматов, потому что особо в них не нуждался, ведь дома у меня были потрясающие игры для C64… но есть три аркадные игры, на которые у меня всегда находились деньги — Donkey Kong, Dragons Lair и Outrun…

… и я очень любил Outrun — скорость, холмы, пальмы и музыка, даже на слабой версии для C64.


Поэтому я решил попробовать написать олдскульную псевдотрёхмерную гоночную игру в стиле Outrun, Pitstop или Pole position. Я не планирую собрать полную и завершённую игру, но мне кажется, будет интересно заново изучить механики, при помощи которых эти игры реализовывали свои трюки. Кривые, холмы, спрайты и ощущение скорости…

Итак, вот мой «проект на выходные», который в итоге занял пять или шесть недель по выходным



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

Она не отшлифована, немного уродлива, но полностью функциональна. Я покажу, как реализовать её самостоятельно за четыре простых шага.

Можно также поиграть

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

Юлия → Iuliia. Всё о транслитерации

Reading time8 min
Views72K

Транслитерация


Транслитерация — это запись кириллических слов латиницей (Анна → Anna, Самара → Samara). Её используют в загранпаспортах, водительских удостоверениях, трансграничной доставке, библиотечных каталогах и множестве других международных процессов.


Так вышло, что я недавно окунулся в эту тему, а в Википедии она раскрыта слабо. Поэтому расскажу, что к чему (спойлер — если вы думаете, что с транслитерацией всё плохо, то на самом деле всё ещё хуже).


И конечно, поскольку это Хабр — предложу open-source библиотеки для решения проблемы.

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

Руководство по CI/CD в GitLab для (почти) абсолютного новичка

Reading time13 min
Views409K

Или как обзавестись красивыми бейджиками для своего проекта за один вечер ненапряжного кодинга


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


результаты


В статье будет рассмотрена базовая настройка непрерывной интеграции и поставки для проекта библиотеки классов на .Net Core в GitLab, с публикацией документации в GitLab Pages и отправкой собранных пакетов в приватный фид в Azure DevOps.


В качестве среды разработки использовалась VS Code c расширением GitLab Workflow (для валидации файла настроек прямо из среды разработки).

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

Как прошел 2019 год в области математики и Computer Science

Reading time6 min
Views8.7K
Перевод статьи подготовлен специально для студентов базового и продвинутого курсов «Математика для Data Science».




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

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

Ваша первая нейронная сеть на графическом процессоре (GPU). Руководство для начинающих

Reading time9 min
Views55K

В этой статье я расскажу как за 30 минут настроить среду для машинного обучения, создать нейронную сеть для распознавания изображений a потом запустить ту же сеть на графическом процессоре (GPU).

Для начала определим что такое нейронная сеть.

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

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

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

Оборудование


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

Делаем быстрее POSTGRESQL COUNT (*)

Reading time4 min
Views61K


Часто жалуются, что count (*) в PostgreSQL очень медленный.

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

Почему count (*) такой медленный?


Большинство людей без проблем понимают, что следующий запрос будет выполняться медленно:

SELECT count(*)
FROM /* сложный запрос */;

В конце концов, это сложный запрос, и PostgreSQL должен вычислить результат, прежде чем узнает, сколько строк он будет содержать.

Но многие люди потрясены, когда узнают, что следующий запрос медленный:

SELECT count(*) FROM large_table;

Тем не менее, если вы подумаете еще раз, все вышесказанное остается в силе: PostgreSQL должен вычислить результирующий набор, прежде чем сможет его посчитать. Поскольку в таблице не хранится «магический счетчик строк» (как в MyISAM MySQL), единственный способ подсчитать строки — это просмотреть их.

Поэтому count (*) обычно выполняет последовательное сканирование таблицы, что может быть довольно дорого.
Читать дальше →

Анатомия каналов в Go

Reading time34 min
Views222K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Anatomy of Channels in Go" автора Uday Hiwarale.


Что такое каналы?


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


Создание канала


Go для создания канала предоставляет ключевое слово chan. Канал может передавать данные только одного типа, данные других типов через это канал передавать невозможно.

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

5 бесплатных курсов для ИИ-инженеров от Microsoft

Reading time3 min
Views26K
Привет, Хабр! В прошлом году мы делали серию статей-подборок бесплатных курсов. Она понравилась сообществу, и мы решили сделать еще три подборки, правда уже по немного другими тематикам. Как и раньше, мы не будем заранее спойлерить для кого именно будут следующие подборки, ждем ваши варианты в комментариях (вдруг кто-то сможет угадать по звездочкам). Ну а сегодня – бесплатные курсы для инженеров искусственного интеллекта. Присоединяйтесь!

Следующая серия статей


Эта серия статей, начало 2020 года


Более ранняя серия статей, 2019 год


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

Железо или оптимизация? Badoo, Авито и Мамба — о производительности PHP

Reading time18 min
Views14K
Вопрос производительности PHP-кода для Badoo один из самых важных. От качества PHP-бэкенда напрямую зависят количество ресурсов, которые мы тратим на разработку и эксплуатацию, скорость работы сервиса и впечатление, которое он производит на пользователей.

Поэтому темой третьей встречи сообщества PHP-разработчиков в нашем офисе мы сделали производительность бэкенда и пригласили к обсуждению коллег из Авито и «Мамбы».



Читайте под катом расшифровку дискуссии, в которой мне повезло быть модератором: как устроена инфраструктура трёх компаний, как мы измеряем производительность и на какие метрики ориентируемся, какие инструменты используем, как делаем выбор между железом и оптимизацией.

А 15 февраля приходите на следующий Badoo PHP Meetup: обсудим легаси.

Как правильно делать код-ревью?

Reading time9 min
Views23K

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


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


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


Терминология:


CL: "changelist" — список изменений кода, отправленный в систему контроля версий на ревью. Аналог Pull Request в GitHub или Merge Request в GitLab.

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

Эндрю Ын «Страсть к машинному обучению». Перевод глав 36-46

Reading time24 min
Views4K
Три года прошло с момента публикации первых глав книги Эндрю Ына (Andrew Ng) «Machine Learning Yearning». Если вы подписаны на хаб «Машинное обучение», то нет никакой нужды представлять вам её автора и скорее всего саму книгу вы уже давно прочитали на языке первоисточника. Перевод первой половины книги на русский язык сделал alexey_nichnikov, к этому моменту он опубликован на Хабре в серии статей.


Представляю вашему вниманию свой вариант перевода второй половины книги, а именно глав 36-58. Планируется разбить его на две статьи для удобства публикации. Кроме того вы можете скачать полностью готовый перевод этих глав, свёрстанный в pdf, возможно кому-то такой формат покажется для чтения более удобным.

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

Эндрю Ын «Страсть к машинному обучению». Перевод глав 47-58

Reading time18 min
Views3.1K


Это вторая статья с переводом отдельных глав книги Эндрю Ына «Страсть к машинному обучению». Перевод предыдущих глав вы можете почитать по ссылке.

В этой статье речь пойдёт о сквозном (end-to-end) глубоком обучении, а так же автор книги поделится некоторыми способами анализа ошибок алгоритма обучения.
Читать дальше →

Основы deep learning на примере дебага автоэнкодера, часть №1

Reading time16 min
Views12K

Если почитать обучение по автоэнкодерам на сайте keras.io, то один из первых посылов там звучит примерно так: на практике автоэнкодеры почти никогда не используются, но про них часто рассказывают в обучалках и народу заходит, поэтому мы решили написать свою обучалку про них:


Their main claim to fame comes from being featured in many introductory machine learning classes available online. As a result, a lot of newcomers to the field absolutely love autoencoders and can't get enough of them. This is the reason why this tutorial exists!


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


На просторах интернетов есть очень много туториалов по автоэнкодерам, нафига писать еще один? Ну, если честно, тому было несколько причин:


  • Сложилось ощущение, что на самом деле туториалов примерно 3 или 4, все остальные их переписывали своими словами;
  • Практически все — на многострадальном MNIST'е с картинками 28х28;
  • На мой скромный взгляд — они не вырабатывают интуицию о том, как это все должно работать, а просто предлагают повторить;
  • И самый главный фактор — лично у меня при замене MNIST'а на свой датасет — оно все тупо переставало работать.

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


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

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

Information

Rating
Does not participate
Location
Россия
Registered
Activity

Specialization

Specialist
Lead