Применение алгоритма машинного обучения для минимизации брака готовой продукции
Заказать уникальную курсовую работу- 35 35 страниц
- 18 + 18 источников
- Добавлена 26.01.2024
- Содержание
- Часть работы
- Список литературы
Введение 3
Глава 1. Анализ предметной области 4
1.1 Подготовка обучающих данных 6
1.2 Глубокое обучение в сферах деятельности человека 11
1.3 Выводы по 1 главе. 14
Выводы 14
Глава 2. Модели нейронных сетей 15
2.1 Архитектура нейронной сети глубокого обучения 16
Глава 3. Проектирование и реализация НС 20
3.1 Исследование данных. 20
Заключение 29
Список источников и литературы 30
Обучающий данные представляют собой датасет с 12568 изображениями, содержащие указание метки – есть ли дефект и какого он типа. Налицо несбалансированность данных, поэтому необходимо применять аугментацию.В главе рассмотрено математическое описание модели нейронной сети, приведены и описаны различные архитектуры сетей, рассмотрены рекомендации по составлению наборов данных для обучения сети. Описаны наборы данных.Глава 3. Проектирование и реализация НС3.1 Исследование данных.Был скачен и исследован датасетс соревнованияhttps://www.kaggle.com/c/severstal-steel-defect-detection.Там более 50 000 изображений стали, из них 7095 с дефектами. Причем дефекты отмечены другим цветом.Рисунок 13–Пример изображения с дефектамиДалее мы исследовали датасет, чтоб понять имеется ли сразу несколько дефектов.Рисунок 14–анализ количества дефектовВсего лишь на 427 изображениях более 1 дефекта, в основной массе по 1 дефекту.Далее проанализировали, какой дефект самый частый.Рисунок 15–анализ типов дефектовВ итоге, обнаружили что самый частый дефект – это тип 3.Проверили это и круговой диаграммой.Рисунок 16–круговая диаграмма типов дефектовПонимаем, что большой дисбаланс, будем получать новые обучающие данные через сэмплинг.В итоге, уже имеется 20 600 обучающих примеров.Для создания модели был выбран фреймворк Keras, позволяющий последовательно создавать различные слои с различными параметрами.Keras — это высокоуровневый API глубокого обучения, разработанный Google для реализации нейронных сетей. Он написан на Python и используется для упрощения реализации нейронных сетей. Он также поддерживает несколько вычислений на базе нейронных сетей. Keras относительно прост в освоении и работе, поскольку он предоставляет интерфейс Python с высоким уровнем абстракции, а также возможность использования нескольких серверных частей для вычислительных целей. Это делает Keras медленнее, чем другие среды глубокого обучения, но чрезвычайно удобен для новичков. Keras позволяет переключаться между различными серверными частями. Платформы, поддерживаемые Keras:Тензорный потокТеаноПледМЛMXNetCNTK (набор инструментов Microsoft Cognitive Toolkit)Из этих пяти фреймворков TensorFlow принял Keras в качестве своего официального API высокого уровня. Keras встроен в TensorFlow и может использоваться для быстрого выполнения глубокого обучения, поскольку предоставляет встроенные модули для всех вычислений нейронной сети. В то же время вычисления с использованием тензоров, графов вычислений, сеансов и т. д. могут выполняться индивидуально с использованием Tensorflow Core API, который дает вам полную гибкость и контроль над вашим приложением, а также позволяет реализовать ваши идеи за относительно короткое время.Этапы построения модели Keras:Определите сеть. На этом этапе надо определить различные слои нашей модели и связи между ними. Keras имеет два основных типа моделей: последовательные и функциональные модели. Надо выбрать, какой тип модели нужен, а затем определить поток данных между ними. Компилировать сеть. Компилировать код означает преобразовать его в форму, удобную для понимания машиной. В Keras эту функцию выполняет метод model.compile(). Чтобы скомпилировать модель, надоопределить функцию потерь, которая рассчитывает потери в нашей модели, оптимизатор, который уменьшает потери, и метрику, которая используется для определения точности нашей модели.Подогнать сеть: используя это, подгоняем нашу модель к нашим данным после компиляции. Это используется для обучения модели на наших данных.Оцените сеть. После подбора нашей модели нужно оценить ошибку в нашей модели.Делайте прогнозы. Используем model.predict(), чтобы делать прогнозы с использованием нашей модели на новых данных.Были построены модели с различной архитектурой, обучены в течение 10 эпох.Модель с 13 слоямиУ нас тут многослойная нейронная сеть с разными типами слоев.теперь по поводу слоев нейронной сети и их особенностей.1 слой - Conv2D. Здесь определяется взвешенное ядро. Производится операция свертки, результатом которой становятся тензоры.2 слой - MaxPooling2D. Это слой пуллинга, они используются для уменьшения размера ввода и извлечения важной информации. Здесь мы извлекаем максимум.Далее эти слои повторяются еще 2 раза.7 слой - Flatten. он преобразует входной тензор в одномерный массив, эффективно выравнивая его. Он принимает многомерный входной тензор, например двумерное изображение, и преобразует его в одномерный вектор, который можно использовать в качестве входных данных для полностью связного слоя или любого другого слоя, который ожидает одномерных входных данных.8 слой - Dense. это полностью связный слой, который соединяет каждый нейрон предыдущего слоя с каждым нейроном текущего слоя. Он выполняет линейную операцию над входными данными, за которой следует функция активации, позволяющая сети изучать сложные закономерности и взаимосвязи в данных. Количество нейронов в плотном слое определяет размерность вывода.9 cлой - Dropout. это метод регуляризации, используемый для уменьшения переобучения в нейронных сетях. Он случайным образом устанавливает для части входных единиц значение 0 на каждом этапе обучения, что помогает предотвратить слишком большую зависимость сети от конкретных функций или корреляций. Dropout улучшает способность модели к обобщению за счет внесения шума во время обучения и побуждает сеть изучать более надежные и независимые представления. Далее слои повторяются.В итоге в данной нейронной сети 13 различных слоев, и 139 780 параметров.Ниже графики ошибки и функции потерь в процессе обучения.Рисунок 17–функция потерь при обученииРисунок 18 –точность при обученииТестирование обученной НС.Для тестирования были поданы три примера с обучающей выборки.Тут мы видим, что были метки 1,3,1 на примерах соответственно. То есть дефекты типа 1,3,1. Сделаем предсказание и посмотрим результаты.Здесь три эксперимента, где мы видим, что тест № 2 был с меткой 3, но неверно идентифицировался как метка 1.Модельс 5 слоямиВот процесс обучения.Ниже графики ошибки и функции потерь в процессе обучения.Здесь мы видим, что пятислойная модель более эффективна.Модельс3слоямиА тут мы видим, что трехслойная и 13-слойная модели сработали примерно одинаково.ВыводыВ главе приведен набор данных, примененный для обучения сети, включающий в себя более 50 000 изображений стальных изделий, составлен алгоритм работы нейронной сети, включающий в себя обработку изображений, поступающих на вход сети, построение архитектуры сети, отображение результатов обучения и метрик обучения сети. Разработали и обучили три различные нейронные сети с различным количеством слоев, убедились, что следует экспериментально подбирать структуру и выбирать золотую середину, так как 5 слов в нашем случае отработали лучше чем 13 или 3 слоя.ЗаключениеВ результате исследования в рамках курсовой работы был использован набор данных, собранный компанией Северсталь, представляющий собой изображения стальных изделий с локализованными дефектами. Данный набор содержит как нормальные изделия, так и с дефектами, в том числе с маской нахождения. Набор данных требовал предварительной обработки (аугментацию). Для создания архитектуры сети была использована модель Keras – Sequentialmodel, позволяющая создавать последовательные слои нейронной сети с заданными характеристиками.Для реализации программы были использованы библиотеки Tensorflow, Numpy, Matplotlib.По итогам исследования были сделаны выводы, что для реализации задачи, поставленной в рамках курсовой работы, оптимальная структура - 5 различных слоев.Тут наиболее лучшие показатели при обучении. Тогда как 3 и 13-слойная модели отработали примерно одинаково.Списокисточниковилитературы1. Al-Azawi M. A. N. Neural Network Based Automatic Traffic Signs Recognition //International Journal of Digital Information and Wireless Communications (IJDIWC). - 2011. - Т. 1. - №. 4. - С. 753-766.2. Baldi P. Autoencoders, Unsupervised Learning, and Deep Architectures //ICML Unsupervised and Transfer Learning. - 2012. - Т. 27. - С. 37-50.3. Bahlmann C. et al. A system for traffic sign detection, tracking, and recognition using color, shape, and motion information //Intelligent Vehicles Symposium, 2005. Proceedings. IEEE. - IEEE, 2005. - С. 255-260.4. Bastien F. et al. Theano: new features and speed improvements //arXiv preprint arXiv:1211.5590. - 2012.5. Bengio Y., Goodfellow I., Courville A . Deep Learning. - MIT Press, book in preparation6. Bergstra J. et al. Theano: A CPU and GPU math compiler in Python //Proc. 9th Python in Science Conf. - 2010. - С. 1-7.7. Broggi A. et al. Real time road signs recognition //Intelligent Vehicles Symposium, 2007 IEEE. - IEEE, 2007. - С. 981-986.8. Canny J. A computational approach to edge detection //Pattern Analysis and Machine Intelligence, IEEE Transactions on. - 1986. - №. 6. - С. 679-698.9. Ciresan D., Meier U., Schmidhuber J. Multi-column deep neural networks for image classification //Computer Vision and Pattern Recognition (CVPR), 2012 IEEE Conference on. - IEEE, 2012. - С. 3642-3649.KaggleURL: https://www.kaggle.com/datasets(Дата обращения 06.12.2021).VisualdataURL: https://visualdata.io/discovery(Дата обращения 06.12.2021).Google Dataset search URL: https://datasetsearch.research.google.com/(Датаобращения 06.12.2021).Воронова Л.И. Machine Learning: регрессионные методы интеллектуального анализа данных : учебное пособие / Воронова Л.И., Воронов В.И.. — Москва : Московский технический университет связи и информатики, 2018. — 82 c. — Текст : электронный // Электронно-библиотечная система IPR BOOKS : [сайт]. — URL: https://www.iprbookshop.ru/81325.html (Дата обращения: 12.12.2021).Как работает нейронная сеть: алгоритмы, обучение, функции активации и потери URL: https://neurohive.io/ru/osnovy-data-science/osnovy-nejronnyh-setej-algoritmy-obuchenie-funkcii-aktivacii-i-poteri/ (Дата обращения: 12.12.2021).7 архитектур нейронных сетей для решения задач URL: https://neurohive.io/ru/osnovy-data-science/7-arhitektur-nejronnyh-setej-nlp/ (Дата обращения: 12.12.2021).Нейронные сети: распознавание образов и изображений c помощью ИИ URL: https://center2m.ru/ai-recognition (Дата обращения: 12.12.2021).Маркова С.В., Жигалов К.Ю. Применение нейронной сети для создания системы распознавания изображений // Фундаментальные исследования. – 2017. – № 8-1. – С. 60-64; URL: https://fundamental-research.ru/ru/article/view?id=41621 (дата обращения: 12.12.2021).Neural network zoo URL: https://www.asimovinstitute.org/neural-network-zoo/(дата обращения: 12.12.2021).
1. Al-Azawi M. A. N. Neural Network Based Automatic Traffic Signs Recognition //International Journal of Digital Information and Wireless Communications (IJDIWC). - 2011. - Т. 1. - №. 4. - С. 753-766.
2. Baldi P. Autoencoders, Unsupervised Learning, and Deep Architectures //ICML Unsupervised and Transfer Learning. - 2012. - Т. 27. - С. 37-50.
3. Bahlmann C. et al. A system for traffic sign detection, tracking, and recognition using color, shape, and motion information //Intelligent Vehicles Symposium, 2005. Proceedings. IEEE. - IEEE, 2005. - С. 255-260.
4. Bastien F. et al. Theano: new features and speed improvements //arXiv preprint arXiv:1211.5590. - 2012.
5. Bengio Y., Goodfellow I., Courville A . Deep Learning. - MIT Press, book in preparation
6. Bergstra J. et al. Theano: A CPU and GPU math compiler in Python //Proc. 9th Python in Science Conf. - 2010. - С. 1-7.
7. Broggi A. et al. Real time road signs recognition //Intelligent Vehicles Symposium, 2007 IEEE. - IEEE, 2007. - С. 981-986.
8. Canny J. A computational approach to edge detection //Pattern Analysis and Machine Intelligence, IEEE Transactions on. - 1986. - №. 6. - С. 679-698.
9. Ciresan D., Meier U., Schmidhuber J. Multi-column deep neural networks for image classification //Computer Vision and Pattern Recognition (CVPR), 2012 IEEE Conference on. - IEEE, 2012. - С. 3642-3649.
10. Kaggle URL: https://www.kaggle.com/datasets (Дата обращения 06.12.2021).
11. Visualdata URL: https://visualdata.io/discovery (Дата обращения 06.12.2021).
12. Google Dataset search URL: https://datasetsearch.research.google.com/ (Дата обращения 06.12.2021).
13. Воронова Л.И. Machine Learning: регрессионные методы интеллектуального анализа данных : учебное пособие / Воронова Л.И., Воронов В.И.. — Москва : Московский технический университет связи и информатики, 2018. — 82 c. — Текст : электронный // Электронно-библиотечная система IPR BOOKS : [сайт]. — URL: https://www.iprbookshop.ru/81325.html (Дата обращения: 12.12.2021).
14. Как работает нейронная сеть: алгоритмы, обучение, функции активации и потери URL: https://neurohive.io/ru/osnovy-data-science/osnovy-nejronnyh-setej-algoritmy-obuchenie-funkcii-aktivacii-i-poteri/ (Дата обращения: 12.12.2021).
15. 7 архитектур нейронных сетей для решения задач URL: https://neurohive.io/ru/osnovy-data-science/7-arhitektur-nejronnyh-setej-nlp/ (Дата обращения: 12.12.2021).
16. Нейронные сети: распознавание образов и изображений c помощью ИИ URL: https://center2m.ru/ai-recognition (Дата обращения: 12.12.2021).
17. Маркова С.В., Жигалов К.Ю. Применение нейронной сети для создания системы распознавания изображений // Фундаментальные исследования. – 2017. – № 8-1. – С. 60-64; URL: https://fundamental-research.ru/ru/article/view?id=41621 (дата обращения: 12.12.2021).
18. Neural network zoo URL: https://www.asimovinstitute.org/neural-network-zoo/ (дата обращения: 12.12.2021).