Вы находитесь на странице: 1из 13

Название учебного заведения

Предмет: Библиотечно-информационная деятельность

РЕФЕРАТ
на тему: «Новое задание по библиотечно-информационной
деятельности»

Проверил:

Выполнил:

2022
2

Оглавление
Введение ................................................................................................................... 3
1.Описание программного продукта Python ........................................................ 4
2. Исследование существующих библиотек машинного обучения ................... 5
3. Библиотека NumPy. Ее назначение, состав, особенности использования .... 9
Заключение ............................................................................................................ 12
Список использованных источников .................................................................. 13
3

Введение
Рост объемов информации, которая скапливается в современном мире,
требования к ее обработки и хранению делают актуальным исследования в
области методов и алгоритмов анализа больших наборов данных. Пока
пределом возможностей современных программных инструментов,
ориентированных на обработку больших объемов данных, являются
петабайтные наборы и гигабайтные потоки данных. Но в соответствии с
тенденции развития науки и общества ожидаются еще большие масштабы и
объемы данных. Дальнейший рост количества информации и усложнение ее
структуры делает все более актуальными проблемы машинного обучения и
интеллектуального анализа данных (Data Mining), которые позволяют
извлекать из Big Data полезные и практически применимы факты и знания
[1].
Для практического решения этой актуальной задачи, в последние годы
возникла целая экосистема библиотек, в которых достаточно грамотно
реализованы наиболее известные базовые алгоритмы машинного обучения.
Сейчас не обязательно реализовывать каждый из алгоритмов с нуля.
Современные библиотеки машинного обучения типа NumPy, по сути
представляют из себя типовые алгоритмы решения задач машинного
обучение. Хотя машинное обучение – это прикладная наука, с теоретической
точки зрения инструментами в машинном обучении являются алгоритмы.
Алгоритмы должны быть реализованы на определенном языке
программирования, в определенной среде, рассчитанной на определенный
вид «железа» и т.п.
Максимально используемым на сегодня для решение прикладных задач
является язык программирования Python. Именно на базе этого языка
реализовано большее количество библиотек, которые предоставляют в
удобном виде большинство доступных алгоритмов.
4

1. Описание программного продукта Python


Python – интерпретированный объектно-ориентированный язык
программирования высокого уровня со строгой динамической типизацией
[7], разработанная Гвидо ван Россумом в 1990 году. Python поддерживает
модули и пакеты модулей, что способствует модульности и повторного
использования кода. Интерпретатор Python и стандартные библиотеки
доступны как в скомпилированной, так и в исходной форме для всех
основных платформ [4].
Python поддерживает разные парадигмы программирования, в том
числе процедурное, функциональную, объектно-ориентированную и
аспектно-ориентированную. Язык содержит структуры данных высокого
уровня вместе с динамической семантикой и динамическим связыванием.
Использование Python предоставляет разработчикам в сфере
машинного обучения следующие преимущества:
– широкий набор библиотек, которые реализуют машинное обучение,
алгоритмы искусственного интеллекта, работы с нейросетями, сервисами
крупных поставщиков услуг DNNs и DLF;
– возможность использования в диалоговом режиме, что полезно для
проведения экспериментов по машинному обучению;
– наличие библиотеки для семантической обработки текстовых
документов.
К основным недостаткам Python относят низкое быстродействие, что
может стать критическим при обработке больших объемов информации и
отсутствие статической типизации.
Для решения задачи построения рекомендательной системы Python
предоставляет специализированные библиотеки, позволяющие быстро и
качественно разрабатывать программное обеспечение и имеющие внутри
долю реализованных методов, в результате чего разработчику не требуется
программировать низкоуровневый код [4].
5

2. Исследование существующих библиотек машинного обучения


Наиболее применяемыми на сегодняшний день библиотеками
машинного обучения являются: Pandas, Matplotlib, Tableau, NumPy, Scikit-
Learn, NLTK, TensorFlow, TensorBoard, PyTorch, Keras, Caffe, Apache Spark.
Pandas – это открытая open-source библиотека, разработана, для анализа
и моделирование данных, лицензированная BSD, которая обеспечивает
высокопроизводительные, простые в использовании структуры данных и
инструменты анализа данных для языка программирования Python. Python
отлично подходит для обработки и подготовки данных, но меньше для
анализа и моделирования данных. Pandas помогает восполнить этот пробел,
позволяя выполнять весь процесс анализа данных в Python без
необходимости переключения на более конкретный язык [7]. Рandas
упрощает анализ, преобразуя файлы данных CSV, JSON и TSV или базу
данных SQL во фрейм данных, объект Python, похожий на Excel или SPSS-
таблицу со строчками и столбцами. Более того, pandas комбинируются с
инструментарием IPython и другими библиотеками для повышения
производительности и поддержания совместной работы.
Matplotlib – это 2D библиотека Python для черчения. Несмотря на то,
что библиотека написана в основном на Python, она расширена с помощью
NumPy и поэтому работает хорошо даже при использовании для больших
массивов. Matplotlib позволяет генерировать визуализации
производственного качества с несколькими строками кода.
Функциональность библиотеки может быть расширена сторонними пакетами
визуализации, такими как seaborn, ggplot и holoviews. Также могут
добавляться дополнительные функции, с помощью набора инструментов для
проекции и картографии Basemap и cartopy.
Tableau – это инструмент визуализации данных, используемый в науке
о данных и бизнес-аналитике. Ряд специфических особенностей делают эту
библиотеку эффективной для решения задач в различных отраслях
промышленности и информационных средах. Исследуя и открывая данные,
6

программное обеспечение Tableau быстро извлекает из них информацию и


представляет ее в понятных форматах. Оно не требует особых навыков
программирования и может быть легко установлено на все виды устройств.
NumPy – это фундаментальный пакет для научных вычислений из
Python, который заменил NumArray и Numeric [3]. Он поддерживает
многомерные массивы (таблицы) и матрицы. Данные машинного обучения
представлены в массивах. А матрица – это двумерный массив чисел. NumPy
содержит широковещательные функции как инструменты для интеграции
С/С++ и кода Fortran. Ее функциональность также включает в себя
преобразование Фурье, линейную алгебру и возможности работы со
случайными числами. Можно использовать NumPy в качестве эффективного
контейнера для хранения многомерных общих данных. Благодаря
возможности определения произвольных типов данных, NumPy легко и
быстро интегрируется с многочисленными типами баз данных.
Scikit-Learn – это библиотека с открытым исходным кодом для
машинного обучение на Python, построенная на основе SciPy (Scientific
Python), NumPy и matplotlib. Библиотека предназначена для
производственного использования. Простота, возможности совместной
работы, производительность и большая документация, написанная простым
языком, способствуют ее популярности. Scikit-learn предоставляет
пользователям ряд установившихся алгоритмов для контролируемого и
неконтролируемого обучения. Библиотека фокусируется на моделировании
данных, а не на их загрузке, манипулировании и обобщении.
NLTK – это практически стандартная библиотека на Python для работы
с текстом, обладающим множеством полезных функций. Например, разные
типы текста, обработка предложений и слов, часть речевых тегов, анализ
структуры предложения, распознавание именуемых объектов, классификация
текста, анализ чувств и многое другое.
TensorFlow. Важной особенностью этой библиотеки является то, что
многочисленные вычисления выполняются с помощью графиков потока
7

данных, состоящего из узлов и ребер [6]. Узлы представляют собой


математические операции, а ребра – это многомерные массивы данных или
тензоры, над которыми выполняются эти операции. TensorFlow отличается
гибкостью и может использоваться на разных вычислительных платформ
(CPU, GPU и TPU) и устройствах, от настольных компьютеров для кластеров
серверов и мобильных и пограничных систем. Еще одним преимуществом
этого фреймворка является то, что он работает как для исследований, так и
для повторяющихся задач машинного обучения.
TensorBoard – это набор инструментов для графического представления
различных аспектов и этапов машинного обучения в TensorFlow [5].
TensorBoard читает файлы событий TensorFlow, содержащие сводные данные
(наблюдение за конкретными операциями модели), генерируемые во время
работы TensorFlow. Структура модели, показанная на графиках, позволяет
исследователям убедиться в том, что компоненты модели расположены там,
где это необходимо, и правильно подключены. Посредством графического
визуализатора пользователи могут исследовать различные слои абстракции
модели, увеличивая и уменьшая масштаб любой части схемы. Еще одним
важным преимуществом визуализации TensorBoard является то, что узлы
одних и тех же типов, и схожих структур окрашиваются одними и теми же
цветами. Пользователи также могут просматривать раскраску по приборам
(CPU, GPU или сочетание обоих), выделять конкретный узел с функцией
"трассировки входов" и визуализировать одну или несколько схем
одновременно. TensorBoard показывает метрики при разработке модели и
разрешает принять решение по модели. Помимо отображения метрик
производительности, TensorBoard может показывать пользователям
множество другой информации, такой как гистограммы, аудио, текстовые и
графические данные, распределение, встраивание и скаляры.
PyTorch – это система машинного обучения для глубоких нейроных
сетей, поддерживающих и ускоряющих работу GPU. PyTorch был разработан
с идеей обеспечения максимально быстрого и гибкое моделирование.
8

Следует отметить, что рабочий процесс в PyTorch похож на процесс в


NumPy, научной вычислительной библиотеке, основанной на Python.
Динамический вычислительный граф – одна из особенностей, делающих эту
библиотеку популярной. В большинстве фреймворков, таких как TensorFlow,
Theano, CNTK и Caffe, модели построены статическим способом. Ученый,
занимающийся данным, должен изменить всю структуру нейронной сети –
перестроить ее с нуля – чтобы изменить ее поведение. PyTorch делает это
проще и быстрее. Фреймворк позволяет произвольно изменять поведение
сети без задержек и накладных расходов
Apache Spark – это распределенное фреймворк для кластерных
вычислений, который обычно оборудован двигателем обработки данных в
памяти. Функциональность этого «двигателя» включает в себя ETL
(извлечение, преобразование и загрузка), машинное обучение, анализ
данных, пакетную обработку и потоковую обработку данных. Этот
инструмент использует концепцию потоковой обработки данных для
распределенных вычислений и позволяет масштабировать решения для
больших кластеров. Разнообразие вариантов запуска (локально, в кластерах,
облаке или на месте) и возможность доступа к данным из любых источников
– это еще одна полезная особенность Apache Spark.
Caffe – предназначена для упрощения и гибкого глубокого изучения
сложных моделей и поддержки мобильного развертывания. У пользователей
есть несколько вариантов организации вычислений с помощью библиотеки,
которая может быть установлена и запущена на рабочем столе, в облаке или
в центре обработки данных. Развернутые модели могут быстро работать на
мобильных устройствах благодаря интеграции с IDE Xcode, Visual Studio и
Android Studio. Этот фреймворк также позволяет быстро увеличивать или
уменьшать масштаб, не прибегая к рефакторинг дизайна. Быстрое
прототипирование, исследования и разработки являются преимуществами
использование Caffe. Указанная библиотека имеет четкую инфраструктуру
кода, и его легко расширить для исследований новых методов.
9

3. Библиотека NumPy. Ее назначение, состав, особенности


использования
NumPy (сокращение от numerical python) – это библиотека с открытым
исходным кодом для языка программирование Python, оказывающая
поддержку больших многомерных массивов и матриц с большой коллекцией
математических функций высокого уровня для работы с этими массивами.
Это фундаментальный пакет для научных вычислений который содержит,
среди прочего: мощный объект N-размерного массива, сложные (трансляция)
функции, инструменты для интеграции C/C++ и Fortran кода, методы для
работы с линейной алгеброй, преобразование Фурье и возможности
использования случайных чисел. Помимо очевидных научных приложений,
NumPy также может быть использован как эффективный многомерный
контейнер общих данных, позволяющий определять случайные типы данных
[3]. NumPy предоставляет высокопроизводительный многомерный объект
массива ndarray и инструменты для работы с этими массивами. К тому же
библиотека NumPy входит в так называемую экосистему. SciPy (сокращение
от scientific python), что представляет собой набор библиотек Python также с
открытым исходным кодом, специализирующихся на научных вычислениях.
Вместе они составляют набор инструментов для расчета и отображения
данных.
В настоящее время NumPy является открытым кодом и лицензируется
под BSD (Berkeley Software Distribution) [2].
Назначение NumPy.
На основе NumPy создаются новые типы массивов, для решения
многомерных задач в математике и физике, биоинформатике,
вычислительной химии и даже когнитивной психологии, возможности
которых выходят за рамки того, что предлагает библиотека. Например,
библиотеки Dask, CuPy или XND.
10

Data Science. В основе экосистемы для анализа данных лежит NumPy.


Библиотека используется на всех этапах работы с данными: извлечение и
преобразование, анализ, моделирование и оценка, репрезентация.
Machine Learning. Библиотеки для машинного обучения scikit-learn и
SciPy тоже работают благодаря вычислительным мощностям NumPy.
Визуализация данных. По сравнению с Python возможности NumPy
позволяют исследователям визуализировать наборы данных, которые гораздо
больше по размеру [2]. Например, библиотека лежит в основе системы PyViz,
которая включает в себя десятки программ для визуализации.
Состав и особенности применения NumPy.
Структуры данных Numpy более эффективно работают в следующих
направлениях:
– Размер – структуры данных Numpy занимают меньшее место;
– Производительность – они быстрее списков;
– Функциональность – в SciPy и NumPy оптимизированы функции,
такие как встроенные операции линейной алгебры.
Вся библиотека NumPy базируется на одном основном объекте: darray
(что означает n-dimensional array – n-мерный массив). Этот объект является
многомерным однородным массивом из заранее определенным количеством
элементов. Однородным, поскольку практически все элементы в нем имеют
одинаковый тип и одинаковый размер. Тип данных определяется другим
объектом NumPy, который называется dtype (тип данных); каждый ndarray
связан только с одним типом dtype.
Количество размеров и элементов в массиве определяется его формой
(shape), кортежем N-положительных целых чисел, определяющим размер
каждого измерения. Размеры определяются как оси (axes), а количество осей
– как ранг (rank). Более того, еще одной особенностью массивов NumPy
является то, что их размер является фиксированным, то есть, определенный
при их создании размер остается неизменным. Что отличается от списков
Python, которые могут увеличиваться или уменьшаться.
11

Массивы NumPy содержат значение одного типа (типы данных


подобны для C, Fortran и других смежных языков).
Есть два основных правила для каждого массива NumPy.
1. Каждый элемент массива должен быть одного типа и размера.
2. Если элементы массива также являются массивами, эти внутренние
массивы должны иметь тот же тип и количество элементов. Другими
словами, многомерные массивы должны быть прямоугольными, а не
рваными (jagged).
Более эффективным методом (особенно для больших массивов)
является создание массивов без использования списков, используя функции,
встроенные в NumPy. Индексация в NumPy не отличается от стандартной
индексации списков Python. В одномерном массиве значение i-го элемента
(отсчет от нуля) можно получить, указав желаемый индекс в квадратных
скобках, как и в списках Python. Однако в отличие от списков Python
массивы NumPy имеют фиксированный тип. Это означает, что при попытке
вставить значение с плавающей запятой в целочисленный массив значение
будет автоматически сокращено.
Для многих типов операций NumPy обеспечивает удобный интерфейс к
статически типизированным, скомпилированным процедурам. Это так
называемые векторизированные операции. Для доступа к таким операциям
можно просто выполнить операцию над массивом, которая затем будет
применена для каждого элемента. Само использование векторизированных
операций есть ключом для быстрой работы с массивами NumPy.
Векторизированные операции в NumPy реализуются через универсальные
функции, основной целью которых является быстрое выполнение
повторяющихся операций над значениями в массивах. NumPy эти функции
чрезвычайно гибкие, позволяющие выполнять операции над скаляром и
массивом или работать с двумя массивами. Действие универсальной
функции не ограничивается одномерными массивами – их можно применять
и на многомерных массивах.
12

Заключение
Анализ основных задач машинного обучения, связанных с обработкой
Big Data, с целью получения из них полезных для практического применения
сведений, показывает целесообразность применения для этого средств
статистической обработки и работы с нейросетями. Одновременно наличие
большого разнообразия алгоритмов машинного обучения, ориентированных
на разные типы входной информации и знаний, что за ними стоят,
свидетельствует о потребностях в специализируемых библиотеках,
реализующих эти алгоритмы. Количество которых растет ежедневно и
привело к возношению определенного набора стабильно устанавливаемых
библиотек, которые постоянно занимаются машинным обучением или
обработкой обширных данных.
В настоящее время существует много онлайн сервисов по машинному
обучению, а также библиотек и фреймворков, которые возможно
использовать в своих разработках. Большие преимущества языкам
программирования предоставляет возможности использовать внешние
облачные сервисы для хранения и обработки объёмов данных. Еще одним
важным фактором для выбора инструментальной среды, в которому
решаются задачи машинного обучения, есть скорость обработки, что связано
с большими объёмами данных, которые должны обрабатываться.
Для решения всех этих проблем созданы целые пакеты библиотек,
которые можно установить за один раз, что позволяет превратить компьютер
в готовую станцию, где можно начинать реализовывать какие-либо
алгоритмы по машинному обучению, датамайнингу, анализу больших
данных. Один из таких пакетов – Anaconda Python – это полностью
настроенное среда программирования, в которая за счет десятка и сотен
библиотек (Pandas, Matplotlib, Tableau, NumPy, Scikit-Learn и др.), версии
которых не конфликтуют, делает Python надежным вариантом для создания
экспериментальных прототипов, объединяющих современные подходы к
машинному обучению элементами искусственного интеллекта.
13

Список использованных источников


1. Jon Peck, «Enrich data in Tableau with machine learning using», 2019.
2. Mayank Gupta, «NUMPY in Python for Machine Learning», 2020.
3. NumPy [Электронный ресурс] URL: https://numpy.org/doc/stable/
(Дата обращение: 05.05.2022).
4. Python Data Analysis Library [Электронный ресурс] URL:
https://pandas.pydata.org/getting_started.html (Дата обращение: 05.05.2022).
5. TensorBoard: набор инструментов для визуализации TensorFlow.
[Электронный ресурс] URL: https://www.tensorflow.org/tensorboard (Дата
обращение: 05.05.2022).
6. TensorFlow [Электронный ресурс] URL:.
https://github.com/tensorflow/tensorflow/tags/ (Дата обращение: 05.05.2022).
7. Доусон М. Программируем на Python – Санкт-Петербург: СПб, 2014.
- 416 с.

Вам также может понравиться