Data Science наука о данных

Вся наша жизнь состоит из моментов, когда мы принимаем какие-то решения — более или менее значительные. Повернуть направо или налево, поесть или попить, работать или отдыхать, жениться или нет и т. д.  Из всех этих решений и складывается, в конечном итоге, наша судьба.
Биологическое существо принимает решения более или менее осознанные, во всяком случае, основанные на предыдущем опыте и на объективных данных. И это является его отличительной особенностью.
Самые простейшие биологические формы жизни опираются при этом на генетический опыт и на реальные данные окружающей среды (физические раздражители, температура, химический состав, электромагнитный спектр и т. д.). Более развитые организмы формируют более сложные поведенческие реакции, которые совершенствуются в ходе накопления индивидуального опыта. Это то, что мы называем памятью, психикой, сознанием. Изучение этой области долгое время считалось чем-то сверхъестественным, метафизическим, и поэтому в науке образовалось большое белое пятно. Считалось, что эта область не входит в сферу изучения науки, а является прерогативой религии, философии и гуманитарных наук.
Но с развитием информационных технологий мы вплотную подошли к тому моменту, когда все эти явления стало возможно изучать и моделировать математически с помощью компьютерных технологий. И это позволяет пролить свет на природу нашего сознания, нашего мышления, поведенческих стереотипов, а также их связи с физиологией и генетикой.

В последние годы прорыв в информационных технологиях был связан с развитием искусственных нейронных сетей и мощных компьютеров с большой памятью и вычислительной скоростью. Всё это в совокупности дало возможность решать задачи, которые невозможно было решить с помощью обычных аналитических методов, т. е. те задачи, в которых очень большое количество данных, огромное количество различных параметров, которые человек не в состоянии проанализировать самостоятельно.
И это привело к возникновению Data Science — науки о данных. По сути это раздел информатики, изучающий проблемы представления данных в цифровой форме, их обработки и анализа с помощью компьютерных технологий.
Соответственно Data Scientist — это специалист по сбору, обработке и анализу больших массивов данных.
Главная задача специалиста — умение извлекать полезную информацию из самых разнообразных источников, обнаруживать скрытые закономерности в больших массивах данных и уметь использовать их для принятия грамотных решений.
Что понимается под данными? Массивы данных разделяют на 3 вида:
структурированные (например, данные банковских операций, какие-то табличные данные и т. д.)
полуструктурированные (например, сообщения e-mail)
неструктурированные (например, произвольные тексты, фотографии, числовые данные)
Если со структурированными данными мы давно умеем работать и извлекать из них всю полезную информацию, то с неструктурированными данными мы долгое время не знали что делать и беспомощно барахтались в этом океане данных. И только с появлением искусственных нейронных сетей и генетических алгоритмов мы научились извлекать из них массу информации.

Как нейронная сеть работает с данными?
Нейронная сеть — это программа, алгоритм, который получает на вход большое количество данных, а на выходе формирует какой-то ответ, выдает какое-то решение. Отдельный нейрон суммирует сигналы от других нейронов, помноженные на их веса и на основе этого формирует ответ, т. е. какое-то число, некий код, обозначающий какой-то признак, какую-то закономерность. Чем глубже нейронная сеть, тем более сложную иерархию признаков или закономерностей она может построить.
Надо понимать, что нейронная сеть дает ответ всегда. Вопрос в том — какой это ответ и что с ним делать? Для того, чтобы нейронная сеть стала давать какие-то полезные ответы, её необходимо обучить на большом количестве эталонных данных. И от качества этих данных во многом зависит качество работы сети.
Алгоритм обучения заключается в том, что ответ сети сравнивается с правильным ответом, и в случае ошибки корректируются веса нейронов. Чем больше разнообразных обучающих примеров, тем лучшие результаты показывает сеть на независимых данных. 
Нейронная сеть не привносит и не придумывает ничего своего, она лишь обрабатывает те данные, которые ей подают. Если это система распознавания и генерации речи или текста, то она будет создавать тексты на таком языке, на котором её учили, вплоть до стиля и жанра, на котором её тренировали. Дадите примеры из художественной литературы — получите художественные тексты, примеры из научной литературы — получите научные тексты и т.д.
Существуют также алгоритмы обучения «без учителя». Обычно они используются в тех случаях, когда данных мало или их трудно структурировать, но зато есть возможность сформулировать некую целевую функцию, по значению которой можно вычислить ошибку сети. Здесь всё зависит оттого, насколько правильно была поставлена задача и сформулирована целевая функция.
Ну, например, некий бизнесмен продает свои товары и замечает, что иногда торговля идет хорошо, иногда из рук вон плохо. И он хочет понять, от чего зависит успех его бизнеса, от каких факторов. Он загружает максимум данных о своем бизнесе, о товарах, продажах, сотрудниках, о рекламе, о внешних факторах — о погоде, курсах валют и т.д. И целевой функцией делает максимизацию прибыли. В итоге обучения сеть обнаруживает какие-то корреляции между прибылью и различными факторами, и на основе этих данных делает выводы о степени их влияния на доходы бизнесмена. Что позволяет бинесмену принимать более правильные решения, ведущие к увеличению прибыли. Это такой классический американский пример использования нейронных сетей.
Однако нейронные сети можно и нужно применять и для более серьезных задач, связанных с анализом данных и принятием решений. Это и научная область, связанная с анализом большого количества данных (генетика, физика, химия, экология, метеорология и т. д.), и медицина, и социально-экономическая сфера...
Давайте зададимся вопросом: какой должна быть целевая функция в случае, когда речь идет не о личной прибыли, и даже не о цели какой-то группы людей, а о глобальной координации большого количества целей?
Мы ведь не можем в этом случае говорить о желаемой максимизации какого-то отдельного параметра. Мы прекрасно понимаем, что в единой системе соблюдается закон сохранения, и если в одном месте мы что-то максимизируем, то непременно в чем-то другом мы терпим убытки. И наверное, правильная целевая функция в этом случае должна каким-то образом отражать закон меры. И наша задача — научиться его формулировать в каждом конкретном случае. Но об этом вследующей статье...


Рецензии