Как полюбить машинное обучение и перестать страдать |
||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2017-04-05 18:16 Наше будущее все больше становится связано с развитием искусственного интеллекта. Кто-то считает, что это конец эры человечества, а кто-то садится, проходит курсы и пилит код, чтобы разобраться с машинным обучением. Я отношусь ко второй категории. В свое время, когда я задумывалась об освоении этой науки и начала проходить первые курсы, хотелось опустить руки. Сложности материалов и страданиям, казалось, нет предела. Сейчас, с высоты своего опыта, я понимаю, что всего этого можно было бы избежать. Поэтому под катом хочу поделиться основами ML для новичков «без боли».
Библиотеке numpy чужды любые человеческие чувства Я взяла курс Машинного обучения по своей воле. На первом занятии нам сказали, что годового курса матана, а также базового понимания Python будет достаточно для нормального освоения курса. Звучит прекрасно! До тех пор, пока не приходит осознание того, что программа у разных вузов – разная. Во фразу «годовой курс матана» нечаянно попали линейная алгебра, дискретная математика, асимптотический анализ, и так далее.О том, что такое «базовое понимание Python», я также сильно заблуждалась. «Это же один из самых простых языков!» – утверждали все вокруг. Читать хороший код можно как художественную литературу. И я верила своим знакомым, потому что, ничего не написав на Python до этого, я сама часто предпочитала читать на нем реализацию разных алгоритмов. Ведь он так лаконичен и отлично передает суть. Проблема лишь в том, что читать код и писать самому – это разные задачи. Сразу начать писать хороший код на Python – это большая проблема (простите за капитанство). После долгих страданий и попыток освоить первый в моей жизни динамический интерпретируемый язык, у меня наступил момент счастья и гордости. Как вы уже догадались, момент был недолгим. Почти сразу ко мне пришло осознание, что этого недостаточно. Научившись хоть как-то писать на питоне, необходимо переучиваться, чтобы грамотно использовать библиотеки машинного обучения. Я слышала, что у многих это не вызывает особых трудностей. Кто-то может даже не заметить этой стадии. Но мне было очень тяжело сперва в быстром темпе освоить стандартные коллекции и полюбить их всей душой, а затем узнать, что у библиотек ML свое мнение на этот счет. Им совершенно неинтересно, как удобны и просты в использовании милые питонячьи списки и словари. Библиотеке numpy чужды любые человеческие чувства. Как вы уже поняли, курс давался мне катастрофически сложно. Я с трудом смогла сдать первую часть курса, получив оценку «удовлетворительно». Курс состоял из 2 частей и был рассчитан на год, но я решила не ранить себя еще больше. У меня осталось крайне удручающее мнение обо всем машинном обучении в целом. Я на полном серьезе решила, что это просто не для меня. Однако, как и все прочие раны, эта со временем затянулась. В последнее время я все чаще стала читать разные статьи о том, как люди покоряют новые вершины с помощью разных методов машинного обучения. Прекрасные загадки галактик или жизненно важные вопросы медицины – мы имеем шанс приблизиться к их решению, всего лишь обучив компьютер думать в нужном направлении. Эта мысль не дает мне покоя, и поэтому я решила попробовать еще раз, заодно наполнив мотивацией вас. С чего начать Если вы находитесь в начале моего пути – начните с простого. Для первых попыток не нужны глубокие познания в математике. Когда я попала в Microsoft, для меня стало сюрпризом, что сегодня можно даже не уметь писать код, чтобы научиться ML. Давайте пройдемся по общему пути, заодно найдем базовое решение для простой задачки.Сделайте себе аккаунт на Azure ML Studio.Там есть бесплатная квота, без привязки банковской карты, для нескольких попыток. Все алгоритмы и необходимые процедуры реализованы за нас, а что еще более круто – все будет быстро работать даже на слабом ноутбуке. Все вычисления происходят в облаке. Можно залить свои данные, но для начала нам отлично подойдут и предложенные семплы. Я выбрала датасет про задержки авиаперелетов. Имея обученную модель, можно будет говорить друзьям например о том, что их рейс могут задержать… (Хотя, если я хочу остаться вживых, нужно будет придумать другой способ применения ) Для того, чтобы просмотреть доступные датасеты, нажмите на Datasets ? Samples: Выбранный мною датасет называется Flight Delays Data. Создадим свой эксперимент. Для этого нажмем Experiment ? New (внизу страницы) ? Blank Experiment. К слову, в экспериментах также есть вкладка Samples, там можно изучить уже готовые модели. Но нам сейчас интереснее сделать все самим. Платформа Azure ML приятно удивила меня свой гибкостью и ненавязчивостью. В этой статье мне хотелось показать, что машинное обучение доступно каждому. Весь дальнейший процесс работы у нас будет выглядеть как «выбрали нужные блоки, кинули на рабочую поверхность, соединили логически, запустили, радуемся». Если вы чувствуете себя уверенно, вы можете создавать собственные блоки, для этого нужно написать программный код на языке Python или R. Если за вашей спиной уже есть армия обученных моделек, то вам наверняка привычен и удобен Jupyter Notebook, и вы можете работать с Azure ML через него. Даже если у вас острейшая аллергия на веб-интерфейс, но вам хочется вкусить плюсы облака – разработчики учли даже такую ситуацию и дали возможность подключаться к Azure через консоль. Подробнее тут. Вернемся к нашей модельке. Все нужные блоки мы будем брать в меню слева. Они удобно разделены на группы. Во время первых попыток я советую искать нужное, попутно изучая соседние разделы. Но если вы знаете примерное название нужного блока, то можно воспользоваться поиском. Предсказываем задержку рейсов Классический сценарий применения алгоритма машинного обучения выглядит так:
Конечно, я максимально упростила процесс. Искусство подготовки данных, их разделения на части, выбора алгоритма и измерений качества оттачивается годами. Тем не менее, факт «собрать модель с нуля буквально за 10 минут» придает мне второе дыхание и оживляет огромный интерес к этой теме. А что, если я возьму не Random Forest, а SVM? Кстати, а вы знаете, чем отличаются эти алгоритмы? Оба имеют внутри себя огромную мат.базу и довольно сложную реализацию, однако общую идею сможет понять каждый. Было бы желание ;-) Кстати, можете начать с изучения этой шпаргалки. Надеюсь, что моя статья поможет вам избежать страданий и влюбиться в ML, так же как и я. Делитесь своим мнением и опытом в комментариях, будет интересно пообщаться! Если вам была бы интересна статья для новичков по какой-то более конкретной теме, сообщите об этом в комментариях, и я постараюсь поделиться своим опытом более детально. Вы можете также ознакомиться со статьей Евгения Григоренко, в ней вы найдете больше практических сценариев, направленных на более опытных пользователей. Источник: habrahabr.ru Комментарии: |
|