Задать вопрос эксперту
Алексей Свердлов
директор департамента аналитических решений
Алексей Свердлов
директор департамента аналитических решений
Алексей Свердлов
директор департамента аналитических решений
Почему глубокое обучение сейчас имеет такое значение? Что это дань моде или явление, способное действительно изменить многие привычные для нас вещи? Предлагаю подробно обсудить эту тему, начав с искусственных нейронных сетей и когнитивных вычислений, а закончив примерами глубокого обучения в действии.
В своей предыдущей статье я раскрыл значения многих умных слов и объяснил, что глубокое обучение — это подраздел машинного обучения. Чтобы понять глубокое обучение, для начала необходимо немного разобраться в искусственных нейронных сетях. Не волнуйтесь, поскольку я не являюсь ученым по данным, я не буду пытаться описать все математически. То есть, ни слова о взвешенных показателях, функциях активации и подобных терминах.
Глубокое обучение обычно используется при описании искусственных нейронных сетей с более чем одним скрытым слоем. Подробнее о том, что такое скрытый слой, я расскажу чуть позже. Теория заключается в том, что чем больше скрытых слоев у вас есть, тем больше вы можете изолировать конкретные области данных для классификации.
У Луиса Серрано есть отличная схема, которую я и буду использовать, чтобы объяснить концепцию изолирования областей для классификации данных. Мое объяснение будет ссылаться на этот рисунок:
На данном рисунке Луис изображает вводные, состоящие из двух значений (x и y). Имеющиеся у нас исторические данные показывают, что результат набора значений x и y является синим или красным (произвольный результат). Чтобы показать это наглядно, вы можете отобразить эти значения, как показано выше, если вы визуализируете ось X и Y.
Цель этой сети заключается в том, чтобы помочь обнаружить синие результаты. Для этого компьютер придумывает две разные регрессионные модели, чтобы получить вероятность того, является ли заданная точка синей или красной. Обычно результаты не идеальны, поэтому на изображении видно, что обе линии приводят к некоторым ошибкам. Но компьютер будет проводить оптимизацию, чтобы сократить количество этих ошибок.
С помощью двух регрессий компьютер затем может выделить синие элементы из двух моделей (с помощью дополнительных вычислений и какой-то другой магии), чтобы создать область, показанную справа. Эта третья область более точно анализирует данные и может обеспечить более высокую вероятность того, что есть синее, а что нет.
Другими словами, искусственные нейронные сети работают над разделением и классификацией данных, чтобы при предоставлении новых данных классифицировать их.
В приведенном выше примере это означает, что с появлением новой комбинации значений x и y, которой никогда не было ранее, вы можете пропустить ее через сеть. Сеть же сделает предположение о том, что результат будет синим с высокой долей вероятности (или красным). По определению, если выбор является двоичным, и вы также знаете, что вероятность синего результата очень низкая, то вы делаете вывод, что результат будет красный. Это довольно простой пример, но он хорошо иллюстрирует концепцию.
Поясним теперь термин «скрытые слои». Те, кто уже долго занимается данным вопросом, может начать бурную дискуссию о количестве этих слоев. Их может быть сотни. Многие, правда, утверждают, что большое количество не всегда оказывает существенное влияние на точность и может даже ее снизить. Ответ тут кроется в том, какую именно задачу вы решаете. Как и во всех моделях, лучшим способом решения будет пробовать несколько различных подходов, а затем выбрать лучший.
Очевидно, что:
Эти две вещи привели к росту использования графических процессоров в области глубокого обучения. Использование графического процессора позволяет проводить параллельные вычисления на большом количестве относительно дешевых процессоров, особенно когда вы обучаете искусственную нейронную сеть со многими скрытыми слоями и множеством входных данных.
Итак, давайте вернемся немного назад и посмотрим на графическое изображение простой искусственной нейронной сети. Она в целом состоит из трех элементов. Входной уровень, один или несколько скрытых слоев и выходной уровень. Эти же три слоя мы могли видеть на образце Луиса, который использовался ранее.
В такой нейронной сети все скрытые узлы связаны с их предшественниками и последователями. Такой вид нейронных сетей известен как сеть полной связи (Fully Connected Network). Есть способы создать процесс, называемый обрезкой, чтобы оборвать некоторые связи. В данной статье я это пропущу. Любая обрезка обычно выполняется только после того, как вы подготовили и обучили модель, и используется для повышения ее точности и эффективности.
Теперь, когда вы понимаете, как выглядит искусственная нейронная сеть, и что она пытается сделать, вам будет легко представить, что глубокая нейронная сеть очень на нее похожа. Основное различие состоит в том, что она обычно содержит два или более скрытых слоя (некоторые полагают, что нужно более двух скрытых слоев, чтобы получить хорошую модель глубокого обучения, но это зависит от конкретной задачи). Глубокое обучение открывает новые возможности для классификации с очень высоким уровнем точности. Это, пожалуй, наиболее заметный результат в быстро развивающемся мире речевой, текстовой и визуальной классификации.
Примером ограниченного искусственного интеллекта является созданная компанией Google модель для игры в Go. Одна из частей модели представляет из себя нейронную сеть глубокого обучения, обученную посредством проведения миллионов партий. Как вы видите, сеть содержит очень мало слоев. Он в конечном итоге приходит только к шести выводам, которые использовались для принятия решения в каждой игровой ситуации.
В настоящее время очень много внимания получают беспилотные автомобили, и, надо сказать, что это схожая концепция. Посмотрите блог Дэвида Синглтона, работающего в Google, в котором показано, как создать модель беспилотного автомобиля. Ниже приведен рисунок нейронной сети. Она достаточно сложная, со множеством скрытых слоев. В конечном счете, она представляет то, что должен делать автомобиль.
Внимательные читатели могли заметить слово «свертка» (convolution) на изображении сети AlphaGo. Объясняется это тем, что данные два примера используют сущность, называемую «сверточной нейронной сетью». Это нейронная сеть особого типа, созданная еще в 80-х годах, которая эффективна при обработке речи, текста и изображений. Оба примера, которые мы рассмотрели выше, используют визуальные данные.
Сверточные нейронные сети разбивают изображения на более мелкие части (свертки), а затем пытаются идентифицировать определенные признаки, используя фильтры, по которым ищутся конкретные шаблоны в изображении. Затем создается то, что называется «сверточным слоем». Все найденное затем используется в сети полной связи, чтобы определить, что действительно находится на изображении. Если вы захотите разобраться в этой теме, посмотрите видео Брэндона Рорера, сотрудника Facebook, в котором он подробно раскрывает эту тему.
На данный момент важно понимать, что глубокое обучение стоит за многими достижениями, которые мы сегодня видим в когнитивных вычислениях.
Когнитивные вычисления позволяют компьютерам взаимодействовать с нами в «человекоподобной форме». Это означает, что они способны понимать образы, речь, текст и т. д.
Сверточные нейронные сети стали ключом к прогрессу, который мы имеем сегодня, наряду с большими данными, большими вычислительными мощностями и облачными вычислениями.
Чтобы преуспеть в когнитивных вычислениях, вам нужны ТРИ вещи (при условии, что у вас есть люди и инструменты для создания модели):
Для меня совершенно очевидно, что когнитивные вычисления имеют смысл, и для многих могут поставляться как сервис,который можно внедрить в ваши приложения. Собственная разработка внутри ИТ-инфраструктуры компании будет затруднительна, учитывая поиск данных для обучения и требования к мощности серверов для более точного вычисления.
Сегодня мы видим, что многие компании используют такие сервисы как Microsoft Cognitive Services в своих приложениях, чтобы начать использовать ограниченный искусственный интеллект.
В основном, есть две вещи:
Эти две возможности обеспечивают максимальную гибкость, предоставляя вам быстрые средства для использования ограниченного ИИ, при этом не требуя держать в штате компании армию квалифицированных ученых по данным.
Ниже я привожу два примера когнитивных услуг из реальной жизни, которые позволили интегрировать ограниченный ИИ в конкретные приложения / бизнес-процессы:
Источник: Global CIO
Задать вопрос эксперту
Алексей Свердлов
директор департамента аналитических решений
Алексей Свердлов
директор департамента аналитических решений
Алексей Свердлов
директор департамента аналитических решений