Как стать автором
Обновить
337
0
Сергей Парамонов @varagian

Data Scientist, PhD in AI

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

Дюжина приемов в Linux, которые действительно сэкономят уйму времени

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


Эта статья также есть на английском.

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

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

Под катом — дюжина приемов в командной строке — из личного опыта.
Читать дальше →
Всего голосов 128: ↑122 и ↓6+116
Комментарии169

«Человек» искусства: способен ли искусственный интеллект творить?

Время на прочтение7 мин
Количество просмотров13K
С развитием нейросетей им придумывают всё более разнообразные способы применения. С их помощью обучаются автопилоты Tesla, а распознавание лиц используется не только для обработки фотографий приложениями типа Prisma, но и в системах безопасности. Искусственный интеллект учат диагностировать болезни. В конце концов, с его помощью даже выигрывают выборы.

Но есть одна сфера, которая традиционно считалась принадлежащей исключительно человеку — творчество. Однако и это утверждение начинают ставить под сомнение. Ли Седоль, проигравший AlphaGo, признался: «Поражение заставило меня засомневаться в человеческой креативности. Когда я увидел, как играет AlphaGo, то усомнился в том, насколько хорошо играю сам». Поэтому в сегодняшнем посте давайте поговорим о том, способны ли роботы ступить на территорию искусства, в пространство креативности, а значит эмоций и восприятия.

Всего голосов 9: ↑9 и ↓0+9
Комментарии8

Автопилот своими рукам. Добавляем электронное управление steer-by-wire на обычный автомобиль

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

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


Электроника в сборе

И Arduino, конечно, куда же без нее.
Всего голосов 35: ↑35 и ↓0+35
Комментарии22

Руководство по материалам электротехники для всех. Часть 1

Время на прочтение15 мин
Количество просмотров114K
Привет гиктаймс! Я решил опубликовать по частям свое руководство по материалам, используемым не только в электротехнике, но и вообще в технике, в том числе самодельщиками. С описанием, примерами применения, заметками по работе. Руководство написано максимально просто, и будет понятно всем, от школьника до пенсионера.

В этой части начинаем разбирать проводники — Серебро, Медь, Алюминий.

image

Добро пожаловать под кат (ТРАФИК)
узнать о материалах
Всего голосов 95: ↑94 и ↓1+93
Комментарии161

tig — улучшаем продуктивность работы с git

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

Всем привет! Хочу рассказать о консольной утилите, которая значительно увеличила мою продуктивность работы с Git, и, надеюсь, ускорит и вашу также. Называется она tig и была написана канадским программистом Джонасом Фонсека (Jonas Fonseca) ещё в далёком 2006-м году, но по настоящий день она активно развивается и поддерживается в великолепном состоянии. Я хочу показать её функционал (внимание, есть относительно тяжелые gif-ки внутри) и поделиться самыми удобными способами использования.


Читать дальше →
Всего голосов 107: ↑105 и ↓2+103
Комментарии47

Метавычисления и глубокие свёрточные сети: интервью с профессором ИТМО

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


После победы AlphaGo в марте 2016 года над одним из сильнейших игроков Go в мире Ли Седолем о методах глубокого обучения заговорили практически везде. И даже Google не упустил случая назвать себя компанией машинного обучения и искусственного интеллекта.

Что стоит за термином «глубокое обучение»? Какими бывают модели машинного обучения и на чём они пишутся? Ответить на эти и многие другие вопросы, связанные с МО и, в частности, с глубоким обучением (deep learning), мы попросили Алексея Потапова, профессора кафедры компьютерной фотоники и видеоинформатики ИТМО.
Читать дальше →
Всего голосов 58: ↑55 и ↓3+52
Комментарии3

Нейросетевая игра в имитацию

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

Здравствуйте, коллеги. В конце 1960-ых годов прошлого века Ричард Фейнман прочитал в Калтехе курс лекций по общей физике. Фейнман согласился прочитать свой курс ровно один раз. Университет понимал, что лекции станут историческим событием, взялся записывать все лекции и фотографировать все рисунки, которые Фейнман делал на доске. Может быть, именно после этого у университета осталась привычка фотографировать все доски, к которым прикасалась его рука. Фотография справа сделана в год смерти Фейнмана. В верхнем левом углу написано: "What I cannot create, I do not understand". Это говорили себе не только физики, но и биологи. В 2011 году, Крейгом Вентером был создан первый в мире синтетический живой организм, т.е. ДНК этого организма создана человеком. Организм не очень большой, всего из одной клетки. Помимо всего того, что необходимо для воспроизводства программы жизнедеятельности, в ДНК были закодированы имена создателей, их электропочты, и цитата Ричарда Фейнмана (пусть и с ошибкой, ее кстати позже исправили). Хотите узнать, к чему эта прохладная тут? Приглашаю под кат, коллеги.

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

Нестандартная кластеризация, часть 3: приёмы и метрики для кластеризации временных рядов

Время на прочтение16 мин
Количество просмотров43K
Часть первая — Affinity Propagation
Часть вторая — DBSCAN
Часть третья — кластеризация временных рядов
Часть четвёртая — Self-Organizing Maps (SOM)
Часть пятая — Growing Neural Gas (GNG)

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

Кластеризация временных рядов — неблагодарное дело. Даже при группировке статических данных часто получаются сомнительные результаты, что уж говорить про информацию, рассеянную во времени. Однако нельзя игнорировать задачу, только потому что она сложна. Попробуем разобраться, как выжать из рядов без меток немного смысла. В этой статье рассматриваются подтипы кластеризации временных рядов, общие приёмы и популярные меры расстояния между рядами. Статья рассчитана на читателя, уже имевшего дело с последовательностями в data science: о базовых вещах (тренд, ARMA/ARIMA, спектральный анализ) рассказываться не будет.

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

Популяризация науки: лекции российских ученых

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

image


В мире растет число фейковых новостей и все сложнее найти источник правдивой информации. Спрос на достоверность, качество и фактчекинг не пропал, но сложно подружить методологии проверки данных с новостями мейнстрима в эпоху, когда даже серьезные издания гонятся за кликбейтом. Изъеденные недочетами новости политики, экономики, спорта и других сфер начинают раздражать, а не привлекать внимание. Образуется информационный вакуум, заполнить который могут новости науки. Манипулировать научными данными не так интересно, как фактами в экономике и политике. Наука поддерживается прекрасной репутацией источников — например, не вызывает сомнений авторитетность журнала «Nature» или достоверность базы данных биотехнологической информации PubMed.


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

Всего голосов 41: ↑40 и ↓1+39
Комментарии32

Как Яндекс научил искусственный интеллект понимать смысл документов

Время на прочтение10 мин
Количество просмотров79K
Сегодня мы расскажем о новой поисковой технологии «Королёв», которая включает в себя не только более глубокое применение нейронных сетей для поиска по смыслу, а не по словам, но и значительные изменения в архитектуре самого индекса.



Но зачем вообще понадобились технологии из области искусственного интеллекта, если еще лет двадцать назад мы прекрасно находили в поиске искомое? Чем «Королёв» отличается от прошлогоднего алгоритма «Палех», где также использовались нейронные сети? И как архитектура индекса влияет на качество ранжирования? Специально для читателей Хабра мы ответим на все эти вопросы. И начнем с самого начала.

Читать дальше →
Всего голосов 145: ↑140 и ↓5+135
Комментарии405

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

Время на прочтение2 мин
Количество просмотров46K
Сразу спешу предупредить, что в Грузии нет аналога 327 статье УК РФ, поэтому все действия, описанные здесь, являются законными, пока не будет нанесен ущерб на сумму >2000 лари(~50000 рублей).

Стоит отметить, что сама идея была навеяна тремя другими статьями: «Тройка», «Подорожник», «Ситикард».

image

Транспортная система в Тбилиси несколько отличается от привычной для жителей России. Здесь вы не увидите трамваев или троллейбусов. Есть только автобус, метро, маршрутное такси и канатная дорога. Первое и второе вам обойдется в 50 тетри(~12,5 рублей), маршрутное такси — 80 тетри, а канатная дорога — 2 или 3 лари. Весь этот транспорт можно оплатить картой Metromoney.
Читать дальше →
Всего голосов 54: ↑54 и ↓0+54
Комментарии30

«Магическая константа» 0x5f3759df

Время на прочтение9 мин
Количество просмотров123K
В этой статье мы поговорим о «магической» константе 0x5f3759df, лежащей в основе элегантного алгоритмического трюка для быстрого вычисления обратного квадратного корня.

Вот полная реализация этого алгоритма:

float FastInvSqrt(float x) {
  float xhalf = 0.5f * x;
  int i = *(int*)&x;  // представим биты float в виде целого числа
  i = 0x5f3759df - (i >> 1);  // какого черта здесь происходит ?
  x = *(float*)&i;
  x = x*(1.5f-(xhalf*x*x));
  return x;
}

Этот код вычисляет некоторое (достаточно неплохое) приближение для формулы

image

Сегодня данная реализация уже хорошо известна, и стала она такой после появления в коде игры Quake III Arena в 2005 году. Её создание когда-то приписывали Джону Кармаку, но выяснилось, что корни уходят намного дальше – к Ardent Computer, где в середине 80-ых её написал Грег Уолш. Конкретно та версия кода, которая показана выше (с забавными комментариями), действительно из кода Quake.
В этой статье мы попробуем разобраться с данным хаком, математически вывести эту самую константу и попробовать обобщить данный метод для вычисления произвольных степеней от -1 до 1.

Да, понадобится немного математики, но школьного курса будет более, чем достаточно.
Читать дальше →
Всего голосов 212: ↑210 и ↓2+208
Комментарии188

10 приёмов работы в терминале Linux, о которых мало кто знает

Время на прочтение3 мин
Количество просмотров168K
Близкое знакомство с возможностями терминала — один из признаков человека, который хорошо разбирается в Linux. Хотя некоторые вещи запомнить сложно, есть довольно-таки простые, но эффективные приёмы, которые способны повысить качество и скорость работы в терминале. Пожалуй, каждый пользователь Linux рано или поздно обзаводится собственным списком ценных мелочей. Надеемся, некоторых из тех десяти приёмов работы в командной строке Linux, которыми мы хотим с вами поделиться, попадут в ваш личный список полезных команд.

Читать дальше →
Всего голосов 120: ↑95 и ↓25+70
Комментарии108

Что можно узнать о квартире из открытых справочников

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


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

Базы с индексами и районами городов тоже открыты. Бонусом я расскажу, как найти эти части адреса, если их не хватает.

Все справочники из этой статьи бесплатны и открыто лежат в интернете. Ни один не украли из ФСБ таинственные хакеры.
Шагнуть в мир открытых справочников
Всего голосов 62: ↑61 и ↓1+60
Комментарии24

Полезные книги о разработке мобильных игр на Android и iOS

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

image


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


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


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

Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии3

Метод Уэлфорда и одномерная линейная регрессия

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

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


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


Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии2

Взлом Wi-Fi

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

Взлом маршрутизаторов WPA/WPA2 Wi-Fi с помощью Airodump-ng и Aircrack-ng/Hashcat


Это краткое пошаговое руководство, которое демонстрирует способ взлома сетей Wi-Fi, защищённых слабыми паролями. Оно не исчерпывающее, но этой информации должно хватить, чтобы вы протестировали свою собственную сетевую безопасность или взломали кого-нибудь поблизости. Изложенная ниже атака полностью пассивна (только прослушивание, ничего не транслируется с вашего компьютера) и о ней невозможно узнать, если вы только реально не воспользуетесь паролем, который взломали. Необязательную активную атаку с деаутентификацией можно применить для ускорения разведывательного процесса. Она описана в конце статьи.
Читать дальше →
Всего голосов 77: ↑64 и ↓13+51
Комментарии51

Что читать о нейросетях

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


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


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


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

Читать дальше →
Всего голосов 59: ↑58 и ↓1+57
Комментарии44

Автоэнкодеры в Keras, часть 6: VAE + GAN

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

Содержание



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

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

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

Подход, который будет описан далее, основан на статье [Autoencoding beyond pixels using a learned similarity metric, Larsen et al, 2016].



Иллюстрация из [1]
Читать дальше →
Всего голосов 37: ↑37 и ↓0+37
Комментарии7

Введение в алгоритм A*

Время на прочтение10 мин
Количество просмотров184K
При разработке игр нам часто нужно находить пути из одной точки в другую. Мы не просто стремимся найти кратчайшее расстояние, нам также нужно учесть и длительность движения. Передвигайте звёздочку (начальную точку) и крестик (конечную точку), чтобы увидеть кратчайший путь. [Прим. пер.: в статьях этого автора всегда много интерактивных вставок, рекомендую сходить в оригинал статьи.]


Для поиска этого пути можно использовать алгоритм поиска по графу, который применим, если карта представляет собой граф. A* часто используется в качестве алгоритма поиска по графу. Поиск в ширину — это простейший из алгоритмов поиска по графу, поэтому давайте начнём с него и постепенно перейдём к A*.
Всего голосов 70: ↑69 и ↓1+68
Комментарии20

Информация

В рейтинге
Не участвует
Откуда
Antwerpen, Бельгия
Дата рождения
Зарегистрирован
Активность