Написано Армином Хрнчичем, разработчиком программного обеспечения в Softray Solutions

Большие данные, машинное обучение, искусственный интеллект… Последние пару лет мы постоянно слышим эти модные словечки. Что это значит и почему именно сейчас? Почему вдруг все хотят его внедрить или использовать? После прочтения этого поста у вас будет более четкое представление о назначении этих терминов, и даже если вы уже знали все это, вы найдете несколько интересных фактов и аналогий, о которых вы еще не слышали, также мы напишем немного о машинном обучении программа. Мы можем либо радоваться техническому прогрессу, либо бояться роботов, захвативших мир, но одно можно сказать наверняка — мы не должны быть к этому равнодушны.

Далее в новостях 1950-х годов: искусственный интеллект

Не хочу никого обидеть из 1950-х, но можно сказать, что термин ИИ на удивление старый. Хорошо, хорошо, среднего возраста, если хотите. Впервые он был придуман Джоном Маккарти в 1956 году, вдохновленным Аланом Тьюрингом, который пятью годами ранее предложил знаменитый тест Тьюринга. Тест рассматривается как дверь, открывшая поле ИИ. Цель теста состояла в том, чтобы дать ответ на вопрос: Можем ли мы построить компьютер, который сможет в достаточной степени имитировать человека до такой степени, что подозрительный судья не сможет отличить человека от машины? Концепция. в этом тесте должны были участвовать машина, человек и человек, задающий вопросы. Затем задача спрашивающего состоит в том, чтобы решить, кто является машиной, а кто человеком, на основе их ответов. С момента создания теста его смогли пройти многие программы ИИ, и одной из первых является программа, созданная Джозефом Вейценбаумом под названием ELIZA. Исходя из этого, мы можем описать ИИ как способность машины имитировать разумное поведение человека.

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

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

Машинное обучение

Мы уже говорили, что ИИ — это на самом деле машины, которые учатся действовать как люди. Как машины могут делать такие вещи? Ответ заключается в обработке входных данных и распознавании в них атрибутов и закономерностей. Таким образом, мы можем сделать вывод, что ML — это подмножество ИИ, ориентированное на «обучающую» часть. Машинное обучение — это изучение компьютерных алгоритмов, которые автоматически улучшаются благодаря опыту. Алгоритмы машинного обучения строят математическую модель на основе выборочных данных, известных как обучающие данные, чтобы делать прогнозы или принимать решения без явного программирования для этого. Другими словами, машина получает данные, использует сложные математические алгоритмы и выдает разные выходные данные для разных входных данных. Так же, как право человека?

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

ML это термин из конца 80-х и начала 90-х годов, который не старый, но все же это было почти 30 лет назад, но пик сейчас.

Что особенного в больших данных?

Термин «большие данные» представляет собой данные, которые являются настолько большими, быстрыми или сложными, что их трудно или невозможно обрабатывать традиционными методами. Организации собирают данные из различных источников, включая бизнес-транзакции, интеллектуальные устройства (IoT), промышленное оборудование, видео, социальные сети и многое другое. Хранение всех этих данных раньше было бы проблемой, но в настоящее время это намного дешевле со всеми облаками хранения и озерами данных. Наконец-то мы можем сказать, что машинное обучение находится на пике благодаря всем доступным данным, которые у нас есть сейчас. У нас есть большие объемы данных, лучшее оборудование и лучшее программное обеспечение. Статистика показывает, что к 2020 году будет накоплено 44 зеттабайта данных (или 44 триллиона гигабайт), алгоритмы очень продвинуты, поэтому все готово для того, чтобы ИИ взял на себя управление.

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

Программа классификации ирисов

Хорошо, давайте испачкаем руки и попробуем что-нибудь. Мы выполним программу классификации Iris, также известную как эквивалент машинного обучения программе Hello World, чтобы действительно начать изучать машинное обучение. Нам понадобится программа под названием Anaconda, которая представляет собой бесплатный дистрибутив языков программирования Python и R с открытым исходным кодом для научных вычислений (наука о данных, машинное обучение). После установки мы запустим anaconda cmd и выполним команду: jupyter ноутбук. Jupyter Notebook сочетает в себе живой код, графику, визуализации и текст в общедоступных блокнотах, которые запускаются в веб-браузере. Новая страница откроется в браузере с адресом http://localhost:8888/tree. Теперь мы выбираем новый блокнот Python 3 и готовы написать наш код:

радужная оболочка

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

Набор данных

Во-первых, мы просто собираемся импортировать набор данных радужной оболочки из библиотеки обучения scikit. Набор данных содержит 150 образцов признаков ириса, 3 метки — виды ириса (Iris setosa, Iris virginica и Iris versicolor) и 4 признака: длина чашелистика, ширина чашелистика, длина лепестка, ширина лепестка в см.

Набор данных — это объект, который содержит данные (выборочные объекты), цель (выборочная классификация), функции и целевые метки.

Алгоритм

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

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

Каждый цвет представляет группу радужной оболочки, и, глядя на график, мы видим, что для каждой точки большинство их соседей принадлежат к той же группе, что и эта точка. Мы можем использовать алгоритм ближайшего соседа, который классифицирует элемент на основе его соседей по признакам. Нам просто нужно импортировать этот алгоритм, создать нашу модель для обучения и модель для тестирования. Метод Sklearn train_test_split разделит наш набор данных на модель обучения, которая получит 75% данных, и модель тестирования, которая получит 25%. Вызывая метод fit для нашего классификатора, мы обучаем нашу модель. Разница в том, что результаты обучения доступны для моделирования, тогда как данные тестирования — это невидимые данные, для которых необходимо делать прогнозы.

Наконец, вызывая метод score, наша модель делает прогнозы целей теста и показывает нам, сколько раз прогноз был верным.

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

Судя по входным признакам, это 97% радужной оболочки. Если вы нашли это интересным, вы можете попробовать какой-нибудь другой алгоритм или разработать некоторые функции, чтобы добраться до 100%.

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