5 книг, чтобы лучше понимать Data Science

Data Science — это динамичная и быстроразвивающаяся область, которая требует от специалистов не только глубоких знаний, но и постоянного самообразования. Важным преимуществом работы в этой сфере является высокий уровень заработка: специалисты Data Science востребованы на рынке, и их доходы могут быть весьма значительными. Чтобы быть в числе лучших и уверенно двигаться вперед, важно опираться на проверенные источники знаний. Мы собрали список из пяти книг, которые стоит прочитать каждому специалисту по Data Science:

  • «Распознавание образов и машинное обучение», Кристофер Бишоп
    Классическое руководство по машинному обучению, которое охватывает базовые и продвинутые методы: байесовские модели, деревья решений и методы снижения размерности. Незаменимая книга для тех, кто хочет глубже понять теорию и методы машинного обучения.

  • «Глубокое обучение», Ян Гудфеллоу, Иошуа Бенджио и Аарон Курвилль 
    В книге рассматриваются ключевые аспекты нейронных сетей, сверточных и рекуррентных сетей, их применение в реальных задачах.

  • «Прикладное машинное обучение с помощью Scikit-Learn, Keras и TensorFlow», Орельен Жерон 
    Это скорее практический гид по машинному обучению, который содержит множество примеров и кодов на Python. В книге описаны популярные библиотеки Scikit-Learn, Keras и TensorFlow.

  • «Основы статистического обучения. Интеллектуальный анализ данных, логический вывод и прогнозирование», Тревор Хасти, Роберт Тибширани, Джером Фридман 
    Это пособие по статистическому обучению и машинному обучению. Книга богата теоретическим материалом и практическими заданиями, которые помогут понять и научиться применять сложные методы анализа данных.

  • «Data Science для бизнеса» Фостер Провост, Том Фосетт 
    Книга помогает понять, как правильно интерпретировать данные, какие методы применять в конкретных ситуациях и как интегрировать Data Science в бизнес-процессы.

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

Петиция к Yandex о поддержке российского Data Science

@Yandex.Support,  Официальное обращение к вам.

Так как портал Coursera закрыл доступ к российским курсам и дал только 90 дней на завершение текущего курса, мы, нижеподписавшиеся (поставившие плюс посту) просим перенести  вашу специализацию "Машинное обучение и анализ данных" (Яндекс-МФТИ) на доступную платформу для поддержки и развития российского сообщества Data Science.


https://www.coursera.org/specializations/machine-learning-da...

В качестве дополнительной меры поддержки было бы неплохо сделать этот курс бесплатным

Когда пытаешься объяснить клиенту как работает твой алгоритм машинного обучения:

Как воссоздать изображение всего по нескольким пикселям

Эта статья дает возможность познакомиться с такой методикой получения и восстановления сигнала, как Compressive Sensing.

Множество всех возможных изображений 2 на 2 с цветами, закодированными одним битом

Пространство изображений огромно, невероятно огромно, но при этом очень мало. Задумайтесь об этом на минуту. Из сетки размером всего 8 на 8 пикселей можно создать 18 446 744 073 709 551 616 различных чёрно-белых изображений. Однако из этих 18 квинтиллионов изображений очень немногие покажутся осмысленными человеческому взгляду. Большинство изображений, по сути, выглядит как QR-коды. Те, которые покажутся человеку осмысленными, принадлежат к тому множеству, которое я называю естественными изображениями. Они представляют крошечную долю пространства изображений 8 на 8. Если мы рассмотрим мегапиксельные изображения, то доля естественных изображений становится ещё меньше, почти ничтожной, однако содержит любое изображение, которое можно придумать. Так чем же эти естественные изображения так уникальны? И можем ли мы использовать эту фундаментальную разницу в собственных интересах?


Спектральное пространство


Рассмотрим два представленных ниже изображения. Оба изображения имеют размер 512 на 512 пикселя. Если вычислить гистограмму значений пикселей, то можно понять, что эти распределения идентичны. И это на самом деле так. Левое изображение такое же, как правое, только пиксели перемешаны случайным образом. Тем не менее между ними есть фундаментальное отличие. Одно выглядит как «снег» на экране старого телевизора, а другое — это лицо человека.

Слева: случайное изображение. Справа: классическое тестовое изображение женщины с тёмными волосами. Оба изображения принадлежат к пространству изображений 512 на 512

Чтобы понять фундаментальную разницу между этими изображениями, нам нужно покинуть пространство пикселей и войти в мир частотного диапазона. С точки зрения математики, преобразование Фурье — это линейное сопоставление пиксельного описания изображения с описанием в виде суммы синусов и косинусов, колеблющихся в двух измерениях. Вместо задания изображения значениями, принимаемыми каждым пикселем, мы задаём его по амплитудам каждого из составляющих его двухмерных синусов и косинусов.


Описание этих двух изображений в пространстве Фурье представлено ниже. Для отображения величины коэффициента Фурье использована логарифмическая шкала. Разница между двумя изображениями теперь очевидна. Одно имеет гораздо больше ненулевых коэффициентов Фурье, чем другое. На языке математики говорится, что естественное изображение является разреженным по базису Фурье. Именно разреженность отличает естественные изображения от случайных. Давайте же используем эту разницу с пользой для себя!

Амплитуда преобразований Фурье обоих изображений. Использована логарифмическая шкала

Воссоздание изображений по нескольким пикселям, задача с высокой степенью неопределённости

Записано всего 10% пикселей

Рассмотрим следующую ситуацию: по какой-то неизвестной причине большинство фотодатчиков камеры оказалось неисправным. Скопировав на компьютер только что сделанную фотографию своей жены (или матери, или друга), вы обнаружили, что изображение получилось таким, как показано выше. Можно ли как-то восстановить изображение?


Допустим, что мы точно знаем, какие фотодатчики исправны. Обозначив как x ∊ ℝⁿ неизвестное изображение (где n — общее количество пикселей, и мы считаем, что оно представлено в виде вектора), а как y ∊ ℝᵐ ненулевые яркости пикселей, зафиксированные датчиками, мы можем записать

Здесь C — это разреженная матрица измерений m × n. Все элементы, соответствующие неисправным фотодатчикам, равны нулю, и она содержит только m ненулевых элементов, соответствующих исправным датчикам. Следовательно, наша задача — выяснить, каким был x исходного изображения, учитывая, что мы наблюдаем только несколько его пикселей.


С точки зрения математики, это задача с высокой степенью неопределённости. У нас гораздо больше неизвестных, чем уравнений. Эта задача имеет бесконечное количество решений. Значит, вопрос сводится к тому, какое решение из бесконечного множества является тем, которое мы ищем. Естественным способом решения такой задачи было бы принятие того, что решение имеет наименьшую норму ℓ₂. Это можно формализовать как следующую задачу оптимизации:

решение которой задаётся так:

Матрица C соответствует измерениям единичных пикселей, её строки получены из единичной матрицы n × n. В такой ситуации решение задачи оптимизации не особо нам поможет, поскольку оно вернёт только повреждённое изображение (произведение матриц справа сводится к Cᵀ). Очевидно, что это нам не подходит. Но можно ли найти решение получше?


Используем разреженность в спектральном пространстве


При обсуждении уникальных особенностей естественных изображений мы увидели, что они являются разреженными в пространстве Фурье, поэтому давайте этим воспользуемся. Обозначив как Ψ отображение матрицы n × n из пространства Фурье в пространство пикселей, мы получим следующий вид уравнения измерений:

где s — преобразование Фурье x (т. е. x = Ψs). Это по-прежнему задача с высокой степенью неопределённости, но теперь у нас есть дополнительная информация о решении, которое мы ищем. Мы знаем, что оно должно быть разреженным. Введя псевдонорму ℓ₀ для s (т. е. его число ненулевых элементов), мы сможем сформулировать следующую задачу оптимизации:

К сожалению, это задача комбинаторики, очень быстро становящаяся нерешаемой. Чтобы найти её решение, потребуется проверить все возможные сочетания. К счастью в своей революционной работе 2006 года Канде et al. [1, 2] показал, что при условии разумных допущений решение изложенной выше задачи можно получить (с высокой вероятностью) при помощи решения более простой задачи:

Здесь норма ℓ₁ — это сумма абсолютных значений вектора s. Сегодня хорошо известно, что использование нормы ℓ₁ кроме превращения задачи оптимизации в выпуклую, склонно отдавать предпочтение разреженным решениям. Несмотря на свою выпуклость, эту задачу всё равно может быть достаточно сложно решить на стандартном компьютере. В дальнейшем мы используем более ослабленную версию, задаваемую следующим образом:

где λ — это задаваемый пользователем параметр, управляющий равновесием между соответствием ограничениям и необходимой разреженностью решения. Эту задачу оптимизации называют Basis Pursuit Denoising. При помощи проксимальных операторов она решается чрезвычайно быстро. Ниже представлена реализация на Julia с использованием StructuredOptimization.jl.

using StructuredOptimization
" " "
Simple implementation of basis pursuit denoising using StructuredOptimization.jl
INPUT
- - - - -
C : The measurement matrix.
Ψ : Basis in which x is assumed to be sparse.
y : Pixel measurements.
λ : (Optional) Sparsity knob.
OUTPUT
- - - - - -
x : Estimated image.
" " "
function bpdn(C, Ψ, y ; λ=0.1)
# - - > Initialize variable.
x = Variable(eltype(y), size(Ψ, 2))
# - - > Solve the compressed sensing problem.
@minimize ls(C * Ψ * x - y) + λ*norm(x, 1)
return ~x
end

Кроме того, мы можем воспользоваться тем фактом, что для спектральных преобразований произведение матрицы и вектора Ψs при помощи алгоритма быстрого преобразования Фурье можно вычислить за O(n log n) операций вместо O(n²).

using StructuredOptimization
" " "
Simple implementation of basis pursuit denoising using StructuredOptimization.jl
INPUT
- - - - -
m, n : Size of the image in both direction.
idx : Linear indices of the measured pixels.
y : Pixel measurements.
λ : (Optional) Sparsity knob.
OUTPUT
- - - - - -
x : Estimated image.
" " "
function bpdn(m, n, idx, y ; λ=0.1)
# - - > Initialize variable.
x = Variable(eltype(y), m, n)
# - - > Solve the compressed sensing problem.
@minimize ls(idct(x)[idx] - y) + λ*norm(x, 1)
return ~x
end

Хотя до сих пор мы предполагали, что Ψ является преобразованием Фурье, в этом фрагменте кода мы использовали косинусное преобразование, являющееся более эффективным преобразованием для изображений. Теперь у нас есть всё необходимое, поэтому давайте вернёмся к исходной задаче. На изображении ниже сравнивается истинное изображение с его реконструкцией при помощи ℓ₁.

Слева: оригинал изображения. Справа: изображение, воссозданное при помощи compressive sensing на основании данных всего 10% пикселей

Даже несмотря на то, что исправно работало всего 10% фотодатчиков камеры, формулировка этой задачи восстановления изображения в рамках Compressed Sensing позволяет нам воссоздать достаточно точное приближение к тому, каким было исходное изображение! Очевидно, что оно всё равно неидеально, однако учитывая обширность пространства изображений и бесконечное количество решений нашей задачи, нужно признать, что результат довольно хорош!


Заключение


Методика Compressed Sensing совершила революцию в сфере обработки сигналов. Если мы заранее знаем, что сигнал, с которым работаем, разрежен по указанному базису, то compressed sensing позволяет восстановить его по гораздо меньшему количеству сэмплов, чем предполагается по теореме выборки Найквиста-Шеннона. Кроме того, она позволяет значительно сжимать данные непосредственно на этапе получения, уменьшая таким образом необходимый объём хранилища данных. Также Compressed Sensing привела к возникновению неожиданных новых технологий, например, однопиксельной камеры, разработанной Университетом Райса, или новых техник обработки для создания визуализаций МРТ в медицине. Я не сомневаюсь, что в ближайшие несколько лет мы станем свидетелями множества новых способов применения этой методики.


Compressed sensing — это гораздо более глубокая область математики, чем можно судить по этому ознакомительному посту. Существует ещё множество не рассмотренных нами вопросов, например:


- Каково наименьшее количество необходимых измерений?


- Могут ли некоторые измерения быть информативнее других?


- Как выбирать эти измерения, имея базис Ψ?


- Существуют ли другие нормы, лучше подходящие для изображений?


Для ответа на эти вопросы потребуется гораздо больше математики, чем можно представить в посте. Если вы хотите знать больше, то крайне рекомендую изучить оригиналы статей, ссылки на которые я указал в конце. Также стоит изучить потрясающий веб-сайт Numerical Tours Габриеля Пейре или последнюю книгу Брантона и Кутца [3], а также соответствующий канал на YouTube (здесь и здесь).


Ссылки на научные работы


[1] Candès E., Romberg J., Tao T. Stable signal recovery from incomplete and inaccurate measurements. Communications on Pure and Applied mathematics. 58(8): 1207–1223. 2006.


[2] Candès E. Compressed sensing. IEEE Transactions on Information Theory. 52(4): 1289–1306. 2006.


[3] Brunton S. L. and Kutz J. N. Data-driven science and engineering: machine learning, dynamical systems, and control. Cambridge University Press, 2019.

Data Science не умер, а залёг на дно

А мы из НИИ сотрудников берём...

Недавно на межотраслевой конференции выступал директор одного сравнительно небольшого банка. Он рассказал, что у банка большие амбиции, им нужны математики, кванты и аналитики данных, но нет денег, чтобы конкурировать "со Сбербанком" и приглашать / переманивать достойных специалистов. Как же банк набирает сотрудников? Они просто берут сотрудников из НИИ за намного меньшие деньги - честно признался директор. И вроде бы все хорошо, людям больше денег платят, но сразу так обидно стало. Человек честно признается, что они платят меньше рынка людям. Людям, которые должны науку вперёд двигать, а в итоге дурацкие регрессии в банке считают.


P.s. Не так давно на дне рождения общался с парнем-ядерщиком, и он тоже собирается уходить в машинное обучение в банк. Кто же в других отраслях останется?

Рекомендуем
@falko
@lipk
Тренды

Fastler - информационно-развлекательное сообщество которое объединяет людей с различными интересами. Пользователи выкладывают свои посты и лучшие из них попадают в горячее.

Контакты

© Fastler v 2.0.2, 2024


Мы в социальных сетях: