Курсовая работа «Применение библиотек машинного обучения в интеллектуальном анализе» по дисциплине: «Технологии баз данных»
Download 0.72 Mb.
|
полная курсовая
- Bu sahifa navigatsiya:
- 1.2 Взаимосвязь между интеллектуальным анализом данных и машинным обучением
- 1.3 Обзор средств машинного обучения языка python
1.1 Введение в машинное обучение
Машинное обучение технология, которая строит саму себя. Это новое явление в нашем мире [2]. Во второй половине ХХ века машинное обучение развилось в подобласть искусственного интеллекта, которая охватывала разработку самообучающихся алгоритмов. Эти алгоритмы разрабатываются с целью обработки данных и выполнения различных прогнозов более простыми способами чем построение модели в ручном режиме [1]. Полезнее рассматривать машинное обучение как средство созданий моделей данных. Создается математическая модель для исследования данных с последующим постепенным улучшение качества прогнозных моделей и принятие решений, управляемых данными. Задачи «обучения» начинаются с появлением у этих моделей настраиваемых параметров, которые можно приспособить для отражения наблюдаемых данных, таким образом, программа обучается на данных [4]. Наиболее успешные алгоритмы машинного обучения являются те, которые автоматизируют процессы принятия решений путем обобщения известных примеров. В этих методах, пользователь предоставляет алгоритму пары объект-ответ, а алгоритм находит способ получения ответа по объекту. В частности, алгоритм способен выдать ответ для объекта, которого он никогда не видел раньше, без какой-либо помощи [2]. Каждый год в мире появляются сотни новых алгоритмов с обучением, но все они основаны на небольшом наборе фундаментальных идей [4]. Общие принципы машинного обучения Существует три типа машинного обучения: обучение с учителем (контролируемое), обучение без учителя (неконтролируемое, или спонтанное) и обучение с подкреплением. Машинное обучение с учителем Основная задача обучения с учителем (supervised learning) состоит в том, чтобы на маркированных тренировочных данных извлечь модель, которая позволяет делать прогнозы о ранее не встречавшихся или будущих данных. Здесь термин «с учителем» относится к подмножеству образцов, в которых нужные выходные сигналы (метки) уже известны. [1]Оно разделяется далее на задачи классификации и задачи регрессии [2]. Задача классификации — это подкатегория методов машинного обучения с учителем, суть которой заключается в идентификации категориальных меток классов для новых экземпляров на основе предыдущих наблюдений. Метка класса представляет собой дискретное, неупорядоченное значение, которое может пониматься как принадлежность группе экземпляров. Извлеченная алгоритмом обучения с учителем прогнозная модель может присваивать новому, немаркированному экземпляру любую метку класса, которая была определена в тренировочном наборе данных. Задача регрессии — это предсказание значений непрерывной целевой переменной (регрессионный анализ). Имеется несколько предикторных (объясняющих) переменных и непрерывная (результирующая) переменная отклика, и алгоритм пытается найти между этими переменными связь, которая позволит предсказывать результат. Машинное обучение без учителя Обучение без учителя (unsupervised learning) включает моделирование признаков набора данных без каких-либо меток. Эти модели включают такие за дачи, как кластеризация (clustering) и понижение размерности (dimensionality reduction) [2]. Кластеризация это метод разведочного анализа данных, который позволяет организовать груду информации в содержательные подгруппы (кластеры), не имея никаких предварительных сведений о принадлежности группе. Каждый кластер, который может появиться во время анализа, обозначает группу объектов, которые обладают определенной степенью подобия и одновременно больше отличаются от объектов в других кластерах, поэтому кластеризацию также иногда называют «классификацией без учителя». Еще одна подобласть обучения без учителя представлена методом снижения размерности. При этом методе метки или другая информация определяются исходя из структуры самого набора данных [2]. Смысл задачи понижения размерности состоит в том, чтобы отбросить нерелевантные или избыточные признаки. Задача разбивается на две группы, отбрасывание признаков, выделение признаков [3]. Кроме того, существуют так называемые методы частичного обучения (semisupervised learning), располагающиеся примерно посередине между машинным обучением с учителем и машинным обучением без учителя. Методы частичного обучения бывают полезны в случае наличия лишь неполных меток [2]. 1.2 Взаимосвязь между интеллектуальным анализом данных и машинным обучением Не существует универсального соглашения о том, что предполагает “интеллектуальный анализ данных”. Акцент на прогнозирование данных не всегда подходит для машинного обучения, хотя акцент на раскрытии свойств данных, несомненно, может быть применен к интеллектуальному анализу данных всегда. Итак, давайте начнем с этого: обработка данных может быть междисциплинарной областью, которая фокусируется на обнаружении свойств наборов знаний. (Забудьте о том, что это этап анализа KDD “обнаружение знаний в базах данных”, возможно, это было действительно много лет назад, больше нет). Существуют разные подходы к обнаружению свойств наборов знаний. Машинное обучение является одним из них. Другой — это просто изучение методов изображения виктимизации наборов информации или топологического анализа информации. С другой стороны, машинное обучение может быть подотраслью науки о знаниях, которая фокусируется на алгоритмах планирования, которые могут извлекать уроки и создавать прогнозы на основе информации. Машинное обучение включает в себя контролируемое обучение и неконтролируемые способы обучения. Неконтролируемые способы исходят из немаркированных наборов информации, поэтому в некотором смысле они напрямую связаны с поиском в них неизвестных свойств (например, кластеров или правил). Тогда ясно, что машинное обучение будет использоваться для обработки данных. Однако при обработке данных будут использоваться другие методы, помимо машинного обучения или на высоком уровне. Для создания еще более сложных вещей в настоящее время у нас есть термин-замена, информатика, который конкурирует за внимание, особенно в области обработки данных и KDD. Даже кластер SIGKDD в ACM медленно продвигается к информатике виктимизации. На своем веб-сайте они в настоящее время описывают себя как “сообщество по обработке данных, информатике и аналитике”. Согласно прогнозам, KDD может исчезнуть как термин еще до того, как выйдет обширное издание, а обработка данных может просто превратиться в информационную науку. Допустим, дело в том, чтобы отфильтровать выбросы из вашей информации (обнаружение аномалий), что может быть задачей интеллектуального анализа знаний. Можно было бы использовать стандартные методы машинного обучения, такие как алгоритмическое правило K-means в кластерном анализе, чтобы выявить эти выбросы и создать алгоритмическое правило для обучения при выполнении этого. Теперь эти выбросы соответствуют квадрату "Ранее неизвестных", и, таким образом, задача была такой же, как при интеллектуальном анализе информации, тогда как машинное обучение появляется на изображении с атрибутом ‘Обучение’ алгоритмического правила, обычно определяющего выбросы. Чтобы “научить машину”, вам нужна информация. В качестве примера, если вы хотите обучить нейронную сеть предсказывать победителя Суперкубка, вы не можете просто отсортировать выигранные агентством ООН игры за год. Этого недостаточно. Вам потребуется много информации, например, максимальное количество, которое вы сможете получить. Вы хотите, чтобы каждая характеристика для каждого игрока идеально подходила для всей его карьеры. Много информации, которую вы получили, много нейронной сети будет учиться на одних и тех же деталях. Я попытался обучить нейронную сеть создавать розыгрыши, и у меня было около 10 КБ информации. Я полагал, что это было много, затем нашел дневник, в котором кто-то подвергался преследованиям более 3 МБ. Вот почему вы хотите обрабатывать данные. Если вы думаете о ПК как о ком-то, сколько времени потребуется, чтобы кому-то сказали говорить? Они наблюдают за несколькими разговорами; они не просто слышат десять разговоров, а затем, как по волшебству, становятся беглыми. Таким образом, по сути, обработка данных является одним из самых ранних шагов на пути к машинному обучению. Вы добываете информацию, затем организуете, нормализуете и т.д. Из-за начальных этапов обучения нейронной сет 1.3 Обзор средств машинного обучения языка python Преимущества python Python один из самых популярных языков программирования для науки о данных. Он обладает огромным количеством полезных дополнительных библиотек. Учитывая, что производительность таких интерпретируемых языков, как Python, для вычислительноемких задач хуже, чем у языков программирования более низкого уровня, были разработаны дополнительные библиотеки, такие как NитРу и SciPy, которые опираются на низкоуровневые реализации на Foгtran и С для быстродействующих и векторизованных операций на многомерных массивах. Для выполнения задач программирования машинного обучения следует обращаться к библиотеке scikit-learn, которая на сегодня является одной из самых популярных и доступных библиотек машинного обучения с открытым исходным кодом [1]. В Python есть библиотеки для загрузки данных, визуализации, статистических вычислений, обработки естественного языка, обработки изображений и многого другого. Этот обширный набор инструментов предлагает специалистам по работе с данными (data scientists) большой набор инструментов общего и специального назначения. Одним из основных преимуществ использования Python является возможность напрямую работать с программным кодом с помощью терминала или других инструментов типа Jupyter Notebook [5]. Лучшие библиотеки Python для машинного обучения и AI Для реализации алгоритмов ML и AI необходимо хорошо структурированное и проверенное окружение — только так можно достичь наилучших результатов. Многочисленные библиотеки Python, предназначенные для машинного обучения, позволяют существенно сократить время создания проектов. Давайте познакомимся с лучшими из них.
1. Tensor Flow TensorFlow — библиотека сквозного машинного обучения Python для выполнения высококачественных численных вычислений. С помощью TensorFlow можно построить глубокие нейронные сети для распознавания образов и рукописного текста и рекуррентные нейронные сети для NLP(обработки естественных языков). Также есть модули для векторизации слов (embedding) и решения дифференциальных уравнений в частных производных (PDE). Этот фреймворк имеет отличную архитектурную поддержку, позволяющую с легкостью производить вычисления на самых разных платформах, в том числе на десктопах, серверах и мобильных устройствах. Основной козырь TensorFlow это абстракции. Они позволяют разработчикам сфокусироваться на общей логике приложения, а не на мелких деталях реализации тех или иных алгоритмов. С помощью этой библиотеки разработчики Python могут легко использовать AI и ML для создания уникальных адаптивных приложений, гибко реагирующих на пользовательские данные, например на выражение лица или интонацию голоса. 2. Keras Keras — одна из основных библиотек Python с открытым исходным кодом, написанная для построения нейронных сетей и проектов машинного обучения. Keras может работать совместно с Deeplearning4j, MXNet, Microsoft Cognitive Toolkit (CNTK), Theano или TensorFlow. В этой библиотеке реализованы практически все автономные модули нейронной сети, включая оптимизаторы, нейронные слои, функции активации слоев, схемы инициализации, функции затрат и модели регуляризации. Это позволяет строить новые модули нейросети, просто добавляя функции или классы. И поскольку модель уже определена в коде, разработчику не приходится создавать для нее отдельные конфигурационные файлы. Keras особенно удобна для начинающих разработчиков, которые хотят проектировать и разрабатывать собственные нейронные сети. Также Keras можно использовать при работе со сверточными нейронными сетями. В нем реализованы алгоритмы нормализации, оптимизации и активации слоев. Keras не является ML-библиотекой полного цикла (то есть, исчерпывающей все возможные варианты построения нейронных сетей). Вместо этого она функционирует как очень дружелюбный, расширяемый интерфейс, увеличивающий модульность и выразительность (в том числе других библиотек). 3. Theano С момента своего появления в 2007 году, Theano привлекла разработчиков Python и инженеров ML и AI. По своей сути, это научная математическая библиотека, которая позволяет вам определять, оптимизировать и вычислять математические выражения, в том числе и в виде многомерных массивов. Основой большинства ML и AI приложений является многократное вычисление заковыристых математических выражений. Theano позволяет вам проводить подобные вычисления в сотни раз быстрее, вдобавок она отлично оптимизирована под GPU, имеет модуль для символьного дифференцирования, а также предлагает широкие возможности для тестирования кода. Когда речь идет о производительности, Theano — отличная библиотека ML и AI, поскольку она может работать с очень большими нейронными сетями. Ее целью является снижение времени разработки и увеличение скорости выполнения приложений, в частности, основанных на алгоритмах глубоких нейронных сетей. Ее единственный недостаток — не слишком простой синтаксис (по сравнению с TensorFlow), особенно для новичков. 4. Scikit-learn Scikit-learn — еще одна известная опенсорсная библиотека машинного обучения Python, с широким спектром алгоритмов кластеризации, регрессии и классификации. DBSCAN, градиентный бустинг, случайный лес, SVM и k-means — вот только несколько примеров. Она также отлично взаимодействует с другими научными библиотеками Python, такими как NumPy и SciPy. Эта библиотека поддерживает алгоритмы обучения как с учителем, так и без учителя. Вот список основных преимуществ данной библиотеки, делающих ее одной из самых предпочтительных библиотек Python для ML: снижение размерности алгоритмы, построенные на решающих деревьях (в том числе стрижка и индукция) построение решающих поверхностей анализ и выбор признаков обнаружение и удаление выбросов продвинутое вероятностное моделирование классификация и кластеризация без учителя 5. PyTorch Вы когда-нибудь задумывались, почему PyTorch стала одной из самых популярных библиотек Python по машинному обучению? PyTorch — это полностью готовая к работе библиотека машинного обучения Python с отличными примерами, приложениями и вариантами использования, поддерживаемая сильным сообществом. PyTorch отлично адаптирована к графическому процессору (GPU), что позволяет использовать его, например в приложениях NLP (обработка естественных языков). Вообще, поддержка вычислений на GPU и CPU обеспечивает оптимизацию и масштабирование распределенных задач обучения как в области исследований, так и в области создания ПО. Глубокие нейронные сети и тензорные вычисления с ускорением на GPU — две основные фишки PyTorch. Библиотека также включает в себя компилятор машинного обучения под названием Glow, который серьезно повышает производительность фреймворков глубокого обучения. 6. NumPy NumPy — это библиотека линейной алгебры, разработанная на Python. Почему большое количество разработчиков и экспертов предпочитают ее другим библиотекам Python для машинного обучения? Практически все пакеты Python, использующиеся в машинном обучении, так или иначе опираются на NumPy. В библиотеку входят функции для работы со сложными математическими операциями линейной алгебры, алгоритмы преобразования Фурье и генерации случайных чисел, методы для работы с матрицами и n-мерными массивами. Модуль NumPy также применяется в научных вычислениях. В частности, он широко используется для работы со звуковыми волнами и изображениями. 7. Pandas В проектах по машинному обучению значительное время уходит на подготовку данных, а также на анализ основных тенденций и моделей. Именно здесь Pandas привлекает внимание специалистов по машинному обучению. Python Pandas — это библиотека с открытым исходным кодом, которая предлагает широкий спектр инструментов для обработки и анализа данных. С ее помощью вы можете читать данные из широкого спектра источников, таких как CSV, базы данных SQL, файлы JSON и Excel. Эта библиотека позволяет производить сложные операции с данными помощью всего одной команды. Python Pandas поставляется с несколькими встроенными методами для объединения, группировки и фильтрации данных и временных рядов. Но Pandas не ограничивается только решением задач, связанных с данными; он служит лучшей отправной точкой для создания более сфокусированных и мощных инструментов обработки данных. Download 0.72 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling