Введение
Машинное обучение — это алгоритм обучения, реализующий постепенное улучшение исполнения поставленной задачи. Важно знать типы машинного обучения, чтобы создать правильную среду обучения.
Обучение с учителем (Supervised). Данные в виде примеров с метками подаются компьютерной программе, которая при выполнении учится приближаться к точному предсказанию отношений между примерами и их метками на основе обратной связи. Будучи полностью обученной, программа сможет наблюдать никогда ранее не встречавшийся пример и предсказывать верную метку для него.
Обучение без учителя (Unsupervised)- самоорганизация старых данных в новые (кластеризация данных). Здесь исходные данные не имеют меток, данные получают их в результате обучения. Кластеризация данных, в отличие от классификации, подразумевает организацию данных без явно определяемых для этого признаков. Существенные признаки автоматически выделяются нейронной сетью из множества признаков, неявно заложенных в данных — например, в результате частоты их повторяемости.
Обучение с подкреплением (Reinforcement) — обучение на ошибках, которые определяются в результате действий. Для обучения с подкреплением нам нужен агент и среда, а также способ соединить их петлей обратной связи. Чтобы подключить агент к среде, мы предоставляем ему набор действий, которые он может предпринять. Чтобы подключить окружение к агенту, мы постоянно посылаем агенту два сигнала: обновленное состояние и вознаграждение (наш подкрепляющий сигнал).
Розенблатт пытался классифицировать различные алгоритмы обучения, называя их все системами подкрепления. Он даёт следующее определение: Системой подкрепления называется любой набор правил, на основании которых можно изменять с течением времени матрицу взаимодействия (или состояние памяти) перцептрона.
Предыдущие варианты обучения (с учителем и без учителя) заточены под выявление закономерностей в статических данных. В обучении с подкреплением цель (максимизация ожидаемого результата) достигается в результате взаимодействия Агента и Среды.
Существует множество задач, которые легко формулируются как один тип обучения, а затем преобразовываются в другую парадигму. Мы можем смешивать типы обучения, проектируя системы, которые учатся тем или иным способом, но объединяются в один более крупный алгоритм.
Следующим большим шагом вперед в AI станут системы, которые действительно воспринимают окружающий мир.
Подробнее см.:
- WHAT IS MACHINE LEARNING AND WHAT ARE ITS TYPES?
- Виды машинного обучения
- Руководство по искусственному интеллекту с Python
- Нейронные сети: практическое применение
- Для чего используются все виды нейронных сетей?
- Компьютерное зрение. Стэнфордский курс: лекция 1. Введение
- Шпаргалка по разновидностям нейронных сетей. Часть первая. Элементарные конфигурации
- Разнообразие нейронных сетей. Часть вторая. Продвинутые конфигурации
- Нейросеть научили описывать происходящее на видео
Алгоритмы машинного обучения
Подробнее см.:
Сверточная нейронная сеть
Сверточные нейронные сети — тип искусственной нейронной сети с прямой связью — представляют собой разновидности многослойных персептронов, которые предназначены для использования минимального количества предварительной обработки.
Те, кто занимался классикой распознавания изображений, знает, что предварительная обработка изображений строится на основе двумерных фильтров. Фильтр представляет собой матрицу коэффициентов, обычно заданную вручную. Эта матрица применяется к изображению с помощью математической операции, называемой сверткой. Суть этой операции в том, что каждый фрагмент изображения умножается на матрицу (ядро) свертки поэлементно и результат суммируется и записывается в аналогичную позицию выходного изображения. Основное свойство таких фильтров заключается в том, что значение их выхода тем больше чем больше фрагмент изображения похож на сам фильтр. Таким образом, изображение свернутое с неким ядром даст нам другое изображение, каждый пиксел которого будет означать степень похожести фрагмента изображения на фильтр. Иными словами это будет карта признаков.
В реальных сверточных сетях (Convolutional Neural Network, CNN) операция свертки изображения (Convolution) сочетается с операцией подвыборки (Subsampling) и другими.
Идея сверточных нейронных сетей заключается в чередовании сверточных слоев (C-layers), субдискретизирующих слоев (S-layers) и наличии полносвязных (F-layers) слоев на выходе. Такая архитектура стала фундаментальной для глубокого обучения, особенно с точки зрения распределения свойств изображения по всей картинке. Свёртки с обучаемыми параметрами позволяли с помощью нескольких параметров эффективно извлекать одинаковые свойства из разных мест.
Convolution — это операция между матрицей изображения и матрицей-ядром (фильтром), при которой каждый элемент (пиксель) в выходном изображении есть сумма произведений значения элемента ядра на значение соответствующего покрываемого элемента матрицы входящего изображения.
Для различных нейронов одного слоя используются одна и та же матрица весов, которая представляет собой ядро свёртки. Его «двигают» по всему обрабатываемому слою (в самом начале — непосредственно по входному изображению), формируя после каждого сдвига сигнал активации для нейрона следующего слоя с аналогичной позицией.
Subsampling реализует локальное усреднение откликов либо выбирает среди них максимальное значение.
Концепция разделяемых весов предполагает, что для большого количества связей используется очень небольшой набор весов. Т.е. если у нас имеется на входе изображение размерами 32х32 пикселя, то каждый из нейронов следующего слоя примет на вход только небольшой участок этого изображения размером, к примеру, 5х5, причем каждый из фрагментов будет обработан одним и тем же набором. Важно понимать, что самих наборов весов может быть много, но каждый из них будет применен ко всему слою.
Пулы слоев используют разные фильтры для идентификации различных частей изображения, таких как края, углы, и т. Д. Затем карта пространственных объектов преобразуется в длинный непрерывный линейный вектор. Этот процесс называется сплющиванием (flatten сглаживает). Эта упрощенная матрица проходит через полностью связанный слой для классификации изображений.
Классические задачи CNN:
- Определение границ — это самая низкоуровневая задача, для которой уже классически применяются сверточные нейронные сети.
- Определение вектора к нормали позволяет нам реконструировать трёхмерное изображение из двухмерного.
- Saliency, определение объектов внимания — это то, на что обратил бы внимание человек при рассмотрении этой картинки.
- Семантическая сегментация позволяет разделить объекты на классы по их структуре, ничего не зная об этих объектах, то есть еще до их распознавания.
- Семантическое выделение границ — это выделение границ, разбитых на классы.
- Выделение частей тела человека.
- И самая высокоуровневая задача — распознавание самих объектов, например, распознавание лиц.
Подробнее см.:
- Understanding Convolutional Neural Network
- Decrypting Convolution Neural Network using simple images
- Нейронные сети: практическое применение
- Opening the black box of vision AI algorithms
- Андрей Созыкин. Сверточные нейронные сети
- Сверточные нейронные сети (Ю.Н. Махлаев, А.В. Кухарев)
- Сверточная нейронная сеть: структура, топология, функции активации и обучающее множество
- [Обзор] Различные типы сверточных слоев в нейронных сетях
- Применение нейросетей в распознавании изображений
- Архитектуры нейросетей
- Understanding your Convolution network with Visualizations
- Learn Convolutional Neural Network from basic and its implementation in Keras
- Convolutions Demystified…
- Deep Learning with Neural Networks-Part 3. Convolutional Neural Networks (CNN)
Рекуррентная нейронная сеть
Рекуррентные нейронные сети — это один тип алгоритма, ориентированного на глубокое обучение, который следует последовательному подходу. В нейронных сетях мы всегда предполагаем, что каждый вход и выход не зависит от всех других слоев. Нейронные сети такого типа называются рекуррентными, поскольку они выполняют математические вычисления последовательно, выполняя одну задачу за другой.
Наиболее важное различие между CNN и RNN заключается в том, что CNN — это нейронная сеть с непрерывным движением, а RNN — рекуррентная нейронная сеть. В CNN информация течет только в прямом направлении, в то время как в RNN информация течет вперед и назад. RNN обучается распознавать шаблоны во времени, в то время как CNN учится распознавать шаблоны в пространстве, и, следовательно, CNN учится распознавать компоненты в изображении, такие как линии, края, кривые и т. Д.
Рекуррентная нейронная сеть, в отличие от прямой нейронной сети, является вариантом рекурсивной ИНС, в которой связи между нейронами — направленные циклы. Последнее означает, что выходная информация зависит не только от текущего входа, но также от состояний нейрона на предыдущем шаге.
Рекуррентные нейронные сети — в отличие от нейронных сетей с прямой связью — могут использовать свою внутреннюю память для обработки произвольных последовательностей входных данных.
Рекуррентные нейронные сети очень похожи на обычные нейронные сети, за исключением того, что один или несколько скрытых слоев связаны с самим собой. Таким образом, мы добавляем отношение к тому, что мы видели до сих пор, с новыми входами, используемыми в настоящее время. Это очень полезно, если мы пытаемся смоделировать то, что зависит от времени. В этот момент мы используем скрытое состояние предыдущего момента, а также входные данные текущего момента для расчета текущего выхода.
Наиболее простым случаем рекуррентной сети является один слой нейронов, охваченный обратными связями. При этом каждый нейрон получает задержанные выходные сигналы всех остальных нейронов
данная сеть отличается лишь тем, что сигнал с внутреннего слоя поступает на дополнительные входы, такие дополнительные входы называют контекстом, которые служат для хранения информации о предыдущем стимуле, благодаря чему реакция сети теперь зависит не только от текущего стимула, но и предыдущего
Мы можем видеть, что они могут быть применены непосредственно к строкам текста, где значение текущего слова обычно зависит от предыдущих слов, которые встречались до сих пор.
Человек не начинает мыслить с начала каждую секунду. Читая эту статью, вы понимаете каждое слово на основе понимания предыдущих слов. То, что я говорил последним, повлияет на то, что я буду говорить.
Что такое рекуррентные нейронные сети? Это примерно то же самое, что и обычные нейронные сети, но с обратной связью. Обратная связь нам нужна, чтобы передавать на вход нейронной сети или на какой-то из ее слоев предыдущее состояние системы.
Предположим, мы обрабатываем эмоции. Даже в улыбке — одной из самых простых эмоций — есть несколько моментов: от нейтрального выражения лица до того момента, когда у нас будет полная улыбка. Они идут друг за другом последовательно. Чтоб это хорошо понимать, нам нужно уметь наблюдать за тем, как это происходит, передавать то, что было на предыдущем кадре в следующий шаг работы системы.
Рекуррентные нейронные сети (Recurrent Neural Networks, RNNs) — популярные модели, используемые в обработке естественного языка (NLP). Во-первых, они оценивают произвольные предложения на основе того, насколько часто они встречались в текстах. Это дает нам меру грамматической и семантической корректности. Такие модели используются в машинном переводе. Во-вторых, языковые модели генерируют новый текст. Обучение модели на поэмах Шекспира позволит генерировать новый текст, похожий на Шекспира.
Учитывая последовательность слов, мы хотим предсказать вероятность каждого слова (в словаре). Языковые модели позволяют нам измерить вероятность выбора, что является важным вкладом в машинный перевод (поскольку предложения с большой вероятностью правильны).
Рекуррентные нейронные сети (РНС, recurrent neural network, RNN) содержат в себе обратные связи, позволяющие сохранять информацию. РНС, оказывается, не слишком отличаются от обычных нейронных сетей. РНС можно представить, как множество копий одной и той же нейронной сети, каждая из которых передает информацию последующей.
Рекуррентная нейронная сеть — это, по сути, стандартная нейронная сеть, которая была расширена во времени благодаря наличию ребер, которые вводятся в следующий временной шаг, а не в следующий слой на том же временном шаге. Сверточная сеть — это в основном стандартная нейронная сеть, которая была расширена в пространстве с использованием общих весов.
Между ними есть своего рода сходство, но оно довольно абстрактное (легче увидеть, если развернуть рекуррентную нейронную сеть)
Давайте посмотрим, как будет выглядеть РНС, если развернуть обратную связь:
Recurrent — повторяющийся, периодический
Вместе со сверточными нейронными сетями RNN использовались как часть модели генерации описаний неразмеченных изображений. Комбинированная модель совмещает сгенерированные слова с признаками, найденными на изображениях.
наиболее часто используемым типом RNN являются LSTM, которые намного лучше захватывают (хранят) долгосрочные зависимости, чем RNN.
Рекуррентные сети бывают следующих типов:
- «Один к одному». Такой тип нейросети применим, когда на вход поступает единичная информация и на выходе также получается единичная информация. Например, такой подход актуален при кодировании и раскодировании информации.
- «Один ко многим». Такой тип нейросети применим, когда на входе поступает единичная информация, а на выходе мы получаем последовательность. Например, на вход поступает одно изображение, а на выходе получаем текстовое описание того, что изображено на картинке.
- «Многие ко одному». Такой тип нейросети применим, когда на вход поступает множество какой-то информации, а на выходе мы получаем единый результат. Например, на вход идет множество изображений, а на выходе получаем, что на всех изображениях находится «автобус».
- «Многие ко многим». Такой тип нейросети применим, когда на вход поступает последовательность информации, а на выходе мы получаем измененную последовательность информации. Например, при машинном переводе текста на вход поступает текст на одном языке, а на выходе получается текст на другом языке.
Классические задачи RNN:
- Разработчики Facebook создали нейронную сеть, которая описывает происходящее на видео в реальном времени. В перспективе технология может помочь слабовидящим и незрячим людям в повседневной жизни, создавая описания к окружающему миру.
- анализ временных рядов
- автоматическая генерация текста
- Генерация изображений. В «чистом» виде рекуррентные нейронные сети не в состоянии генерировать изображения, но в тандеме со сверточными нейронными сетями делают это достаточно легко.
Подробнее см.:
- Введение в RNN Рекуррентные Нейронные Сети для начинающих
- Стэнфордский курс: лекция 10. Рекуррентные нейронные сети
- Рекуррентные нейросети | Нейросети для анализа текстов Андрей Созыкин
- Нейронные сети: практическое применение
- The Unreasonable Effectiveness of Recurrent Neural Networks
Рекуррентные сети: категории по объему ячейки памяти
У рекуррентной сети есть одна проблема — маленькая память. Память не способна «удержать» большие последовательности. Из-за этого, когда память перегружается информацией, нейросеть выдает ошибки и обучается не так эффективно, как хотелось бы. Чтобы частично решить эту проблему, были немного «расширены» блоки памяти. Таким образом, в связи с разным объемом ячейки памяти различают несколько видов рекуррентных сетей.
В зависимости от ячейки памяти, различают 3 категории рекуррентных сетей:
- Обычные рекуррентные сети, они же RNN. Именно им мы посвятили сегодняшнюю статью. Проблема с переполнением памяти связана с ними, поэтому их используют в тех задачах, когда нужно не генерировать много значений, а лишь автоматически дополнять какую-то информацию.
- Рекуррентная сеть с долгой памятью, она же LSTM. Подобные сети решили проблему с памятью за счет расширения ячейки памяти. Такие сети годятся для выполнения сложных задач, например, с их помощью можно: сочинять музыку, генерировать текст, похожий по стилю на текст А. С. Пушкина и др. Но в отличие от первого вида, они потребляют много системных ресурсов.
- Управляемые рекуррентные сети, они же GRU. По сути, представляют собой лайт-версию предыдущего вида сети. Ячейки с таким же объемом памяти, но обработка информации идет несколько другим путем, слегка «обрезанным» по функциональности.
Подробнее см.:
- 7 архитектур нейронных сетей для решения задач NLP
- Рекуррентные нейронные сети: типы, обучение, примеры и применение
- Основы LSTM нейронных сетей
- Знакомство с архитектурой LSTM-сетей
- LSTM for Action Recognition
- Human Action Recognition using Detectron2 and LSTM
GAN
Обучение без учителя (unsupervised learning, неконтролируемое обучение) – класс методов машинного обучения для поиска шаблонов в наборе данных. Данные, получаемые на вход таких алгоритмов обычно не размечены, то есть передаются только входные переменные X без соответствующих меток y. Если по каким-то причинам у нас вместо пары вход-выход есть только вход, то мы все равно можем обучить нейросеть находить эти представления — с помощью автоэкодеров или генеративных состязательных сетей.
Автоэнкодеры. Автоэнкодеры принимают входные данные, кодируют их, а затем пытаются воссоздать начальные данные из полученного кода. Не так много реальных ситуаций, когда используют простой автоэнкодер. Но стоит добавить слои и возможности расширятся: используя зашумленные и исходные версии изображений для обучения, автоэнкодеры могут удалять шум из видеоданных, изображений или медицинских сканов, чтобы повысить качество данных.
В обучении без учителя сложно вычислить точность алгоритма, так как в данных отсутствуют «правильные ответы» или метки. Но размеченные данные часто ненадежные или их слишком дорого получить. В таких случаях, предоставляя модели свободу действий для поиска зависимостей, можно получить хорошие результаты.
Генеративно-состязательная сеть (англ. Generative adversarial network, GAN) — алгоритм машинного обучения без учителя, построенный на комбинации из двух нейронных сетей, одна из которых (сеть G) генерирует образцы ,а другая (сеть D) старается отличить правильные («подлинные») образцы от неправильных (см. Дискриминативная модель). Так как сети G и D имеют противоположные цели — создать образцы и отбраковать образцы — между ними возникает антагонистическая игра.
Подробнее см.:
- Генеративно-состязательная сеть (англ. Generative adversarial network, сокращённо GAN) и GPT.
- RNN
- Глубокое обучение с подкреплением (reinforcement deep learning)
- Рекуррентные нейронные сети
- Знакомство с архитектурами для задач классификации: CNN, Faster R-CNN, ResNet; детекции: YOLO, HOG;
сегментация: U-Net, DeepLab, PSPNet;
Сверточные нейронные сети доминируют в области задач компьютерного зрения, и теперь шум создают Трансформеры. Благодаря своему очень мощному архитектурному дизайну трансформеры были очень успешными в области НЛП, и теперь они делают то же самое с видением. Патчи группируют вместе небольшие области изображений в отдельные входные объекты, чтобы их можно было применить к более крупным изображениям. обычно в CNNS форма похожа на пирамиду, где размер уменьшается от входа к окончательному выходу. Такой тип архитектуры, в которой размер и форма остаются неизменными во всем, называется «изотропный»Архитектура. В основном он использовался в трансформерах Vision.
Авторы считают, что с большим количеством слоев, большим размером патча и некоторыми настройками гиперпараметров производительность модели можно улучшить.
Оптимизация модели требует поиска наилучших параметров (Гиперпараметры), минимизирующих потери тренировочного набора. Искусство уменьшения переоснащения называется регуляризацией.
Не существует наилучшей практики для определения количества слоев. Вы должны начать с небольшого количества слоя и увеличивать его размер, пока не найдете подходящую модель.
Размер пакета — один из наиболее важных гиперпараметров, которые нужно настраивать в современных системах глубокого обучения. Практики часто хотят использовать больший размер пакета для обучения своей модели, поскольку он позволяет ускорить вычисления за счет параллелизма графических процессоров. Однако хорошо известно, что слишком большой размер партии приведет к плохому обобщению(хотя в настоящее время неизвестно, почему это так).
Для выпуклых функций, которые мы пытаемся оптимизировать, существует неизбежное противоречие между преимуществами меньшего и большего размера пакетов. С одной стороны, использование пакета, равного всему набору данных, гарантирует сходимость к глобальным оптимумам целевой функции. Однако это происходит за счет более медленной эмпирической конвергенции к оптимуму. С другой стороны, эмпирически показано, что использование меньших размеров партии приводит к более быстрой сходимости к «хорошим» решениям. Это интуитивно объясняется тем фактом, что меньшие размеры пакетов позволяют модели «начать обучение до того, как ей нужно будет увидеть все данные». Обратной стороной использования меньшего размера пакета является то, что модель не гарантирует сходимость к глобальным оптимумам. Он будет колебаться вокруг глобальных оптимумов, оставаясь за пределами некоторых ϵ-шар оптимумов, где ϵ зависит от отношения размера пакета к размеру набора данных. Поэтому при отсутствии вычислительных ограничений часто рекомендуется начинать с небольшого размера пакета, используя преимущества более быстрой динамики обучения, и неуклонно увеличивать размер пакета посредством обучения, также пользуясь преимуществами гарантированной сходимости.
большой размер серии требует меньше времени на цикл, но выдает более точные шаги обучения. Напротив, меньший размер серии выдает более случайный результат, но требует больше шагов для компенсации этого.
Полезные ссылки:
- 3D Shape Detection System
- OMNIVORE: A Single Model for Many Visual Modalities |Paper Summary|
- Understanding Transfer Learning: Unlocking the power of pre-trained models
- Neural Style Transfer
- SuperPoint: Self-Supervised Interest Point Detection and Description
- Single Image 3D Reconstruction
- M-LSD : Machine Learning Model for Detecting Wireframes
- Retina Blood Vessel Segmentation using UNET
- Building a Gaze Estimator For Full Face Images Using ResNet-50
- Статьи Hunter Heidenreich
- Нейронные сети: практическое применение
- 10 Open Source Datasets for Machine Learning
- CVPR 2021(статьи по тематике CV за 2021 год)
- Datasets @ CVPR 2021 : Problems that shouldn’t be missed
- Robotic Grasp Detection — Resnet, EfficientNet
- Text generation using LSTM
- Traffic sign classification using Convolutional Neural Network
- Dog Breed Classification using Deep Learning
- What is RESUNET — Idiot Developer
- Instance segmentation of objects with lane detection on road.
- Semantic Segmentation: The easiest possible implementation in code!
- CNN Model Compression via Pruning
- Компьютерное зрение и глубокое обучение — часть 2
- Сверхвысокое разрешение изображения ?!
- This AI makes blurry faces look 8 times sharper! SwinIR: Photo Upsampling
- PoseResnet : A Top-down Machine Learning Model for Pose Estimation
- FLAVR : A Machine Learning Model to Increase Video Frame Rate
- Stroke Detection using Neural Networks
- Semantic Segmentation: U-Net
- CLIP: revolution in zero-shot learning
- Recognizing 400 different activities in videos using Python and OpenCV
- How to build an image classifier with greater than 97% accuracy
- Few Shot Learning from Scratch
- The best explanation of Convolutional Neural Networks on the Internet!
- Speech Recognition by using Deep Learning
- How Do Neural Networks Really Work in the Deep Learning?
- Perception.AI
- Transformer в картинках
- Introduction to Convolutional Networks
- LearnOpenCV- code for Computer Vision, Deep learning, and AI articles!!!
- Deep learning based Object Detection and Instance Segmentation using Mask RCNN in OpenCV (Python / C++)
- PyTorch — Training Fruit 360 Classifier Under 5 mins
- An Introduction to Automating Image Processing with Deep Learning
- When to use different machine learning algorithms: a simple guide
- A better understanding how a CNN works (Code available)
- Deep Learning for Marble Defect Classification
- 7 Different Convolutions for designing CNNs that will Level-up your Computer Vision project
- State-of-the-Art Convolutional Neural Networks Explained — DenseNets
- Celebrity Face Recognition using KNN from Scratch
- Neural Networks and Deep Learning
- A Guide to Deep Learning and Neural Networks
- History of Deep Learning
- Intro to Machine Learning
- Fall Detection with CNN architecture
- Face Emotion Recognition — DeepCNN Python
- Short Introduction to Convolutions and Pooling: Deep Learning 101!
- An Overview on Convolutional Neural Networks
- Convolutional Neural Networks for Visual Recognition
- How to Build a Computer Vision Model
- YOLOX: Main Idea Behind Latest YOLO Algorithm
- Yolov5 Object Detection with Your Own Dataset
- U-Net: Convolutional Networks for Biomedical Image Segmentation
- Deep Learning based Human Pose Estimation using OpenCV and MediaPipe
- Machine Learning and Chess
- Self-Driving Car with YOLOv5 and Roboflow
- Swin Transformer is all you need for Computer Vision
- Bernie Sanders Detector using Scaled YOLOv4 & YOLOv5 in 5 Steps
- Automated Hyperparameter Tuning with Keras Tuner and TensorFlow 2.0
- Perceptual Losses for Deep Image Restoration
- Effect of batch size on training dynamics
- Глубокое обучение: быстрый старт для разработчиков
- Краткий курс машинного обучения или как создать нейронную сеть для решения скоринг задачи
- Улучшение способа обучения нейронных сетей
- Tuning the Hyperparameters and Layers of Neural Network Deep Learning
- Batch Normalization How It Really Works?
- Detecting Brain Tumours From MRI Scans Using a CNN
- Breast Cancer Detection Using Deep Learning
- Object Detection Using TensorFlow
- Pneumothorax Detection
- Gender Prediction And Age Detection In Images Using OpenCV
- Convolutional Neural Network for Detecting Cancer Tumors in Microscopic Images
- Jigsaw Puzzle AI from A to Z
- How to change Image background using Deeplabv3 in Tensorflow in Python
- Seeing Clearly: Advancing Robotic Stereo Vision
- Custom OCR with Machine Learning
- CrowdCounting : A Machine Learning Model for Counting People
- An attempt at explaining all the technicalities involved with convolutional neural networks
- Do You Visualize DataLoaders for Deep Neural Networks?
- U-Net from Scratch using Tensorflow
- Disease Classification using Medical MNIST
- How to Pick the Optimal Image Size for Training Convolution Neural Network?
- What a CNN see — visualizing intermediate output of the conv layers
- Paper Explained — A Full-Image Full-Resolution End-to-End-Trainable CNN Framework for Image Forgery Detection
- Deep Learning Pretrained Models
- MARS : A Machine Learning Model for Identifying Actions from Videos
- DeepFakes — Production & Detection using various Deep Learning Methodologies.
- Image/Video Deep Anomaly Detection: A Survey
- A Beginner’s Introduction to SVM
- Instance Segmentation: Most Challenging Problem in Computer Vision
- Designing a Custom Neural Network for Object Detection
- A 2021 Guide to improving CNNs-Training strategies: Training Methodology & Regularization
- AutoEncoders Explained
- Vanilla UNet vs UNet with EfficientNetB0 as Encoder
- VGG16 vs ResNet50 when used as encoder in UNET
- Transfer learning with PyTorch 🔥Part-1
- Transfer Learning with PyTorch 🔥 part 2:
- Multi-task learning in Computer Vision: Image classification
- Synthetic Data for Computer Vision: Closing the Sim-to-Real Gap
- The current state of domain adaptation in person re-ID
- A basic explanation how the gradient descent is determined during back-propagation