Главная страница
Навигация по странице:

  • Лабораторная работа № 9 Выполните любой вариант работы. Вариант 1

  • Задание № 1: Моделирование логической функции

  • Задание № 2: Классификация входных данных

  • Задание № 3: Построение карты Кохонена

  • Задание № 4: Распознавание и классификация объектов Изучение стандартной модели DNN

  • Задание № 5: Сжатие данных Выберите любой вариант задания. Вариант 1

  • Задание № 6: Составление прогноза

  • Задание № 7: Классификация объектов

  • Задание № 8: Распознавание изображений

  • Задание № 9: Классификация изображений

  • Задание № 10: Прогнозирование аварий сетевого оборудования

  • СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

  • практикум. Лабораторный практикум. Практикум санктпетербург 2021 2 Задание по практикуму


    Скачать 2.07 Mb.
    НазваниеПрактикум санктпетербург 2021 2 Задание по практикуму
    Анкорпрактикум
    Дата28.02.2022
    Размер2.07 Mb.
    Формат файлаpdf
    Имя файлаЛабораторный практикум.pdf
    ТипПрактикум
    #376927
    страница4 из 4
    1   2   3   4

    40
    Здесь исходный текст преобразовывается в последовательность то- кенов. Обратите внимание, что аргумент num_words функции
    text_tokenizer() определяет максимальное количество сохраняемых слов в зависимости от их частоты. Это означает, что в закодированной последо- вательности сохраняются только первые n часто встречающихся слов, в нашем случае 350.
    Далее обучающая выборка формируется в виде матриц X и Y. Каждая строка входной матрицы X содержит три последовательные слова из тек- ста, представленные соответствующими им токенами, а в матрице Y запи- сывается токен слова, следующего за этими тремя. Длина начального набора inp_len выбрана нами равной трем, но может быть любой.
    Скрипт формирования и обучения LSTM модели представлен в ли- стинге 17. Структура модели строится с помощью четырех функций – встраивания layer_embedding(), определения числа модулей layer_lstm(), формирования полносвязного слоя layer_dense() и задания функции акти- вации layer_activation(). Сначала мы инициализировали последовательную модель, а затем добавили к ней слой внедрения. Далее мы добавили слой
    LSTM с 50 модулями. Поскольку предсказание слова – это проблема клас- сификации, при которой следующее слово выбирается из словаря, мы до- бавили полносвязный слой с числом нейронов, равным количеству слов в словаре и с функцией активации softmax.
    Листинг 17. Формирование и обучение LSTM модели

    41
    Для компиляции модели заданы параметры определяющие функцию потерь, алгоритм оптимизации со скоростью обучения lr = 0.002 и функ- цию, используемую для оценки производительности обученной модели.
    Для функции обучения fit() задан размер пакета batch_size = 10 и число эпох epochs = 100.
    Проверить качество работы обученной модели можно с использова- нием специальной функции листинга 18. В качестве параметров выступает обученная модель, словарь токенов, длина начального набора, начальный набор и длина текста, который нужно сгенерировать.
    Листинг 18. Функция генерации текста с использованием обученной модели
    В листинге 19 представлена апробация обученной сети model с по- мощью функции gen_text(). Наша модель предсказывает следующее слово из исходных трех предыдущих слов. В первом примере начальный набор – это «приходила к мухе», а предсказанное слово – «бабушка», таким обра- зом создается последовательность из трех слов. В следующей берется по- следние три слова предложения «к мухе бабушка» и предсказывается сле- дующее слово «пчела». Функция продолжает генерировать текст, пока не будет получено n_next_words = 16 слов.
    Листинг 19. Апробация обученной модели
    Как видно из листинга 19, сеть отлично справилась с первым задани- ем. Для второго примера, с начальным набором «эй сороконожки бегите»,

    42 в конце сгенерированной фразы получен лишний «бом». Объясните поче- му и как это исправить?
    Лабораторная работа № 9
    Выполните любой вариант работы.
    Вариант 1
    Сформируйте произвольный корпус и постройте рекуррентную сеть на базе модуля LSTM. Добейтесь максимальной точности предсказаний, путем подбора оптимальных параметров архитектуры и обучения.
    Отчет должен содержать структуру сети, сформированную функцией
    summary(), графики изменения потерь (loss) и точности (acc). Примеры апробации работы сети, с использованием функции gen_text().
    Вариант 2
    Сформируйте произвольный корпус и постройте рекуррентную сеть на базе модуля GRU. Добейтесь максимальной точности предсказаний, пу- тем подбора оптимальных параметров архитектуры и обучения.
    Отчет должен содержать структуру сети, сформированную функцией
    summary(), графики изменения потерь (loss) и точности (acc). Примеры апробации работы сети, с использованием функции gen_text().

    43
    ЗАДАНИЯ ДЛЯ ПРАКТИКИ
    Особенностью всех заданий для практики является самостоятельный выбор способа решения поставленной задачи. Совсем не обязательно по- лучить наилучшее решение, тем более, что никогда в этом нельзя быть уверенным при решении подобных задач.
    Задание № 1: Моделирование логической функции
    Научиться формировать обучающую выборку и тестовый набор дан- ных. Освоить способы создания, модификации и обучения простейшей нейронной сети. Создать нейронную сеть, моделирующую логическую функцию по предложенным вариантам (табл. 7).
    Таблица 7
    Варианты задания
    Номер варианта
    Логическая функция
    (цифра вначале означает число входов)
    0
    "4И"
    1
    "4И-НЕ"
    2
    "4ИЛИ"
    3
    "4ИЛИ-НЕ"
    4 исключающее "4ИЛИ"
    5 исключающее "4ИЛИ-НЕ"
    6
    "4И" с инверсией по первому входу
    7
    "4И-НЕ" с инверсией по первому входу
    8
    "4ИЛИ" с инверсией по первому входу
    9
    "4ИЛИ-НЕ" с инверсией по первому входу
    Отчет должен содержать скрипт подготовки обучающих данных и обучения, топологию сети, входные данные, эталонные выходные данные, полученные выходные данные, выводы по результатам работы.
    Задание № 2: Классификация входных данных
    Входными данными является восьмиразрядный двоичный вектор.
    Первые четыре разряда представляют исходный код, а последние четыре – исходный код, циклически сдвинутый на один разряд вправо или влево.
    Необходимо построить нейронную сеть для определения направления дво- ичного сдвига. Для решения поставленной задачи, следует построить и обучить нейронную сеть, которая должна будет определять направление циклического двоичного сдвига. Сущность операции циклического двоич- ного сдвига заключается в том, что число представляется в двоичном коде,

    44 а затем с полученной последовательностью производится операция цикли- ческого сдвига вправо или влево (табл. 8).
    Таблица 8
    Представление чисел при сдвигах
    Число
    Двоичный код
    Сдвиг влево
    Сдвиг вправо
    1 0001 0010 1000 2
    0010 0100 0001 3
    0011 0110 1001 4
    0100 1000 0010 5
    0101 1010 1010 6
    0110 1100 0011 7
    0111 1110 1011 8
    1000 0001 0100 9
    1001 0011 1100 10 1010 0101 0101 11 1011 0111 1101 12 1100 1001 0110 13 1101 1011 1110 14 1110 1101 0111 15 1111 1111 1111
    Очевидно, что для определения направления сдвига на входы нейронной сети необходимо представить исходную четырехпозиционную двоичную последовательность и четырехпозиционную двоичную последо- вательность, которая получилась в результате сдвига.
    Отчет должен содержать скрипт подготовки обучающих данных и обучения, топологию сети, входные данные, эталонные выходные данные, полученные выходные данные, выводы по результатам работы.
    Задание № 3: Построение карты Кохонена
    Изучить приемы работы с самообучающимися нейронными сетями и особенности их использования на примере самоорганизующейся сети Ко- хонена.Выполните оба варианта задания.
    Вариант 1
    Постройте сети Кохонена для кластеризации данных yeast (дрожжи), которые после загрузки библиотеки kohonen можно просто загрузить ко- мандой data(yeast). Воспользуйтесь функцией supersom(). Объясните полу- ченные результаты.
    Вариант 2
    На ресурсе
    http://www.instantr.com/wp-
    content/uploads/2013/01/europe.csv предоставлены данные о странах Евро- пы. Исследуйте эти данные с помощью сети Кохонена. Объясните полу- ченные результаты.

    45
    Задание № 4: Распознавание и классификация объектов
    Изучение стандартной модели DNN
    Цель работы
    Научиться создавать и обучать многослойные нейронные сети.
    Задание
    Создать нейронную сеть со структурой многослойный персептрон, и обучить ее распознаванию цифр, заданных пиксельной матрицей размером
    5*7 клеток, в соответствии с номером своего варианта (табл. 9). В каждом варианте задания указана своя дополнительная функция.
    В качестве входных данных предлагается 5 файлов в формате csv, каждый из которых содержит по 10 изображений цифр в виде матрицы 5 на 7 пикселов, развернутых в векторы длиной по 35 элементов каждый:
    set1.csv - изображения 10 цифр (от 0 до 9) в нормальной ориентации.
    set2.csv - изображения 5 цифр (от 0 до 4) в нормальной ориентации
    (первые 5 векторов) и в перевернутом виде (следующие 5 векторов).
    set3.csv - изображения 5 цифр (от 5 до 9) в нормальной ориентации
    (первые 5 векторов) и в «зеркальном» виде по вертикали (следующие
    5 векторов).
    set4.csv - изображения 10 цифр (от 0 до 9) в «зеркальном» виде по горизонтали.
    set5.csv - изображения 5 цифр (от 5 до 9) в перевернутом виде (пер- вые 5 векторов) и в «зеркальном» виде по горизонтали (следующие 5 векторов).
    Таблица 9
    Варианты заданий
    Номер варианта
    Набор данных
    Дополнительная функция распознавания
    0
    set1.csv Распознать четность числа
    1
    set3.csv Распознать нечетность числа
    2
    set4.csv Распознать числа, делящиеся на 3 без остатка
    3
    set1.csv Распознать простые числа
    4
    set4.csv Распознать числа кратные 4 5
    set1.csv Распознать нечетность числа
    6
    set3.csv Распознать четность числа
    7
    set5.csv Распознать простые числа
    8
    set4.csv Распознать числа кратные 4 9
    set1.csv Распознать числа, делящиеся на 3 без остатка
    Отчет по работе

    46
    Оформить отчет в электронном виде.
    Состав отчета: задание на лабораторную работу, описание топологии сети, входные данные, эталонные выходные данные, полученные выход- ные данные, выводы.
    Задание № 5: Сжатие данных
    Выберите любой вариант задания.
    Вариант 1
    Определите минимальный размер скрытого слоя в ограниченной машине Больцмана, достаточный для удовлетворительного представления
    25 изображений из набора FasionMNIST. При загруженной библиотеке
    keras, этот набор загружается командой dataset_fasion_mnist().
    Оценку качества представления производить визуально, конкретные изображения (25 штук) для эксперимента выбрать произвольно.
    Повторите эксперимент с использованием стека из трех ограничен- ных машин Больцмана, где последний скрытый слой состоит из того же количества нейронов, которое получено для однослойной машины.
    Сравните полученные результаты.
    Вариант 2
    Построить сеть глубокого доверия DBN для классификации данных из набора
    FashionMNIST. Набор состоит из обучающего множества 60000 изображений и тестового множества из 10000 примеров.
    Задание № 6: Составление прогноза
    Задача прогноза - определить, заработает ли человек более 50 тысяч долларов в год на основе 14 характеристик. Обучение сети следует прове- сти на основе информации, взятой из базы данных бюро переписи населе- ния США на ресурсе http://archive.ics.uci.edu/ml/datasets/Adult.
    Данные разделены в отношении 2/3 и 1/3 случайным образом на обучающий набор из 32561 вектора и тестовый набор из 16281 вектора.
    Данные включают 15 следующих характеристик:

    Age: возраст в годах.

    WorkClass: (вид трудовой занятости) Private, Self-emp-not-inc, Self-
    emp-inc, Federal-gov, Local-gov, State-gov, Without-pay, Never-worked.

    fnlwgt: финальный оценочный вес.

    Education: Bachelors, Some-college, 11th, HS-grad, Prof-school, Assoc-
    acdm, Assoc-voc, 9th, 7th-8th, 12th, Masters, 1st-4th, 10th, Doctorate,
    5th-6th, Preschool.

    EducationNum: продолжительность образования в годах.

    47

    MaritalStatus: Married-civ-spouse, Divorced, Never-married, Separated,
    Widowed, Married-spouse-absent, Married-AF-spouse.

    Occupation: Tech-support, Craft-repair, Other-service, Sales, Exec-
    managerial, Prof-specialty, Handlers-cleaners, Machine-op-inspct, Adm-
    clerical, Farming-fishing, Transport-moving, Priv-house-serv, Protective-
    serv, Armed-Forces.

    Relationship: Wife, Own-child, Husband, Not-in-family, Other-relative,
    Unmarried.

    Race: White, Asian-Pac-Islander, Amer-Indian-Eskimo, Other, Black.

    Sex: Female, Male.

    CapitalGain: прирост капитала.

    CapitalLoss: убыль капитала.

    HoursPerWeek: занятость в рабочих часах в неделю.

    NativeCountry: United-States, Cambodia, England, Puerto-Rico, Canada,
    Germany, Outlying-US(Guam-USVI-etc), India, Japan, Greece, South,
    China, Cuba, Iran, Honduras, Philippines, Italy, Poland, Jamaica, Vi-
    etnam, Mexico, Portugal, Ireland, France, Dominican-Republic, Laos,
    Ecuador, Taiwan, Haiti, Columbia, Hungary, Guatemala, Nicaragua,
    Scotland, Thailand, Yugoslavia, El-Salvador, Trinadad&Tobago, Peru,
    Hong, Holand-Netherlands.

    IncomeLevel: годовой доход.
    Задание № 7: Классификация объектов
    Загрузите набор данных из
    ресурса
    http://archive.ics.uci.edu/ml/datasets/ Abalone. Набор abalone (морское уш- ко) включает 4177 векторов (первые 3133 используются для обучения, остальные 1044 для тестирования). Входной вектор включает 8 первых па- раметров приведенных в табл. 10.
    Таблица 10
    Характеристика параметров набора данных abalone
    Параметр
    Описание
    Sex
    Пол
    M, F, I I - ребенок
    Length
    Длина мм максимальный
    Diameter
    Диаметр мм перпендикулярно длине
    Height
    Высота мм с мясом в скорлупе
    WholeWeight
    Полный вес г целого морского ушка
    ShuckedWeight
    Очищенный вес г вес мяса
    VisceraWeight
    Масса внутренностей г мясо кишки
    ShellWeight
    Масса скорлупы г после сушки
    Rings
    Число колец дает возраст в годах

    48
    Выходной вектор должен быть построен на основе данных о воз- расте морского ушка (параметр Rings). Для этого все векторы набора нуж- но разделить на три класса: класс 1 – Rings = 1-8, класс 2 – Rings = 9 и 10, класс 3 – Rings > 10.
    Задача состоит в том, чтобы построить и обучить нейронную сеть как можно наиболее точно классифицировать векторы из набора данных
    abalone, то есть определять возраст морского ушка по семи параметрам.
    Задание № 8: Распознавание изображений
    Ознакомьтесь с набором данных CIFAR-10 и сформируйте нейрон- ную сеть для распознавания изображений.
    CIFAR-10 состоит из 60000 цветных изображений 32x32 в 10 клас- сах, по 6000 изображений в классе. Есть 50000 учебных изображений и
    10000 тестовых изображений. На рис. 18 представлены классы в наборе данных, а также 10 случайных изображений из каждого
    :
    Рис. 18. Классы из набора CIRAF-10
    Классы полностью взаимоисключающие. Между легковыми и грузо- выми автомобилями нет совпадений. «Автомобиль» включает в себя седа- ны, внедорожники и тому подобное. «Грузовик» включает в себя только большие грузовики. Ни один не включает пикапы.
    При формировании нейронной сети можно воспользоваться матери- алами ресурса https://keras.rstudio.com/articles/examples/index.html.

    49
    Задание № 9: Классификация изображений
    FashionMNIST это набор данных в виде изображений в градациях се- рого 28x28, связанных с меткой из 10 классов. Набор состоит из обучаю- щего множества 60000 примеров и тестового набора из 10000 примеров.
    По сути, набор FashionMNIST служит прямой заменой классического набора MNIST для сравнительного анализа алгоритмов машинного обуче- ния. Он имеет одинаковый размер изображения и структуру разделений обучения и тестирования. На рис. 22 приведен пример того, как выглядят данные (каждый класс занимает три строки).
    При выполнении задания можно воспользоваться материалами ре- сурса https://keras.rstudio.com/articles/tutorial_basic_classification.html.
    Каждое изображение необходимо сопоставить с одной меткой. По- скольку имена классов не включены в набор данных, следует сформиро- вать их в виде вектора class_names для использования при построении изображений: class_names = c('Футболка', 'Брюки', 'Пуловер', 'Платье',
    'Пальто', 'Сандали', 'Рубашка', 'Тапки', 'Сумка', 'Ботильоны')
    Необходимо подобрать параметры нейронной сети так, чтобы точ- ность распознавания объектов из набора данных составляла не менее 95%.
    Результат тестирования сети представьте в виде изображений тесто- вого набора из 25 объектов с наименованием распознанных объектов (рис.
    19).
    Рис. 19. Результат распознавания объектов
    Fashion-MNIST
    Наименования правильно распознанных объектов подпишите зеле- ным цветом, неправильно распознанные объекты подпишите красным цве- том, в скобках укажите правильное название.

    50
    Задание № 10: Прогнозирование аварий сетевого оборудования
    В качестве задания будет служить постановочная статья [15], в кото- рой изложена задача и методика подготовки обучающих данных. Исход- ные данные предоставлены на ресурсе [16].
    Необходимо построить нейронную сеть качественно выявляющую отклонения в работе коммуникационной сети, приводящие к сбоям.
    ЗАКЛЮЧЕНИЕ
    Выполнение лабораторных работ и практических заданий позволяет приобрести начальный опыт применения нейронных сетей разной архитек- туры для решения классических задач.
    Совершенствование практических навыков использования нейросе- тей удобно с использованием хороших наборов обучающих данных (дата- сетов). Универсальным ресурсом позволяющим отыскать подходящие наборы является https://datasetsearch.research.google.com.
    С помощью это- го сервиса можно находить уникальные датасеты в тысячах хранилищ по всему Интернету, используя ключевые слова.
    Поиск оптимальных вариантов решения задач с помощью нейросе- тей возможен только при наличии глубоких знаний по классическим мето- дам оптимизации, регуляризации, нормировки, использованию предобу- ченных моделей [18 - 23]. Изучение этих и других источников позволит выбрать нужную архитектуру сети, определить наиболее эффективные ал- горитмы ее обучения и параметры настройки.

    51
    СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
    1. Филиппов Ф.В. Нейросетевые технологии: учебное пособие/ Ф.В.Филиппов,
    СПбГУТ, – СПб., 2020. – 126 с.
    2. Филиппов Ф.В. Программирование на языке R: практикум/ Ф.В.Филиппов,
    СПбГУТ, – СПб., 2018. – 78 с.
    3. Welcome to Colaboratory, https://colab.research.google.com/notebooks/intro.ipynb
    (дата обращения 02.08.2020).
    4. Филиппов Ф.В. Моделирование нейронных сетей на R: учебное пособие/
    Ф.В.Филиппов, СПбГУТ, – СПб., 2016. – 84 с.
    5. Самсонов Т. Визуализация и анализ географических данных на языке R, https://tsamsonov.github.io/r-geo-course/graphics.html (дата обращения 02.08.2020).
    6. Репозитарий машинного обучения, http://archive.ics.uci.edu/ml/index.php (дата об- ращения 02.08.2020).
    7. Шитиков В. К., Мастицкий С. Э. Классификация, регрессия, алгоритмы Data
    Mining с использованием R, 2017, e-book: https://github.com/ranalytics/data- mining.
    8. https://cran.r-project.org/web/packages/fpp2/fpp2.pdf (дата обращения 02.08.2020).
    9. Hyndiman R.,Athanasopoulos G. Forecasting: Principles and Practice, Monash Univer- sity, Australia, https://otexts.com/fpp2/residuals.html, (дата обращения 02.08.2020).
    10. Филиппов Ф.В., Губин А.Н. Обработка информации в среде RStudio: учебное по- собие/ Ф.В.Филиппов, А.Н. Губин, СПбГУТ, – СПб., 2015. – 99 с.
    11. https://habr.com/ru/post/456740/
    12. https://craftappmobile.com/ограниченные-машины-больцмана
    (дата обращения
    02.08.2020).
    13. https://rdrr.io/github/TimoMatzen/RBM/man/ (дата обращения 02.08.2020).
    14. Филиппов Ф.В. Моделирование нейронных сетей глубокого обучения: учебное пособие / Ф. В. Филиппов; СПбГУТ, – СПб., 2017. – 84 с.
    15. Тайманов Д.С. Прогнозирование аварий сетевого оборудования с использованием нейронных сетей, Информационные технологии и нанотехнологии (ИТНТ-2017)
    Самара, 25-27 апреля 2017 г. – с. 1812-1816 16. Соревнование «Telstra Network Disruptions» [Электронный ресурс]. – Режим до- ступа: https://www.kaggle.com/c/telstra-recruiting-network
    (дата обращения
    02.08.2020).
    17. https://cran.r-project.org/web/packages/keras/keras.pdf (дата обращения 02.08.2020).
    18. Gupta S. Deep Learning with R. Pact, 2020, p. 309.
    19. Шолле Ф. Глубокое обучение на R. Manning, 2018, 400 с.
    20. Микелуччи у. Прикладное глубокое обучение: Пер. с англ. – СПб.: БХВ-
    Петербург, 2020. – 386 с.
    21. Джулли А., Пал С. Библиотека Keras – инструмент глубокого обучения. Реализа- ция нейронных сетей с помощью библиотек Theano и TensorFlow: Пер. с англ.
    А.А. Слинкина – М.: ДМК Пресс, 2018. – 294 с.
    22. Фостер Д. Генеративное глубокое обучение. Творческий потенциал нейронных сетей. — СПб.: Питер, 2020. — 336 с.
    23. Гудфеллоу Я., Бенджио И., Курвилль А. Глубокое обучение: Пер. с анг. А. А.
    Слинкина. – 2-е изд., испр. – М.: ДМК Пресс, 2018. – 652 с.
    1   2   3   4


    написать администратору сайта