Pull to refresh
5
0
Андрей Самойлов @Rogvold91

Пользователь

Send message

Использование триграмм для коррекции результатов распознавания

Reading time10 min
Views13K


На рисунке изображены схема из 8 возможных триграмм, взятая из книги [1]



Естественные языки могут быть охарактеризованы распределением частот встречаемости своих элементов, таких как слова, отдельные буквы или последовательности букв (N-граммы). Формально N-граммой называется строка из N символов, принадлежащих некоторому алфавиту, состоящему из конечного числа символов. О теоретических и прикладных вопросах применения аппарата N-грамм для автоматической коррекции текста можно прочесть в работе [2].



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


Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments0

5 UI фишек для современного Андроид приложения. Код, идеи и живой пример

Reading time5 min
Views23K
image

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

Статья не ставит своей целью научить проектировать пользовательский интерфейс или объяснить сокровенный смысл Material дизайна, но надеюсь, приведенные примеры смогут вдохновить Ввас на эксперименты с дизайном ваших приложений.
Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments15

Пора рассказать, как я 4 года был Билайном на Хабре — и что за это время узнал про Хабр

Reading time16 min
Views62K
Вчера был очередной семинар Хабра о том, как надо делать корпоративные блоги, и я там не выдержал и рассказал эту историю.



Конечно, это был не совсем я, но близко. Дело в том, что давным-давно мне предложили помочь Вымпелкому с блогом. На немного необычных условиях. Первым стало отсутствие всякой официальщины – отсюда и совершенно отрывные посты (за часть из которых в корпоративном сегменте смело оторвали бы руки и не только), и самые актуальные темы (Базовая станция вредная? Ещё как!), и вообще много всего.

Но начну с самого начала. Итак, Хабр тогда был торт — большой и зверски агрессивный, хабов не было, а корпоративные блоги были чем-то вроде раздела «тупиковый отстой». За любую ссылку или рекламу тогда почти банили. Или забивали до -50 за час, например. С корпоративным рылом в такой калашный ряд было никак нельзя.

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

Технари, кстати, оказались совершенно офигенные. Только плевать они хотели на Хабр, по большому счёту. Как и везде.
Читать дальше →
Total votes 228: ↑217 and ↓11+206
Comments108

Обучение с подкреплением для самых маленьких

Reading time8 min
Views74K
В данной статье разобран принцип работы метода машинного обучения на примере физической системы. Алгоритм поиска оптимальной стратегии реализован в коде на Python с помощью метода .

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

Задача


С помощью метода «обучение с подкреплением» необходимо научить тележку отъезжать от стены на максимальное расстояние. Награда представлена в виде значения изменения расстояния от стены до тележки при движении. Измерение расстояния D от стены производится дальномером. Движение в данном примере возможно только при определенном смещении «привода», состоящего из двух стрел S1 и S2. Стрелы представляют собой два сервопривода с направляющими, соединенными в виде «колена». Каждый сервопривод в данном примере может поворачиваться на 6 одинаковых углов. Модель имеет возможность совершить 4 действия, которые представляют собой управление двумя сервоприводами, действие 0 и 1 поворачивают первый сервопривод на определенный угол по часовой и против часовой стрелке, действие 2 и 3 поворачивают второй сервопривод на определенный угол по часовой и против часовой стрелке. На рисунке 1 показан рабочий прототип тележки.


Рис. 1. Прототип тележки для экспериментов с машинным обучением
Читать дальше
Total votes 32: ↑32 and ↓0+32
Comments8

Google Maps clustering

Reading time7 min
Views47K
Если вы занимаетесь разработкой приложений, использующих Google Maps, то вполне можете столкнуться с ситуацией, изображенной на картинке слева. И, если вы считаете, что картинка справа выглядит лучше, то вам сюда.

image
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments7

Связь между монетизацией игр и поведением геймеров

Reading time3 min
Views19K
Недавно я детально изучил отчёт GameAnalytics, содержащий некоторую статистику различного поведения геймеров. Анализируя, можно понять кое-что существенное в этих играх.

Помимо большой группы неплатящих геймеров, игроки в этом отчёте подразделяются на 3 типа: «пескари» (игроки «по случаю») (minnows (lowcore)), «дельфины» (регулярные игроки) (dolphins (midcore)) и «киты» (геймеры-фанаты) (whales (hardcore)).

Неплатящие игроки стремятся попробовать, как правило, больше различных игр, чем «дельфины» и «киты». «Дельфины» и «киты» являются более сосредоточенными и используют небольшое количество игр или даже всего лишь одну игру. Определение группы игроков дано в отчёте GameAnalytics.


Удержание различных игроков (источник: GameAnalytics, 2016)
Читать дальше →
Total votes 25: ↑21 and ↓4+17
Comments5

«Машинное обучение»: Потенциал и возможности

Reading time5 min
Views12K


/ фото Jaro Larnos CC

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

Но есть еще одна технология, способная изменить наше представление об обработке информации. Речь идет о машинном обучении, которое в последнее время приобрело особую популярность.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments3

Самое главное о нейронных сетях. Лекция в Яндексе

Reading time30 min
Views187K
Кажется, не проходит и дня, чтобы на Хабре не появлялись посты о нейронных сетях. Они сделали машинное обучение доступным не только большим компаниям, но и любому человеку, который умеет программировать. Несмотря на то, что всем кажется, будто о нейросетях уже всем все известно, мы решили поделиться обзорной лекцией, прочитанной в рамках Малого ШАДа, рассчитанного на старшеклассников с сильной математической подготовкой.

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



Константин klakhman Лахман закончил МИФИ, работал исследователем в отделе нейронаук НИЦ «Курчатовский институт». В Яндексе занимается нейросетевыми технологиями, используемыми в компьютерном зрении.

Под катом — подробная расшифровка со слайдами.
Читать дальше →
Total votes 136: ↑133 and ↓3+130
Comments16

Kaggle – наша экскурсия в царство оверфита

Reading time19 min
Views38K
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), но писанину и теорию всегда лучше подкреплять примером. А писать статьи по какой-то коммерческой задаче по очевидным причинам нельзя. Теперь наконец расскажу про процесс. Тем более что тут он самый обычный, хорошо иллюстрирующий как задачи решаются. В-третьих, статья про то, что идёт после решения идеализированной задаче в вакууме: что будет когда задача столкнётся с реальностью.


Читать дальше →
Total votes 66: ↑65 and ↓1+64
Comments32

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

Reading time2 min
Views85K



Мы собрали интересные лекции, которые помогут понять, как работает машинное обучение, какие задачи решает и что нам в ближайшем будущем ждать от машин, умеющих учиться. Первая лекция рассчитана скорее на тех, кто вообще не понимает, как работает machine learning, в остальных много интересных кейсов.
Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments5

Машинное обучение для прогнозирования тенниса: часть 1

Reading time12 min
Views72K
Математическое моделирование тенниса набирает популярность на наших глазах. Каждый год появляются новые аналитические модели и сервисы, соревнующиеся друг с другом в точности прогнозирования исходов теннисных матчей. Это вызвано желанием заработать на стремительно растущем онлайн рынке спортивных ставок: нередки случаи, когда сумма ставок на отдельный матч в профессиональном теннисе достигает миллионов долларов.

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



Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments16

Знаешь ли ты JAVA, %username%?

Reading time11 min
Views149K
JAVA Evil EditionНедавно я сдавал экзамен Oracle Certified Professional Java Programmer (бывший Sun Certified), и за время подготовки прорешал огромное количество различных задачек. Отдельные задачки по джаве иногда появляются на хабре и вызывают немалый интерес, поэтому я решил поделиться накопленным и сделать небольшую подборку.

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

К слову, сложность экзамена Oracle Certified Professional Java Programmer гораздо ниже чем сложность данного теста, поэтому все, кто правильно ответит хотя бы на половину этих вопросов, может смело сдавать этот экзамен без всякой подготовки.

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

ВНИМАНИЕ: во второй половине статьи — ответы и подробные пояснения по соответствующим нюансам JAVA.

Читать дальше →
Total votes 136: ↑124 and ↓12+112
Comments85

Городской АД: школьники и студенты

Reading time11 min
Views10K


Привет, Хабр. В этом году у нас довольно успешно прошли эксперименты по вовлечению юных программистов в АД:


  • затеяли хакатон, где школьники и студенты соревновались на равных (выиграли школьники), помогли организовать олимпиаду НТИ по большим данным.


  • открыли направление АДских чудес в летних школах. О том, как школьники написали рекомендательную систему ленты новостей Дождя, освоили параметрическое моделирование, осваивали азы социнженерии по Митнику, расскажем в следующей статье.


  • организовали митапы для "укушенных" в Яндексе с Ежом. Ёж (Александр Панин) не устоял перед обаянием юных "датасайнтистов" на хакатоне, с тех пор каждую субботу одна из переговорок превращается в Малый АД под звуки арфы, на которой Ёж играет в перерывах.

Школа


Воодушевленные упорством ребят, решили начать вовлекать студентов постарше. Задумали школу прямо в Москве, пройдет она с 1 по 8 августа на факультете компьютерных наук ВШЭ, к участию приглашаются все желающие возрастом до 22 лет.


Программа школы состоит из двух блоков: интенсива с разбором кейсов от ведущих специалистов отрасли и работы в командах над проектом с опытным куратором.


Отбор


Для участия необходимо пройти отбор – решить реальную задачу, с которой столкнулся наш партнер E­-Contenta при разработке рекомендательного движка для Tviz.tv. До 25 июля принимаем решения любым способом – интересно посмотреть на нестандартные идеи, возможно, кто переплюнет решение партнера. Опытные участники имеют возможность заявить о себе и выиграть грант на бесплатное обучение.


Наша цель — дать возможность молодёжи погрузиться в Data Science не за 180 тысяч на "взрослых" курсах. Отбор нацелен прежде всего на проверку мотивации.

Читать про задание, матричные разложения и получение приближения k-го порядка
Total votes 6: ↑6 and ↓0+6
Comments6

Повесть о создании классической RTS в домашних условиях с нуля + разбор основных этапов разработки (AI, сеть и т.д.)

Reading time38 min
Views77K
image

В статье речь пойдет об одном очень не новом проекте, который создавался совсем в другое время и совсем в других условиях. Это моя старенькая RTS под названием Земля онимодов (Onimod land). Чтобы было сразу понятно, что она собой представляет, можно посмотреть коротенькое видео:
Читать дальше →
Total votes 117: ↑116 and ↓1+115
Comments119

Кубок независимых разработчиков

Reading time2 min
Views4.2K
Привет Хабр!

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

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


Прошу сюда разработчиков
Total votes 9: ↑8 and ↓1+7
Comments3

Hello, TensorFlow. Библиотека машинного обучения от Google

Reading time11 min
Views229K

tensorflow


Проект TensorFlow масштабнее, чем вам может показаться. Тот факт, что это библиотека для глубинного обучения, и его связь с Гуглом помогли проекту TensorFlow привлечь много внимания. Но если забыть про ажиотаж, некоторые его уникальные детали заслуживают более глубокого изучения:


  • Основная библиотека подходит для широкого семейства техник машинного обучения, а не только для глубинного обучения.
  • Линейная алгебра и другие внутренности хорошо видны снаружи.
  • В дополнение к основной функциональности машинного обучения, TensorFlow также включает собственную систему логирования, собственный интерактивный визуализатор логов и даже мощную архитектуру по доставке данных.
  • Модель исполнения TensorFlow отличается от scikit-learn языка Python и от большинства инструментов в R.

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


Как работает TensorFlow? Давайте попробуем разобраться, посмотреть и понять, как работает каждая часть. Мы изучим граф движения данных, который определяет вычисления, через которые предстоит пройти вашим данным, поймем, как тренировать модели градиентным спуском с помощью TensorFlow, и как TensorBoard визуализирует работу с TensorFlow. Наши примеры не помогут решать настоящие проблемы машинного обучения промышленного уровня, но они помогут понять компоненты, которые лежат в основе всего, что создано на TensorFlow, в том числе того, что вы напишите в будущем!

Читать дальше →
Total votes 71: ↑68 and ↓3+65
Comments12

AndroidAudit. Ваше Android-приложение как место преступления

Reading time11 min
Views11K


От переводчика: оценка процесса и результата разработки — достаточно субъективная вещь, если не используется какая-либо мера весов. Можно долго спорить: табы или пробелы, git или mercurial, maven или gradle, но такие споры все равно скатываются к вкусовщине и каким-то частным случаям. Другое дело — соблюдение однородности проекта, вот это уже вполне себе измеримая величина.
Плохая методология лучше её отсутствия.
Помимо общих вещей, найдутся и специфические, присуще только мобильной разработке, только под Android. Pedro Vicente Gómez Sánchez из Karumi в своей работе разобрал по косточкам основные технические области и задал меткие вопросы для правильной, объективной оценки разработки для платформы Android. Если появится задача: оценить чужой проект, то рекомендую воспользоваться его методологией. Я воспользовался этой методологией, как чек листом. На выходе получился вполне понятный не профессионалу документ, где напротив каждой категории — конкретная величина соответствия правильности от 0 до 1.

Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments2

Книга «Хороший интерфейс — невидимый интерфейс»

Reading time5 min
Views27K
Всем привет! У нас вышла новая книга неординарного человека — Голдена Кришны, в данный момент работающего в Google.

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

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

Читать дальше →
Total votes 10: ↑8 and ↓2+6
Comments11

Книга «Android для разработчиков»

Reading time9 min
Views35K
Привет, Хаброжители! У нас вышло 3-е издание книги Пола и Харви Дейтл, Александера Уолда:

image Предлагаем подробно ознакомится с разработкой приложений для смартфонов и планшетов Android с использованием Android Software Development Kit (SDK). Многие навыки программирования для Android, представленные в книге, также применимы к разработке приложений для Android Wear и Android TV.

В книге представлены передовые технологии разработки мобильных приложений для профессиональных программистов. В основу книги заложен принцип разработки, ориентированной на приложения, — концепции разработки продемонстрированы на примере полностью работоспособных приложений Android, а не фрагментов кода. Каждая из глав 2–9 начинается с вводной части, в которой вкратце описано разрабатываемое приложение. Затем приводятся результаты тестирования приложения и обзор технологий, применяемых в процессе его разработки. Далее выполняется подробный анализ исходного кода приложения.

Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments12

«ИТ-кочевники»: почему компании до сих пор принимают на работу саботажников

Reading time7 min
Views17K
В то время как опытные специалисты уверенно бороздят просторы ИТ-рынка, начинающие передвигаются перебежками. И если поначалу они перебегают с одного собеседования на другое, то в дальнейшем некоторая часть из них продолжает перебегать – только уже из одной компании в другую. Не секрет, что большие ИТ-компании постоянно то расширяются, то сокращаются. В связи с этим они набирают джуниоров зачастую по инерции. Так что, последним остается только поймать волну.

Данная категория молодых «ИТ-кочевников» объясняет свое поведение по-разному: «ищу себя», «ищу интересные задачи», «ищу перспективы», «ищу интересную команду», «ищу достойных наставников» и так далее. Однако при более глубоком взгляде на их ситуации можно предположить нечто общее – потребительское отношение к фирме, отсутствие завершенных в срок проектов либо затянувшийся испытательный срок.

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

Но опытные заказчики и работодатели, прочитав пару абзацев беглого описания, могут заподозрить в этих ИТ-кочевниках замаскированных саботажников. Чтобы вывести их на чистую воду, нужно подробнее изучить их повадки.
Читать дальше →
Total votes 36: ↑20 and ↓16+4
Comments21

Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Date of birth
Registered
Activity