Вводные заметки по глубокому обучению — реализация кода регрессии на основе тензорного потока

искусственный интеллект TensorFlow глубокое обучение алгоритм
Вводные заметки по глубокому обучению — реализация кода регрессии на основе тензорного потока

Серия вводных заметок по глубокому обучению (4)

Реализация регрессионного кода на основе tensorflow

Каждый понедельник, среду и пятницу встречаемся в 7:35.

Эта серия будет разделена на 8 частей. Сегодня четвертый. Теория всегда немного скучна, сегодня я реализую два простых кейса на основе TF framework и ознакомлюсь со всем процессом. В целом обучение нейронной сети делится на 3 этапа:

  1. Определить структуру нейронной сети и результат прямого прохода

  2. Определить функцию потерь и выбрать алгоритм оптимизации обратного распространения

  3. Создайте сеанс (tf.Session) и итеративно запустите алгоритм оптимизации обратного распространения на обучающих данных.


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

1. Подгонка прямых линий

Например, теперь мы используем y = k * x + b (где k, b — параметры), чтобы подобрать прямую линию y = 5 * x + 1 через несколько тренировок.

В соответствии с вышеуказанными 3 шагами сначала постройте линейную модель y = k * x + b, наша цель — приблизить параметры k, b к реальным значениям 5, 1 посредством обучения. Затем определите функцию потерь, здесь мы используем квадратичную функцию стоимости; выберите метод градиентного спуска для оптимизации. Наконец, в сеансе выполняется итеративная оптимизация (tf.Session). Конкретный код и комментарии выглядят следующим образом:


Текущие результаты следующие: после 100 раундов оптимизации обучения тренировочные значения параметров очень близки к реальным значениям.

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

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

В этом примере мы используем y = x*x + шум, чтобы случайным образом сгенерировать 200 точек рассеяния, обучить нейронную сеть и подобрать более идеальный результат регрессии.

Как и в предыдущих 3 шагах, первый шаг — определить структуру сети и основную информацию.Эта часть кода создает промежуточный слой из 10 узлов, а затем напрямую подключает выход узла. Входной разброс должен использовать numpy для создания 200 точек разброса между интервалом (-0,5, 0,5) и добавления информации о шуме к выходным данным. детали следующим образом.

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

Запуск кода дает следующие результаты.

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

Прошлые рекомендации:

     Приветствуем вашу пересылку и обмен

   

▲ Отсканируйте QR-код, чтобы подписаться на нас

              Персональный WeChat: python_jiang