Pull to refresh
25
0
Андрей Шмиг @AndrewShmig

ML & JS <3

Send message

Основы Event Loop в JavaScript

Level of difficulty Easy
Reading time 6 min
Views 4K

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

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

В этой статье мы рассмотрим, как реализовать Event Loop в JavaScript.

Читать далее
Total votes 19: ↑15 and ↓4 +11
Comments 9

Хочу всё знать

Reading time 4 min
Views 11K

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

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

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

Методов обучения множество. Часть из них ориентированы больше на усиление запоминания информации, а другая часть на углубление понимания. Однако, меня интересовало то, что увеличило бы именно скорость. Само собой напрашивается скорочтение. Тут хотелось бы остановиться и обсудить этот метод. Есть многочисленные исследования различных вариаций скорочтения и все они показывают, что скорочтение это миф и те, кто его практикуют, просто водят глазами по странице. Более того, если мы говорим не о художественных произведениях или текстах полных воды, а о "нормальных книгах", то очевидно, что прочитать страницу занимает 1 минуту, а обдумать - 10. Если даже за счет техник скорочтения можно было бы научиться прочитывать страницу за секунду, все еще остается потратить 10 минут на обдумывание.

Читать далее
Total votes 19: ↑17 and ↓2 +15
Comments 29

Архитектура современных приложений на основе LLM

Level of difficulty Medium
Reading time 11 min
Views 6.2K

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

Читать далее
Total votes 4: ↑4 and ↓0 +4
Comments 1

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

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

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

Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Comments 9

Yargy-парсер и библиотека Natasha. Извлечения структурированной информации из текстов на русском языке

Reading time 12 min
Views 83K
В 2020 году библиотека Natasha значительно обновилась, на Хабре опубликована статья про актуальную версию. Чтобы использовать инструменты, описанные в этом тексте, установите старую версию библиотеки pip install natasha<1 yargy<0.13.

Раздел про Yargy-парсер актуален и сейчас.


Есть стандартная задача извлечения именованных сущностей из текста (NER). На входе текст, на выходе структурированные, нормализованные объекты, например, с именами, адресами, датами:



Задача старая и хорошо изученная, для английского языка существует масса коммерческих и открытых решений: Spacy, Stanford NER, OpenNLP, NLTK, MITIE, Google Natural Language API, ParallelDots, Aylien, Rosette, TextRazor. Для русского тоже есть хорошие решения, но они в основном закрытые: DaData, Pullenti, Abbyy Infoextractor, Dictum, Eureka, Promt, RCO, AOT, Ahunter. Из открытого мне известен только Томита-парсер и свежий Deepmipt NER.

Я занимаюсь анализом данных, задача обработки текстов одна из самых частых. На практике оказывается, что, например, извлечь имена из русского текста совсем непросто. Есть готовое решение в Томита-парсере, но там неудобная интеграция с Python. Недавно появилось решение от ребят из iPavlov, но там имена не приводятся к нормальной форме. Для извлечения, например, адресов («ул. 8 Марта, д.4», «Ленинский проезд, 15») открытых решений мне не известно, есть pypostal, но он чтобы парсить адреса, а не искать их в тексте. C нестандартными задачами типа извлечения ссылок на нормативные акты («ст. 11 ГК РФ», «п. 1 ст. 6 Закона № 122-ФЗ») вообще непонятно, что делать.

Год назад Дима Веселов начал проект Natasha. С тех пор код был значительно доработан. Natasha была использована в нескольких крупных проектах. Сейчас мы готовы рассказать о ней пользователям Хабра.
Natasha — это аналог Томита-парсера для Python (Yargy-парсер) плюс набор готовых правил для извлечения имён, адресов, дат, сумм денег и других сущностей.
В статье показано, как использовать готовые правила из Natasha и, самое главное, как добавлять свои с помощью Yargy-парсера.
Читать дальше →
Total votes 87: ↑86 and ↓1 +85
Comments 33

Эффективные методы сжатия данных при тренировке нейросетей. Лекция в Яндексе

Reading time 33 min
Views 13K
Не так давно в Яндекс приезжал Геннадий Пехименко — профессор Университета Торонто и PhD Университета Карнеги-Меллон. Он прочитал лекцию об алгоритмах кодирования, которые позволяют обходить проблему ограничения памяти GPU при обучении глубоких нейронных сетей.


— Я вхожу в несколько групп Университета Торонто. Одна из них — Computer Systems and Networking Group. Есть еще моя собственная группа — EcoSystem Group. Как видно из названий групп, я не специалист непосредственно в машинном обучении. Но нейронные сети сейчас достаточно популярны, и людям, которые занимаются компьютерной архитектурой и сетями, компьютерными системами, приходится сталкиваться с этими приложениями на постоянной основе. Поэтому последние полтора-два года этой темой я тоже плотно занимаюсь.
Total votes 41: ↑41 and ↓0 +41
Comments 7

Парсим русский язык

Reading time 8 min
Views 70K

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

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

"Мама мыла раму":

(предложение
    (именная гр. (сущ мама))
    (глаг. гр. (глаг мыла)
        (именная гр. (сущ раму)))
    (. .)))


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

Читать дальше →
Total votes 128: ↑124 and ↓4 +120
Comments 97

Синтаксический анализ текстов с помощью SyntaxNet

Reading time 4 min
Views 38K
Для одной из задач мне понадобился синтаксический анализатор русскоязычных текстов. Что это такое. Например, у нас есть предложение «Мама мыла раму». Нам нужно получить связи слов в этом предложении в виде дерева:

image

Из этого дерева понятно, что связаны слова «мама» и «мыла», а также «мыла» и «раму», а слова «мама» и «раму» напрямую не связаны.

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

Я занимался этой темой несколько месяцев назад, и на тот момент нашел не много информации по поводу того, где бы взять готовый и желательно свободный анализатор.
Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Comments 22

Как использовать Томита-парсер в своих проектах. Практический курс

Reading time 19 min
Views 44K

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

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





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

Читать дальше →
Total votes 75: ↑72 and ↓3 +69
Comments 8

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

Reading time 5 min
Views 9.6K

Содержание:


1. Поиск и анализ цветового пространства оптимального для построения выделяющихся объектов на заданном классе изображений
2. Определение доминирующих признаков классификации и разработка математической модели изображений мимики"
3. Синтез оптимального алгоритма распознавания мимики
4. Реализация и апробация алгоритма распознавания мимики
5. Создание тестовой базы данных изображений губ пользователей в различных состояниях для увеличения точности работы системы
6. Поиск оптимальной аудио-системы распознавания речи на базе открытого исходного кода
7. Поиск оптимальной системы аудио распознавания речи с закрытым исходным кодом, но имеющими открытые API, для возможности интеграции
8. Эксперимент интеграции видео расширения в систему аудио-распознавания речи с протоколом испытаний

Цели:



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

Задачи:



Провести фотографирования вариаций губ пользователей в различных положениях для увеличения точности системы ручным способом. Реализовать библиотеку базы данных системы по различным типам губ в движении на основе свободной системы управления базами данных (СУБД).

Введение



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

1. Фотографирование вариаций губ с разными типами лиц.



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

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

image
image
Читать дальше →
Total votes 26: ↑17 and ↓9 +8
Comments 8

Определение доминирующих признаков классификации и разработка математической модели изображений мимики

Reading time 6 min
Views 8.9K

Содержание:


1. Поиск и анализ цветового пространства оптимального для построения выделяющихся объектов на заданном классе изображений
2. Определение доминирующих признаков классификации и разработка математической модели изображений мимики"
3. Синтез оптимального алгоритма распознавания мимики
4. Реализация и апробация алгоритма распознавания мимики
5. Создание тестовой базы данных изображений губ пользователей в различных состояниях для увеличения точности работы системы
6. Поиск оптимальной аудио-системы распознавания речи на базе открытого исходного кода
7. Поиск оптимальной системы аудио распознавания речи с закрытым исходным кодом, но имеющими открытые API, для возможности интеграции
8. Эксперимент интеграции видео расширения в систему аудио-распознавания речи с протоколом испытаний

Цели


Определить доминирующие признаки классификации объекта локализации и разработать математическую модель под задачи анализа изображений мимики.

Задачи


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

Тема


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

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

image

Что касается первой задачи, то следует выделить две их разновидности:
• Локализация лица (Face localization);
• Отслеживание перемещения лица (Face tracking) [1].
Так как перед нами стоит задача разработки алгоритма распознавания мимики, то логично предположить, что данную систему будет использовать один пользователь, который не слишком активно будет двигать головой. Следовательно, для реализации технологии распознавания движения губ необходимо взять за основу упрощенный вариант задачи обнаружения, где на изображении присутствует одно и только одно лицо.

А это значит, что поиск лица можно будет проводить сравнительно редко (порядка 10 кадров/сек. и даже менее). Вместе с тем, движения губ говорящего во время разговора являются достаточно активными, а, следовательно, оценка их контура должна проводиться с большей интенсивностью.
Читать дальше →
Total votes 18: ↑15 and ↓3 +12
Comments 4

Определение местоположения без GPS: как устроен Яндекс.Локатор

Reading time 8 min
Views 291K
Сейчас всё больше мобильных приложений становятся геозависимыми. Одни просто не имеют смысла без знаний о местоположении пользователя, другие становятся с ним удобнее. Это так называемые Location Based Services (LBS): навигаторы, форскверы, инстаграмы с геотегами фотографий и даже приложения-напоминалки, которые срабатывают около конкретного места, например, рядом с офисом или магазином.

Для сервисов и приложений Яндекса мы создали собственную реализацию метода определения местоположения без GPS — Яндекс.Локатор. Он экономит время пользователя и делает наши приложения чуточку умнее. В Навигаторе и Картах она избавляет от ввода начальной точки маршрута, даже если вы на крытой парковке. А при выборе фильма в Киноафише или товара в мобильном Маркете помогает сразу показать, где их найти именно в вашем районе города. Ну и, разумеется, при поиске кафе и банкоматов — позволяет показывать вам сразу ближайшие, даже когда вы в метро.
image

Технологию мы давно открыли в виде бесплатного API. Сегодня хотим рассказать, как она устроена.

Читать дальше →
Total votes 115: ↑108 and ↓7 +101
Comments 80

Особенности Swift

Reading time 13 min
Views 44K
В рамках Mobile Camp Яндекса наш коллега Денис Лебедев представил доклад о новом языке программирования Swift. В своем докладе он затронул особенности взаимодействия с Objective-C, рассказал про фичи языка, которые показались ему наиболее интересными. А также про то куда сходить на Github, и какие репозитории посмотреть, чтобы понять, что со Swift можно делать в реальном мире.

Разработка Swift началась в 2010 году. Занимался ей Крис Латтнер. До 2013 процесс шел не очень активно. Постепенно вовлекалось все больше людей. В 2013 году Apple сфокусировалась на разработке этого языка. Перед презентацией на WWDC о Swift знало порядка 200 человек. Информация о нем хранилась в строжайшем секрете.


Презентация и конспект доклада
Total votes 62: ↑57 and ↓5 +52
Comments 28

Что почитать на досуге. Дайджест новостей игровой индустрии за июнь

Reading time 8 min
Views 23K
Сегодня в дайджесте мы вспомним, что значительного произошло в мире геймдева за первый летний месяц.


Читать дайджест
Total votes 56: ↑48 and ↓8 +40
Comments 7

Прозрачный OpenGL

Reading time 2 min
Views 11K
image

Бон Джорно, сеньоры!
Я перевыпустил древнюю игру Dice 5, с которой собственно и начинал жизнь в необычном мире iOS разработки.
Хочу поделиться полезным для многих режимом накладывания трехмерных объектов на стандартные красивые элементы управления и шрифты iOS.

В качестве десерта я расскажу о процессе одобрения игры в яблочном магазине и подглядывания за сотрудниками Apple Review Team. Вдруг кому пригодится?
В статье будет много иностранных вордсов, потому что меня просто прет использовать их после запрета от нашей ГД.

Читать дальше →
Total votes 21: ↑13 and ↓8 +5
Comments 5

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

Reading time 6 min
Views 217K
На хабре уже присутствует некоторое количество статей, посвященных процессу прототипирования в разработке программного обеспечения. Есть достаточно фундаментальные статьи с обзорами стандартов и расчетами, есть статьи про прототипирование устройств, есть цикл из двух статей про процесс выбора инструмента для прототипирования. К сожалению, процесс создания прототипов мобильных приложений освещен очень скудно – в виде единственной статьи в 2010 году, и пара слов в статье Разработка мобильных приложений: с чего начать.

Хотелось бы исправить эту ситуацию, и предложить вашему вниманию большой обзор доступных инструментов для прототипирования мобильных приложений.
Читать дальше →
Total votes 61: ↑59 and ↓2 +57
Comments 55

2 бесплатных бумажных шаблона для прототипирования мобильных приложений

Reading time 1 min
Views 41K
На сайте Smashing Magazine выложены два новых полезных инструмента для мобильных разработчиков. Это набор заготовок для рисования набросков интерфейсов распространённых типов мобильных утсройств Outline и шаблоны для подбора размеров элементов тач-интерфейса с учётом разрешения и физического размера реальных устройств Tapsize. Оба набора предназначены для распечатки на бумаге.


Читать дальше →
Total votes 59: ↑53 and ↓6 +47
Comments 19

Дауншифтинг для программиста? Камбоджа, опыт выживания и опыт жизни

Reading time 7 min
Views 237K
image

Привет, уважаемые читатели. Сразу скажу, что я немного странный человек и мой опыт приемлем далеко не для всех и часто сталкиваюсь с непониманием, как со стороны близких, так и со стороны абсолютно незнакомых людей. Речь пойдет о том, как я бросил всё и уехал с 300$ в кармане в новую для себя страну, казавшуюся мне чем-то диким и непознанным. В обсуждении одного из постов я вскользь упомянул о моем опыте и меня попросили написать подробнее.
Читать дальше →
Total votes 217: ↑199 and ↓18 +181
Comments 320

Наш опыт ускорения приложений на iOS

Reading time 6 min
Views 18K


Меня зовут Митя Куркин, я руковожу разработкой iOS мессенджеров Mail.Ru Group. Сегодня я расскажу о нашем опыте ускорения приложений на iOS. Высокая скорость работы очень важна для 99% приложений. Особенно это актуально на мобильных платформах, где вычислительные мощности и, соответственно, заряд аккумулятора весьма ограничены. Поэтому каждый уважающий себя разработчик стремится оптимизировать работу своего приложения с целью устранения различных задержек, из которых складывается общее время реакции.
Читать дальше →
Total votes 59: ↑50 and ↓9 +41
Comments 6

Генерация ландшафтов в Unity3d

Reading time 5 min
Views 114K

Думаю все заметили, что сейчас стало появляться множество всяких бродилок с выживанием в стиле Minecraft. Сделать такую решился и я. Начало было лёгким — Unity3d имеет огромный функционал для сознания простеньких игр (и не только). Персонаж, игровые объекты, в общем основу сделать быстро. Но какой minecraft без рандомно генерируемого мира? Это стало первой трудной задачей. И думаю не только для меня. Просмотрев весь гугл и потратив кучу времени на эту бесполезную вещь я решил написать эту статью дабы сократить страдания других.
Читать дальше →
Total votes 31: ↑26 and ↓5 +21
Comments 16

Information

Rating
Does not participate
Location
Владимир, Владимирская обл., Россия
Registered
Activity