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

TensorFlow *

открытая библиотека для машинного обучения

Сначала показывать
Порог рейтинга
Уровень сложности

Часть 2. Перевод нейронной сети на базе Keras LSTM на работу с матричными операциями

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

В первой части части я перевел обученную модель полносвязной сети на базе Keras на работу с матричными вычислениями. Модель разработана для новостного агрегатора с целью фильтрации нежелательных новостей.

Но если посмотреть статью-руководство от tensorflow, можно увидеть, что одной из рекомендаций по классификации теста является использование сетей долгой краткосрочной памяти (LSTM).

Забегая вперед скажу, что мне не совсем подошла данная сеть, но это, вероятно, особенность моего датасета. Полносвязная сеть с эмбеддином обладает хорошим качеством, предсказуемостью и стабильностью результатов (объяснимое переобучение, влияние архитектуры сети на качество и т.д.). Ну и немаловажно - быстро обучается, в отличие от LSTM.

Но ради "академического" интереса обучим сеть c LSTM для бинароной классификации текста и переведем её также на работу только с матрицами. Это также наглядно покажет, как устроены ячейки LSTM.

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

Ломаем текстовую капчу на примере VK или брутфорсинг до сих пор актуален

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

Что мы знаем о капче? Капча - автоматизированный тест тьюринга, помогающий отсеивать подозрительные действия недобросовестных роботов от реальных людей. Но, к сожалению ( или к счастью, смотря для кого ), текстовая капча сильно устарела. Если еще 10 лет назад она была более-менее эффективным методом защиты от роботов, то сейчас ее может взломать обойти любой желающий робот, более-менее разбирающийся в компьютере.

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

А ну-ка поподробнее
Всего голосов 51: ↑48 и ↓3+58
Комментарии38

NLP для TensorFlow: Генерация текста

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

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

Читать далее
Всего голосов 10: ↑8 и ↓2+8
Комментарии3

Перевод предобученной модели Keras на матричные вычисления

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

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

Эта статья о том, как я переписал обученную в Keras сеть на работу с матричными операциями в Numpy. Заодно это помогло мне "заглянуть под капот" нейронной сети.

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

Истории

Разработка кросплатформенного приложения на Qt с использованием нейросетей, обученных на tensorflow

Уровень сложностиСложный
Время на прочтение14 мин
Количество просмотров9.7K

Разработка кроссплатформенного приложения на Qt с использованием нейросетей обученных на tensorflow.

Читать далее
Всего голосов 12: ↑9 и ↓3+14
Комментарии16

[Научпоп с кодом] Что такое «жидкая» нейросеть и как научить её играть в Atari?

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


Алгоритмы в основе традиционных сетей настраиваются во время обучения, когда подается огромное количество данных для калибровки наилучших значений их весов, ликвидные («текучие») нейронные сети лучше адаптируются.


«Они способны изменять свои основные уравнения на основе входных данных, которые они наблюдают», в частности, изменяя скорость реакции нейронов, — рассказывает директор Лаборатории компьютерных наук и искусственного интеллекта Массачусетского технологического института Даниэла Рус.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии5

MLflow: управление многозадачным обучением с независимыми моделями

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

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

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

DatRet: Реализация Tensorflow для табличных данных

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

Мой open-source продукт. Rete neurale per la previsione di Dati tabulari. (it.)

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

В данной статье рассмотрим причину создания данной библиотеки, проведем "туториал" и сравним точность прогнозирования DatRetClassifier и DatRetRegressor с классическими методами машинного обучения.

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

UNet++: Реализация архитектуры UNet++ на TensorFlow для сегментации ядер клеток

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

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

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

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

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

Мы хорошо знаем GAN за успехи в создании реалистичных изображений. Не так хорошо знаем о формировании табличных данных. Однако их возможно применять при одномоментной реализации табличных данных и изображений.

Зачем генерировать одновременно табличные данные и изображение?

Я создал приложение coronarography.ai. На вход нейронной сети подаются структурированные данные (факторы риска развития сердечных заболеваний) и изображение ЭКГ, на выходе получаем патологию магистральных артерий сердца. Мне стало интересно проверить точность прогнозирования обученной нейронной сети на синтетических сгенерированных данных. Почему бы и нет) Проведем аугментацию выборки при помощи GAN и посмотрим точность обученной нейронной сети на синтетических данных. Для этого необходимо эти синтетические данные получить.

Описание проблемы

Мы имеем структурированные данные. В них содержится информация по каждому наблюдаемому пациенту в виде наличия факторов риска развития сердечно-сосудистых заболеваний в бинарной форме. К каждому наблюдению прикреплено ЭКГ изображение. То есть одному пациенту соответствуют факторы риска и одно изображение ЭКГ, снятое до суток до выполнения инвазивной коронарографии, это данные которые прогнозирует основная обученная нейронная сеть.

Нам необходимо одновременно генерировать структурированные данные (факторы риска и таргеты виде поражения артерий сердца) и картинку - ЭКГ изображение. Я в литературе не встречал подобных примеров, чтобы генерировали одновременно табличные данных и картинку. Что ж, сделаем впервые). Сгенерируем 1500000 синтетических наблюдаемых в виде табличных данных и ЭКГ изображения.

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

Создание изображений с использованием генеративно-состязательных нейронных сетей (GAN) на примере ЭКГ

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

Для создания изображений с помощью GAN я буду использовать Tensorflow.

Генеративно-состязательная сеть (GAN) — это модель машинного обучения, в которой две нейронные сети соревнуются друг с другом, чтобы быть более точными в своих прогнозах.

Как работают GAN?

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

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

Зачем генерировать изображение ЭКГ?

Я создал проект coronarography.ai . В нем на вход подается изображение ЭКГ, а на выходе мы получаем наличие патологии магистральных артерий сердца. Мне стало интересно проверить принципиальную возможность генерации изображений ЭКГ и сравнить полученные изображения с реальными.

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

Применение генеративно-состязательных нейронных сетей (GAN) в клинических исследованиях

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

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

Существует 3 основных фазы клинических испытаний — фазы с 1 по 3. Испытания фазы 1 — это самые ранние фазы испытаний, а испытания фазы 3 — испытания более поздней фазы.

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

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии3

CORONAROGRAPHY.AI

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

Предложен новый подход в выявлении коронарной болезни сердца. С помощью нейросетевого анализа создана модель диагностики ишемической болезни сердца, выявляющая ишемию миокарда, патологию магистральных коронарных артерий. В задачу исследования входило сравнить точность обученной модели нейронной сети на входных структурированных данных (пол и возраст, уровень холестерина, наличие хронических заболеваний, наследственные факторы, образ жизни и пр.)  и ЭКГ-изображений с результатами классической инвазивной коронарографии. Доказана высокая чувствительность и достоверность предложенной диагностической модели на 1500150 наблюдений. Проведено сравнение модели с классическими методами диагностики преходящей ишемии миокарда – тредмил-тест, суточное мониторирование ЭКГ. Выявлено значимое превосходство представленной диагностической модели. Оценена точность прогнозов с профильными специалистами-кардиологами, ежедневно курирующих пациентов с ОКС. В данной статье также предложен новый метод экстраполяции выборки с помощью генеративно-состязательных нейронных сетей, позволяющим превзойти объём наблюдений, использующихся в классических мета-анализах.

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

IOS

Android

Читать далее
Всего голосов 7: ↑6 и ↓1+8
Комментарии2

Ближайшие события

AdIndex City Conference 2024
Дата26 июня
Время09:30
Место
Москва
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Hex: Мастерим бота

Время на прочтение29 мин
Количество просмотров2.8K
— Стало быть, эта штуковина только выглядит так, будто умеет думать? — Э… да.
— А на самом деле не думает? — Э… нет.
— То есть просто создаёт впечатление, будто бы думает, а на самом деле это всё показуха?
— Э… да. — Ну точь-в-точь как все мы.

                    Терри Пратчетт "Санта-Хрякус"

Триумфальные победы AlphaGo (и впоследствии AlphaZero) всколыхнули интерес общественности как к нейросетям, так и к настольным играм. Конечно, есть люди, которые считают, что AlphaZero «побеждает нечестно», поскольку на самом деле учится не совсем с нуля, а использует поиск Монте-Карло, в дополнение к тому, что ему советует нейросеть (говоря серьёзно, использование языковых моделей, в применении к настольным играм, выглядит интригующим и я желаю всяческих успехов в этом направлении), но хочется поэкспериментировать с чем-то не требующим грандиозных вычислительных мощностей и получить на выходе что-то, пусть и не играющее «на уровне Бога», но вполне пригодное для того чтобы играть с ним было интересно.

Мне важен результат и я готов использовать минимакс, Монте-Карло или даже нейросети, лишь бы добиться хоть какого-то успеха (особенно с учётом некоторых ограничений накладываемых JavaScript на производительность, по сравнению с компилируемыми языками и массовым использованием GPU). Разумеется, начинать эксперименты с Го несколько самонадеянно. К счастью, это не проблема. Я знаю много других игр.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии10

Учим Алису здороваться

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

Хочу поделиться опытом добавления некоторой вольности Алисе (внутри колонок поддерживающих локальный API).

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

Читать далее
Всего голосов 23: ↑21 и ↓2+21
Комментарии21

Как обнаружить выбросы автоэнкодером?

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

Если что-то не сжимается — возможно, что-то тут не так



Выпадающие значения, также называемые «выбросами», — привычная всем преграда, о которую спотыкаются наука о данных и машинное обучение. Концепция выпадения значений интуитивно понятна, но математическому определению поддаётся с трудом. Думаю, дело в том, что придумать такое определение довольно сложно, ведь выброс может по-разному восприниматься разными людьми. Подробности — к старту нашего флагманского курса по Data Science.

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

Multiple Instance Learning (MIL) для классификации наборов гистологических изображений со светлоклеточным раком почки

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

С учётом актуальности Multiple Instance Learning (далее: MIL) и, в частности, наличия преимуществ данного метода для анализа гистологических изображений, решил попробовать обучить модели с целью классификации наборов данных, на те, которые содержат только нормальные ткани и те, в которых встречаются изображения со светлоклеточным раком почки.

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

Конвертация нейросети из PyTorch в Tensorflow

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

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

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

Ищем скрытые смыслы. Графовые нейронные сети на основе Spektral

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

Развитие методов глубокого машинного обучения привело к росту популярности нейронных сетей в задачах распознавания образов, машинного перевода, генерации изображений и текстов и многих других. С 2009 года нейронные сети попытались применить напрямую в задачах обработки графов (к которым могут относиться системы веб-страниц, связанных ссылками, словари с определенными отношениями между словами, граф социальных связей и другие) и среди возможных задач можно определить поиск кластеров узлов, создание новых графов на основе имеющейся информации о структуре графа, расширение графа и предсказание новых связей и другие. Сейчас выделяют несколько типов нейронных сетей на основе графов - сверточные графовые сети (Convolutional Graph Network), графовые изоморные сети (Graph Isomorphism Network) и многие другие и они часто используются для анализа цитирования статей, исследования текста (представление предложения как графа с указанием типов отношений между словами), изучения взаимосвязанных структур (например, исследования белковых молекул, в частности сеть Alphafold использует модель GNN) и т.д. В статье мы рассмотрим некоторые общие вопросы создания и обучения графовых сетей на основе библиотеки Python Spektral.

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

4х повышение разрешения изображения с использованием ESRGAN

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

4х повышение разрешения изображения с использованием ESRGAN

В данной статье разобрано применение предобученной нейронной сети ESRGAN для увеличения разрешения изображения в четыре раза c использованием tensorflow hub.

Читать далее
Всего голосов 8: ↑3 и ↓50
Комментарии53