Как стать автором
Обновить
25
0
Андрей Шмиг @AndrewShmig

ML & JS <3

Отправить сообщение

Основы Event Loop в JavaScript

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров6.6K

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

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

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

Читать далее
Всего голосов 21: ↑16 и ↓5+11
Комментарии10

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

Время на прочтение4 мин
Количество просмотров11K

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

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

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

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

Читать далее
Всего голосов 19: ↑17 и ↓2+15
Комментарии29

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

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров6.5K

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии1

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

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

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

Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии9

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

Время на прочтение12 мин
Количество просмотров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-парсера.
Читать дальше →
Всего голосов 87: ↑86 и ↓1+85
Комментарии33

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

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


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

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

Время на прочтение8 мин
Количество просмотров70K

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

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

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

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


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

Читать дальше →
Всего голосов 128: ↑124 и ↓4+120
Комментарии97

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

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

image

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

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

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

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

Время на прочтение19 мин
Количество просмотров44K

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

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





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

Читать дальше →
Всего голосов 75: ↑72 и ↓3+69
Комментарии8

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

Время на прочтение5 мин
Количество просмотров9.6K

Содержание:


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

Цели:



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

Задачи:



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

Введение



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

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



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

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

image
image
Читать дальше →
Всего голосов 26: ↑17 и ↓9+8
Комментарии8

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

Время на прочтение6 мин
Количество просмотров8.9K

Содержание:


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

Цели


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

Задачи


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

Тема


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

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

image

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

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

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

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

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

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

Читать дальше →
Всего голосов 115: ↑108 и ↓7+101
Комментарии80

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

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

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


Презентация и конспект доклада
Всего голосов 62: ↑57 и ↓5+52
Комментарии28

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

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


Читать дайджест
Всего голосов 56: ↑48 и ↓8+40
Комментарии7

Прозрачный OpenGL

Время на прочтение2 мин
Количество просмотров11K
image

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

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

Читать дальше →
Всего голосов 21: ↑13 и ↓8+5
Комментарии5

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

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

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

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

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


Читать дальше →
Всего голосов 59: ↑53 и ↓6+47
Комментарии19

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

Время на прочтение7 мин
Количество просмотров237K
image

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

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

Время на прочтение6 мин
Количество просмотров18K


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

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

Время на прочтение5 мин
Количество просмотров114K

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

Информация

В рейтинге
Не участвует
Откуда
Владимир, Владимирская обл., Россия
Зарегистрирован
Активность