В течение нескольких месяцев мы собирали памятки по искусственному интеллекту, которыми периодически делились с друзьями и коллегами. В последнее время сложилась целая коллекция, и мы добавили к памяткам описания и/или цитаты, чтобы было интереснее читать. А в конце вас ждёт подборка по сложности «О большое» (Big-O). Наслаждайтесь.

UPD. Многие картинки будут читабельнее, если открыть их в отдельных вкладках или сохранить на диск.

Нейронные сети



Памятка по нейронным сетям

Графы нейронных сетей



Памятка по графикам нейронных сетей


Памятка по нейронным сетям

Обзор по машинному обучению



Памятка по машинному обучению

Алгоритм Scikit-learn


Эта памятка по машинному обучению поможет найти подходящий алгоритм для оценки, что является наиболее сложной частью работы. Блок-схема поможет проверить документацию и задаст общее направление по каждому алгоритму. Это позволит лучше понять стоящие перед вами проблемы и способы их решения.

Scikit-learn (ранее известная как scikits.learn) — это бесплатная библиотека машинного обучения для Python. В нее входят различные виды классификации, регрессии и алгоритмы кластеризации, включающие метод опорных векторов, алгоритм Random forest («случайный лес»), градиентный бустинг, метод k-средних и DBSCAN. Scikit-learn предназначена для взаимодействия с вычислительными и научными библиотеками Python NumPy и SciPy.




Памятка по Scikit-learn

Памятка по алгоритмам машинного обучения


Эта памятка от Microsoft Azure поможет с выбором подходящих алгоритмов машинного обучения для вашего предсказательного аналитического решения. Вначале памятка спросит о природе данных, а затем посоветует наилучший алгоритм.



Python для Data Science



Памятка по Python для Data Science


Памятка по большим данным

TensorFlow


В мае 2017 года Google анонсировал TPU второго поколения, а также их доступность в Google Compute Engine. TPU второго поколения обладают производительностью до 180 терафлопов, а при кластеризации по 64 TPU — до 11,5 петафлопов.


Памятка по TensorFlow

Keras


В 2017 году команда TensorFlow в Google решила внедрить поддержку Keras в основную библиотеку TensorFlow. Шолле (Chollet) объяснил, что Keras является, скорее, интерфейсом, чем сквозной системой машинного обучения. Он предоставляет высокоуровневый, более интуитивный набор абстракций, который упрощает конфигурирование нейронных сетей, вне зависимости от используемой в бэкенде библиотеки научных вычислений



NumPy


NumPy предназначен для Cpython, эталонной реализации Python, которая является не оптимизирующим интерпретатором байт-кода. Математические алгоритмы, написанные для этой версии Python, часто работают гораздо медленнее скомпилированных аналогов. Библиотека NumPy частично решает проблему скорости за счет многомерных массивов, а также функций и операторов, оптимизированных для работы с массивами. Необходимо будет переписать часть кода с использованием NumPy, в основном внутренние циклы.


Памятка по NumPy

Pandas


Название «Pandas» происходит от эконометрического термина "panel data", который применяется для многомерных структурированных наборов данных.


Памятка по Pandas

Data Wrangling


Data Wrangling («выпас» данных, первичная обработка данных) — этот термин начинает проникать в поп-культуру. В фильме 2017 «Конг: Остров черепа» один из героев представлен как «Стив Вудвард, наш data wrangler».


Памятка по Data Wrangling


Памятка по Pandas Data Wrangling

Data Wrangling с помощью dplyr и tidyr



Памятка по Data Wrangling с dplyr и tidyr


Памятка по Data Wrangling с dplyr и tidyr

SciPy


В основе SciPy лежит объект-массив NumPy. Эта библиотека является частью стека NumPy, который включает такие инструменты, как Matplotlib, Pandas и SymPy, а также расширяющийся набор библиотек для научных вычислений. У стека NumPy и приложений MATLAB, GNU Octave и Scilab одна и та же аудитория пользователей. Стек NumPy также иногда называют стеком SciPy.


Памятка по SciPy

Matplotlib


Matplotlib — это библиотека для построения графиков для Python и его вычислительного математического расширения NumPy. Она предоставляет объектно-ориентированный API для встраивания графиков в приложения с использованием универсальных GUI-инструментов, таких как Tkinter, wxPython, Qt, или GTK+. Существует также процедурный интерфейс «pylab» на основе конечного автомата (например, OpenGL), разработанный так, чтобы походить MATLAB, хотя его использование не рекомендуется. SciPy использует matplotlib.

Pyplot — это модуль matplotlib, который предоставляет интерфейс наподобие MATLAB. Matplotlib применяется так же, как и MATLAB, позволяет использовать Python, и к тому же бесплатен.


Памятка по Matplotlib

Визуализация данных



Памятка по визуализации данных


Памятка по ggplot

PySpark



Памятка по PySpark

«О большое» (Big-O)



Памятка по сложности алгоритмов


Памятка по сложности алгоритмов


Памятка по сложности операций со структурами данных в алгоритмах


Памятка по сложности алгоритмов сортировки массива

Источники


Памятка по сложности алгоритмов
Памятка по Bokeh
Памятка по Data Science
Памятка по Data Wrangling
Памятка по Ggplot
Памятка по Keras
Памятка по машинному обучению
Памятка по машинному обучению
Памятка по машинному обучению
Памятка по Matplotlib
Памятка по нейросетям
Памятка по графам нейросетей
Нейросети
Памятка по Numpy
Памятка по Pandas
Памятка по Pandas
Памятка по Pyspark
Памятка по Scikit
Памятка по Scikit-learn
Памятка по Scipy
Памятка по TensorFlow

Комментарии (9)


  1. DmitriyDev
    24.07.2018 17:42

    Большое человеческое спасибо!


  1. phenik
    24.07.2018 17:44
    +2

    Напоминает шпаргалки для сдачи экзаменов.


  1. lipkij
    24.07.2018 20:54

    Спасибо, добрый человек :)


  1. delph
    24.07.2018 22:18

    Отличная сборка, спасибо!


  1. Dark_Daiver
    25.07.2018 08:03
    +1

    Если честно, то я бы убрал первую картинку, т.к. она откровенно вредная. Мало того, что она толком ничего не объясняет — одной топологии недостаточно чтобы объяснить чем отличается один тип нейронной сети от другой, так еще и топология местами нарисована с ошибками.

    К примеру
    — Что такое kernel в сверточной сети (deep convolutional network), и почему он идет перед первыми свертками?
    — Чем отличаются feed forward и radial basis network?
    — Почему у SVM несколько скрытых слоев? Если речь идет о нелинейных SVM, то возможно стоило влепить kernel сюда? Что за хитрые скрытые слои, которые принимают по одному входу? Ну и строго говоря причислять SVM к Neural Networks это несколько грубо.
    — Почему в GAN дважды встречается Match input output Cell? Что такое Match input output Cell в принципе? Если это просто штука которая сравнивает поэлементно входы-выходы, то в GAN такого в чистом виде не происходит.
    — Почему skip connections в Deep Residual Network связывают только часть нейронов? Строго говоря, не совсем корректно показывать skip connections так же как и обычные соединения. В DRN skip connections это всегда сложение, более сложные случаи уже не называют residual (Dense connections, например).


    1. Calc
      25.07.2018 11:56

      Наоборот, тем кто далек от этого это визуальное представление, что есть что то кроме простого перцептрона и 2х уровневой сетки. А дальше можно самому искать информацию по каждому типу. Много раз видел поддержку сетей в opencv, но не так интересен просто список, сколько визуальное представление.
      ps работа не связана с нейронными сетями, просто интерес


      1. Dark_Daiver
        25.07.2018 20:21

        имхо, это не повод городить плохие «шпаргалки». На крайний случай можно было вставить топологии тех же Inception/ResNet — смотрятся солидно и при этом отображают реальную топологию.


  1. lumaxy
    25.07.2018 18:17

    Только у меня некоторые картинки слишком мелкие, чтобы прочитать часть текста? «Открыть картинку в новой вкладке» не помогает, надо идти по ссылке в конце статьи.


    1. NIX_Solutions Автор
      26.07.2018 12:42

      Картинки перезалили.