искусственный интеллект и машинное обучение основы программирования на python
Искусственный интеллект и машинное обучение основы программирования на python
В последнее время очень много разговоров об Искусственном интеллекте (Artificial Intelligence), Машинном обучении (Machine learning), Глубоком обучении (Deep learning), больших данных (Big Data), нейронных сетях (Neural networks) и многих других терминах и технологиях, о которых 30 лет назад можно было прочитать только в футуристических книгах. Однако это не с проста. Уже сегодня различные технологии искусственного интеллекта используются в нашей повседневной жизни.
Когда мы смотрим новостную ленту, новостные агрегаторы показывают нам именно те новости, которые нам могут быть наиболее интересны. То же самое происходит в социальных сетях, на Youtube, музыкальных сервисах, где нам показывают именно те видео, песни или изображения, которые скорее всего нам понравятся.
Компьютеры уже могут распознавать нашу речь и автоматический перевод от Яндекс и Google Translate работает на порядок лучше, чем всего лишь 5 лет назад.
Техники распознавания изображений и окружающей среды и местности применяются в автономных беспилотных автомобилях, которые уже ездят по миру, в том числе и в России. И количество автономных машин увеличивается огромными темпами.
Кроме того, ИИ используется банками при решении о выдаче кредита, отделами продаж и маркетинга в компаниях, чтобы предсказывать объемы продаж, и делать более персональные рекомендации для каждого клиента.
Огромные бюджеты тратятся на таргетированную рекламу, которая становится все более точечной благодаря технологиям машинного обучения.
Особо актуальным ИИ становится в медицине, где нейронные сети могут выявлять наличие серьезных заболеваний намного с большей точностью чем самые профессиональные доктора.
Как вы видите, спектр использования Искусственного интеллекта очень обширен и его технологии уже используются во многих сферах.
Так как ареал использования охватывает практически все области, это требует большого количества специалистов, разбирающихся в том, как работают алгоритмы искусственного интеллекта и машинного обучения. И именно поэтому сегодня любому, кто хочет развития своей карьеры, необходимо иметь как минимум базовое представление об ИИ и МО.
По различным оценкам, сейчас во всем мире примерно всего лишь 300 000 специалистов по искусственному интеллекту, и из них только 10 000 это очень сильные профессионалы, которые работают над масштабными проектами. Оценивается, что спрос в самое ближайшее время на таких специалистов вырастет до 30 миллионов человек и продолжит расти в дальнейшем. То есть налицо огромная нехватка экспертов, которые понимают и умеют работать с технологиями ИИ и МО.
Многие технологические гиганты, такие как Google, Яндекс, Netflix, Alibaba, Tencent, Facebook жалуются на нехватку высококлассных специалистов и не даром зарплаты для таких вакансий – одни из самых высоких на рынке.
Сегодня специалист с двумя – тремя годами опыта в области больших данных и ИИ может получать более 150 тысяч долларов в год в Америке, Европе и Китае, а лучшие специалисты зарабатывают от миллиона долларов в год и выше. Не стоит и говорить о многочисленных стартапах в области ИИ, которые запускаются каждую неделю и привлекают огромные раунды инвестиций.
Таким образом, если подытожить, то Искусственный интеллект уже используется вокруг нас многими компаниями и сервисами, порой даже когда мы этого не замечаем. В общем и целом, он делает наш опыт взаимодействия с окружающей действительностью более персонализированным и удобным.
Есть масса областей и индустрий, где можно приложить на практике знания ИИ. И есть очевидная нехватка специалистов в этой области, и они будут востребованы в ближайшие пару десятилетий как минимум.
В этой книге мы дадим базовое представление о том, что такое Искусственный интеллект и машинное обучение, расскажем основные виды, алгоритмы и модели, покажем вам где искать данные для анализа, и попрактикуемся вместе с вами над решением некоторых реальных задач машинного обучения. После прочтения данной книги вы сможете общаться свободно на эти темы, и, если захотите, сможете в дальнейшем углубить свои знания в этой области с помощью более специализированных программ.
До встречи внутри книги!
История развития Искусственного интеллекта
Именно в последние несколько лет термины Искусственный интеллект, машинное обучение, нейронные сети, биг дата стали, пожалуй, одними из самых обсуждаемых тем во всем мире. Сегодня об искусственном интеллекте не говорит только ленивый. Однако, необходимо помнить, что ИИ – это не что-то новое, и этой дисциплине уже несколько десятков лет.
Задумываться о том, может ли у машин быть интеллект, начали еще в середине прошлого века. Еще в 1950 году английский математик Алан Тьюринг предложил Тест Тьюринга, цель которого заключалась в том, чтобы определить может ли машина мыслить и обмануть человека, заставив его поверить, что он общается с таким же человеком как и он сам, а не с компьютером.
В том же самом году фантаст Айзек Азимов ввел в терминологию Три закона робототехники, в котором указал, какими должны быть взаимоотношения между людьми и роботами.
Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинён вред.
Робот должен повиноваться всем приказам, которые даёт человек, кроме тех случаев, когда эти приказы противоречат Первому Закону.
Робот должен заботиться о своей безопасности в той мере, в которой это не противоречит Первому или Второму Законам.
В 1955 году проходил семинар ученых, где обсуждали будущее компьютеров. Одним из присутствующих был Джон Маккарти, который первым ввел в обиход термин Искусственный интеллект. Поэтому именно 1955 год принято считать годом рождения ИИ. Через три года тот же Маккарти создал язык программирования Lisp, который стал основным в работе с ИИ на следующие несколько лет.
В 1956 году инженер Артур Сэмюэл создает первый в мире самообучающийся компьютер, который умеет играть в шашки. Шашки были выбраны из-за того, что в них присутствовали элементарные правила, и в то же время если вы хотели выиграть в них, то требовалось следовать определенной стратегии. Этот компьютер, созданный Сэмуэлэм, обучался на простых книжках по игре в шашки, в которых описывались сотни партий с хорошими и плохими ходами.
В этом же году Герберт Саймон, Алан Ньюэлл, и Клиффорд Шоу придумали программу, которая называлась Логический теоретик. Считается, что это одна из первых программ, обладающих ИИ. Логический теоретик хорошо справлялся с ограниченным кругом задач, например, задачи по геометрии, и даже смог доказать теорему о равностороннем треугольнике элегантнее, чем Бертран Рассел.
В следующем 1957 году Фрэнк Розенблатт придумал Перцептрон, который представлял собой обучаемую систему, действовавшую не только в соответствии с заданными алгоритмами и формулами, но и на основании прошлого опыта. Здесь важно отметить, что в перцептроне были впервые использованы нейронные сети. Уже тогда ученые понимали, что некоторые (нечеткие) задачи решаются человеком очень быстро, в то время как у компьютера они отнимают много времени. Поэтому подумали, что возможно необходимо воспроизвести структуру работы мозга человека, чтобы научить компьютер работать так же быстро. Поэтому простейшие элементы перцептрона назывались нейронами, потому что вели себя похожим образом, как и нейроны мозга человека. Компьютерная модель перцептрона была реализована в 1960 году в виде первого нейрокомпьютера, который был назван Марк-1.
А в 1959 году Массачусетский Технологический Институт основывает лабораторию Искусственного интеллекта.
Идем дальше в следующее десятилетие. Уже в 1961 году первый робот внедряется на производстве автомобилей компании General Motors.
В 1965 году был изобретен первый чат-бот Eliza. Eliza должна была имитировать психотерапевта, который расспрашивал у пациента о его состоянии и предлагал возможные решения или просто мог посочувствовать собеседнику. Оказалось, что в разговоре с Элайзой люди испытывали примерно такие же эмоции и чувства, как и при общении с настоящим человеком.
15 книг по машинному обучению для начинающих
Сделал подборку книг по Machine Learning для тех, кто хочет разобраться, что да как.
Добавляйте в закладки и делитесь с коллегами!
Книги по машинному обучению на русском
Сначала изучите азы статистической теории машинного обучения, игр с предсказаниями и прогнозирования с применением экспертной стратегии. Их основы прекрасно объясняет автор книги, доктор физико-математических наук Владимир Вьюгин. Пособие рассчитано на студентов и аспирантов и в доступной форме излагает математические основы, необходимые для дальнейшей работы с машинным обучением.
Книга, благодаря которой даже ничего не смыслящие в математике и статистике люди поймут, что такое алгоритмы машинного обучения и каково их применение в жизни. Профессор Педро Домингос рассказывает о пяти основных школах Machine Learning и о том, как они используют идеи из различных областей научного знания — нейробиологии, физики, статистики, биологии, — чтобы помогать людям решать сложные задачи и упрощать рутину с помощью алгоритмов.
3. «Машинное обучение» Хенрик Бринк, Джозеф Ричардс, Марк Феверолф.
Эта книга 2017 года издания доступно рассказывает о Machine Learning — для тех, кто ничего не слышал об этих технологиях. В ней нет заумной статистики, математики или углубленного и подробного объяснения, как использовать тот или иной алгоритм. Авторы с легкостью объясняют, что такое машинное обучение и как его применять в повседневной жизни. Примеры в книге приводятся на языке программирования Python, который используется в том числе и в этой сфере.
Еще одна отличная книга для начинающих свой путь в программировании и анализе больших данных. Авторы утверждают, что благодаря ей читатель научится самостоятельно строить модели машинного обучения и развертывать крупномасштабные приложения для прогнозирования. В книге рассказывается о том, какие алгоритмы входят в семейство масштабируемых, что они из себя представляют и как с их помощью обрабатывать большие файлы. Также вы узнаете, что такое вычислительная парадигма MapReduce и как работать с машинными алгоритмами на платформах Hadoop и Spark на языке Python.
Книга для новичков, осваивающих Python и машинное обучение. Издание содержит подробные мануалы даже по таким нюансам, как установка специализированного приложения Jupyter Notebook.
В книге рассматриваются основы Machine Learning, возможности самых мощных библиотек Python для анализа данных и дается ответ на вопрос, почему этот язык — один из лидеров в Data Science.
6. «Методы обработки и распознавания изображений лиц в задачах биометрии» Георгий Кухарев, Екатерина Каменская, Юрий Матвеев, Надежда Щеголева
Несмотря на то что эта книга рассчитана на начинающих и знакомит с основными принципами искусственного интеллекта — в частности, технологии распознавания лиц, — для полного понимания терминологии и комфортного погружения в чтение все же требуется некоторый бэкграунд. В ней рассматриваются такие вопросы биометрии, как методы анализа изображений лиц, получение исходных данных из реальных сцен, структуры систем распознавания и другие. Примеры в монографии приводятся на языке машинного обучения MATLAB. Если техническими фоновыми знаниями вы не обладаете, но книгу прочитать все же хочется — незнакомые термины можно гуглить, этого вполне достаточно, чтобы не испытывать при чтении никакого дискомфорта.
Это цветное издание с иллюстрациями также предназначено для новичков и рассматривает широкие вопросы машинного обучения. По мере погружения читателя в тему автор раскрывает все больше деталей, но книга не слишком сложна для восприятия: вся новая терминология объясняется, а статистические и логические модели описываются понятным неподготовленному читателю языком.
8. «Обучение с подкреплением» Ричард С. Саттон, Эндрю Г. Барто.
Обучение с подкреплением — это одно из направлений искусственного интеллекта. Кратко и в самом общем виде его суть можно изложить так: машина учится действовать в окружающей среде, нарабатывая интуитивный опыт, а затем наблюдает свои результаты. В книге исчерпывающе излагается концепция обучения с подкреплением — от основополагающих идей до современных достижений в этой сфере.
Книги по машинному обучению на английском
Все книги рассчитаны на новичков без опыта работы с технологиями искусственного интеллекта либо специалистов с небольшим техническим бэкграундом. Цель большинства — познакомить с основными принципами, концепциями, идеями и некоторыми алгоритмами машинного обучения.
Книга Дэвида Барбера написана для студентов и выпускников с минимальными знаниями алгебры и математического анализа — то есть отлично подходит для начала изучения машинного обучения. Как видно по названию, она сосредоточена вокруг байесовского статистического вывода. Книга позволяет развить аналитические навыки и найти новые способы решения проблем в работе с алгоритмами машинного обучения. Каждая глава сопровождается примерами, практическими и теоретическими заданиями.
О чем
Эта книга — не учебное пособие, сборник практических задач или теоретических изысканий. Это своеобразный «мостик» от теории к практике машинного обучения. С ее помощью читатель может подготовиться к дальнейшему изучению темы Machine Learning и науки о данных.
В этом пособии концептуально описываются идеи науки о данных, то есть без сложных математических формул и понятий. В ней множество иллюстративных примеров, которые еще больше раскрывают суть написанного. Охват книги широк: от контролируемого обучения (прогнозирования) до обучения без учителя. Рассматриваемые темы включают нейронные сети, методы опорных векторов, деревья классификации и бустинг. Авторы книги — преподающие профессора, создатели учебных пособий и инструментов интеллектуального анализа данных.
В этом издании обзорно излагаются основные современные подходы к проблемам классификации: машинное обучение, статистика и нейронные сети. Авторы сравнили эффективность методов по различным показателям и сделали выводы о том, для решения каких коммерческих и промышленных задач каждый из них больше подходит.
Преимущество книги — невысокие требования к фоновым математическим знаниям читателя. Даже со школьным курсом в голове вы сможете ее прочесть, понять, освоить основные концепции и научиться программировать собственные алгоритмы распознавания изображений на Python. Все математические идеи в основе устройства нейронных сетей поданы под соусом из большого количества иллюстраций и примеров, что упрощает восприятие.
Учебное пособие для студентов первого курса. Его часто используют в роли введения в Data Science во множестве обучающих университетских программ. Если вам интересно проектирование нейросетей именно для создания искусственного интеллекта, рекомендуем ее как первую книгу на эту тему.
15. «Learning From Data» Yaser S. Abu-Mostafa, Malik Magdon-Ismail, Hsuan-Tien Lin.
Книга носит подзаголовок «A short course» и кратко знакомит читателя с основами машинного обучения. Если вы только начали вникать, что происходит в мире Data Science, и прочли несколько статей в интернете, то это идеальный вариант, чтобы разобраться в предмете чуть глубже.
Руководство по искусственному интеллекту с Python
Искусственный интеллект существует уже более полувека, и его достижения растут в геометрической прогрессии. Спрос на ИИ находится на пике, и если…
Искусственный интеллект существует уже более полувека, и его достижения растут в геометрической прогрессии. Спрос на ИИ находится на пике, и если вы хотите узнать об искусственном интеллекте, вы попали в нужное место. Эта статья по искусственному интеллекту с Python поможет вам понять все концепции искусственного интеллекта с практическими реализациями на Python.
Мы рассмотрим следующие темы:
Почему Python лучше для AI?
Многие люди спрашивают: « Какой язык программирования лучше всего подходит для ИИ?» или « Почему Python для ИИ?»
Несмотря на то, что Python является языком общего назначения, он нашел применение в самых сложных технологиях, таких как искусственный интеллект, машинное обучение, глубокое обучение и так далее.
Почему Python приобрел такую большую популярность во всех этих областях?
Вот список причин, по которым Python является одним из лучших для разработчика, разработчика данных, инженера по машинному обучению и т. д.:
Поскольку этот блог посвящен искусственному интеллекту с помощью Python, я познакомлю вас с наиболее эффективными и популярными библиотеками Python на основе AI.
Теперь, когда вы знаете важные библиотеки Python, которые используются для реализации методов искусственного интеллекта, давайте сосредоточимся на искусственном интеллекте. В следующем разделе мы охватим все основные концепции ИИ.
Во-первых, давайте начнем с понимания внезапного спроса на ИИ.
Спрос на ИИ
Со времени появления ИИ в 1950-х годах мы наблюдаем экспоненциальный рост его потенциала. Но если ИИ здесь уже более полувека, почему он вдруг приобрел такое большое значение? Почему мы говорим об искусственном интеллекте сейчас?
Основными причинами огромной популярности ИИ являются:
Большая вычислительная мощность: Реализация ИИ требует больших вычислительных мощностей, так как построение моделей ИИ требует сложных вычислений и использования сложных нейронных сетей. Изобретение графических процессоров сделало это возможным.. Наконец, мы можем выполнять высокоуровневые вычисления и реализовывать сложные алгоритмы.
Генерация данных: за последние годы мы генерировали неизмеримое количество данных. Такие данные необходимо анализировать и обрабатывать с использованием алгоритмов машинного обучения и других методов искусственного интеллекта.
Более эффективные алгоритмы. За последнее десятилетие мы успешно разработали современные алгоритмы, которые включают в себя реализацию глубоких нейронных сетей.
Широкие инвестиции. По мере того, как технологические гиганты, такие как Tesla, Netflix и Facebook, начали вкладывать средства в искусственный интеллект, они приобрели большую популярность, что привело к увеличению спроса на системы на основе искусственного интеллекта.
Рост Искусственного Интеллекта является экспоненциальным, он также ускоряет рост экономики. Так что сейчас самое подходящее время для вас, чтобы попасть в область искусственного интеллекта.
Что такое искусственный интеллект?
Термин «искусственный интеллект» был впервые введен десятилетием назад в 1956 году Джоном Маккарти на конференции в Дартмуте. Он определил ИИ как:
«Наука и техника – создания интеллектуальных машин».
Другими словами, искусственный интеллект – это наука о том, как заставить машины думать и принимать решения, как люди.
Недавно ИИ смог добиться этого, создав машины и роботов, которые использовались в самых разных областях, включая здравоохранение, робототехника, маркетинг, бизнес-аналитика и многое другое.
Теперь давайте обсудим различные типы искусственного интеллекта.
Типы Искусственного Интеллекта
ИИ строится на трех этапах эволюции:
Узкий искусственный интеллект
Обычно известный как узкий ИИ, искусственный узкий интеллект подразумевает применение ИИ только для выполнения определенных задач.
Существующие системы на основе ИИ, которые утверждают, что используют «искусственный интеллект», фактически работают как слабый ИИ. Алекса является хорошим примером узкого интеллекта. Он работает в ограниченном предопределенном диапазоне функций. Алекса не имеет подлинного интеллекта или самосознания.
Поисковая система Google Sophia, автомобили с автоматическим управлением и даже знаменитая AlphaGo подпадают под категорию слабого ИИ.
Общий искусственный интеллект
Обычно известный как общий ИИ, искусственный общий интеллект включает в себя машины, которые обладают способностью выполнять любые интеллектуальные задачи, которые может выполнять человек.
Видите ли, машины не обладают человеческими способностями, у них есть мощный процессор, который может выполнять высокоуровневые вычисления, но они еще не способны мыслить и рассуждать, как человек.
Есть много экспертов, которые сомневаются в том, что AGI когда-либо будет возможен, и есть также много людей, которые задаются вопросом, нужно ли это.
Стивен Хокинг, например, предупредил:
«Общий ИИ взлетит сам по себе, и его дизайн будет постоянно расти. Люди, которые ограничены медленной биологической эволюцией, не могут конкурировать и будут вытеснены».
Супер искусственный интеллект
Искусственный супер-интеллект – это термин, обозначающий время, когда возможности компьютеров превосходят людей.
ASI в настоящее время рассматривается как гипотетическая ситуация, как это показано в фильмах и научно-фантастических книгах, где машины захватили весь мир. Тем не менее, вдохновители технологий, такие как Элон Маск, считают, что ASI захватит мир к 2040 году!
Прежде чем идти дальше, позвольте мне прояснить очень распространенное заблуждение. Задаёт этот вопрос каждый новичок:
В чем разница между ИИ, машинным обучением и глубоким обучением?
ИИ такой же, как ML?
Давайте разберемся с этим:
AI, ML и DL (искусственный интеллект против машинного обучения против глубокого обучения)
Люди склонны считать, что искусственный интеллект, машинное обучение и глубокое обучение – это одно и то же, поскольку они имеют общие приложения. Например, Siri – это приложение ИИ, машинного обучения и глубокого обучения.
Так, как эти технологии связаны?
Подводя итог, ИИ, машинное обучение и глубокое обучение являются взаимосвязанными областями. Машинное обучение и глубокое обучение помогают искусственному интеллекту, предоставляя набор алгоритмов и нейронных сетей для решения задач, управляемых данными.
Тем не менее, искусственный интеллект не ограничивается только машинным обучением и глубоким обучением. Он охватывает широкий спектр областей, включая обработку естественного языка (NLP), обнаружение объектов, компьютерное зрение, робототехнику, экспертные системы и так далее.
Теперь давайте начнём с машинного обучения.
Основы машинного обучения
Термин «машинное обучение» был впервые введен Артуром Самуэлем в 1959 году. Оглядываясь назад, этот год был, вероятно, самым значительным с точки зрения технического прогресса.
Машинное обучение – это подмножество искусственного интеллекта (ИИ), которое дает машинам возможность обучаться автоматически, снабжая его тоннами данных и позволяя улучшить его с помощью опыта. Таким образом, машинное обучение – это практика заставить машины решать проблемы, приобретая способность мыслить.
Но как машина может принимать решения?
Если вы передадите машине большое количество данных, она научится интерпретировать, обрабатывать и анализировать эти данные с помощью алгоритмов машинного обучения.
Подводя итог, взгляните на рисунок выше:
Теперь, когда мы знаем, что такое Машинное обучение, давайте рассмотрим различные способы, с помощью которых машины могут учиться.
Типы машинного обучения
Машина может научиться решать проблему, используя любой из следующих трех подходов:
Контролируемое обучение
Контролируемое обучение – это техника, в которой мы обучаем или обучаем машину, используя данные, которые хорошо обозначены.
Чтобы понять контролируемое обучение, давайте рассмотрим аналогию. В детстве мы все нуждались в руководстве для решения математических задач. Наши учителя помогли нам понять, что такое сложение и как оно делается.
Точно так же вы можете думать о контролируемом обучении как о типе машинного обучения, которое включает в себя руководство. Помеченный набор данных – это учитель, который научит вас понимать закономерности в данных. Помеченный набор данных – это не что иное, как набор обучающих данных.
Рассмотрим приведенный выше рисунок. Здесь мы подаем компьютерные изображения Тома и Джерри, и цель состоит в том, чтобы машина идентифицировала и классифицировала изображения на две группы (изображения Тома и изображения Джерри).
Набор обучающих данных, который подается на модель, помечен, как, например, мы говорим машине: «Так выглядит Том, а это Джерри». Тем самым вы тренируете машину, используя помеченные данные. В контролируемом обучении четко определенная фаза обучения выполняется с помощью помеченных данных.
Обучение без учителя
Обучение без учителя включает в себя обучение с использованием немаркированных данных и позволяет модели воздействовать на эту информацию без руководства.
Думайте о неконтролируемом обучении как о умном ребенке, который учится без какого-либо руководства. В этом типе машинного обучения модель не снабжается помеченными данными, поскольку в модели нет подсказки, что «это изображение – это Том, а это – Джерри», она самостоятельно выясняет закономерности и различия между Томом и Джерри. принимая тонны данных.
Например, он определяет характерные черты Тома, такие как заостренные уши, больший размер и т. Д., Чтобы понять, что это изображение относится к типу 1. Аналогично, он находит такие признаки в Джерри и знает, что это изображение относится к типу 2.
Поэтому он классифицирует изображения на два разных класса, не зная, кто такой Том или Джерри.
Усиленное обучения
Усиленное обучение является частью машинного обучения, когда объект помещается в среду, и он учится вести себя в этой среде, выполняя определенные действия и наблюдая за вознаграждениями, которые он получает от этих действий.
Представьте, что вас высадили на изолированном острове!
Паника? Да, конечно. Но со временем вы научитесь жить на острове. Вы изучите окружающую среду, поймете климатические условия, тип пищи, которая там растет, опасности острова и т. Д.
Именно так работает Усиленное обучение, он включает в себя объекта (вы застряли на острове), который помещается в неизвестную среду (остров), где он должен учиться, наблюдая и выполняя действия, которые приводят к вознаграждениям.
Усиленное обучение в основном используется в таких областях, как машинное обучение, автомобили с самостоятельным вождением, AplhaGo и т. Д. Таким образом, подводятся итоги типов машинного обучения.
Теперь давайте посмотрим на тип проблем, которые решаются с помощью машинного обучения.
Какие проблемы может решить машинное обучение?
Существует три основных категории проблем, которые можно решить с помощью машинного обучения:
Что такое регрессия?
В этом типе проблемы результат является непрерывной величиной. Например, если вы хотите предсказать скорость автомобиля с учетом расстояния, это проблема регрессии. Проблемы регрессии могут быть решены с помощью алгоритмов контролируемого обучения, таких как линейная регрессия.
Что такое классификация?
В этом типе вывод является категориальным значением. Классификация электронных писем по двум классам: спам и не-спам – это проблема классификации, которую можно решить с помощью алгоритмов классификации Контролируемого обучения, таких как машины опорных векторов, наивный байесовский алгоритм, логистическая регрессия и т. Д.
Что такое кластеризация?
Этот тип проблемы включает в себя назначение входных данных в два или более кластеров на основе сходства функций. Например, кластеризация зрителей в схожие группы в зависимости от их интересов, возраста, географии и т. д. может быть выполнена с использованием алгоритмов неконтролируемого обучения, таких как K-Means Clustering.
Вот таблица, которая суммирует разницу между регрессией, классификацией и кластеризацией:
Теперь давайте посмотрим как работает процесс машинного обучения.
Этапы процесса машинного обучения
Процесс машинного обучения включает в себя построение прогнозирующей модели, которую можно использовать для поиска решения для постановки задачи.
Чтобы понять процесс машинного обучения, давайте предположим, что вы столкнулись с проблемой, которую необходимо решить с помощью машинного обучения.
Проблема состоит в том, чтобы предсказать появление дождя в вашем регионе с помощью машинного обучения.
Следующие шаги выполняются в процессе машинного обучения:
Шаг 1: Определите цель постановки задачи
На этом этапе мы должны понимать, что именно нужно прогнозировать. В нашем случае цель состоит в том, чтобы предсказать вероятность дождя, изучая погодные условия.
Также важно делать пометки о том, какие данные можно использовать для решения этой проблемы или какой подход вы должны использовать, чтобы найти решение.
Шаг 2: Сбор данных
На этом этапе вы должны задавать такие вопросы, как,
Как только вы узнаете, какие типы данных требуются, вы должны понять, как вы можете получить эти данные. Сбор данных может быть сделан вручную или с помощью веб-поиска.
Однако, если вы новичок и хотите изучать машинное обучение, вам не нужно беспокоиться о получении данных. В сети есть тысячи источников данных, вы можете просто загрузить набор данных и приступить к работе.
Возвращаясь к рассматриваемой проблеме, данные, необходимые для прогнозирования погоды, включают такие показатели, как уровень влажности, температура, давление, местность, независимо от того, живете ли вы на холмистой станции и т. Д.
Такие данные должны быть собраны и сохранены для анализа.
Шаг 3: Подготовка данных
Собранные вами данные почти никогда не имеют правильного формата. Вы столкнетесь со множеством несоответствий в наборе данных, таких как пропущенные значения, избыточные переменные, повторяющиеся значения и т. Д.
Устранение таких несоответствий очень важно, потому что они могут привести к ошибочным вычислениям и прогнозам. Поэтому на этом этапе вы сканируете набор данных на наличие несоответствий и тут же исправляете их.
Шаг 4: Исследовательский анализ данных
Хватайте свои детективные очки, потому что этот этап – это погружение в данные и поиск всех тайн скрытых данных.
EDA или исследовательский анализ данных – это этап мозгового штурма машинного обучения. Исследование данных включает в себя понимание закономерностей и тенденций в данных. На этом этапе все полезные идеи прорисованы и корреляции между переменными понятны.
Например, в случае прогнозирования осадков, мы знаем, что существует большая вероятность дождя, если температура упала низко. Такие корреляции должны быть поняты и отображены на этом этапе.
Шаг 5: Построение модели машинного обучения
Все идеи и шаблоны, полученные в ходе исследования данных, используются для построения модели машинного обучения. Этот этап всегда начинается с разделения набора данных на две части: данные обучения и данные тестирования.
Данные обучения будут использованы для построения и анализа модели. Логика модели основана на внедряемом алгоритме машинного обучения.
В случае прогнозирования количества осадков, поскольку выходные данные будут в форме True (если завтра будет дождь) или False (завтра нет дождя), мы можем использовать алгоритм классификации, такой как логистическая регрессия или дерево решений.
Выбор правильного алгоритма зависит от типа проблемы, которую вы пытаетесь решить, набора данных и уровня сложности проблемы.
Шаг 6: Оценка и оптимизация модели
После построения модели с использованием набора обучающих данных, наконец, пришло время протестировать модель.
Набор данных тестирования используется для проверки эффективности модели и того, насколько точно она может предсказать результат.
Как только точность рассчитана, любые дальнейшие улучшения в модели могут быть реализованы на этом этапе. Такие методы, как настройка параметров и перекрестная проверка, могут быть использованы для повышения производительности модели.
Шаг 7: Предсказания
Как только модель оценена и улучшена, она, наконец, используется для прогнозирования. Конечным результатом может быть переменная категории (например, True или False) или непрерывное количество (например, прогнозируемая стоимость акции).
В нашем случае для прогнозирования выпадения осадков выходные данные будут категориальной переменной.
Вот и весь процесс машинного обучения.
В следующем разделе мы обсудим различные типы алгоритмов машинного обучения.
Алгоритмы машинного обучения
Алгоритмы машинного обучения являются основной логикой каждой модели машинного обучения. Эти алгоритмы основаны на простых понятиях, таких как статистика и вероятность.
На рисунке выше показаны различные алгоритмы, используемые для решения проблемы с использованием машинного обучения.
Контролируемое обучение может использоваться для решения двух типов задач машинного обучения:
Для решения задач регрессии вы можете использовать известный алгоритм линейной регрессии.
Проблемы классификации могут быть решены с использованием следующих алгоритмов классификации:
Неуправляемое обучение может использоваться для решения проблем кластеризации и ассоциаций. Одним из известных алгоритмов кластеризации является алгоритм кластеризации k-средних.
Вы можете проверить это видео о кластеризации K-средних, чтобы узнать больше об этом.
K означает алгоритм кластеризации | Алгоритмы машинного обучения | Edureka
Это видео поможет вам изучить концепции кластеризации K-Means и ее реализации с использованием Python.
Укрепление обучения может быть использовано для решения проблем, основанных на вознаграждении. Известный алгоритм Q-обучения обычно используется для решения задач обучения подкреплению.
Вот видео об обучении с подкреплением, которое охватывает все важные концепции обучения с подкреплением наряду с практической реализацией Q-обучения с использованием Python.
Укрепление Учебное пособие | Пример обучения подкреплению с использованием Python | Edureka
В этом видео вы получите глубокое понимание того, как обучение с подкреплением используется в реальном мире.
Сейчас чтобы лучше понять весь процесс машинного обучения, давайте выполним практическую реализацию машинного обучения с использованием Python.
Машинное обучение с Python
В этом разделе мы реализуем машинное обучение с использованием Python. Итак, начнем.
Постановка задачи: Построить модель машинного обучения, которая будет предсказывать, будет ли завтра дождь, изучая прошлые данные.
Описание набора данных: Этот набор данных содержит около 145 тыс. Наблюдений за суточными погодными условиями, наблюдаемыми на многочисленных австралийских метеостанциях. Набор данных имеет около 24 функций, и мы будем использовать 23 функции (переменные Predictor), чтобы предсказать целевую переменную, а именно, «Дождь завтра».
Эта целевая переменная (RainT Saturday) будет хранить два значения:
Следовательно, это явно проблема классификации. Модель машинного обучения классифицирует результаты на 2 класса: ДА или НЕТ.
Логика: Построить классификационные модели, чтобы предсказать, будет ли завтра дождь в зависимости от погодных условий.
Теперь, когда цель ясна, давайте поработаем над мозгом и начнем кодировать.
Шаг 1: Импортируйте необходимые библиотеки
Шаг 2: Загрузите набор данных
Шаг 3: Предварительная обработка данных
Обратите внимание на вывод, он показывает, что первые четыре столбца имеют более 40% нулевых значений, поэтому лучше, если мы избавимся от этих столбцов.
Во время предварительной обработки данных всегда необходимо удалять несущественные переменные. Ненужные данные только усложнят наши вычисления. Поэтому мы удалим переменную ‘location’ и переменную ‘date’, так как они не важны для прогнозирования погоды.
Мы также удалим переменную ‘RISK_MM’, потому что мы хотим предсказать ‘RainTestival’, а RISK_MM (количество осадков на следующий день) может привести к утечке некоторой информации в нашу модель.
Далее мы удалим все нулевые значения в нашем фрейме данных.
После удаления нулевых значений мы также должны проверить наш набор данных на наличие выбросов. Выброс – это точка данных, которая значительно отличается от других наблюдений. Выбросы обычно возникают из-за просчетов при сборе данных.
В следующем фрагменте кода мы избавляемся от выбросов:
Далее мы будем присваивать «0» и «1» вместо «ДА» и «НЕТ».
Теперь пришло время нормализовать данные, чтобы избежать каких-либо ошибок при прогнозировании результата. Для этого мы можем использовать функцию MinMaxScaler, которая присутствует в библиотеке sklearn.
Шаг 4: Исследовательский анализ данных (EDA)
Теперь, когда мы закончили предварительную обработку набора данных, пришло время проверить выполнение анализа и определить значимые переменные, которые помогут нам предсказать результат. Для этого мы будем использовать функцию SelectKBest, присутствующую в библиотеке sklearn:
Вывод дает нам три наиболее значимых предикторных переменных:
Основная цель этой демонстрации – дать вам понять, как работает машинное обучение, поэтому, чтобы упростить вычисления, мы назначим в качестве входных данных только одну из этих значимых переменных.
В приведенном выше фрагменте кода «X» и «y» обозначают вход и выход соответственно.
Шаг 5: Построение модели машинного обучения
На этом этапе мы создадим модель машинного обучения, используя набор данных обучения, и оценим эффективность модели, используя набор данных тестирования.
Мы будем строить классификационные модели, используя следующие алгоритмы:
Ниже приведен фрагмент кода для каждой из этих моделей классификации:
Логистическая регрессия
Random Forest Classifier
Классификатор дерева решений
Машина опорных векторов
Все модели классификации дают нам оценку точности приблизительно 83-84%, за исключением машин опорных векторов. Учитывая размер нашего набора данных, точность довольно хорошая.
Поэтому похлопайте себя по спине, потому что теперь вы знаете, как решать проблемы с помощью машинного обучения.
Теперь давайте посмотрим на более продвинутую концепцию, называемую Deep Learning.
Прежде чем мы понять, что такое глубокое обучение, давайте разберемся с ограничениями машинного обучения. Эти ограничения породили концепцию глубокого обучения.
Ограничения машинного обучения
Ниже приведены ограничения машинного обучения:
Вышеуказанные ограничения могут быть устранены с помощью Deep Learning.
Почему глубокое обучение?
Теперь давайте разберемся, как работает Deep Learning.
Как работает глубокое обучение?
Глубокое обучение имитирует основной компонент человеческого мозга, называемый мозговой клеткой или нейроном. Вдохновленно нейроном, был создан искусственный нейрон.
Глубокое обучение основано на функциональности биологического нейрона, поэтому давайте разберемся, как мы подражаем этой функциональности в искусственном нейроне (также известном как перцептрон):
Теперь давайте разберемся, что же такое Deep Learning.
Что такое глубокое обучение?
«Глубокое обучение – это набор статистических методов машинного обучения, используемых для изучения иерархий функций, основанных
на концепции искусственных нейронных сетей».
Глубокая нейронная сеть состоит из следующих слоев:
На приведенном выше рисунке
Глубокое обучение используется в высокоуровневые сценарии использования, такие как проверка лица, автомобили с автоматическим управлением и т. д. Давайте поймем важность глубокого обучения, взглянув на реальный пример использования.
Случаи использования глубокого обучения
Подумайте, как PayPal использует Deep Learning для выявления возможных мошеннических действий. PayPal обработал более 235 миллиардов долларов в платежах от четырех миллиардов транзакций более чем 170 миллионов клиентов.
PayPal использовал алгоритмы машинного обучения и глубокого обучения для извлечения данных из истории покупок клиента в дополнение к проверке моделей вероятного мошенничества, хранящихся в его базах данных, чтобы предсказать, является ли конкретная транзакция мошеннической или нет.
Компания использует технологии глубокого обучения и машинного обучения уже около 10 лет. Первоначально команда по мониторингу мошенничества использовала простые линейные модели. Но с годами компания перешла на более продвинутую технологию машинного обучения под названием Deep Learning.
«Что нам нравится от более современного, продвинутого машинного обучения, так это его способность потреблять намного больше данных, обрабатывать слои и слои абстракции и иметь возможность« видеть »вещи, которые не сможет увидеть более простая технология, даже люди могут не сможет видеть.
Менеджер по рискам мошенничества и специалист по данным в PayPal Ке Ван
Простая линейная модель способна потреблять около 20 переменных. Однако с технологией Deep Learning можно управлять тысячами точек данных.
«Разница велика – вы сможете анализировать гораздо больше информации и выявлять более сложные модели»
Поэтому, благодаря технологии глубокого обучения, PayPal может проанализировать миллионы транзакций для выявления любых мошеннических действий.
Чтобы лучше понять Deep Learning, давайте разберемся, как работает Perceptron.
Что такое перцептрон?
Перцептрон – это однослойная нейронная сеть, которая используется для классификации линейных данных. Перцептрон имеет 4 важных компонента:
Основная логика перцептрона заключается в следующем:
Входы (x), полученные от входного слоя, умножаются на присвоенные им веса w. Умноженные значения затем добавляются для формирования взвешенной суммы. Взвешенная сумма входов и их соответствующие веса затем применяются к соответствующей функции активации. Функция активации отображает вход на соответствующий выход.
Вес и уклон в глубоком обучении
Почему мы должны присваивать вес каждому входу?
Как только входная переменная подается в сеть, в качестве веса этого входа назначается случайно выбранное значение. Вес каждой точки входных данных указывает, насколько важен этот вход для прогнозирования результата.
С другой стороны, параметр смещения позволяет настроить кривую функции активации таким образом, чтобы получить точный выходной сигнал.
Функция суммирования
Как только входам назначен некоторый вес, берется произведение соответствующего входа и веса. Добавление всех этих продуктов дает нам взвешенную сумму. Это делается с помощью функции суммирования.
Функция активации
Основная цель функций активации – отобразить взвешенную сумму на выход. Функции активации, такие как tanh, ReLU, sigmoid и т. д., Являются примерами функций преобразования.
Теперь давайте разберемся в концепции многослойных персептронов.
Почему используется многослойный персептрон?
Одиночный слой Перцептроны не способны обрабатывать данные больших размеров, и их нельзя использовать для классификации нелинейно разделимых данных.
Поэтому сложные проблемы, которые включают большое количество параметров, могут быть решены с помощью многослойных персептронов.
Что такое многослойный персептрон?
Многослойный персептрон – это классификатор, который содержит один или несколько скрытых слоев и основан на искусственной нейронной сети Feedforward. В сетях с прямой связью каждый уровень нейронной сети полностью связан со следующим уровнем.
Многослойный персептрон – искусственный интеллект с питоном – Edureka
Как работает многослойный персептрон?
В многослойном персептроне веса, назначенные каждому входу в начале, обновляются, чтобы минимизировать результирующую ошибку в вычислениях.
Это сделано потому, что изначально мы произвольно назначаем значения веса для каждого входа, эти значения веса, очевидно, не дают нам желаемого результата, поэтому необходимо обновить веса таким образом, чтобы результат был точным.
Обратное распространение – логика многослойных персептронов. Этот метод используется для обновления весов таким образом, что наиболее значимая входная переменная получает максимальный вес, тем самым уменьшая ошибку при вычислении выходных данных.
Глубокое обучение с Python
Чтобы подвести итог, как работает Deep Learning, давайте рассмотрим реализацию Deep Learning с Python.
Постановка задачи: изучить набор данных банковского кредита и определить, является ли транзакция мошеннической или нет на основании прошлых данных.
Описание набора данных: набор данных описывает транзакции, совершенные европейскими держателями карт в 2013 году. Он содержит подробности транзакций за два дня, когда из 284 807 транзакций было совершено 492 мошеннических действия.
Логика: для построения нейронной сети, которая может классифицировать транзакцию как мошенническую или не основанную на прошлых транзакциях.
Теперь, когда вы знаете цель этой демонстрации, давайте приступим к демонстрации.
Шаг 1: Импортируйте необходимые пакеты
Шаг 2: Загрузите набор данных
IВ приведенном выше описании целевой переменной является переменная «Class». Может содержать два значения:
Остальные переменные являются переменными предикторами, которые помогут нам понять, является ли транзакция мошеннической или нет.
Приведенный выше вывод показывает, что у нас около 284 тыс не мошеннических транзакций и «492» мошеннических транзакций. Разница между этими двумя классами огромна, и это делает наш набор данных очень несбалансированным. Поэтому мы должны выбрать наш набор данных таким образом, чтобы количество мошеннических и не мошеннических транзакций было сбалансированным.
Шаг 3: Подготовка данных
Далее мы удалим столбец времени, поскольку он не нужен для прогнозирования выходных данных.
Наш набор данных выглядит хорошо сбалансированным.
Шаг 4: Сплайсинг данных
Сплайсинг данных – это процесс разделения набора данных на данные обучения и тестирования.
Шаг 5: Нормализация данных
Шаг 6: Построение нейронной сети
В этой демонстрации мы создадим нейронную сеть, содержащую 3 полностью связанных слоя с Dropout. Первый и второй уровни имеют 200 нейронных блоков с ReLU в качестве функции активации, а третий уровень, то есть выходной слой, имеет один нейронный блок.
Для построения нейронной сети мы будем использовать пакет Keras, который мы обсуждали ранее. Тип модели будет последовательным, что является самым простым способом построения модели в Керасе. В последовательной модели каждому слою присваиваются веса таким образом, что веса в следующем слое соответствуют предыдущему слою.
Далее мы будем использовать функцию add() для добавления плотных слоев. «Плотный»(Dense) – это самый базовый тип слоя, который подходит для большинства случаев. Все узлы в плотном слое спроектированы так, что узлы в предыдущем слое соединяются с узлами в текущем слое.
Выпадение(Dropout) – это метод регуляризации, используемый для избежания перегрузки в нейронной сети. В этой технике, где случайно выбранные нейроны сбрасываются во время тренировки.
Для оптимизации мы будем использовать оптимизатор Adam (встроенный в Keras). Оптимизаторы используются для обновления значений веса и параметров байса во время тренировки модели.
Шаг 7: Оценка модели
Как видите, мы достигли точности 98%, что очень хорошо.
Так что это было все для демонстрации глубокого обучения.
Теперь давайте сосредоточимся на последнем модуле, где я представлю обработку естественного языка.
Что вы подразумеваете под обработкой естественного языка?
Обработка естественного языка (NLP) – это наука об извлечении полезной информации из текста на естественном языке для анализа и анализа текста.
НЛП использует концепции информатики и искусственного интеллекта для изучения данных и получения из них полезной информации. Это то, что компьютеры и смартфоны используют для понимания нашего языка, как разговорного, так и письменного.
Прежде чем мы поймем, где используется НЛП, позвольте мне прояснить распространенное заблуждение. Люди часто путаются между Text Mining и NLP.
В чем разница между Text Mining и NLP?
Таким образом, мы можем сказать, что текст Text Mining может осуществляться с использованием различных методологий НЛП.
Теперь давайте разберемся, где используется НЛП.
Приложения для обработки естественного языка
Вот список реальных приложений, которые используют методы НЛП:
Теперь давайте разберемся с важными понятиями в НЛП.
Терминологии в обработке естественного языка
В этом разделе я рассмотрю все основные термины в рамках НЛП. Следующие процессы используются для анализа естественного языка с целью получения некоторых значимых идей:
Токенизация
Токенизация в основном означает разбиение данных на более мелкие порции или токены, чтобы их можно было легко анализировать.
Например, предложение «Tokens are simple» можно разбить на следующие токены:
Выполняя токенизацию, вы можете понять важность каждого токена в предложении.
Стемминг
Стемминг – процесс обрезания префиксов и суффиксов слова и учета только корневого слова.
Давайте разберемся с этим на примере. Как показано на рисунке, слова,
Лемматизации
Лемматизация похожа на определение, однако она более эффективна, поскольку учитывает морфологический анализ слов. Вывод лемматизации – правильное слово.
Пример лемматизации: слова «ушел», «идет» и «ушел» переводятся в слово «уйти» с помощью лемматизации.
Стоп-Слова
Стоп-слова – это набор часто используемых слов на любом языке. Стоп-слова имеют решающее значение для анализа текста и должны быть удалены, чтобы лучше понять любой документ. Логика заключается в том, что если из документа удаляются часто используемые слова, мы можем сосредоточиться на наиболее важных словах.
Например, допустим, вы хотите сделать клубничный молочный коктейль. Если вы откроете Google и введете «как приготовить молочный коктейль из клубники», вы получите результаты «как» сделать «клубничный» молочный коктейль. Даже если вы хотите получить результаты только для клубничного молочного коктейля. Эти слова называются стоп-словами. Всегда лучше избавиться от таких слов перед выполнением любого анализа.
Если вы хотите узнать больше об обработке естественного языка, вы можете посмотреть это видео нашими экспертами по НЛП.