Наука о данных, хорошее, плохое и… будущее

Оглавление

Что такое наука о данных?

Как часто, по вашему мнению, вы соприкасаетесь с наукой о данных в той или иной форме? Если вы добрались до этой статьи, то, скорее всего, использовали целую кучу методов науки о данных (уууууу). Чтобы немного упростить ситуацию, я объясню, что наука о данных значит для меня.

"Наука о данных - это искусство применения научных методов анализа к любому виду данных, чтобы мы могли раскрыть важную информацию"

Это многозначительное слово. Если мы распакуем его, то все, что наука о данных на самом деле означает - это отвечать на вопросы, используя математику и науку для обработки данных, которых слишком много для нашего мозга.

Наука о данных охватывает...

  • Машинное обучение
  • Визуализация данных
  • Предиктивный анализ
  • Голосовые помощники

... и все эти жужжащие слова, которые мы слышим сегодня, такие как искусственный интеллект, глубокое обучение и т.д.

Чтобы закончить свою мысль о том, что наука о данных была использована для поиска этой статьи, я попрошу вас подумать о том, какие шаги вы использовали, чтобы попасть сюда. Ради этого объяснения давайте предположим, что большинство из вас сидели в Интернете, рассматривая фотографии котят и щенков, как вдруг наткнулись на модное слово, связанное с наукой о данных, и захотели узнать, о чем идет речь. Вы обратились к Google, надеясь найти смысл всего этого, и набрали "What is *fill in your data science related buzzword*."

Вы заметили, что Google был достаточно любезен, чтобы предложить предложения по уточнению поисковых условий - это предиктивная генерация текста. Как только появились результаты поиска, вы заметили справа поле, в котором обобщены результаты поиска - это граф знаний Google. Используя данные SEO (поисковой оптимизации), я могу убедиться, что моя статья легко дойдет до вас, что само по себе является хорошим примером использования науки о данных. Все это - крошечные способы, с помощью которых наука о данных участвует в вещах, которые мы делаем каждый день.

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

Положительные стороны: астрофизика, биология и спорт

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

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

Для получения этого изображения ученые использовали телескоп размером с Землю (Event Horizon Telescope или EHT), объединив данные с массива из восьми наземных радиотелескопов и осмыслив их для построения изображения. Анализ данных, а затем их визуализация - похоже на науку о данных.

Интересное примечание по этому поводу: стандартная библиотека Python функций для EHT Imaging была разработана Эндрю Чейлом из Гарварда для моделирования и манипулирования данными VLBI (Very-long-baseline interferometry), помогающими в процессе создания изображения черной дыры.

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

Python используется исследователями в своей лаборатории при тестировании статистических моделей и моделей машинного обучения. Keras, NumPy, Scipy и Scikit-learn - некоторые первоклассные библиотеки Python для этого.

Если вы являетесь поклонником английской Премьер-лиги, вы оцените пример Лестер Сити, выигравшего титул в сезоне 2015-2016 гг.

В начале сезона вероятность того, что "Лестер Сити" выиграет чемпионат EPL, была в 10 раз меньше, чем вероятность найти Лох-Несское чудовище. Более подробную попытку описать значение этой истории читайте в статье <3>>.

Все хотели знать, как "Лестеру" удалось это сделать, и оказалось, что наука о данных сыграла большую роль! Благодаря инвестициям в аналитику и технологии, клуб смог измерить уровень физической подготовки игроков и состояние их тела во время тренировок, чтобы помочь предотвратить травмы, а также оценить лучшую тактику для использования в игре на основе уровня энергии игроков.

На всех тренировках были планы, подкрепленные реальными данными об игроках, и в результате "Лестер Сити" получил наименьшее количество травм игроков среди всех клубов в том сезоне.

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

Вот пример использования Python для анализа футбола. Мне бы очень хотелось, чтобы ФК "Челси" использовал некоторые из этих методов, чтобы улучшить свою плачевную форму и сделать мою жизнь как болельщика лучше. Вам не нужны аналитики, чтобы увидеть, что Канте находится на неправильной позиции, а Джорджиньо не должен быть в этой команде и... Ладно, я отвлекаюсь - вернемся к теме!

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

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

Некоторые из проблем, которые меня беспокоят в этой экосистеме: конфиденциальность данных (уверен, у каждого из нас есть много примеров, которые приходят на ум), необъективность прогнозов и классификаций, а также влияние персонализации и рекламы на общество

Отрицательные стороны: гендерная предвзятость и многое другое

Эта статья, опубликованная в NIPS, рассказывает о том, как противостоять гендерным предубеждениям в вкраплениях слов, часто используемых в науке о данных.

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

Данные, использованные для создания Word2Vec (модель вкраплений слов, созданная Google), привели к гендерному смещению, которое показывает тесную связь между "мужчинами" и такими словами, как "компьютерщик", "архитектор", "капитан" и т.д., в то время как "женщины" тесно связаны с "домохозяйкой", "няней", "медсестрой" и т.д.

Вот код Python, использованный исследователями, опубликовавшими эту статью. Простота использования Python делает его хорошим выбором для быстрого перехода от идеи к реализации.

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

Необходимо, чтобы равное внимание уделялось курированию, проверке, очистке и, в некоторой степени, устранению предвзятости данных.

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

Когда речь идет о науке о данных, всегда помните -

"Мусор внутрь, мусор наружу".

Данные, на которых мы обучаем наши алгоритмы, влияют на результаты, которые они выдают. Результаты, которые они выдают, часто видны нам и могут оказывать длительное влияние.

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

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

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

Вам нужно построить модели, которые будут помечать информацию, не подтвержденную другими источниками. Чтобы сделать это точно, нужна тонна не "фальшивых" новостей для обучения модели. Как только модель научится определять, является ли что-то правдой (с допустимой степенью уверенности), тогда она сможет начать отмечать новости, которые являются "фальшивыми".

Истина, найденная толпой, также является отличным способом решения этой проблемы, позволяя мудрости толпы определить, что такое "истина".

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

Python - это ткань, которая позволяет всем этим технологиям и концепциям объединяться и создавать творческие решения.

Python, набор инструментов для науки о данных

Я говорил о науке о данных, о том, что она означает, как она помогает нам и как она может оказать на нас негативное влияние.

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

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

Поскольку Python является открытым исходным кодом, каждый может внести свой вклад в сообщество, добавив в язык классные функциональные возможности в виде библиотек Python.

Библиотеки визуализации данных, такие как Matplotlib и Seaborn, отлично подходят для представления данных простыми и понятными способами. NumPy и Pandas - лучшие библиотеки для манипулирования данными. Scipy полностью посвящена научным методам анализа данных.

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

Вот несколько замечательных библиотек Python, которыми стоит вооружиться:

  • NumPy
  • Pandas
  • Scikit-Learn
  • Keras
  • Matplotlib

Я покажу пример того, как легко начать заниматься наукой о данных с помощью Python. Вот простой пример того, как вы можете использовать Scikit-Learn для осмысленного анализа данных.

Пример на языке Python с использованием Scikit-learn

Я использовал один из наборов данных Scikit-Learn под названием Iris, который представляет собой набор данных, состоящий из 3 различных видов ирисов (Setosa, Versicolour и Virginica) с длиной лепестка и чашелистика, хранящихся в массиве numpy.ndarray размером 150×4. Строки - это образцы, а столбцы - это: Длина чашелистика, Ширина чашелистика, Длина лепестка и Ширина лепестка.

Я собираюсь провести простую линейную регрессию для отображения корреляции между шириной и длиной лепестков. Здесь используются только библиотеки scikit-learn (для регрессии и набора данных) и matplotlib для построения графиков.

from sklearn import datasets, linear_model
import matplotlib.pyplot as plt

iris = datasets.load_iris()

# Data and features are both numpy arrays
data = iris.data
features = iris.feature_names

Теперь построим график линейной регрессии между длиной и шириной лепестков, чтобы посмотреть, как они коррелируют.

# Create the regression model
regression = linear_model.LinearRegression()

# Reshape the Numpy arrays so that they are columnar
x_data = data[:, 2].reshape(-1, 1)
y_data = data[:, 3].reshape(-1, 1)

# Train the regression model to fit the data from iris (comparing the petal width)
regression.fit(x_data, y_data)


# Display chart
plt.plot(x_data, regression.predict(x_data), color='black', linewidth=3)
plt.scatter(x_data, y_data)
plt.show()

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

Заключительные мысли

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

Мне не терпится увидеть, как озабоченность по поводу конфиденциальности персональных данных формирует эволюцию науки о данных. Как общество, мы должны серьезно относиться к этим проблемам и проводить политику, которая предотвращает накопление наших данных в руках коммерческих структур.

Когда я гуляю по Сан-Франциско, меня поражает количество автомобилей, на которых установлено 500 камер и датчиков, и все они пытаются собрать как можно больше информации, чтобы стать самоуправляемыми автомобилями. Все эти данные собираются, хранятся и используются. Мы являемся частью этих данных.

По мере приближения к будущему, когда самоуправляемые автомобили станут большей частью нашей жизни, хотим ли мы, чтобы все эти данные хранились в облаке? Хотим ли мы, чтобы данные о том, что мы делаем внутри автомобиля, были доступны Tesla, Cruise или Alphabet (Waymo)?

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

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

Многие разработки ведутся в области Zero Knowledge Analytics, которая позволяет анализировать данные без необходимости видеть, что это за данные. Federated Learning позволяет людям участвовать в обучении нейронных сетей без того, чтобы их данные покидали их устройство.

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

Hypernet - это проект, родившийся в Стэнфорде для решения большой проблемы для ученых - как получить достаточно вычислительной мощности для выполнения симуляций с интенсивным использованием вычислений и данных.

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

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

По мнению DARPA, "третья волна" ИИ будет зависеть от того, смогут ли модели искусственного интеллекта объяснять нам свои решения. Я согласен, мы не должны быть во власти решений, принимаемых искусственным интеллектом.

Я в восторге от того, что ждет нас в будущем. Конфиденциальность, правда, справедливость и сотрудничество станут теми столпами, на которых будет строиться будущее науки о данных

Вернуться на верх