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

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

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

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

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

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

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

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

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

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

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

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

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

  • Лаба. 2021 Лабораторный практикум по НТ. Технологии


    Скачать 6.22 Mb.
    НазваниеТехнологии
    Дата24.04.2023
    Размер6.22 Mb.
    Формат файлаpdf
    Имя файла2021 Лабораторный практикум по НТ.pdf
    ТипПрактикум
    #1084536
    страница4 из 4
    1   2   3   4
    Листинг 17. Формирование и обучение LSTM модели
    Для компиляции модели заданы параметры определяющие функцию потерь, алгоритм оптимизации со скоростью обучения lr = 0.002 и функцию, используемую для оценки производительности обученной модели.

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

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

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

    41 затем с полученной последовательностью производится операция цикличе- ского сдвига вправо или влево (табл. 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/eu-
    rope.csv предоставлены данные о странах Европы. Исследуйте эти данные с помощью сети Кохонена. Объясните полученные результаты.

    42
    Задание № 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 без остатка
    Отчет по работе
    Оформить отчет в электронном виде.

    43
    Состав отчета: задание на лабораторную работу, описание топологии сети, входные данные, эталонные выходные данные, полученные выходные данные, выводы.
    Задание № 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: продолжительность образования в годах.
    MaritalStatus: Married-civ-spouse, Divorced, Never-married, Separated,
    Widowed, Married-spouse-absent, Married-AF-spouse.

    44
    Occupation: Tech-support, Craft-repair, Other-service, Sales, Exec-mana-
    gerial, Prof-specialty, Handlers-cleaners, Machine-op-inspct, Adm-cleri-
    cal, 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, Ec-
    uador, Taiwan, Haiti, Columbia, Hungary, Guatemala, Nicaragua, Scot-
    land, 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
    Число колец дает возраст в годах

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

    46
    Задание № 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
    Наименования правильно распознанных объектов подпишите зеле- ным цветом, неправильно распознанные объекты подпишите красным цве- том, в скобках укажите правильное название.

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

    48
    СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
    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-min- ing.
    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


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