Skip to content

antonshalin76/DataScientist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Портфолио: Data Scientist

Обо мне

Привет! Меня зовут Антон Шалин, я аналитик данных и data scientist.

В этом репозитории вы можете найти некоторые из моих практических проектов по data science (нейросетям).

Работы по аналитике данных смотрим в соседней ветке

Навыки и технологии

  • Инструменты для создания, обучения и применения нейросетей: Python, Keras/Tensorflow, Pandas , Numpy, Matplotlib
  • Среды: Google Colab, Jupyter Notebook, Docker

Проекты

Распознавание звуковых событий по аудиодорожкам с камер видеонаблюдения.

Что нужно было сделать:

  1. Подобрать и реализовать подходящую архитектуру модели для распознавания (классификации) звуковых событий.
  2. Прочитать mp3 файлы с аудиодорожками, перевести их в формат принимаемый нейросетью.
  3. Проанализировать состав и содержимое каждой дорожки, провести фильтрацию и адаптацию данных.
  4. Повести финишный анализ, вычленить присутствующие звуковые события и соответствующие временные метки (длительность, время начала и окончания событий).
  5. Оформить код и инструкции для использования другим специалистом.
  6. Упаковать решение в Docker.

Сделал:

Классификации.

Что нужно было сделать:

  1. Задача №1. Определение аудиожанров по фрагментам дорожек.
  2. Задача №2. Идентификация пассажиров автобусов по признаку входящий/выходящий.

Сделал:

  1. Задача №1. Построил одномерную сверточную модель Conv1D со скользящим окном. Получил точность классификации жанра на тестовых данных 60%.
  2. Задача №2. Построил Conv2D + Dense модель с модулем аугментации несбалансированных данных датасета. Получил точность распознавания 91% на тестовом наборе данных.

Регрессии.

Что нужно было сделать:

  1. Задача №1. Прогноз трафика сайта по историческим данным. Добиться максимально точного соответствия между графиками корреляции исходного сигнала и прогноза.
  2. Задача №2. Прогноз цены акций на 3 шага вперед.

Сделал:

  1. Задача №1. Характер данных не очень сложный, с выраженными периодами колебаний. С такой задачей отлично справилась модель на одномерных свертках Conv1D + Dense.
  2. Задача №2. Предсказание цен акций хорошо известно своей сложностью. Неплохих результатов прогноза на архитектуре сети seq2seq 3 значения вперед удалось добиться при обучении на трехлетнем датасете минутных данных при анализе по истории скользящим окном на 240 значений.

Генерация.

Что нужно было сделать:

  1. Задача №1. Очистить картинку от "загрязнений" черными квадратами в случайных областях.
  2. Задача №2. Построить и научить нейронку генерировать картинки по набору признаков (структурированному описанию).
  3. Задача №3. Научить нейронку генерировать фейковые картинки, пытаясь выдать их за настоящие из предложенного набора.

Сделал:

  1. Задача №1. Взял исходные картинки. На них в случайных местах нанес чёрные квадраты размером 8х8. Сделал сверточный автокодировщик (CAE) и обучил его восстанавливать оригинальные изображения из "зашумленных" квадратом изображений. Получил практически идеальный MSE на тестовой выборке: 0.003
  2. Задача №2. Взял гугловский датасет с мультяшными персонажами и файлами описаний к ним. Построил и обучил сверточный вариационный автокодировщик (СVAE) на данном датасете. В итоге модель генерирует новых персонажей только по таблице описаний-признаков из 19 случайных значений.
  3. Задача №3. Для таких задач придумана архитектура генеративно-состязательных сетей (GAN). В них кодер пытается создать картинку из шума максимально похожую на оригинал, а декодер стремиться максимально точно выявить подмену и указать оригинальная или созданная кодером картинка ему предъявлена. В результате такой состязательности в процессе обучения, кодер становится способен создавать картинки, которые декодер в пределе правильно распознает с вероятностью 1/2. Вот именно такую нейронку построил и обучил в рамках имеющихся вычислительных возможностей Google Colab.

Сегментация.

Что нужно было сделать:

  1. Задача №1. Сегментация изображений со стройплощадки. Требуется заполнить соответствующим цветом области на изображении по 7 категориям объектов на них.
  2. Задача №2. На датасете изображений клеток решить задачу сегментации для новых несегментированных изображений.

Сделал:

  1. Задача №1. Изображения со стройплощадке отличаются множеством мелких деталей, хаотично раскиданных по обрабатываемому полю. При этом сегментировать требуется довольно крупные участки и с четким выделением границ объектов по классификатору объектов. Одна из лучших архитектур для такой задачи является PSPnet. Именно ее и реализовал для решения этой задачи.
  2. Задача №2. Архитектура U-Net тоже отлично подходит для задач сегментации изображений, так как эффективно сочетает контекстную информацию с локальной, что позволяет точно сегментировать объекты на изображении. Для решения этой задачи я применил модифицированную версию архитектуры U-Net, усилив ее блоками внимания CBAM, которые разместил после каждого сверточного блока как в энкодере, так и в декодере. Это помогло модели лучше фокусироваться на ключевых признаках на каждом уровне абстракции.

Трансформер для перевода текста.

Что нужно было сделать:

    Задача. Создать полную архитектуру трансформера и обучить модель для перевода русского текста на английский. Используем базу ted_hrlr_translate/ru_to_en из tfds.

    Добиться более-менее адекватного перевода текста.

Сделал:

    Сформировал все необходимые архитектурные классы для сборки трансформера: CustomMHA (класс многоголового внимания), класс слоев энкодера, класс слоев декодера, энкодер, декодер и полную модель тренсформера. Для настройки изменения learning_rate в процессе обучения сделал класс CustomSchedule с механизмом прогрева warmup. Дополнительные функции: позиционное кодирование, маски для корректной работы механизмов внимания (учет padding в последовательностях и предотвращения "заглядывания" в будущее).

    Собрал и обучил трансформер для перевода текста ru-en в рамках возможностей ресурсов Google Colab.

Контактная информация

About

tasks and projects

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors