Предпосылки к машинному обучению, глубокому обучению и обработке данных: инструментарий Numpy на языке Python

О чём этот курс. Как его успешно пройти. Что следует знать прежде всего

Здравствуйте и добро пожаловать на занятия по теме «Инструментарий Numpy на языке Python».

Есть один неприятный момент: я встречаю множество людей, желающих изучать глубокое обучение и обработку данных, и потому приобретающих курсы по этим темам. Но они безнадежно отстают, поскольку не имеют достаточных знаний об инструментарии библиотеки Numpy, чтобы воплотить рассматриваемые понятия в коде. Даже если я даю полный код, без знания Numpy всё равно он очень труден для прочтения. Этот курс и создан, чтобы устранить данное препятствие и показать, как воспользоваться инструментарием Numpy, необходимым для глубокого обучения и обработки данных.

Итак,что именно сюда входит?

Прежде всего в этом курсе мы рассмотрим библиотеку Numpy, что сформирует основу для всего остального. Центральным объектом Numpy является числовой массив, над которым можно производить различные операции. Ключевым моментом является то, что массив Numpy не является обычным массивом, который можно встретить в языках вроде Java или C++; это нечто вроде математического объекта, как вектор или матрица. Это значит, что над ним можно проводить векторные и матричные операции, такие как сложение, вычитание и умножение.

Наиболее важный аспект массивов Numpy заключается в том, что они оптимизированы в плане скорости вычислений. Мы проведём демонстрацию, где я покажу, что выполнение векторной операции Numpy происходит быстрее, чем при использовании списка языка Python.

Затеммы рассмотрим более сложные операции, такие как скалярное произведение,нахождение обратных величин, определителей и решение систем линейных уравнений.

Далеемы обратимся к популярной библиотеке Pandas. Pandas – замечательная библиотека, поскольку она можетскрыто выполнить множество вещей, делая жизнь проще, так как исчезаетнеобходимость вручную писать код для всех этих вещей. Pandasв обработке данных во многом схожа с языком R(если вы знакомы с R). Центральнымобъектом в R и Pandas является датафрейм.Мы увидим, насколько проще загружать данные с помощью Pandasпо сравнению с необходимостью делать это вручную. После этого мы рассмотримнекоторые операции над датафреймами, такие как фильтрование по столбцу истроке, функции добавления и присоединения, которые, кстати, очень похожи насоответствующие функции SQL. Так что если увас есть опыт работы с SQL и вам нравитсяработать с таблицами, то Pandas будетпрекрасным выбором для дальнейшего изучения.

И раз уж Pandas учит нас загружать данные, то следующим этапом будет рассмотрение данных. Для этого мы воспользуемся библиотекой Matplotlib. В этом разделе мы рассмотрим ряд общих графиков, а именно линейные диаграммы, диаграммы рассеяния и гистограммы. Мы также научимся выводить на экран изображения с помощью Matplotlib. В 99% случаев вы будете использовать один из вышеприведенных графиков.

И наконец мы рассмотрим библиотеку Scipy. Я предпочитаю рассматривать Scipy как дополнение к Numpy. В то время как Numpy предоставляет базовые «строительные блоки» вроде векторов, матриц и операций над ними, Scipy использует их для выполнения конкретных задач. К примеру, Scipy может производить множество общих статистических вычислений, включая вычисление плотности распределения вероятностей, функции распределения, нахождение выборки из распределения и статистическую проверку. В ней имеются средства для обработки сигналов, так что с её помощью можно проводить такие операции, как свёртка и преобразование Фурье. С её помощью можно выполнять также множество других операций, но мы сосредоточимся именно на статистических методах, поскольку они больше всего проявляются в глубоком обучении и обработке данных.

Теперьпоговорим о том, как гарантировать успешное прохождение курса. Самое важное –чтобы вы писали код самостоятельно, сами пробовали обсуждаемый материал иубедились, что можете самостоятельно написать весь код без какой-либо помощи.Чтобы достичь успеха в программировании, необходимо вновь и вновь повторятьодни и те же вещи, пока они впечатаются в вашу память. Некоторые думают, чтоони могут научиться, просто посмотрев видео в интернете. Зачастую людипросматривают видео в интернете, а потом утверждают, что знают и понимают тему,– просто посмотрев видео. Не будьте такими!

Можетвозникнуть вопрос: как можно дополнительно попрактиковаться? Применительно кданному курсу, это своего рода «обратный» вопрос. Данный курс посвящён тому,чтобы дать вам простейшие инструменты, которые можно применить при изучении ииспользовании алгоритмов глубокого обучения и обработки данных. Так что вдействительности лучшей практикой будет изучить курсы по глубокому обучению иобработке данных, а затем применить к ним полученные здесь знания. В этом курсебудет несколько лёгких задач, но чтобы увидеть, как изучаемый инструментарийиспользуется на самом деле, лучше пройти курс по глубокому обучению, включающийего реализацию. Тогда мы сможете использовать этот инструментарий в настоящихприложениях. Это и есть лучшая практика, поскольку это реальные задачи.

Каквсегда, есть ряд вещей, которые необходимо знать, прежде чем проходить этот курс.Данный курс намного проще, чем некоторые из моих других курсов, и я не хочутребовать многого, но кое-что я должен указать. Итак, вот что следует знать,прежде чем приступить к изучению этого курса.

Прежде всего, поскольку мы будем рассматривать векторы и матрицы, вы должны знать, что это такое. В этом может помочь полный курс по линейной алгебре, хоть мы и не будем рассматривать чересчур сложные понятия вроде собственных значений или собственных векторов. В связи с тем, что будут рассматриваться некоторые статистические данные библиотеки Scipy, вам следует знать некоторые общие распределения вероятностей вроде гауссового распределения – как одномерного, так и многомерного. И последнее, с чем вы должны быть знакомы, – это с языком Python. Это, конечно же, совершенно необходимо, поскольку инструментарий Numpy является лишь библиотеками языка Python. Вы должны хорошо понимать, как выполняется код, знать условный оператор, оператор цикла for и функции, и иметь достаточную практику работы с ними, чтобы операции с ними не вызывали затруднений.

Так что требований не слишком много, но они всё же есть.

Где взять код и как установить библиотеки

Вэтой лекции мы поговорим о том, где взять код для этого курса.

Весь код хранится в репозитарии Github, который можно найти по адресу https://github.com/lazyprogrammer/machine_learning_examples. Соответствующая папка называется numpy_class.

Git – это система контроля версий, позволяющая систематически обновлять весь код как для этого, так и для всех других моих курсов. Если вы ещё не умеете пользоваться Git, не переживайте. Вам нужно знать лишь несколько простых команд, а не становиться экспертом – по крайней мере, пока не начнёте работать над большим проектом совместно со многими другими людьми. В действительности в этом курсе будет не очень много кода в файлах, поскольку в основном мы будем использовать Ipython – интерактивную оболочку языка Python.

Преждевсего вы должны загрузить код на свой компьютер. Это можно сделать несколькимиспособами. Первый и самый плохой – загрузить в виде zip-файла.Несколько лучше – использовать команду gitclone с URL, отображённом вадресной строке.

Последняя команда, которую вы должны знать для прохождения этого курса, – git pull. Она обеспечивает наличие у вас последней версии всего кода. Её следует периодически запускать, поскольку я часто обновляю курсы.

Теперь поговорим о том, как всё установить. Обычно я советую пользоваться Linux или Mac. Mac несколько лучше, потому что, как правило, меньше глючит, чем Linux, а кроме того, он ещё и поставляется со всеми библиотеками, которые мы должны установить. Если есть желание, можете их обновить, использовав команду

sudo pip install –U numpy scipy matplotlib pandas ipython

В Ubuntu (дистрибутив Linux, который я советую) нельзя использовать команды pip или easy_install для установки нужных библиотек. Необходимо использовать менеджер пакетов apt-get. Установку можно произвести одной строкой с помощью следующей команды:

sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas

А что делать, если вы используете Windows? Мой совет – использовать виртуальную машину. В приложении к этому курсу я добавил руководство по настройке программной среды, в котором показан процесс настройки и установки всего необходимого. Советую я так не потому, что терпеть не могу Windows, а исходя из реального опыта работы с клиентами. Каждый раз, когда клиент пытается установить эти пакеты Python на машину с Windows, обычно на это уходят часы. Так что вам решать, тратить ли на это своё время. Я слышал, что хороша Anaconda, но на 100% не поручусь, поскольку никогда лично ею не пользовался.

Ещё одна причина, по которой я выступаю против Windows, заключается в том, что библиотеки Theano и TensorFlow официально не поддерживаются этой платформой. Это не значит, что вы не сможете найти руководство по их установке и не сумеете заставить их работать, но это будет сложно и может занять очень много времени. Я знаю, что множество людей интересуются TensorFlow, поскольку это новинка от Google, которая раньше вообще не поддерживалась Windows. Впрочем, TensorFlow активно разрабатывается, и, судя по тому, что я видел, идёт активная работа над тем, чтобы заставить эту библиотеку работать под Windows, но в данное время она ещё не закончена, так что придётся подождать. В любом случае в этом курсе на самом деле не используются ни Theano, ни TensorFlow, но об этом следует знать на будущее, если вы решите заниматься этой сферой деятельности.

Понравилась статья? Поделить с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: