Как стать автором
Обновить
0
0

Падаван

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

GraphQL API (CRUD) на Go

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

image


Всем привет! О GraphQL много статей на Хабре, но пробежавшись по ним обнаружил, что все они обходят стороной такой замечательный язык как Go. Сегодня попробую исправить это недоразумение. Для этого напишем API на Go с использованием GraphQL.

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

Бэкдоры в микрокоде ассемблерных инструкций процессоров x86

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

Софту мы не доверяем уже давно, и поэтому осуществляем его аудит, проводим обратную инженерию, прогоняем в пошаговом режиме, запускаем в песочнице. Что же насчёт процессора, на котором выполняется наш софт? – Мы слепо и беззаветно доверяем этому маленькому кусочку кремния. Однако современное железо имеет те же самые проблемы, что и софт: секретную недокументированную функциональность, ошибки, уязвимости, малварь, трояны, руткиты, бэкдоры.



ISA (Instruction Set Architecture) x86 – одна из самых долгих непрерывно изменяющихся «архитектур набора команд» в истории. Начиная с дизайна 8086, разработанного в 1976 году, ISA претерпевает постоянные изменения и обновления; сохраняя при этом обратную совместимость и поддержку исходной спецификации. За 40 лет своего взросления, архитектура ISA обросла и продолжает обрастать множеством новых режимов и наборов инструкций, каждый из которых добавляет к предшествующему дизайну, и без того перегруженному, новый слой. Из-за политики полной обратной совместимости, в современных процессорах x86 присутствуют даже те инструкции и режимы, которые на сегодняшний день уже преданы полному забвению. В результате мы имеем архитектуру процессора, которая представляет собой сложно переплетающийся лабиринт новых и антикварных технологий. Такая чрезвычайно сложная среда – порождает множество проблем с кибербезопасностью процессора. Поэтому процессоры x86 не могут претендовать на роль доверенного корня критической киберинфраструктуры.

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

Графика в Julia. Странные паттерны, отражение треугольника от прямой и построение нормалей сферического кота в вакууме

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


Продолжаем знакомство с очень молодым, но невероятно красивым и мощным языком программирования Julia. Шестилетняя бета наконец-таки закончилась, так что теперь можно не бояться изменений синтаксиса. И пока все спорят, хорошо или плохо начинать индексацию с единицы, взбудораженное сообщество активно закопошилось: выходят новые библиотеки, старые обновляются, стартуют серьёзные проекты, и в университетах этому языку активно учат студентов. Так не будем же отставать! Завариваем чай покрепче, потому что этой ночью будем кодить!

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

Автоэнкодеры в Keras, Часть 1: Введение

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

Содержание



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

Автоэнкодеры


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



Кому интересно, добро пожаловать под кат
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии11

Atmega328p + ENC28J60 = мост между UART и Ethernet

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

Создавая различную электронику и программируя AVR, STM и т.п. всегда встает вопрос как ее подключить к другой периферии для управления и передачи информации, например, к компьютеру.

Есть много различных решений: COM, RS482, WiFi, Zigbee, ZWave, Ethernet и т.п. Из всех вариантов я пробовал WiFi, Zigbee, Ethernet, все остальное крайне неудобно или устарело.

Я хочу рассказать и поделиться, как можно использовать чип ENC28J60 от Microchip и Atmega328p для создания «моста» (далее по тексту) между UART и Ethernet.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии3

LLTR Часть 2: Алгоритм определения топологии сети по собранной статистике

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

Link Layer Topology Reveal logo




Q: Что у нас есть?
A: Статистика, собранная с хостов.


Q: Что мы хотим получить?
A: Топологию сети! Точнее, нужно построить правильную цепочку пиров (хостов) для RingSync.


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



статистика –-[*магия*]--> топология сети --[*магия*]--> цепочка пиров

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

Реконструкция изображения: 1 км оптоволокна, искусственная нейронная сеть и глубокое обучения

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


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

Дабы увеличить пропускную способность было создано многомодовое оптоволокно (MMF), когда информация передается по нескольким параллельным каналам. Несмотря на все свои достоинства, MMF имеет и ряд недостатков, один из которых исследователи решили ликвидировать, дабы усовершенствовать процесс передачи изображений. Суть такова: когда образец проецируется на проксимальную сторону MMF, изображение, которое мы получаем на дистальной стороне, представляет собой спекл, поскольку его входящие данные распределяются по множеству мод с разной степенью распространения вдоль длины волокна. Ученые предлагают использовать комбинацию многомодового волокна и глубокое обучение для искусственных нейронных сетей, чтобы получать точные изображения, в том числе и при использовании эндоскопии. Давайте покопаемся в отчете исследователей и попробуем понять как это работает и какие дает результаты. Поехали.
Читать дальше →
Всего голосов 19: ↑14 и ↓5+9
Комментарии4

Краткий курс машинного обучения или как создать нейронную сеть для решения скоринг задачи

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

Мы часто слышим такие словесные конструкции, как «машинное обучение», «нейронные сети». Эти выражения уже плотно вошли в общественное сознание и чаще всего ассоциируются с распознаванием образов и речи, с генерацией человекоподобного текста. На самом деле алгоритмы машинного обучения могут решать множество различных типов задач, в том числе помогать малому бизнесу, интернет-изданию, да чему угодно. В этой статье я расскажу как создать нейросеть, которая способна решить реальную бизнес-задачу по созданию скоринговой модели. Мы рассмотрим все этапы: от подготовки данных до создания модели и оценки ее качества.

Если тебе интересно машинное обучение, то приглашаю в «Мишин Лернинг» — мой субъективный телеграм-канал об искусстве глубокого обучения, нейронных сетях и новостях из мира искусственного интеллекта.

Вопросы, которые разобраны в статье:

• Как собрать и подготовить данные для построения модели?
• Что такое нейронная сеть и как она устроена?
• Как написать свою нейронную сеть с нуля?
• Как правильно обучить нейронную сеть на имеющихся данных?
• Как интерпретировать модель и ее результаты?
• Как корректно оценить качество модели?
Поехали!
Всего голосов 51: ↑42 и ↓9+33
Комментарии43

Нейронные сети в картинках: от одного нейрона до глубоких архитектур

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

В статье мы пойдём по другому пути. Начнём с самой простой конфигурации — одного нейрона с одним входом и одним выходом, без активации. Далее будем маленькими итерациями усложнять конфигурацию сети и попробуем выжать из каждой из них разумный максимум. Это позволит подёргать сети за ниточки и наработать практическую интуицию в построении архитектур нейросетей, которая на практике оказывается очень ценным активом.
Читать дальше →
Всего голосов 67: ↑62 и ↓5+57
Комментарии53

Стилизация изображений с помощью нейронных сетей: никакой мистики, просто матан

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

Приветствую тебя, Хабр! Наверняка вы заметили, что тема стилизации фотографий под различные художественные стили активно обсуждается в этих ваших интернетах. Читая все эти популярные статьи, вы можете подумать, что под капотом этих приложений творится магия, и нейронная сеть действительно фантазирует и перерисовывает изображение с нуля. Так уж получилось, что наша команда столкнулась с подобной задачей: в рамках внутрикорпоративного хакатона мы сделали стилизацию видео, т.к. приложение для фоточек уже было. В этом посте мы с вами разберемся, как это сеть "перерисовывает" изображения, и разберем статьи, благодаря которым это стало возможно. Рекомендую ознакомиться с прошлым постом перед прочтением этого материала и вообще с основами сверточных нейронных сетей. Вас ждет немного формул, немного кода (примеры я буду приводить на Theano и Lasagne), а также много картинок. Этот пост построен в хронологическом порядке появления статей и, соответственно, самих идей. Иногда я буду его разбавлять нашим недавним опытом. Вот вам мальчик из ада для привлечения внимания.


Читать дальше →
Всего голосов 145: ↑141 и ↓4+137
Комментарии38

Модель колебательного звена с применением символьного и численного решений дифференциального уравнения на SymPy и NumPy

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

Задача


В статья использованы возможности пакета SymPy совместно с пакетом NumPy. Всё сводиться к преобразованию символьных выражений в функции способные работать с другими модулями Python.

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

Надеюсь, что подобные исследования колебательного звена на Python найдут своих сторонников.
Читать дальше →
Всего голосов 22: ↑16 и ↓6+10
Комментарии5

Модель колебательного звена в режиме резонансных колебаний на Python

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

Введение


В статье [1] я в строгом соответствии с общеизвестной теорией колебательных процессов рассмотрел колебательное звено, построив переходные процессы с применением библиотек SymPy и NumPy.

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

Вторым был рассмотрен случай отрицательного демпфирования (который я не прокомментировал). Отрицательное демпфирование можно наблюдать, когда под горизонтально подвешенного в центре на двух пружинах кубике движется лента качающееся его одной его гранью.
Читать дальше →
Всего голосов 13: ↑10 и ↓3+7
Комментарии2

Нейросеть в 11 строчек на Python

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

О чём статья


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

Дайте код!


X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
syn0 = 2*np.random.random((3,4)) - 1
syn1 = 2*np.random.random((4,1)) - 1
for j in xrange(60000):
    l1 = 1/(1+np.exp(-(np.dot(X,syn0))))
    l2 = 1/(1+np.exp(-(np.dot(l1,syn1))))
    l2_delta = (y - l2)*(l2*(1-l2))
    l1_delta = l2_delta.dot(syn1.T) * (l1 * (1-l1))
    syn1 += l1.T.dot(l2_delta)
    syn0 += X.T.dot(l1_delta)


Слишком сжато? Давайте разобьём его на более простые части.
Читать дальше →
Всего голосов 47: ↑44 и ↓3+41
Комментарии17

Методы имитационного моделирования вероятностных распределений на языке программирования Python

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

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

Все методы моделирования данного исследования представлены на программном языке Python. Этот язык является распространённым инструментов в сфере научных исследований и сфере обучения.

В дальнейших этапах исследования, которые будут представлены в будущих статьях, перейдём к более сложным экспериментам: рассмотрим вероятностные распределения, которые не вошли рамки данной статьи, рассмотрим имитационное моделирования систем и сетей массового обслуживания, и также продемонстрируем программирование подобных моделей с использованием параллельных вычислений.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии3

Кодим безумный пассивный сниффер в виде модуля для Python

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


Сразу скажу: то, чем мы с вами будем здесь заниматься, не претендует, скажем, на какую-то промышленную применимость. Более того, я признаю, что мой код в данном примере может быть ужасен, страшен и ненужен. И тем не менее — почему бы не поперехватывать пакеты посреди недели? Так, слегка.

Итак, сегодня мы вот что наколдуем:

1. Реализуем простейший пассивный перехватчик пакетов для TCP и UDP
2. Засунем его в C-библиотеку в виде расширения для Python
3. Приделаем ко всему этому интерфейс итератора, дабы байты сыпались, как из рога изобилия
4.…
5. PROFIT!
Берите стул, садитесь ближе к камину
Всего голосов 66: ↑60 и ↓6+54
Комментарии15

Python(x, y)

Время на прочтение9 мин
Количество просмотров54K
imagePython(x, y) — набор библиотек и программного обеспечения для численных расчетов, анализа и визуализации данных на основе Python. IDE представлены IDLE, Eclipse и Spyder, основой GUI избран Qt. Я расскажу вкратце о модулях, относящихся к самому Python, приведу несколько примеров их работы. Во время установки можно выбрать только то, что нужно, поэтому стоит разобраться что к этому нужному отнести. Кроме того, рассказ о модулях может пригодиться и сам по себе, поскольку их можно установить и по отдельности. Порядок следования модулей повторяет порядок оригинальной страницы и список чекбоксов установки.
Читать дальше →
Всего голосов 84: ↑82 и ↓2+80
Комментарии18

Интеграция MS Excel и Python

Время на прочтение6 мин
Количество просмотров368K
Добрый день, уважаемые читатели.

В сегодняшней статье я хотел бы, как можно подробнее, рассмотреть интеграцию приложений Python и MS Excel. Данные вопрос может возникнуть, например, при создании какой-либо системы онлайн отчетности, которая должна выгружать результаты в общепринятый формат ну или какие-либо другие задачи. Также в статье я покажу и обратную интеграцию, т.е. как использовать функцию написанную на python в Excel, что также может быть полезно для автоматизации отчетов.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии8

Нейронная сеть против DDoS'а

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

Предисловие


Некоторые из вас наверняка недавно проходили Stanford'ские курсы, в частности ai-class и ml-class. Однако, одно дело просмотреть несколько видео-лекций, поотвечать на вопросики quiz'ов и написать десяток программ в Matlab/Octave, другое дело начать применять полученные знания на практике. Дабы знания полученые от Andrew Ng не угодили в тот же тёмный угол моего мозга, где заблудились dft, Специальная теория относительности и Уравнение Эйлера Лагранжа, я решил не повторять институтских ошибок и, пока знания ещё свежи в памяти, практиковаться как можно больше.

И тут как раз на наш сайтик приехал DDoS. Отбиваться от которого можно было админско-программерскими (grep / awk / etc) способами или же прибегнуть к использованию технологий машинного обучения.

Далее пойдёт рассказ о создании нейронной сети на Python 2.7 / PyBrain и её применении для защиты от DDoS'а.

Читать дальше →
Всего голосов 177: ↑174 и ↓3+171
Комментарии46

Тонкости построения сетевых моделей в Python

Время на прочтение5 мин
Количество просмотров15K
Что является основным инструментом, который использует руководитель при управлении проектом? Принято считать, что основным инструментом руководителя проекта является календарный план, в основе которого лежит сетевая модель работ по проекту. Однажды мне довелось реализовать сетевую модель работ на языке Python (код и описание здесь). Ниже приведены уроки, извлеченные по результатам проделанной работы.
Читать дальше →
Всего голосов 21: ↑16 и ↓5+11
Комментарии13

Android, Ubuntu и Python: автоматизация записи интернет-радио и синхронизация on-air

Время на прочтение9 мин
Количество просмотров3.1K
Привет всему сообществу Хабра!
Наверняка многие по дороге 'дом' <--> 'работа' слушают в пути музыку со своего Android-фона. Я тоже частенько досыпаю в метро под бодрый breaks лишние 10-20 минут. В очередной поездке до места оперативного базирования, наслаждаясь треками, которым уже «сто лет в обед» сделал себе заметку в голове, что нужно бы обновить вечерком фонотеку. Конечно же, заметка была благополучно забыта в вихрях рабочего дня, и на следующее утро я опять ехал с заезженной пластинкой. Немного прикинул и решил, что надо бы автоматизировать этот процесс, дабы исключить мое богомерзкое влияние на дело автоматизации.
Заинтересованным гражданам — добро пожаловать под кат.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+20
Комментарии10

Информация

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