Резюме:Основная причина глубокого обучения заключается в том, что искусственный интеллект должен черпать вдохновение из человеческого мозга. В этой статье используется небольшой пример, чтобы представить глубокое обучение без тупиков!
моделирование человеческого мозга
Основная причина глубокого обучения заключается в том, что искусственный интеллект должен черпать вдохновение из человеческого мозга. Эта идея привела к термину «нейронная сеть». Человеческий мозг содержит миллиарды нейронов с десятками тысяч связей между ними. Во многих случаях алгоритмы глубокого обучения аналогичны человеческому мозгу, потому что и человеческий мозг, и модели глубокого обучения имеют большое количество единиц компиляции (нейронов), и эти единицы компиляции (нейроны) не очень интеллектуальны по отдельности, но когда они становятся разумными при взаимодействии друг с другом.
Я думаю, что люди должны понимать, что глубокое обучение делает многие вещи лучше за кулисами. Глубокое обучение было применено к поиску Google и поиску изображений, где вы можете искать такие слова, как «обнять», чтобы получить соответствующее изображение. - Джеффри Хинтон
нейроны
Основным строительным блоком нейронной сети является искусственный нейрон, имитирующий нейроны человеческого мозга. Эти нейроны представляют собой простые, мощные вычислительные единицы, которые взвешивают входные сигналы и используют функции активации для создания выходных сигналов. Эти нейроны распределены по нескольким слоям нейронной сети.
Как работает искусственная нейронная сеть?
Глубокое обучение состоит из искусственных нейронных сетей, которые имитируют аналогичные сети в человеческом мозгу. Когда данные проходят через эту искусственную сеть, каждый слой обрабатывает один аспект данных, отфильтровывая выбросы, идентифицируя знакомые объекты и создавая окончательный результат.
Входной слой:Этот слой состоит из нейронов, которые просто принимают входные данные и передают их другим слоям. Количество слоев во входном слое должно быть равно количеству атрибутов или объектов в наборе данных.выходной слой:Выходной слой является предиктивным, в зависимости от типа модели, которую вы строите.Скрытый слой:Скрытый слой находится между входным и выходным слоями в зависимости от типа модели. Скрытый слой содержит большое количество нейронов. Нейроны скрытого слоя преобразуют входную информацию, прежде чем передать ее дальше. По мере обучения сети веса обновляются, что делает ее более перспективной.
веса нейронов
Вес относится к силе или величине связи между двумя нейронами. Если вы знакомы с линейной регрессией, вы можете сравнить входные веса с коэффициентами, которые мы используем в уравнении регрессии. Веса обычно инициализируются небольшими случайными числами, такими как числа 0-1.
Глубокая сеть с прямой связью
Нейронные сети с учителем с прямой связью были первыми и наиболее успешными алгоритмами обучения. Сеть также можно назвать глубокой сетью, многослойным персептроном (MLP) или простой нейронной сетью, и она иллюстрирует исходную архитектуру с одним скрытым слоем. Каждый нейрон связан с другим нейроном некоторым весом.
Сеть обрабатывает входную информацию вперед,активацияНейроны, которые в конечном итоге производят выходные значения. В этой сети это называется прямым проходом.
функция активации
Функция активации — это просто отображение взвешенного по сумме входного сигнала на выходной сигнал нейрона. Она называется функцией активации или передаточной функцией, потому что она контролирует начальное значение активированного нейрона и силу выходного сигнала.
Математически выражается как:
У нас есть много функций активации, наиболее часто используемыми из которых являются функция выпрямленной линейной единицы, функция гиперболического тангенса и функция solfPlus.
Шпаргалка по функциям активации выглядит следующим образом:
обратное распространение
В сети мы сравниваем предсказанное значение с ожидаемым выходным значением и используем функцию для вычисления его ошибки. Затем эта ошибка передается обратно в сеть, и каждый раз, когда она передается обратно на уровень, веса обновляются, чтобы исключить результирующее значение ошибки. Эта хитрая математикаАлгоритм обратного распространения. Этот шаг повторяется во всех выборках обучающих данных, и один раунд обновлений сети для всего набора обучающих данных называется эпохой. Сеть может обучаться на десятки, сотни или тысячи эпох.
Функция стоимости и градиентный спуск
Функция стоимости измеряет, «насколько хороша» нейронная сеть для данного обучающего входа и ожидаемого результата. Функция может зависеть от таких свойств, как веса, смещения и т. д.
Функция стоимости является однозначной, а не векторной, поскольку оценивает производительность нейронной сети в целом. При использовании алгоритма оптимизации градиентного спуска веса обновляются постепенно после каждой эпохи.
Совместимая функция стоимости
Математически выражается как сумма квадратов разностей:
Величина и направление обновлений веса вычисляются путем выполнения шагов в обратном направлении градиента стоимости.
где Δwпредставляет собой вектор, содержащий обновления веса для каждого весового коэффициента w, вычисляемый следующим образом:
Однокоэффициентная функция стоимости рассматривается на графике
Мы вычисляем градиентный спуск до тех пор, пока производная не достигнет минимального значения ошибки, и каждый шаг зависит от крутизны склона (градиента).
Многослойный персептрон (прямое распространение)
Этот тип сети состоит из нескольких слоев нейронов, которые обычно связаны друг с другом с прямой связью (прямое распространение). Каждый нейрон в слое может напрямую соединяться с нейронами в последующих слоях. Во многих приложениях ячейки этих сетей будут использовать сигмовидную функцию или функцию выпрямленной линейной ячейки (выпрямленная линейная активация) в качествефункция активации.
Теперь подумайте о проблеме определения количества транзакций, учитывая учетную запись и члена семьи в качестве входных данных.
Чтобы решить эту проблему, во-первых, нам нужно создать нейронную сеть прямого распространения. Нашим входным слоем будет количество членов семьи и учетных записей, скрытым слоем будет 1, а выходным слоем будет количество транзакций.
Возьмите заданные веса из входного слоя в выходной слой на графике в качестве входных данных: количество членов семьи равно 2, а количество счетов равно 3.
Значения скрытого слоя (i,j) и выходного слоя (k) теперь будут рассчитываться с использованием прямого распространения через следующие шаги.
шаг:
1. Метод умножения-сложения.
2. Скалярный продукт (вход *вес).
3. Прямое распространение по одной точке данных за раз.
4. Результатом является прогноз для этой точки данных.
Значение i будет вычислено из входных значений и весов, соответствующих подключенным нейронам.
я = (2 * 1) + (3 * 1) → я = 5
Точно так же j = (2 * -1) + (3 * 1) → j = 1
К = (5 * 2) + (1 * -1) → к = 9
Решение проблем многослойного персептрона в Python
Использование функций активации
Чтобы нейронная сеть достигла максимальной прогностической способности, нам нужно применить функцию активации в скрытом слое, которая улавливает нелинейность. Мы применяем функции активации на входном и выходном слоях, подставляя значения в уравнения.
Здесь мы используем Rectified Linear Activation (ReLU):
Разработайте первую нейронную сеть с помощью Keras
О Керасе:
Keras — это интерфейс прикладного программирования для нейронных сетей высокого уровня, написанный на Python, который можно построить поверх TensorFlow, CNTK или Theano.
Установите Keras на устройство с помощью pip и выполните следующие команды.
Шаги для выполнения программы глубокого обучения в keras
1. Загрузить данные;
2. Создайте модель;
3. Скомпилируйте модель;
4. Подгонка модели;
5. Оцените модель;
Разработать модель Keras
Полносвязный слой обозначается Dense. Мы можем указать количество нейронов в слое в качестве первого параметра, метод инициализации в качестве второго параметра, параметр инициализации и использовать параметр активации для определения функции активации. Теперь, когда модель создана, мы можемкомпилироватьЭто. Мы компилируем модель с эффективной числовой библиотекой в базовой библиотеке (также называемой серверной частью), которая может быть Theano или TensorFlow. На данный момент мы закончили создание модели и компиляцию модели, готовой для эффективных вычислений. Теперь модель можно запустить на данных PIMA. Мы можем вызвать функцию подгонки f() для модели, чтобы обучить или подогнать модель к данным.
Начнем с программы в KERAS,
Нейронная сеть обучается до 150 эпох и возвращает точные значения.
Выше приведен перевод сСообщество Alibaba Cloud YunqiОрганизация переводов.
Оригинальное название статьи «Глубокое обучение с помощью Python».
Автор: Вихар Курама, Переводчик: Лист лотоса.
Статья является упрощенным переводом, для более подробной информации, пожалуйста, проверьтеоригинальный.
Для получения более технических галантерейных товаров, пожалуйста, обратите внимание на номер организации Yunqi Community Zhihu:Сообщество Alibaba Cloud Yunqi
Эта статья является оригинальным контентом сообщества Yunqi и не может быть воспроизведена без разрешения.