Мы верим в Бога, все остальные приносят данные — Эдвардс Деминг.

Что-то кричит о данных, не так ли?

Повсюду в этом огромном мире мы слышим разговоры об искусственном интеллекте, автоматизации, о том, как это изменит нашу жизнь, и прочее бла-бла-бла. Но задумывались ли вы на самом деле, как именно это делается? Каковы его компоненты?

Эта статья обо всем, кроме искусственного интеллекта. Это для технарей и таких энтузиастов AI-ML, как я.

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

Есть шесть различных подмножеств ИИ, за которыми стоит следить:

  • Машинное обучение
  • Глубокое обучение
  • Робототехника
  • Нейронные сети
  • НЛП
  • Компьютерное зрение

Машинное обучение

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

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

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

Это просто не заканчивается здесь; ML имеет множество фреймворков, которые поддерживаются такими языками программирования, как Python и R.

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

Scikit-learn

Scikit-learn — одна из старейших сред машинного обучения, разработанная David Cournapeau в рамках проекта Google Summer of Code в 2007 году. Доступная в виде библиотеки Python, она поддерживает как контролируемые, так и неконтролируемые алгоритмы обучения.

Scikit-learn построен на основе SciPy, набора научных инструментов с открытым исходным кодом для разработчиков Python. За кулисами SciPy использует NumPy для математических вычислений, Matplotlib для визуализации, Pandas для обработки данных и SymPy для своих алгебраических возможностей. Scikit-learn расширяет стек SciPy за счет возможностей моделирования и обучения.

Scikit-learn лучше всего подходит для обучения моделей на основе структурированных данных, представленных обычно в табличной форме. Поскольку он имеет дело только с классическими методами машинного обучения, которые не используют нейронные сети и глубокое обучение для обучения, Scikit-learn не нуждается в графических процессорах. Разработчики Python могут быстро начать работу со Scikit-learn, установив пакет.

ТензорФлоу

TensorFlow — одна из самых популярных сред машинного и глубокого обучения, используемых разработчиками и исследователями. Первоначально запущенный в 2007 году командой Google Brain, TensorFlow превратился в сквозную платформу машинного обучения. Это выходит за рамки обучения для поддержки подготовки данных, разработки функций и обслуживания моделей.

TensorFlow может работать на стандартном ЦП и специализированных ускорителях ИИ, включая GPU и TPU. Он доступен для 64-разрядных версий Linux, macOS, Windows и мобильных вычислительных платформ, включая Android и iOS. Модели, обученные в TensorFlow, можно развертывать на настольных компьютерах, в браузерах, на периферийных вычислительных устройствах и даже на микроконтроллерах. Эта широкая поддержка делает TensorFlow уникальным и готовым к работе.

Базовая библиотека TensorFlow может быть установлена ​​как модуль Python, работающий на платформах AMD и ARM. TensorFlow.js — это библиотека JavaScript для обучения и развертывания моделей в браузере и на Node.js. Для мобильных устройств, IoT и периферийных устройств TensorFlow Lite можно использовать для вывода моделей.

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

ПиТорч

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

По сравнению с другими средами глубокого обучения PyTorch имеет более короткую кривую обучения для разработчиков Python. Разработанный в Facebook AI and Research lab (FAIR), он получил признание разработчиков и исследователей.

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

Апач MXNet

Запущенный в 2017 году Apache MXNet является одним из недавних участников экосистемы глубокого обучения. Его уникальность заключается в поддержке различных языков, включая C++, Python, Java, Julia, Matlab, JavaScript, Go, R, Scala, Perl и Wolfram Language.

Apache MXNet был совместно разработан Карлосом Гестрином из Вашингтонского университета и исследователями из Университета Карнеги-Меллона. Он был выбран Amazon в качестве предпочтительной среды глубокого обучения для создания коммерческих продуктов и предложений платформы управляемого машинного обучения AWS. Сегодня большинство готовых моделей и алгоритмов, доступных на Amazon SageMaker, реализованы с помощью Apache MXNet.

Для разработчиков Python MXNet предоставляет комплексный и гибкий API для разработчиков с разным уровнем опыта и широким спектром требований. Подобно тому, как Keras предоставляет удобный для разработчиков высокоуровневый API для TensorFlow, Apache MXNet предоставляет Gluon API, который предоставляет чистый и простой API для глубокого обучения. Gluon имеет специализированные API GluonCV, GluonNLP и GluonTS, предназначенные для компьютерного зрения, обработки естественного языка и анализа временных рядов.

XGBoost

XGBoost — предпочтительная библиотека для обучения моделей на основе линейной регрессии и классификации. XGBoost расшифровывается как eXtreme Gradient Boosting.

XGBoost написан на C++ с интерфейсами для Python, R, Julia и Java. Он интегрирован со Scikit-learn как один из поддерживаемых алгоритмов модели. XGBoost основан на методе добавления новых моделей, которые предсказывают остатки или ошибки предыдущих моделей, а затем суммируются для получения окончательного прогноза. Он использует алгоритм градиентного спуска, чтобы минимизировать потери при добавлении новых моделей.

XGBoost эффективен при обучении моделей на основе небольших наборов данных с помощью Missi

XGBoost можно обучать на менее дорогих многоядерных процессорах вместо распределенного кластера GPU. При ограниченном объеме данных XGBoost оказывается наиболее эффективной и доступной библиотекой машинного обучения для обучения точных моделей.

Когда данные сильно структурированы и представляют собой одномерный массив, для обучения моделей используется комбинация Pandas и XGBoost. Изображения и видео, которые преобразуются в многомерные массивы или тензоры, лучше всего работают со средой глубокого обучения, такой как TensorFlow и PyTorch.

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

Помимо этого, многие более мелкие фреймворки также составляют часть ML.

Изучим тех.

Алгоритмы

Алгоритмы машинного обучения делятся на 4 типа:

  • Под наблюдением
  • Неконтролируемое обучение
  • Полуконтролируемое обучение
  • Обучение с подкреплением

Ниже приведен список 10 наиболее часто используемых алгоритмов машинного обучения:

  • Линейная регрессия
  • Логистическая регрессия
  • Дерево решений
  • Алгоритм SVM
  • Наивный байесовский алгоритм
  • Алгоритм KNN
  • К-средние
  • Алгоритм случайного леса
  • Алгоритмы уменьшения размерности
  • Алгоритм повышения градиента и алгоритм AdaBoosting

1. Линейная регрессия

Чтобы понять, как работает Линейная регрессия, представьте, как бы вы расположили случайные бревна в порядке возрастания их веса. Есть улов; однако — нельзя взвешивать каждое бревно. Вы должны угадать его вес, просто взглянув на высоту и обхват бревна (визуальный анализ) и расположив их, используя комбинацию этих видимых параметров. Вот такая линейная регрессия в машинном обучении.

В этом процессе устанавливается связь между независимыми и зависимыми переменными путем подгонки их к линии. Эта линия известна как линия регрессии и представлена ​​линейным уравнением Y = a * X + b.

В этом уравнении:

  • Y — зависимая переменная
  • а — наклон
  • X — Независимая переменная
  • б — перехват

Коэффициенты a и b получаются путем минимизации суммы квадратов разности расстояний между точками данных и линией регрессии.

2. Логистическая регрессия

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

Перечисленные ниже методы часто используются для улучшения моделей логистической регрессии:

  • включить условия взаимодействия
  • устранить особенности
  • упорядочить методы
  • использовать нелинейную модель

3. Дерево решений

Алгоритм дерева решений в машинном обучении — один из самых популярных алгоритмов, используемых сегодня; это контролируемый алгоритм обучения, который используется для классификации проблем. Он хорошо работает при классификации как категориальных, так и непрерывных зависимых переменных. Этот алгоритм делит совокупность на два или более однородных набора на основе наиболее значимых признаков/независимых переменных.

4. Алгоритм SVM (машина опорных векторов)

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

5. Наивный алгоритм Байеса

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

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

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

6. Алгоритм KNN (K-ближайшие соседи)

Этот алгоритм может применяться как к задачам классификации, так и к задачам регрессии. Судя по всему, в отрасли Data Science он более широко используется для решения задач классификации. Это простой алгоритм, который хранит все доступные случаи и классифицирует любые новые случаи, принимая большинство голосов своих k соседей. Затем случай относится к классу, с которым он имеет больше всего общего. Функция расстояния выполняет это измерение.

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

Что следует учитывать перед выбором алгоритма K ближайших соседей:

  • KNN требует больших вычислительных ресурсов
  • Переменные должны быть нормализованы, иначе переменные с более высоким диапазоном могут исказить алгоритм.
  • Данные по-прежнему нуждаются в предварительной обработке.

7. К-средние

Это алгоритм обучения без учителя, который решает проблемы кластеризации. Наборы данных классифицируются на определенное количество кластеров (назовем это число K) таким образом, что все точки данных в кластере однородны и неоднородны по сравнению с данными в других кластерах.

Как K-means формирует кластеры:

  • Алгоритм K-средних выбирает k точек, называемых центроидами, для каждого кластера.
  • Каждая точка данных образует кластер с ближайшими центроидами, то есть K кластеров.
  • Теперь он создает новые центроиды на основе существующих членов кластера.
  • С помощью этих новых центроидов определяется ближайшее расстояние для каждой точки данных. Этот процесс повторяется до тех пор, пока центроиды не изменятся.

8. Алгоритм случайного леса

Коллектив деревьев решений называется Случайный лес. Чтобы классифицировать новый объект на основе его атрибутов, каждое дерево классифицируется, и дерево голосует за этот класс. Лес выбирает классификацию, набравшую наибольшее количество голосов (из всех деревьев в лесу).

Каждое дерево сажают и выращивают следующим образом:

  • Если число случаев в обучающей выборке равно N, то случайным образом берется выборка из N случаев. Этот образец будет обучающим набором для выращивания дерева.
  • Если имеется M входных переменных, то задается число m‹‹M таким образом, что в каждом узле m переменных выбираются случайным образом из M, и лучшее разделение на этом m используется для разделения узла. В течение этого процесса значение m поддерживается постоянным.
  • Каждое дерево выращено в максимально возможной степени. Обрезки нет.

9. Алгоритмы уменьшения размерности

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

Алгоритмы уменьшения размерности, такие как Дерево решений, Факторный анализ, Коэффициент пропущенных значений и Случайный лес, могут помочь вам найти важные детали.

10. Алгоритм повышения градиента и алгоритм AdaBoosting

Gradient Boosting Algorithm и AdaBoosting Algorithm — это повышающие алгоритмы, используемые, когда необходимо обрабатывать огромные объемы данных, чтобы делать прогнозы с высокой точностью. Повышение — это ансамблевый алгоритм обучения, который сочетает в себе прогностическую силу нескольких базовых оценок для повышения надежности.

Нейронные сети

Различные типы нейронных сетей в глубоком обучении

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

  • Искусственные нейронные сети (ИНС)
  • Сверточные нейронные сети (CNN)
  • Рекуррентные нейронные сети (RNN)

Давайте подробно обсудим каждую нейронную сеть.

Что такое искусственная нейронная сеть (ИНС)

Один персептрон (или нейрон) можно представить как логистическую регрессию. Искусственная нейронная сеть, или ANN, представляет собой группу из нескольких персептронов/нейронов на каждом уровне. ИНС также известна как нейронная сеть с прямой связью, поскольку входные данные обрабатываются только в прямом направлении:

АНН

Как вы можете видеть здесь, ИНС состоит из 3 слоев — входного, скрытого и выходного. Входной слой принимает входные данные, скрытый слой обрабатывает входные данные, а выходной слой выдает результат. По сути, каждый слой пытается изучить определенные веса.

ИНС можно использовать для решения задач, связанных с:

  • Табличные данные
  • Данные изображения
  • Текстовые данные

Преимущества искусственной нейронной сети (ИНС)

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

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

Персептрон

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

Функция активации – это мощный инструмент ИНС!

Что такое рекуррентная нейронная сеть (RNN)

Давайте сначала попробуем понять разницу между RNN и ANN с точки зрения архитектуры:

Ограничение зацикливания на скрытом слое ИНС превращается в РНС.

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

  • Данные временного ряда
  • Текстовые данные
  • Аудиоданные

Преимущества рекуррентной нейронной сети (RNN)

  • RNN фиксирует последовательную информацию, присутствующую во входных данных, то есть зависимость между словами в тексте, делая прогнозы:

Модель Many2Many Seq2Seq

Как вы можете видеть здесь, вывод (o1, o2, o3, o4) на каждом временном шаге зависит не только от текущего слова, но и от предыдущих слов.

  • RNN совместно используют параметры на разных временных шагах. Это широко известно как Общий доступ к параметрам. Это приводит к меньшему количеству параметров для обучения и снижает вычислительные затраты.

Развернутая RNN

Как показано на рисунке выше, 3 матрицы весов — U, W, V — это матрицы весов, которые являются общими для всех временных шагов.

Что такое сверточная нейронная сеть (CNN)

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

Стандартными блоками CNN являются фильтры, также известные как ядра. Ядра используются для извлечения соответствующих функций из входных данных с помощью операции свертки. Давайте попробуем понять важность фильтров, использующих изображения в качестве входных данных. Свертывание изображения с фильтрами приводит к карте признаков:

Вывод свертки

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

Преимущества сверточной нейронной сети (CNN)

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

CNN — классификация изображений

  • CNN фиксирует пространственные особенности изображения. Пространственные функции относятся к расположению пикселей и отношениям между ними в изображении. Они помогают нам точно идентифицировать объект, местоположение объекта, а также его связь с другими объектами на изображении.

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

  • CNN также следует концепции совместного использования параметров. Один фильтр применяется к разным частям входных данных для создания карты объектов:

Свертывание изображения с фильтром

Обратите внимание, что карта объектов 2*2 создается путем наложения одного и того же фильтра 3*3 на разные части изображения.

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

Функции активации

1. Двоичная ступенчатая функция

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

Другими словами, если вход в функцию активации больше порога, то нейрон активируется, в противном случае он деактивируется, т. е. его выход не учитывается для следующего скрытого слоя. Давайте посмотрим на это математически -

f(x) = 1, x>=0
     = 0, x<0

Это простейшая функция активации, которую можно реализовать с помощью одного условия if-else в python.

def binary_step(x):
    if x<0:
        return 0
    else:
        return 1
binary_step(5), binary_step(-1)

Вывод:

(5,0)

Функцию бинарного шага можно использовать в качестве функции активации при создании бинарного классификатора. Как вы понимаете, эта функция бесполезна, если в целевой переменной несколько классов. Это одно из ограничений бинарной ступенчатой ​​функции.

Кроме того, градиент ступенчатой ​​функции равен нулю, что препятствует процессу обратного распространения. То есть, если вы вычислите производную f(x) по x, она окажется равной 0.

f'(x) = 0, for all x

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

2. Линейная функция

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

f(x)=ax

Здесь активация пропорциональна входу. Переменная «а» в этом случае может быть любой постоянной величиной. Давайте быстро определим функцию в Python:

def linear_function(x):
    return 4*x
linear_function(4), linear_function(-2)

Вывод:

(16, -8)

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

f'(x) = a

Хотя градиент здесь не обращается в нуль, но это константа, которая вообще не зависит от входного значения x. Это означает, что веса и смещения будут обновляться в процессе обратного распространения, но коэффициент обновления будет тем же самым.

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

3. Сигмовидная

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

f(x) = 1/(1+e^-x)

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

import numpy as np
def sigmoid_function(x):
    z = (1/(1 + np.exp(-x)))
    return z
sigmoid_function(7),sigmoid_function(-22)

Вывод:

(0.9990889488055994, 2.7894680920908113e-10)

Кроме того, как вы можете видеть на графике выше, это гладкая S-образная функция, непрерывно дифференцируемая. Производная этой функции получается (сигмоид(х)*(1-сигмоид(х)). Давайте посмотрим на график ее градиента.

f'(x) = sigmoid(x)*(1-sigmoid(x))

Значения градиента значительны для диапазона -3 и 3, но график становится более плоским в других областях. Это означает, что для значений больше 3 или меньше -3 будут очень маленькие градиенты. Давайте посмотрим на график его градиента.

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

4. Тан

Функция тангенса очень похожа на сигмовидную функцию. Единственное отличие состоит в том, что он симметричен относительно начала координат. Диапазон значений в этом случае составляет от -1 до 1. Таким образом, входы в следующие слои не всегда будут одного знака. Функция тангенса определяется как:

tanh(x)=2sigmoid(2x)-1

Чтобы закодировать это на python, давайте упростим предыдущее выражение.

tanh(x) = 2sigmoid(2x)-1
tanh(x) = 2/(1+e^(-2x)) -1

И вот код Python для того же самого:

def tanh_function(x):
    z = (2/(1 + np.exp(-2*x))) -1
    return z
tanh_function(0.5), tanh_function(-1)

Вывод:

(0.4621171572600098, -0.7615941559557646)

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

Давайте посмотрим на градиент функции tan h.

Градиент функции тангенса более крутой по сравнению с сигмовидной функцией. Вам может быть интересно, как мы решим, какую функцию активации выбрать? Обычно tanh предпочтительнее сигмовидной функции, поскольку она центрирована на нуле, а градиенты не ограничены движением в определенном направлении.

5. РеЛУ

Функция ReLU — еще одна нелинейная функция активации, получившая популярность в области глубокого обучения. ReLU расшифровывается как Rectified Linear Unit. Основное преимущество использования функции ReLU по сравнению с другими функциями активации заключается в том, что она не активирует все нейроны одновременно.

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

f(x)=max(0,x)

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

def relu_function(x):
    if x<0:
        return 0
    else:
        return x
relu_function(7), relu_function(-7)

Вывод:

(7, 0)

Давайте посмотрим на градиент функции ReLU.

f'(x) = 1, x>=0
      = 0, x<0

Если вы посмотрите на отрицательную сторону графика, то заметите, что значение градиента равно нулю. По этой причине в процессе обратного распространения не обновляются веса и смещения для некоторых нейронов. Это может создать мертвые нейроны, которые никогда не активируются. Об этом позаботится функция «Leaky» ReLU.

6. Дырявый ReLU

Функция Leaky ReLU — это не что иное, как улучшенная версия функции ReLU. Как мы видели, для функции ReLU градиент равен 0 для x‹0, что деактивирует нейроны в этой области.

Leaky ReLU предназначен для решения этой проблемы. Вместо того, чтобы определять функцию Relu как 0 для отрицательных значений x, мы определяем ее как чрезвычайно малую линейную составляющую x. Вот математическое выражение-

f(x)= 0.01x, x<0
    =   x, x>=0

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

f'(x) = 1, x>=0
     =0.01, x<0

Поскольку Leaky ReLU — это вариант ReLU, код Python можно реализовать с небольшой модификацией:

def leaky_relu_function(x):
    if x<0:
        return 0.01*x
    else:
        return x
leaky_relu_function(7), leaky_relu_function(-7)

Вывод:

(7, -0.07)

Помимо Leaky ReLU, существует еще несколько вариантов ReLU, два из которых наиболее популярны — параметризованная функция ReLU и экспоненциальный ReLU.

7. Параметризованный ReLU

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

f(x) = x, x>=0
    = ax, x<0

Когда значение фиксировано на 0,01, функция действует как функция Leaky ReLU. Однако в случае параметризованной функции ReLU «a» также является обучаемым параметром. Сеть также запоминает значение ‘a’ для более быстрой и оптимальной конвергенции.

Производная функции будет такой же, как функция Leaky ReLu, за исключением того, что значение 0,01 будет заменено значением a.

f'(x) = 1, x>=0 
      = a, x<0

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

8. Экспоненциальная линейная единица

Экспоненциальная линейная единица или сокращенно ELU также является вариантом выпрямленной линейной единицы (ReLU), которая изменяет наклон отрицательной части функции. В отличие от функций relu с утечкой и параметрических функций ReLU вместо прямой линии ELU использует логарифмическую кривую для определения отрицательных значений. Это определяется как

f(x) = x,   x>=0
    = a(e^x-1), x<0

Давайте определим эту функцию в python

def elu_function(x, a):
    if x<0:
        return a*(np.exp(x)-1)
    else:
        return x
elu_function(5, 0.1),elu_function(-5, 0.1)

Вывод:

(5, -0.09932620530009145)

Производная функции elu для значений x больше 0 равна 1, как и все варианты relu. Но для значений x‹0 производная будет a.e^x .

f'(x) = x,   x>=0
    = a(e^x), x<0

9. Свиш

Swish — менее известная функция активации, обнаруженная исследователями Google. Swish так же эффективен в вычислительном отношении, как ReLU, и показывает лучшую производительность, чем ReLU, на более глубоких моделях. Значения для swish варьируются от отрицательной бесконечности до бесконечности. Функция определяется как –

f(x) = x*sigmoid(x)
f(x) = x/(1-e^-x)

Как видите, кривая функции гладкая и функция дифференцируема во всех точках. Это полезно в процессе оптимизации модели и считается одной из причин, по которой swish превосходит ReLU.

Уникальность этой функции в том, что она не является монотонной. Это означает, что значение функции может уменьшаться, даже когда входные значения увеличиваются. Давайте посмотрим на код Python для функции swish.

def swish_function(x):
    return x/(1-np.exp(-x))
swish_function(-67), swish_function(4)

Вывод:

(5.349885844610276e-28, 4.074629441455096)

10. Софтмакс

Функция Softmax часто описывается как комбинация нескольких сигмоид. Мы знаем, что сигмоид возвращает значения от 0 до 1, которые можно рассматривать как вероятности того, что точка данных принадлежит определенному классу. Таким образом, сигмоид широко используется для задач бинарной классификации.

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

При построении сети для задачи с несколькими классами выходной слой будет иметь столько же нейронов, сколько классов в целевом объекте. Например, если у вас есть три класса, в выходном слое будет три нейрона. Предположим, вы получили выходные данные нейронов как [1,2, 0,9, 0,75].

Применив к этим значениям функцию softmax, вы получите следующий результат — [0,42, 0,31, 0,27]. Они представляют вероятность для точки данных, принадлежащей каждому классу. Обратите внимание, что сумма всех значений равна 1. Давайте закодируем это на python.

def softmax_function(x):
    z = np.exp(x)
    z_ = z/z.sum()
    return z_
softmax_function([0.8, 1.2, 3.1])

Вывод:

array([0.08021815, 0.11967141, 0.80011044])

Выбор правильной функции активации

Теперь, когда мы увидели так много функций активации, нам нужно немного логики/эвристики, чтобы знать, какую функцию активации следует использовать в какой ситуации. Хорошо это или плохо — эмпирического правила нет.

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

  • Сигмовидные функции и их комбинации обычно лучше работают в случае классификаторов.
  • Сигмоиды и функции tanh иногда избегают из-за проблемы исчезающего градиента.
  • Функция ReLU является общей функцией активации и используется в большинстве случаев в наши дни.
  • Если мы столкнемся со случаем мертвых нейронов в наших сетях, лучшим выбором будет дырявая функция ReLU.
  • Всегда помните, что функцию ReLU следует использовать только в скрытых слоях.
  • Как правило, вы можете начать с использования функции ReLU, а затем перейти к другим функциям активации, если ReLU не дает оптимального результата.

Глубокое обучение

Искусственный интеллект и машинное обучение — краеугольные камни следующей революции в вычислительной технике. Эти технологии основаны на способности распознавать закономерности, а затем на основе данных, наблюдаемых в прошлом, прогнозировать будущие результаты. Это объясняет предложения, которые предлагает Amazon, когда вы делаете покупки в Интернете, или то, как Netflix узнает о вашей склонности к плохим фильмам 80-х. Хотя машины, использующие принципы ИИ, часто называют умными, большинство из этих систем не обучаются сами по себе; необходимо вмешательство человеческого программирования. Исследователи данных готовят входные данные, выбирая переменные, которые будут использоваться для прогнозной аналитики. С другой стороны, глубокое обучение может выполнять эту работу автоматически.

Глубокое обучение можно рассматривать как подмножество машинного обучения. Это область, основанная на обучении и самосовершенствовании путем изучения компьютерных алгоритмов. В то время как машинное обучение использует более простые концепции, глубокое обучение работает с искусственными нейронными сетями, которые предназначены для имитации того, как люди думают и учатся. До недавнего времени нейронные сети были ограничены по вычислительной мощности и, следовательно, по сложности. Однако достижения в области аналитики больших данных позволили создать более крупные и сложные нейронные сети, позволяющие компьютерам наблюдать, учиться и реагировать на сложные ситуации быстрее, чем люди. Глубокое обучение помогло классификации изображений, языковому переводу, распознаванию речи. С его помощью можно решить любую задачу распознавания образов и без вмешательства человека.

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

Нейронные сети — это слои узлов, так же, как человеческий мозг состоит из нейронов. Узлы внутри отдельных слоев связаны с соседними слоями. Сеть считается более глубокой в ​​зависимости от количества слоев, которые она имеет. Один нейрон в человеческом мозгу получает тысячи сигналов от других нейронов. В искусственной нейронной сети сигналы проходят между узлами и присваивают соответствующие веса. Узел с более тяжелым весом окажет большее влияние на следующий слой узлов. Последний слой компилирует взвешенные входные данные для получения выходных данных. Системы глубокого обучения требуют мощного оборудования, потому что они обрабатывают большой объем данных и включают в себя несколько сложных математических расчетов. Однако даже с таким передовым оборудованием обучение нейронной сети может занять недели.

Обработка естественного языка

Что такое НЛП?

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

Почему НЛП важно?

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

Компании используют его для выполнения нескольких автоматизированных задач, таких как:
• обработка, анализ и архивирование больших документов
• анализ отзывов клиентов или записей колл-центра
• запуск чат-ботов для автоматизированного обслуживания клиентов
• Отвечайте на вопросы кто-что-когда-где
• Классифицируйте и извлекайте текст

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

Каковы варианты использования НЛП для бизнеса?

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

Редактирование конфиденциальных данных

Предприятия в страховом, юридическом и здравоохранительном секторах обрабатывают, сортируют и извлекают большие объемы конфиденциальных документов, таких как медицинские записи, финансовые данные и личные данные. Вместо проверки вручную компании используют технологию NLP для редактирования информации, позволяющей установить личность, и защиты конфиденциальных данных. Например, Chisel AI помогает страховым компаниям извлекать номера полисов, даты истечения срока действия и другие личные атрибуты клиентов из неструктурированных документов с помощью Amazon Comprehend.

Привлечения клиентов

Технологии НЛП позволяют чатам и голосовым ботам быть более похожими на людей при общении с клиентами. Предприятия используют чат-ботов, чтобы масштабировать возможности и качество обслуживания клиентов, сводя к минимуму эксплуатационные расходы. Компания PubNub, которая создает программное обеспечение для чат-ботов, использует Amazon Comprehend для предоставления локализованных функций чата для своих клиентов по всему миру. T-Mobile использует NLP для определения конкретных ключевых слов в текстовых сообщениях клиентов и предоставления персонализированных рекомендаций. Государственный университет Оклахомы внедряет чат-бот для вопросов и ответов для ответов на вопросы студентов с использованием технологии машинного обучения.

Бизнес-аналитика

Маркетологи используют инструменты NLP, такие как Amazon Comprehend и Amazon Lex, чтобы получить обоснованное представление о том, что клиенты думают о продукте или услугах компании. Сканируя определенные фразы, они могут оценить настроение и эмоции клиентов в письменных отзывах. Например, Success KPI предоставляет решения для обработки естественного языка, которые помогают компаниям сосредоточиться на целевых областях анализа настроений и помогают контакт-центрам получать полезную информацию из аналитики вызовов.

Как работает НЛП?

Обработка естественного языка (NLP) сочетает вычислительную лингвистику, машинное обучение и модели глубокого обучения для обработки человеческого языка.

Компьютерная лингвистика

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

Машинное обучение

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

Глубокое обучение

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

Шаги внедрения НЛП

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

Предварительная обработка

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

Вот описание этих техник:

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

Обучение

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

Развертывание и вывод

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

Что такое задачи НЛП?

Методы обработки естественного языка (NLP), или задачи NLP, разбивают человеческий текст или речь на более мелкие части, которые могут легко понять компьютерные программы. Общие возможности обработки и анализа текста в НЛП приведены ниже.

Тегирование частей речи

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

Значение слова

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

  • Летучая мышь — ночное существо.
  • Бейсболисты используют биту, чтобы отбить мяч.

Благодаря устранению неоднозначности смысла слова программное обеспечение NLP идентифицирует предполагаемое значение слова либо путем обучения его языковой модели, либо путем обращения к словарным определениям.

Распознавание речи

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

Машинный перевод

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

Распознавание именованных объектов

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

Рассмотрим следующий пример: «Джейн поехала в отпуск во Францию ​​и побаловала себя местной кухней».

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

Анализ настроений

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

Каковы подходы к обработке естественного языка?

Ниже мы приводим некоторые общие подходы к обработке естественного языка (NLP).

НЛП под наблюдением

Методы НЛП с учителем обучают программное обеспечение набором помеченных или известных входных и выходных данных. Сначала программа обрабатывает большие объемы известных данных и учится получать правильные выходные данные из любых неизвестных входных данных. Например, компании обучают инструменты НЛП классифицировать документы в соответствии с определенными метками.

Неконтролируемое НЛП

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

Понимание естественного языка

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

Генерация естественного языка

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

Робототехника и искусственный интеллект

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

  • Приводы. Приводы — это устройства, которые отвечают за перемещение и управление системой или машиной. Он помогает осуществлять физические движения путем преобразования энергии, такой как электрическая, гидравлическая, воздушная и т. д. Приводы могут создавать как линейные, так и вращательные движения.
  • Источник питания. Это электрическое устройство, которое подает электроэнергию на электрическую нагрузку. Основной функцией источника питания является преобразование электрического тока для питания нагрузки.
  • Электродвигатели. Это устройства, которые преобразуют электрическую энергию в механическую и необходимы для вращательного движения машин.
  • Пневматические воздушные мускулы. Воздушные мускулы — это мягкие пневматические устройства, идеально подходящие для робототехники. Они могут сжиматься, расширяться и работать за счет сжатого воздуха, заполняющего пневматическую камеру. Всякий раз, когда вводится воздух, он может сжиматься до 40%.
  • Мышечная проволока. Они сделаны из никель-титанового сплава под названием нитинол и имеют очень тонкую форму. Он также может расширяться и сжиматься, когда в него подается определенное количество тепла и электрического тока. Кроме того, в мартенситной форме его можно формовать и сгибать в различные формы. Они могут сжиматься на 5% при прохождении через них электрического тока.
  • Пьезодвигатели и ультразвуковые двигатели. Пьезоэлектрические двигатели или пьезодвигатели — это электрические устройства, которые получают электрический сигнал и прикладывают направленную силу к противоположной керамической пластине. Он помогает роботу двигаться в нужном направлении. Это наиболее подходящие электродвигатели для промышленных роботов.
  • Датчик. Они позволяют видеть, слышать, осязать и двигаться, как люди. Датчики — это устройства или машины, которые помогают обнаруживать события или изменения в окружающей среде и отправлять данные на процессор компьютера. Эти устройства обычно оснащены другими электронными устройствами. Подобно человеческим органам, электрический датчик также играет решающую роль в искусственном интеллекте и робототехнике. Алгоритмы ИИ управляют роботами, воспринимая окружающую среду, и предоставляют информацию в режиме реального времени процессорам компьютеров.

Приложения робототехники

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

  • Робототехника в оборонных отраслях: Оборонная отрасль, несомненно, является одной из основных частей любой страны. Каждая страна хочет, чтобы ее оборонная система была сильной. Роботы помогают приблизиться к труднодоступной и опасной зоне во время войны. DRDO разработала робота по имени Дакш, который безопасно уничтожает опасные для жизни объекты. Они помогают солдатам оставаться в безопасности и используются военными в боевых сценариях. Помимо боевой поддержки, роботы также используются в противолодочных операциях, огневой поддержке, управлении боевыми повреждениями, ударных миссиях и укладчиках.
  • Робототехника в медицинских секторах. Роботы также помогают в различных областях медицины, таких как лапароскопия, нейрохирургия, ортопедическая хирургия, дезинфекция помещений, выдача лекарств и в других областях медицины.
  • Робототехника в промышленном секторе. Роботы используются в различных отраслях промышленного производства, таких как резка, сварка, сборка, разборка, сборка и размещение печатных плат, упаковка и маркировка, укладка на поддоны, проверка и тестирование продукции, окраска. покрытие, сверление, полировка и обращение с материалами.
    Кроме того, технология робототехники повышает производительность и прибыльность и снижает трудозатраты человека, что является результатом меньшего физического напряжения и травм. Промышленный робот имеет ряд важных преимуществ, а именно:
  • Точность
  • Гибкость
  • Сниженная оплата труда
  • Низкий уровень шума
  • Меньше производственных повреждений
  • Повышенная производительность.
  • Робототехника в сфере развлечений. За последнее десятилетие использование роботов в сфере развлечений постоянно растет. Роботы используются в сфере развлечений, таких как фильмы, анимация, игры и мультфильмы. Роботы очень полезны там, где требуются повторяющиеся действия. Робот с камерой помогает снимать сцену фильма столько раз, сколько необходимо, не уставая и не раздражаясь. Знаменитая компания Disney выпустила сотни роботов для киноиндустрии.
  • Роботы в горнодобывающей промышленности. Робототехника очень полезна для различных приложений горнодобывающей промышленности, таких как роботизированное дозирование, выемка грунта и транспортировка, роботизированное картирование и съемка, роботизированное бурение и обработка взрывчатых веществ и т. д. Горный робот может перемещаться только по затопленным проходы и использовать камеры и другие датчики для обнаружения ценных полезных ископаемых. Кроме того, роботы также помогают при раскопках для обнаружения газов и других материалов и защищают людей от вреда и травм. Роботы-скалолазы используются для освоения космоса, а подводные дроны — для исследования океана.

Компьютерное зрение

Что такое компьютерное зрение?

Компьютерное зрение — это область искусственного интеллекта (ИИ), которая позволяет компьютерам и системам извлекать значимую информацию из цифровых изображений, видео и других визуальных входных данных, а также предпринимать действия или давать рекомендации на основе этой информации. Если ИИ позволяет компьютерам думать, то компьютерное зрение позволяет им видеть, наблюдать и понимать.

Компьютерное зрение работает почти так же, как и человеческое, за исключением того, что у человека есть фора. Преимущество человеческого зрения заключается в продолжительности жизни контекста, чтобы научиться различать объекты, как далеко они находятся, движутся ли они и есть ли что-то неправильное в изображении.

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

Компьютерное зрение используется в самых разных отраслях, от энергетики и коммунальных услуг до производства и автомобилестроения, и рынок продолжает расти. Ожидается, что к 2022 году он достигнет 48,6 млрд долларов США.

Как работает компьютерное зрение?

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

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

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

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

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

ФАКТОЗ

Факты об искусственном интеллекте

  • Устройства с поддержкой ИИ повсюду. Почти 77 процентов устройств сегодня используют технологию ИИ в той или иной форме.
  • Рост ИИ-стартапов ускорился в 14 раз с 2000 года. И мы готовы поспорить, что с каждым годом их становится все больше.
  • Бизнес-лидеры доверяют силе ИИ в стимулировании роста. 84% руководителей высшего звена считают, что им необходимо внедрить и использовать искусственный интеллект для достижения целей роста.
  • Мировой рынок ИИ переживает бум. К 2025 году он достигнет 190,61 миллиарда долларов при совокупном годовом темпе роста в 36,62 процента.
  • К 2030 году искусственный интеллект добавит к мировому ВВП 15,7 триллиона долларов, увеличив его на 14 процентов.
  • В этом мире будет больше помощников ИИ, чем людей. Прогнозы показывают, что к 2024 году в мире будет 8,4 миллиарда цифровых голосовых помощников на базе ИИ, что превышает общую численность населения мира.

Заключение

Итак, как мы ясно видели, ИИ — это гораздо больше того, что мы думаем. она больше всего на свете, возможно, методологически даже больше, чем черная дыра в ближайшем будущем. По сути, речь идет о статистике, о математике и, более того, об облегчении человеческого труда!

Да, в этом все дело. Искусственный интеллект — это хаос в области, и я уверен, что он не съест наши рабочие места, а скорее создаст их.

Я собираюсь оставить вас с этой одной цитатой:

«Года, проведенного в искусственном интеллекте, достаточно, чтобы заставить человека поверить в Бога».

До следующего раза, продолжайте учиться, продолжайте расти!!!