Справочник от Автор24
Поделись лекцией за скидку на Автор24

Краткое знакомство с TensorFlow

  • 👀 350 просмотров
  • 📌 321 загрузка
Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Краткое знакомство с TensorFlow» pdf
2.1. Краткое знакомство с TensorFlow. Обучение учебной нейросети. Изучение того, что лежит под капотом DialogFlow Для разработки такого чат-бота мы воспользуемся замечательным инструментарием, который называется DialogFlow. Это надстройка для распознавания смысла в естественно-языковом тексте над прекрасной нейросетевой библиотекой компании Google — TensotFlow. Вспомним, как работают нейронные сети и как они обучаются. Искусственная нейронная сеть состоит из нейронов, которые сгруппированы в слои. Каждый нейрон — это простой вычислитель, который принимает множество входных значений, перемножает каждое на некоторый вес, а результаты этих произведений складывает. Если итоговая сумма выше некоторого проекта, то нейрон отдаёт своё выходное значение. Сама нейронная сеть работает тактами: пока информация от входного слоя не дойдет до выходного, нейронная сеть как бы замерла, и нейроны первых слоев ждут окончания прохождения информации по сети. Мы будем заниматься задачей классификации. Что это такое? На входе у нас есть множество каких-то объектов, на выходе мы должны разложить их по корзинкам, на каждой из которых написан какой-то идентификатор, название класса этих объектов. И искусственная нейронная сеть — это прекрасный инструмент именно для решения задачи классификации. На вход подается описание объекта в том или ином виде. На выходном слое нейронной сети нейроны активизируются таким образом, чтобы так или иначе указать на класс. Обычно одному классу соответствует один нейрон, и при определении класса объекта на выходе активируется именно этот нейрон. Есть варианты, когда нейросеть на выходе возвращает степени принадлежности объекта разным классам, а определённый класс выбирается по максимальной степени принадлежности. Рассмотрим это на примере. Для этого воспользуемся игровой песочницей библиотеки TensorFlow, которая находится по адресу playground.tensorflow.org. Зайдите на этот адрес и изучите документацию, которая там представлена. После этого поиграйтесь с той нейронной сетью, которая там представлена: изучите интерфейс, почитайте про все параметры, которые там представлены. Как только вы поймёте, что там происходит и почему, перезагружайте страницу, чтобы вернуть все параметры к первоначальному виду, и после этого давайте выполним несколько упражнений. Теперь убедитесь, что вы находитесь в разделе «Classification» (классификация). Тут есть четыре набора данных, которые надо классифицировать на два класса. Выходной нейрон этой нейросети, фактически, осуществляет бинарную классификацию — если он активируется, то входной элемент оранжевый, а если нет — синий. Нашей задачей сегодня будет являться построение минимально возможной нейронной сети для классификации входного набора. Критерий минимальности нейронной сети означает, что нейронная сеть содержит минимальное количество входных фич, минимальное количество промежуточных слоёв и нейронов в них. Что такое «фича»? Вот у нас есть два класса входных данных в тестовой выборке: оранжевые (это минус один) и синие (это плюс один). У каждого объекта есть три свойства: цвет и координаты на плоскости. Фичей, которую воспринимает один входной нейрон, мы назовем некоторую функцию от этих трех свойств. Например, фича X-один — это разделение на положительные и отрицательные числа по оси абсцисс. Фича Х-два — это такое же разделение на положительные и отрицательные числа по оси ординат. Если мы перемножим Х-один и Х-два, то мы получим два квадранта положительных чисел и два квадранта отрицательных. В общем, в этой песочнице можно использовать семь разных фич. 1 Перед тем, как вы начнете решать поставленную задачу, сделаем пару настроек. Давайте установим в качестве функции активации ReLU — это максимум от нуля и заданного значения. То есть в области отрицательных чисел функция ReLU возвращает ноль, а в области положительных чисел она возвращает свой аргумент. Эта функция очень проста для вычисления, поэтому сегодня её начали широко использовать в нейронных сетях глубокого обучения. Из всех функций активации именно ReLU справляется с классификацией быстрее всех других функций. Остальные настройки менять не надо. Впрочем, если ваша нейронная сеть будет обучаться слишком медленно, то можно поиграться параметром Learning Rate. В нейронной сети имеются скрытые слои. Можно использовать от нуля до шести скрытых слоёв, и это очень важно для обучения. В каждом слое может быть до восьми нейронов, то есть всего в скрытых слоях может быть 48 нейронов. И, наконец, справа большое поле представляет собой один выходной нейрон, который для заданной точки на координатной плоскости показывает степень соответствия этой точки оранжевому или синему классу. В принципе, если навести мышку на любой нейрон в сети, то на диаграмме выходного нейрона будет показано, как выбранный нейрон классифицирует точки плоскости. Первый набор данных представляет собой синие точки в центре в окружении оранжевого кольца. Для этого набора минимальной нейросетью является сеть с активированными фичами X-один и Xдва и одним скрытым слоем с тремя нейронами. В среднем выходной нейрон начинал верно классифицировать вход через 50 итераций обучения. При этом заметьте, что если перезапускать обучение, то «тепловая карта» выходного нейрона каждый раз будет разной даже на одних и тех же данных. Это происходит из-за того, что в обучающую выборку каждый раз попадают разные точки в разном порядке. Для трех других наборов данных вы должны построить минимальную классифицирующую нейронную сеть самостоятельно. По результатам построения вам надо написать что-то типа отчета, в котором описать параметры обучения вашей нейронной сети, какие фичи были использованы для обучения, сколько скрытых слоев и нейронов в них было использовано, как быстро, то есть за сколько шагов «сошлась» нейронная сеть при обучении, также нужно описать характеристику областей классификации и причины, почему произошло именно так, а не иначе. Давайте посмотрим четвертый набор данных, он самый сложный. Это две спирали, которые входят друг в друга. Построить области классификации совсем непросто. Если мы построим нейронную сеть со всеми семью фичами и максимальным количеством скрытых слоёв и максимальным количеством нейронов в них, то такая нейронная сеть будет довольно быстро классифицировать этой непростой набор данных. Изучите тепловые карты нейронов в скрытых слоях. Тут видна крайняя избыточность. Например, не менее полутора десятка нейронов активируются на кольцо отрицательных данных. Это значит, что при построении таких нейронных сетей важно находить баланс между количеством нейронов и, стало быть, скоростью обучения, гладкостью областей классификации и избыточностью. Для чего мы все это изучили? Ну во-первых, теперь вы сами попробовали то, как строить нейронные сети. Можно сказать, что вы притронулись к одной из сторон науки о данных. Это здорово. Во-вторых, эта библиотека TensorFlow лежит в основе инструмента DialogFlow для классификации смысла естественно-языковых фраз. Нейронная сеть будет получать на вход фразу на естественном языке, а на выходе эта нейронная сеть будет возвращать номер того правила генерации ответа, которое необходимо активировать. 2
«Краткое знакомство с TensorFlow» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Найди решение своей задачи среди 1 000 000 ответов
Найти

Тебе могут подойти лекции

Смотреть все 588 лекций
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot