Pull to refresh
0
0
Send message

Трассировщик лучей с нуля за 100 строчек Python

Reading time16 min
Views24K

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

Примечание: Эта статья ни в коем случае не является полным руководством/объяснением трассировки лучей, поскольку эта тема слишком обширна, а скорее просто введением для любопытствующих.

Читать далее
Total votes 31: ↑29 and ↓2+32
Comments14

Как сделать Data Science приложение для Windows (и не только) с графическим интерфейсом с помощью PySimpleGUI

Reading time6 min
Views33K
Работать с Data Science в Jupyter, конечно, очень приятно, но если вы хотите пойти дальше и развернуть свой проект или модель на облачном сервере, то здесь есть много отличных решений — с помощью Flask, Django или Streamlit. Хотя облачные решения по-прежнему самые популярные, часто хочется создать быстрое приложение с графическим интерфейсом. Например:

  • Модель ML тестируется на различных наборах данных. Вы можете перетащить файлы CSV в модель и отрисовать кривую AUS/ROC. Здесь GUI проявит себя прекрасно, правда?
  • Построить случайную переменную или статистическое распределение в заданном диапазоне и динамически управлять параметрами с помощью графического интерфейса.
  • Быстро запустить некоторые задачи обработки или предварительной обработки данных в наборе с помощью GUI вместо того, чтобы писать кучу кода.

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


Приятного чтения!
Total votes 23: ↑21 and ↓2+24
Comments10

Разрабатываем и развёртываем собственную платформу ИИ с Python и Django

Reading time11 min
Views24K
Взлёт искусственного интеллекта привёл к популярности платформ машинного обучения MLaaS. Если ваша компания не собирается строить фреймворк и развёртывать свои собственные модели, есть шанс, что она использует некоторые платформы MLaaS, например H2O или KNIME. Многие исследователи данных, которые хотят сэкономить время, пользуются этими инструментами, чтобы быстро прототипировать и тестировать модели, а позже решают, будут ли их модели работать дальше. 

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


Портрет Орнеллы Мути Джозефа Айерле (фрагмент), рассчитанный с помощью технологии искусственного интеллекта.
Приятного чтения!
Total votes 23: ↑19 and ↓4+19
Comments3

Системы сейсмического мониторинга: обзор, установка, настройка

Reading time13 min
Views8.1K
Приветствую, уважаемые Хабравчане! Многие из нас живут в сейсмически нестабильных районах, и, полагаю, землетрясений не любит никто. Как технарю, да и вообще, данная тематика мне была всегда интересна: как и где землетрясения зарождаются, как определяют эпицентр и магнитуду, как производится мониторинг и т. д. И вот так получилось, что мне понадобилось сделать некую пилотную систему для мониторинга в реальном времени показателей нескольких сейсмодатчиков, расположенных достаточно далеко друг от друга и от центра, где эти данные и сохраняются, и обрабатываются. При возможности, хотелось также сделать WWW страничку, где можно было бы в реальном времени посмотреть показатели с датчиков. Задача оказалась достаточно нетривиальной, и после того, как был достигнут определённый успех в данном направлении, я решил, что было бы неплохо сделать обзорную статью/мануал по данному вопросу, что в дальнейшем может сильно облегчить кому-то жизнь, особенно учитывая, что информации в Рунете по данному вопросу я не нашёл вообще. А если так взять, в общем-то ни одного HowTo даже в англоязычном интернете я не смог найти, хотя общей и сильно разрозненной информации порядочно. Также я не знал ни одного человека (да их и не так много вообще оказывается), который бы мог направить в нужном направлении, потому до всего пришлось доходить самому, копая Гугл, мануалы и софт с железом.
Итак, эта статья — как настроить сейсмографы фирмы Guralp, снять с них данные и отрисовать в реальном режиме времени на WWW страничке показатели сейсмодатчиков. Также описывается, какой софт используется, где его взять и как настроить.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments3

Как удалить «неудаляемые» приложения со смартфона

Reading time5 min
Views262K


Чтобы увеличить привлекательность смартфонов, производители ставят на них как можно больше разных программ. Это понятно. Просто берём и удаляем ненужное… Стоп.

Оказывается, некоторые программы невозможно удалить. Например, на отдельных моделях Samsung невозможно удалить Facebook (есть только опция 'disable'). Говорят, на Samsung S9 вдобавок предустановлены «неудаляемые» приложения Microsoft.

Эти смартфоны приведены для примера. Такая же проблема и на других моделях. На многих есть неудаляемые программы от самого производителя.

Всё это надо зачистить.
Читать дальше →
Total votes 156: ↑145 and ↓11+168
Comments203

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

Reading time5 min
Views15K

Мифический носорогоединорог. MS TECH / PIXABAY

Обучение «менее чем с одной» попытки помогает модели идентифицировать больше объектов, чем количество примеров, на которых она тренировалась.

Как правило, машинное обучение требует множества примеров. Чтобы ИИ-модель научилась распознавать лошадь, вам потребуется показать ей тысячи изображений лошадей. Поэтому технология настолько вычислительно затратна и сильно отличается от человеческого обучения. Ребенку зачастую нужно увидеть всего несколько примеров объекта, или даже один, чтобы научиться распознавать его на всю жизнь.
Определяем носорогоединорогов без обучения
Total votes 24: ↑20 and ↓4+27
Comments18

Как экономить память и удваивать размеры моделей PyTorch с новым методом Sharded

Reading time5 min
Views7.1K
Модели глубокого обучения улучшаются с увеличением количества данных и параметров. Даже с последней моделью GPT-3 от Open AI, которая использует 175 миллиардов параметров, нам ещё предстоит увидеть плато роста количества параметров.

Для некоторых областей, таких как NLP, рабочей лошадкой был Transformer, который требует огромных объёмов памяти графического процессора. Реалистичные модели просто не помещаются в памяти. Последний метод под названием Sharded  [букв. ‘сегментированный’] был представлен в Zero paper Microsoft, в котором они разработали метод, приближающий человечество к 1 триллиону параметров.

Специально к старту нового потока курса по Machine Learning, делюсь с вами статьей о Sharded в которой показывается, как использовать его с PyTorch сегодня для обучения моделей со вдвое большей памятью и всего за несколько минут. Эта возможность в PyTorch теперь доступна благодаря сотрудничеству между командами FairScale Facebook AI Research и PyTorch Lightning.


Приятного чтения!
Total votes 21: ↑19 and ↓2+25
Comments3

История группы 414 — подростков из Милуоки, которые стали пионерами взлома

Reading time7 min
Views11K
В 1983 году группа молодых людей из Милуоки прославилась взломом нескольких высококлассных компьютерных систем, включая Национальную лабораторию Лос-Аламоса и Мемориальный онкологический центр им. Слоуна Кеттеринга. Сегодня, в день старта нового потока курса Этичный хакер делюсь с вами их историей.

В 1983 году в технотриллере WarGames Дэвид Лайтман, которого играет тогда ещё молодой Мэтью Бродерик, сидит в своей спальне, погружаясь в компьютер квадратной формы с 8-битным процессором Intel. Когда текст пробегает по экрану, лицо Дэвида светится; он думает, что взломал компанию по производству видеоигр, но на самом деле подросток имеет дело с военным суперкомпьютером. «Поиграем в игру?» — зловеще спрашивает компьютер. В развязке фильма был спровоцирован обратный отсчёт до Третьей мировой войны.

В том же году, когда этот фильм вышел на экраны, группа подростков и молодых людей из Милуоки играла в свою игру. Как и персонаж Бродерика, эти пригородные учёные-технологи, получившие название 414, в поиске новых игр взломали большие сетевые компьютерные системы, используемые известными организациями. И точно так же то, что начиналось как безобидное веселье, имело очень ощутимые последствия. В конце концов группа была поймана ФБР за взлом около дюжины правительственных и промышленных систем. Среди них были Мемориальный онкологический центр Слоана Кеттеринга и Лос-Аламосская национальная лаборатория — исследовательский центр ядерного оружия, на котором производились атомные бомбы, применявшиеся во время Второй мировой войны.

Приятного чтения!
Total votes 17: ↑16 and ↓1+18
Comments9

Делаем параллельный корпус из книг с помощью sentence embeddings

Reading time8 min
Views8.9K

Parallel trucks (image by Unsplash


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


Задача


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


  • Использовать эвристики. Можно считать количество предложений в текстах, количество слов в них и на основе этого производить сопоставление. Такой способ не дает хорошего качества, но может тоже быть полезным.
  • Использовать sentence embeddings. Наверняка вы слышали про модели типа word2vec или sent2vec или видели такой пример их использования — "король" + "женщина""мужчина" = "королева". Если коротко, то суть в том, чтобы перевести слова (предложения, тексты) в векторное пространство с сохранением семантического расстояния между ними. Такой подход открывает перед нами замечательные возможности по оценке близости текстов и их кусочков по смыслу.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments4

Лучшее в мире видео-объяснение нейронных сетей, глубокого обучения, градиентного спуска и обратного распространения

Reading time1 min
Views57K
image

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

Из комментариев к прошлым публикациям мне стало понятно, что есть большое количество людей, кто не знает про канал, поэтому хочу поделиться четырьмя видео (+ русские субтитры и дубляж) и сэкономить время школьникам, родителям и учителям, чтобы они могли иметь быстрый доступ к самому интересному и качественному объяснению одной из самых важных тем современности.
Total votes 51: ↑47 and ↓4+57
Comments24

Распознавание объектов в режиме реального времени на iOS с помощью YOLOv3

Reading time13 min
Views40K

Всем привет!

В данной статье мы напишем небольшую программу для решения задачи детектирования и распознавания объектов (object detection) в режиме реального времени. Программа будет написана на языке программирования Swift под платформу iOS. Для детектирования объектов будем использовать свёрточную нейронную сеть с архитектурой под названием YOLOv3. В статье мы научимся работать в iOS с нейронными сетями с помощью фреймворка CoreML, немного разберемся, что из себя представляет сеть YOLOv3 и как использовать и обрабатывать выходы данной сети. Так же проверим работу программы и сравним несколько вариаций YOLOv3: YOLOv3-tiny и YOLOv3-416.

Исходники будут доступны в конце статьи, поэтому все желающие смогут протестировать работу нейронной сети у себя на устройстве.
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments8

Новые архитектуры нейросетей

Reading time10 min
Views53K

Новые архитектуры нейросетей


Network


Предыдущая статья «Нейросети. Куда это все движется»


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


Статья не претендует на полноту охвата и хорошее понимание прочитанных «по диагонали» статей. Автор уверен, что пока писал эту статью, появилось еще много новых архитектур. Например, смотрите здесь: https://paperswithcode.com/area/computer-vision.

Читать дальше →
Total votes 19: ↑18 and ↓1+25
Comments4

Как научиться разработке на Python: новый видеокурс Яндекса

Reading time6 min
Views250K
Осенью прошлого года в московском офисе Яндекса прошла первая Школа бэкенд-разработки. Мы сняли занятия на видео и сегодня рады поделиться на Хабре полным видеокурсом Школы. Он позволит вам научиться промышленной разработке на Python. Авторы лекций — опытные разработчики в Яндексе. К каждому видео приложены ссылки на примеры и полезные материалы.

Для изучения курса нужно знать основы Python и понимать, как приложения развёртываются на серверах. Мы ждём, что вы умеете делать запросы к базам данных и знаете, как создаются веб‑приложения, — хотя бы на начальном уровне.
Читать дальше →
Total votes 70: ↑70 and ↓0+70
Comments41

Дрон для любителя: устройство и принципы программирования

Reading time8 min
Views78K
Для программирования дрона сегодня не надо разбираться в физике полета и прочих тонкостях, поскольку эти вопросы за вас уже решили разработчики контроллеров и SDK. Тем не менее, тема остается не такой простой. И в этом посте мы хотим рассказать, с какой стороны к ней подступиться.


Фото с омского «Хакатона по применению малых БПЛА»

Под катом — из чего состоит дрон, какие бывают комплекты и как начать с ними работу.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments17

Ансамбли нейронных сетей с PyTorch и Sklearn

Reading time15 min
Views19K

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


И тут на помощь приходят ансамбли...


Что такое ансамбли


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

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

Что не так с обучением с подкреплением (Reinforcement Learning)?

Reading time21 min
Views55K


Еще в начале 2018 года вышла статья Deep Reinforcement Learning Doesn't Work Yet ("Обучение с подкреплением пока не работает"). Основная претензия которой сводилась к тому, что современные алгоритмы обучения с подкреплением требуют для решения задачи примерно столько же времени, как и обычный случайный поиск.


Изменилось ли что-то с того времени? Нет.


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

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

TensorRT 6.x.x.x — высокопроизводительный инференс для моделей глубокого обучения (Object Detection и Segmentation)

Reading time9 min
Views22K
image
Больно только в первый раз!

Всем привет! Дорогие друзья, в этой статье я хочу поделиться своим опытом использования TensorRT, RetinaNet на базе репозитория github.com/aidonchuk/retinanet-examples (это форк официальной репы от nvidia, который позволит начать использовать в продакшен оптимизированные модели в кратчайшие сроки). Пролистывая сообщения в каналах сообщества ods.ai, я сталкиваюсь с вопросами по использованию TensorRT, и в основном вопросы повторяются, поэтому я решил написать как можно более полное руководство по использованию быстрого инференса на основе TensorRT, RetinaNet, Unet и docker.
Читать дальше →
Total votes 45: ↑44 and ↓1+55
Comments10

Парадокс Эйнштейна — Подольского — Розена на пальцах и… при чём тут эфир

Reading time8 min
Views31K
Парадокс Эйнштейна — Подольского — Розена сейчас активно изучают в многих лабораториях мира и научных институтах. Пишутся тонны научных статей. Поднято много хайпа в около-научных кругах.


Только лишь одна загвоздка, хотя и достаточно парадоксальная. В самой квантовой механике нет ничего парадоксального в парадоксе ЭПР! Ни граммульки!

Так почему же его так пристально изучают?

И да, при чём тут эфир?!
Читать дальше →
Total votes 28: ↑22 and ↓6+27
Comments211

Модель сильного искусственного интеллекта

Reading time18 min
Views10K
image

Make AI Strong Again!


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

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

В этой статье я предлагаю вернуться к изначальному пониманию задачи – созданию систем, обладающих свойствами мыслительной деятельности человека – такими, как понимание смысла, построение плана действий для достижения цели, способность объяснить свои действия, корректировка поведения в зависимости от окружающей среды и т.д.
Читать дальше →
Total votes 4: ↑1 and ↓30
Comments51

Этапы внедрения моделей машинного обучения на крупных предприятиях

Reading time6 min
Views9.4K


На форуме RAIF 2019, который состоялся в Сколково в рамках «Открытых Инноваций», я рассказывал о том, как происходит внедрение моделей машинного обучения. В связи с особенностями профессии я каждую неделю несколько дней провожу на производствах, занимаясь внедрением моделей машинного обучения, а остальное время – разработкой этих моделей. Этот пост — запись доклада, в котором я постарался обобщить свой опыт.
Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments3

Information

Rating
Does not participate
Location
Иркутск, Иркутская обл., Россия
Registered
Activity