Содержание

Как начать учиться

Самое главное в образовании – это полюбить его и начать учиться чему-то новому каждый день. Мы хотим рассказать вам об эффективном подходе, который поможет вам непрерывно получать новые знания и навыки. Этот способ называется «lifelong learning». Он переводится как «обучение длиною в жизнь».

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

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

Ведите дневник навыков и знаний

К образовательному дневнику нужно подойти в три этапа:

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

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

После выделите для себя основные навыки. Например:

  1. В маркетинге за этот год вы хотите освоить SMM. Следовательно, вам нужно развить навыки настройки таргетированной рекламы, создания контента и аналитики;

  2. Для того, чтобы знать французский, вам нужно изучить грамматику и выучить за год 2 000 слов.

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

Расставьте навыки по приоритету

Ранжирование своих навыков поможет вам понять, что нужно начать изучать прямо сейчас, а что можно выучить позже. Для начала вам стоит задать себе несколько вопросов: “какой результат принесут мне эти навыки?”, “почему я хочу изучать эту тему?”, “как сильно мне интересна эта тема?”. После оцените каждый новый навык по 10-бальной шкале.

Исходя из своих приоритетов, составьте план обучения на неделю/месяц/год. Например, за год вы хотите освоить 5 навыков, но только 2 из них приоритетные. Следовательно, в первые недели вам стоит делать упор на них.

Составьте расписание

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

Во время планирования ориентируйтесь на свои силы и возможности. Если вам сложно заниматься каждый день, занимайтесь 3 раза в неделю, но регулярно. Исходите из собственных привычек и ритма жизни. Например, если по пятницам вы часто встречаетесь со своими друзьями, на этот день планировать обучение не стоит.

Выберите стратегию обучения

Подумайте, каким способ вам легче воспринимать информацию. В этом вам поможет классификация стратегий VARK, которая включает в себя способы восприятия информации, такие как:

  1. визуальная;
  2. аудиальная;
  3. вербальная или дигитальная;
  4. кинестетическая.

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

Найдите курсы и ресурсы с нужной информацией

Есть несколько способов получения информации.

  1. Например, вы можете поискать в интернете “как научиться играть на гитаре” или “грамматика французского”. В данном случае есть риск наткнуться на материалы, которые дадут вам устаревшие или бесполезные знания.

  2. Если вы не готовы платить за курсы прямо здесь и сейчас, вам помогут площадки с бесплатными курсами от преподавателей ведущих вузов. Например, Универсариум или Coursera. А по изучению иностранных языка есть множество каналов на YouTube. Например, Полиглот.

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

Занимайтесь вместе с другом или наставником

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

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

Адаптируйте соцсети на обучение

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

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

Не забывайте повторять

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

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

Как учиться с помощью карточек для запоминания.

Если вы хотите стать гением в сфере обучения, приходите на наш курс «Стань гением»!

10 способов научиться программировать самостоятельно, с чего начать программировать

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

10. Выясните, почему вы хотите программировать

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

9. Выберите правильный язык программирования

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

Язык, с которого стоит начать, зависит от причины изучения. (К примеру, если вы хотите создать приложение под iOS, вам лучше начать с изучения Swift). Если вы со всей серьёзностью отнеслись к намерению программировать, можно начать с языка C. Хотя выбрав Python, вам будет проще влиться в струю программирования. 

Пройдите курс Специализация Python от Coursera, стоимость $49 в месяц.

8. Начните с малого… и будьте терпеливы

Независимо от выбора языка или метода обучения, вам следует начать с самого начала. Когда Дэвид Сински (David Sinsky) научился программировать за восемь недель, он, к примеру, потратил одни выходные на изучение основ Python, а другие — на Django. Взяв учебник, он удалял написанный код и снова проходил обучающий материал с нуля. Начните с основ и будьте терпеливы к себе. Взяв первый проект в программировании, разделите его на несколько этапов. И если один из способов обучения вам не подходит, не опускайте руки — попробуйте другой.

7. Попробуйте приложения для детей

Сейчас даже малыши учатся программированию. Несмотря на то, что многие программы для детского обучения весьма просты, некоторые из них (например, Scratch) подходят для любого возраста. Не имеет значения, сколько вам лет, даже детские анимационные приложения могут научить основам программирования (у edX есть курс обучения по Scratch).

6. Воспользуйтесь бесплатными онлайн-тренингами

Бесплатные онлайн тренинги и проекты (Codecademy, Hour of Code и др.) могут помочь вам в написании первой программы. Учебные пособия от Khan Academy, Codecademy, Code.org и других познакомят с основами программирования и всем необходимым для создания игры, сайта или другого проекта. Найдите нужный источник в зависимости от языка программирования, воспользовавшись Bento. Это хорошая отправная точка, однако дальнейшее обучение вам нужно взять на себя.

5. Пройдите онлайн-курс

Онлайн-курсы по программированию предполагают более обширную образовательную подготовку по сравнению с сайтами, предлагающами онлайн-тренинги по одному языку. Такие курсы предназначены для обучения основным навыкам в течение нескольких месяцев на занятиях университетского уровня. Я большой поклонник гарвардского онлайн-курса CS50 (его можно пройти бесплатно). Вы даже можете получить образование университетского уровня, выбрав один из онлайн-курсов.

4. Бесплатные книги по программированию

Если вы застряли на какой-то проблеме или вам нужно найти ответ на свой вопрос, не стоит забывать о справочниках. На GitHub можно найти огромную коллекцию из более чем 500 бесплатных книг по программированию. Также доступна коллекция электронных книг, охватывающая 24 языка программирования.

Смотрите подборки книг по Python и Java на Литрес

3. Изучайте, играя

Иногда лучшим способом обучения являются игры. В то время, как многие учебники по программированию обучают вас программировать простые либо сложные игры, некоторые обучающие сайты сами являются играми: Code Combat и CodinGame — инструменты, используя которые вы можете весело провести время.

2. Найдите наставника или станьте им

Сообщество программистов полно людей, готовых помочь следующему поколению программистов. Hack.pledge () — сайт, который поможет вам найти наставника. Либо вы сами можете стать наставником для кого-то другого. Преподавание изученного поможет вам лучше запомнить информацию.

1. Разберите чужой код

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

Семейное образование — с чего начать? Как начать учиться на домашнем обучении

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

  • Семейное обучение — это форма получения образования вне школы (статья 17 закона «Об образовании в Российской Федерации»). На ней ребёнок самостоятельно осваивает основную общеобразовательную программу, а ответственность за качество обучения возлагается на родителей. 
  • Самообразование — то же, что и семейное обучение, только для детей старше 15 лет или тех, кто получил аттестат об окончании 9 классов.
  • Домашнее обучение — синоним семейного. 
  • Надомное обучение — это способ организации учебного процесса для детей, которые из-за болезни не могут посещать занятия в стенах школы. Школьные учителя приходят на дом либо занимаются с ребёнком дистанционно, например, по скайпу. Такое обучение является отдельной формой получения образования. 
  • Экстернат — это форма аттестации на семейном обучении и самообразовании. Когда ребёнок прикрепляется к школе для прохождения промежуточных и итоговых аттестаций, он приобретает статус экстерна и равные с остальными школьниками академические права.

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

Чтобы развеять эти заблуждения, лучше всего честно и открыто поговорить с родственниками. Объясните, что семейное образование зафиксировано в законе «Об образовании в Российской Федерации», по которому родители имеют право выбрать, как будет учиться их ребёнок.

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

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

<<Форма демодоступа>>

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

Например, в группе «Экстерната и домашней школы Фоксфорда» ВКонтакте можно узнать не только подробности образовательного процесса в нашей школе, но и современные тенденции в образовании, ознакомиться с юридическими аспектами домашнего образования и прочитать интервью с практикующими детьми и родителями.  

Перейти на семейное образование можно в любое время — даже в середине учебного года.

Сменить форму обучения несложно. Вот краткая инструкция, с чего начать семейное обучение:

  1. Уведомите органы управления образования. 
  2. Отчислитесь из школы. 
  3. Выберите школу для аттестаций. 
  4. Подпишите договор об аттестациях. 
  5. Организуйте учебный процесс. 
  6. Готово!

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

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

Выделяют три основных вида аттестаций: 

  • Текущая. Ежедневные школьные оценки за классную и домашнюю работу. Этот вид аттестации отсутствует на домашнем обучении. 
  • Промежуточная. Проводится в конце четверти или полугодия.  
  • Итоговая. ОГЭ в 9 и ЕГЭ в 11 классе. 

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

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

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

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

Существует несколько видов семейного обучения: можно учить ребёнка самостоятельно дома, приглашать репетиторов или подключить онлайн-школу. 

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

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

<<Форма с консультацией>>

Поскольку ребёнок будет учиться дома, важно грамотно организовать рабочее пространство. Главное правило: своё учебное место школьник должен создать сам.

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

Подумайте об освещении. Расположите основной источник света слева для правши и справа для левши.

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

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

<<Форма семейного образования>>

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

Конечно, приучать к дисциплине лучше с самого детства. По мере взросления степень самоконтроля ребёнка будет повышаться. Если в 5–7 классах детям всё ещё необходим авторитетный взрослый, который сможет вести их по расписанию, то к 8 классу они практически полностью учатся самостоятельно.

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

Для социализации ребёнка важно общение со сверстниками и взрослыми. Принципом, по которому стоит выбирать секции, является желание сына или дочери. Если заставлять из-под палки, то можно напрочь отбить интерес к любой внеурочной деятельности.

При этом нельзя сбрасывать со счетов талант и способности — предложите ребёнку попробовать развиваться в конкретной сфере, к которой уже наблюдаются склонности. 

Резюме

Если вы задумываетесь, с чего начать семейное обучение, просмотрите терминологию, ознакомьтесь с документами, которые понадобятся для смены формы получения образования, и алгоритмом процедуры. Полезно сразу решить, где и как вы будете сдавать аттестации. Организацию учёбы на себя может взять онлайн-школа — тогда вам не придётся беспокоиться о расписании или учебниках. Для самостоятельного обучения не забудьте уделить внимание рабочему месту ребёнка и его организации. Как можно раньше начните приучать сына или дочь к самостоятельности и подавайте положительный пример. Выбирая кружки и секции, в первую очередь руководствуйтесь желанием ребёнка. Обращайтесь в домашнюю онлайн-школу «Фоксфорда», если понадобится консультация о домашнем образовании.

С чего начинать обучение, если вы новичок | by Alexander Sorokoumoff

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

Темная комната — это ваша новая деятельность: профессия, язык, музыка, вид спорта, работа, отношения, рынки и страна проживания. Находясь там, вам придется многому научиться.

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

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

Условия безопасности

Возьмем горные лыжи и ролики. Чтобы начать учиться, нужно стать на них — и поехать. Вниз по склону на лыжах. Вперед по асфальту на роликах.

Что нам нужно, чтобы почувствовать себя в безопасности во время движения? Как минимум, умение останавливаться. Если вы понимаете, что сможете прекратить то движение, которое вам не нравится, страх отпускает. Не помешает и еще одно умение — падать. Остановка здесь часто заканчивается именно этим.

Поэтому первое, чему мы учимся, осваивая лыжи и ролики — это останавливаться и падать, падать и останавливаться.

Далее, чтобы научиться останавливаться, надо однажды преодолеть страх и поехать. А как я поеду, если я не умею останавливаться?

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

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

Итак, для того, чтобы вы смогли начать учиться новой для вас деятельности, вам понадобятся:

  • Определенные навыки, которые позволят вам удержаться в этой деятельности и не вылететь сразу же после входа.
  • Внешняя поддержка, которая позволит начать действовать и подстрахует вас, если окажется что навыков не хватает.
  • Подходящая вашему уровню площадка — т.е., та «тёмная комната», в которой вы сможете удержаться с теми навыками и поддержкой, что у вас есть сейчас.

Базовые навыки

В детстве я чуть не утонул. В 11 лет меня выгнали из секции водного поло, потому, что я за полгода так и не научился плавать на глубине. Но и на мелководье я плавал плохо: ноги тонули, дышать не получалось, ни один совет тренера мне не помогал. Это продолжалось до 25 лет.

В конце концов мне надоело. И, записавшись в бассейн я начал думать: в чем здесь проблема? Главной проблемой был страх глубины. Чтобы преодолеть его, я решил плавать на глубине, не касаясь бортика и дна, пока не почувствую, что могу держаться на воде. Так я однажды проплыл 1450 метров без остановки — и страх отступил. Еще через несколько походов я обнаружил, почему у меня тонули ноги (изначальной причиной был страх, затем он превратился в определенный мышечный паттерн). Затем смог брать уроки плавания и быстро наращивать скорость.

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

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

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

Ещё несколько таких навыков для примера:

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

Поэтому первое, что нужно сделать перед входом в игру (и тем более — если из игры вас выносит) — это определить базовые навыки, нужные именно вам. И заняться ими.

Опора на наставника

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

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

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

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

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

Освоение площадки

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

Любая деятельность происходит на определенной «игровой площадке», с определенными игроками, по определенным правилам — т.е., в некоем контексте. Все детали это контекста вы редко когда знаете заранее. И тем более не знаете, как именно они на вас подействуют.

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

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

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

А также подготовить план эвакуации, пути отхода и запасные варианты на случай, если что-то пойдёт не так (более подробно это расписано в этой статье).

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

Подведем итоги

Обеспечение собственной безопасности — главная задача в начале любого обучения. Её можно разбить на три составляющих:

  1. Определить и натренировать базовые навыки в новой деятельности
  2. Подобрать правильного наставника и опререться на него
  3. Подобрать подходящую игровую площадку, аккуратно исследуя имеющиеся

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

Я хочу изучать AI и машинное обучение. С чего мне начать? | by Саша Азарова | NOP::Nuances of Programming

Как начать?

На каких платформах учиться? Какие курсы лучше выбрать?

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

Важнее не то, как начать, а почему вы это начинаете.

Начните с определения причины.

  • Почему вы хотите изучать эти навыки?
  • Вы хотите много зарабатывать?
  • Вы хотите создавать что-то интересное?
  • Вы хотите что-то изменить в нашем мире?

Опять же, нет единственно верной причины. Все они верны по-своему.

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

Определили свое “почему”? Хорошо. Пришло время перейти к самой трудной части.

Я могу рекомендовать только то, что сам пробовал.

Вот курсы, которые я окончил (по порядку):

  • Treehouse — Введение в Python
  • Udacity —Глубокое обучение и AI
  • Coursera — Глубокое обучение от Andrew Ng
  • fast.ai — Часть 1, скоро будет Часть 2

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

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

Нужны ли углубленные знания по математике?

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

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

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

Такие библиотеки, как TensorFlow и PyTorch позволяют создавать, при небольшом знании Python, современные модели, в то время как математика делает основную работу за кулисами.

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

Лично я не собираюсь углубляться в математику и улучшать производительность алгоритма на 10%. Оставлю это людям, которые умнее меня.

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

Что на самом деле делает специалист по машинному обучению?

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

Например, несмотря на распространенный факт, мы не работаем с роботами, у которых красные и страшные глаза.

Вот несколько вопросов, которые ежедневно задает себе специалист по ML:

  • Концепция — как можно использовать ML, чтобы узнать больше о проблеме?
  • Данные —сколько данных вам требуется? В каком формате они должны быть? Что вы делаете, когда данные отсутствуют?
  • Моделирование — какую модель следует использовать? Хорошо ли она работает с данными (переобучение)? Если работает плохо, то почему?
  • Производство — как вы можете использовать свою модель в производстве? Должна ли это быть онлайн-модель или она должна обновляться через определенные промежутки времени?
  • Будущее — что произойдет, если ваша модель сломается? Можно ли улучшить ее с большим количеством данных?

Я позаимствовал эти вопросы из замечательной статьи Рейчел Томас, одной из основательниц fast.ai.

Кроме того, я снял видео о том, чем мы занимаемся по понедельникам в Max Kelsen.

С чего начать обучение кинезиологии?

Довольно часто этот вопрос задают массажисты, реабилитологи и тренеры, которые хотят быть в тренде и работать более эффективно. Сегодня обучений по кинезиологии на просторах интернета много. И «живые» семинары, и онлайн-курсы. В этой статье не будем говорить о том, как и какие курсы выбрать. Наша задача — дать практические рекомендации для того, чтобы вы не просто обучились, а реально практиковали и были востребованным практиком.

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

Первое с чего стоит начинать — изучение анатомии, биомеханики и физиологии. Отдельное внимание стоит уделить топографии мышц и их функциональному взаимодействию. Какие мышцы участвуют в движении, как они помогают друг другу, как опорно-двигательный аппарат компенсирует неадекватную нагрузку и как это связано с другими системами организма, какие дисфункции могут быть в каждой системе и как под них подстраивается тело — именно понимание этих вопросов позволит «видеть» человека как единую целостную систему. Атласа будет маловато. Воспользуйтесь возможностью «пощупать» все, что можно пощупать. Например, на нашем семинаре «Анатомия. Топография мышц и их функциональные взаимосвязи»  студенты друг на друге прорисовывают основные мышцы, прощупывая их прикрепления, расположение и состояние. Кроме того разбираем дисфункции мышц, которые мешают их гармоничной работе.

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

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

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

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

  • поймите принципы и алгоритм мануально-мышечного тестирования. Найдите преподавателя, который на понятном для вас языке объяснит, покажет и «поставит» руки.
  • Ежедневно практикуйте и записывайте, что вы делаете и как.
  • Через время попросите наставника провести супервизию правильности ваших действий. Все могут ошибаться в новом деле и это нормально. Грамотный наставник поможет скорректировать ошибки и в будущем будете работать корректно.

Александр Подлужный на семинаре «Мануально-мышечное тестирование» делает акцент на понимание, как работает этот метод и как применить его на практике.

Пожалуй, для начала достаточно. Может показаться, что это так сложно и нужно много времени. Скажите, сварить борщ или построить самостоятельно дом сложно? Для ребенка, который учится ходить, безусловно, это нереально. Однако, когда он вырастет, увидит, как готовит мама, узнает рецепт и сварит этот борщ, то это будет как самое обычное дело. Да, чтобы стать кинезиологом нужно больше усилий, больше времени и практики. Настойчивость будет отличным помощником. Идите от простого к сложному и тогда у вас все точно получится.

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

Обучение программированию с нуля: с чего начать изучение в домашних условиях

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

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

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

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

Многие начинающие обучение считают написание кода чуть ли не самой романтической профессией. Особенно увеличилось количество желающих познать программирование после просмотра фильма «Матрица». Именно главный герой этой картины Нео подтолкнул многих к становлению на путь постижения программных наук:

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

После развала СССР все отечественные ВУЗы долгое время даже и не пытались перекроить свою систему обучения под потребности современного рынка. Не являлись исключением из этого правила и технические ВУЗы.

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

В странах бывшего СССР основным языком программирования, преподаваемым в технических ВУЗах, был Бейсик.

Ситуация кардинально не изменилась и через 10 лет. Лишь некоторые учебные заведения, учуяв веяния нового времени, в начале двухтысячных года начали перекраивать свое обучение под мировые стандарты. И только с этого момента программирование стало восприниматься как отдельная профессия и специализация обучения:

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

А это в профессии программиста является наиболее важным аспектом. Поэтому большинство из сегодняшних гуру российской IT-индустрии начинали свое обучение программированию с нуля самостоятельно.

В некоторой мере такая тенденция сохраняется и по сей день. Хотя в наше время количество профессионалов, занимающихся преподаванием, заметно возросло.

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

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

Чаще всего выбор падает на язык программирования C (си). Именно с него большинство новичков во всем мире начинают свое обучение. На основе C было создана основная часть программных языков, и во многом они наследуют его структуру и синтаксис.

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

Рассмотрим особенности этого языка, делающего его оптимальным для изучения:

  • Простая для понимания основа – часть встроенных возможностей языка для простоты вынесена в отдельно подключаемые библиотеки. К таким элементам относится большая часть математических функций и методов для работы с файловой системой;
  • Оптимально подогнанная система типов – благодаря простому набору типов данных и строгой типизации уменьшается риск допущения ошибок в процессе написания программного кода;
  • Направленность C на процедурный тип программирования, при котором соблюдается четкая иерархия всех элементов кода;
  • Доступ к памяти машины с помощью указателей;
  • Минимальное количество поддерживаемых ключевых слов;
  • Поддержка области действия имен;
  • Поддержка пользовательских типов данных (объединения и структуры).

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

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

Компилятор – специальная программа, переводящая программный код в форму, понятную для компьютера.


Вот несколько специализированных компиляторов с поддержкой языка C:

  • Microsoft Visual Studio – профессиональный инструмент, поддерживающий множество языков, в том числе и несколько серверных. Подойдет для новичков, если брать его «на вырост»:
  • Borland C++ — бесплатный компилятор, идеально подходящий для начинающего обучение. В отличие от предыдущего инструмента, отличается ясным и понятным интерфейсом. Поэтому его освоение не вызовет особых трудностей даже при самостоятельном освоении азов программирования:
  • Code::Blocks – бесплатная среда разработки, поддерживающая написание кода на нескольких языках. Средний по сложности освоения вариант:

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

Да и в интернете можно найти очень много информации.

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

  • Веб-программирование – здесь понадобятся знания PHP, CSS и HTML;
  • Разработка приложений под мобильную операционную систему Android – данная платформа построена на основе Java. Поэтому потребуется знание основ этого языка;
  • C# (си sharp) – дальний потомок C. На основе C# построена веб-технология ASP.net от Microsoft.

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

Начните с машинного обучения

Это пошаговые инструкции, которые вы так долго искали!

В чем вам нужна помощь?

Как мне начать?

Самый частый вопрос, который мне задают: «, как мне начать?

Мой лучший совет по началу работы с машинным обучением состоит из 5 этапов:

  • Шаг 1 : Настройте мышление .Поверьте, вы можете практиковать и применять машинное обучение.
  • Шаг 2 : Выберите процесс . Используйте системный процесс для решения проблем.
  • Шаг 3 : Выберите инструмент . Выберите инструмент для своего уровня и сопоставьте его со своим процессом.
  • Шаг 4 : Практика на наборах данных . Выберите наборы данных, над которыми будете работать, и потренируйтесь в процессе.
  • Шаг 5 : Создайте портфель . Соберите результаты и продемонстрируйте свои навыки.

Подробнее об этом нисходящем подходе см .:

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

Процесс прикладного машинного обучения

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

Иметь навыки прикладного машинного обучения — значит знать, как последовательно и надежно предоставлять высококачественные прогнозы от проблемы к проблеме.Вам нужно следовать систематическому процессу.

Ниже приведен 5-этапный процесс, которому вы можете следовать, чтобы постоянно достигать результатов выше среднего по задачам прогнозного моделирования:

  • Шаг 1 : Определите вашу проблему.
  • Шаг 2 : Подготовьте данные.
  • Шаг 3 : Алгоритмы выборочной проверки.
  • Шаг 4 : Улучшение результатов.
  • Шаг 5 : Представьте результаты.

Подробное описание этого процесса см. В сообщениях:

Вероятность для машинного обучения

Вероятность — это математика количественной оценки и использования неопределенности.Это основа многих областей математики (например, статистики) и критически важна для прикладного машинного обучения.

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

  • Шаг 1 : Узнайте, что такое вероятность.
  • Шаг 2 : Узнайте, почему вероятность так важна для машинного обучения.
  • Шаг 3 : Погрузитесь в темы вероятностей.

Здесь вы можете увидеть все руководства по вероятности.Ниже приведены некоторые из самых популярных руководств.

Основания вероятности
Теорема Байеса
Распределения вероятностей
Теория информации

Статистика для машинного обучения

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

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

  • Шаг 1 : Узнайте, что такое статистические методы.
  • Шаг 2 : Узнайте, почему статистические методы важны для машинного обучения.
  • Шаг 3 : Погрузитесь в темы статистических методов.

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

Сводная статистика
Статистическая проверка гипотез
Методы передискретизации
Оценка статистики

Линейная алгебра для машинного обучения

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

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

  • Шаг 1 : Узнайте, что такое линейная алгебра.
  • Шаг 2 : Узнайте, почему линейная алгебра важна для машинного обучения.
  • Шаг 3 : Погрузитесь в темы линейной алгебры.

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

Линейная алгебра в Python
Матрицы
Векторы
Факторизация матрицы

Оптимизация для машинного обучения

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

Вы можете быстро освоить оптимизацию для машинного обучения за 3 шага.

  • Шаг 1 : Узнайте, что такое оптимизация.
  • Шаг 2 : Откройте для себя алгоритмы оптимизации.
  • Шаг 3 : Погрузитесь в темы оптимизации.

Здесь вы можете увидеть все сообщения по оптимизации. Ниже приведены некоторые из самых популярных руководств.

Локальная оптимизация
Глобальная оптимизация
Градиентный спуск
Приложения оптимизации

Понимание алгоритмов машинного обучения

Машинное обучение — это алгоритмы машинного обучения.

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

Вот как начать работу с алгоритмами машинного обучения:

  • Шаг 1 : Откройте для себя различные типы алгоритмов машинного обучения.
  • Шаг 2 : Откройте для себя основы алгоритмов машинного обучения.
  • Шаг 3 : Узнайте, как работают лучшие алгоритмы машинного обучения.

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

Линейные алгоритмы
Нелинейные алгоритмы
Ансамблевые алгоритмы
Как изучать / изучать алгоритмы машинного обучения

Машинное обучение Weka (без кода)

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

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

Вот как начать работу с Weka:

  • Шаг 1 : Откройте для себя возможности платформы Weka.
  • Шаг 2 : Узнайте, как обойти платформу Weka.
  • Шаг 3 : Узнайте, как добиться результатов с помощью Weka.

Здесь вы можете увидеть все сообщения Weka о машинном обучении.Ниже приведены некоторые из самых популярных руководств.

Машинное обучение Python (scikit-learn)

Python — одна из самых быстрорастущих платформ для прикладного машинного обучения.

Вы можете использовать те же инструменты, как pandas и scikit-learn, при разработке и оперативном развертывании вашей модели.

Ниже приведены шаги, которые можно использовать для начала работы с машинным обучением Python:

  • Шаг 1 : Откройте для себя Python для машинного обучения
  • Шаг 2 : Откройте для себя экосистему машинного обучения Python.
  • Шаг 3 : Узнайте, как решать проблемы с помощью машинного обучения в Python.

Здесь вы можете увидеть все сообщения о машинном обучении Python. Ниже приведены некоторые из самых популярных руководств.

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

R Машинное обучение (каретка)

R — это платформа для статистических вычислений и самая популярная платформа среди профессиональных специалистов по данным.

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

Вот как начать работу с машинным обучением R:

  • Шаг 1 : Откройте для себя платформу R и ее популярность.
  • Шаг 2 : Откройте для себя алгоритмы машинного обучения в R.
  • Шаг 3 : Узнайте, как решать проблемы с помощью машинного обучения в R.

Здесь вы можете увидеть все сообщения о машинном обучении R. Ниже приведены некоторые из самых популярных руководств.

Прикладное машинное обучение в рублях

Алгоритм кода с нуля (Python)

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

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

Вот как начать машинное обучение, написав все с нуля.

  • Шаг 1 : Откройте для себя преимущества алгоритмов кодирования с нуля.
  • Шаг 2 : Узнайте, что алгоритмы кодирования с нуля — это только средство обучения.
  • Шаг 3 : Узнайте, как с нуля кодировать алгоритмы машинного обучения на Python.

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

Подготовить данные
Линейные алгоритмы
Оценка алгоритма
Нелинейные алгоритмы

Введение в прогнозирование временных рядов (Python)

Прогнозирование временных рядов — важная тема в бизнес-приложениях.

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

Вот как начать работу с прогнозированием временных рядов:

  • Шаг 1 : Откройте для себя прогнозирование временных рядов.
  • Шаг 2 : Откройте для себя временные ряды как контролируемое обучение.
  • Шаг 3 : Узнайте, как добиться хороших результатов с помощью прогнозирования временных рядов.

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

Учебники по подготовке данных

Подготовка данных для машинного обучения (Python)

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

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

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

  • Шаг 1 : Откройте для себя важность подготовки данных.
  • Шаг 2 : Откройте для себя методы подготовки данных.
  • Шаг 3 : Узнайте, как добиться хороших результатов с помощью подготовки данных.

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

Очистка данных
Выбор функций
Преобразование данных
Уменьшение размерности

XGBoost в Python (повышение стохастического градиента)

XGBoost — это высокооптимизированная реализация деревьев решений с градиентным усилением.

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

Вот как начать работу с XGBoost:

  • Шаг 1 : Откройте для себя алгоритм повышения градиента.
  • Шаг 2 : Откройте для себя XGBoost.
  • Шаг 3 : Узнайте, как добиться хороших результатов с помощью XGBoost.

Здесь вы можете увидеть все сообщения XGBoosts. Ниже приведены некоторые из самых популярных руководств.

Несбалансированная классификация

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

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

Вот как вы можете начать работу с несбалансированной классификацией:

  • Шаг 1 : Откройте для себя проблему несбалансированной классификации
  • Шаг 2 : Откройте для себя интуицию для искаженного распределения классов.
  • Шаг 3 : Узнайте, как решить проблемы несбалансированной классификации.

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

Показатели эффективности
Экономичные алгоритмы
Выборка данных
Продвинутые методы

Глубокое обучение (Керас)

Глубокое обучение — увлекательная и мощная область.

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

Вот как начать работу с глубоким обучением:

  • Шаг 1 : Узнайте, что такое глубокое обучение.
  • Шаг 2 : Откройте для себя лучшие инструменты и библиотеки.
  • Шаг 3 : Узнайте, как справляться с проблемами и добиваться результатов.

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

Фон
Многослойные персептроны
Сверточные нейронные сети
Рекуррентные нейронные сети

Повышение эффективности глубокого обучения

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

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

Вот как начать повышать эффективность глубокого обучения:

  • Шаг 1 : Откройте для себя проблему глубокого обучения.
  • Шаг 2 : Откройте для себя основы диагностики и повышения производительности модели.
  • Шаг 3 : Откройте для себя методы, которые можно использовать для повышения производительности.

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

Better Learning (исправить обучение)
Лучшее обобщение (исправление переобучения)
Лучшие прогнозы (ансамбли)
Советы, уловки и ресурсы

Ансамблевое обучение

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

Вот как начать повышать эффективность ансамблевого обучения:

  • Шаг 1 : Откройте для себя ансамблевое обучение.
  • Шаг 2 : Откройте для себя алгоритмы ансамблевого обучения.
  • Шаг 3 : Откройте для себя методы, которые можно использовать для повышения производительности.

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

Основы ансамбля
Наборы ансамблей
Комплекты для упаковки в мешки
Повышающие ансамбли

Сети с долговременной краткосрочной памятью (LSTM)

Рекуррентные нейронные сети

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

Вот как начать работу с LSTM в Python:

  • Шаг 1 : Откройте для себя перспективы LSTM.
  • Шаг 2 : Узнайте, где можно использовать LSTM.
  • Шаг 3 : Узнайте, как использовать LSTM в своем проекте.

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

Подготовка данных для LSTM
Поведение LSTM
Моделирование с помощью LSTM
LSTM для временных рядов

Глубокое обучение для обработки естественного языка (NLP)

Работа с текстовыми данными затруднена из-за беспорядочного естественного языка.

Текст не «решен», но для получения современных результатов по сложным задачам НЛП вам необходимо использовать методы глубокого обучения.

Вот как начать работу с глубоким обучением для обработки естественного языка:

  • Шаг 1 : Узнайте, что такое глубокое обучение для НЛП.
  • Шаг 2 : Откройте для себя стандартные наборы данных для НЛП.
  • Шаг 3 : Узнайте, как справляться с проблемами и добиваться результатов.

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

Сумка со словами Модель
Моделирование языка
Обобщение текста
Классификация текста
Вложения слов
Подписи к фотографиям
Перевод текста

Глубокое обучение для компьютерного зрения

Работа с данными изображения затруднена из-за разницы между необработанными пикселями и смыслом изображений.

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

Вот как начать работу с глубоким обучением для компьютерного зрения:

  • Шаг 1 : Узнайте, что такое глубокое обучение для компьютерного зрения.
  • Шаг 2 : Откройте для себя стандартные задачи и наборы данных для компьютерного зрения.
  • Шаг 3 : Узнайте, как справляться с проблемами и добиваться результатов.

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

Обработка данных изображения
Увеличение данных изображения
Классификация изображений
Подготовка данных изображения
Основы сверточных нейронных сетей
Распознавание объектов

Глубокое обучение для прогнозирования временных рядов

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

Такие методы, как MLP, CNN и LSTM, предлагают многообещающие возможности для прогнозирования временных рядов.

Вот как начать работу с глубоким обучением для прогнозирования временных рядов:

  • Шаг 1 : Откройте для себя перспективы (и ограничения) глубокого обучения для временных рядов.
  • Шаг 2 : Узнайте, как разработать надежные базовые и оправданные модели прогнозирования.
  • Шаг 3 : Узнайте, как создавать модели глубокого обучения для прогнозирования временных рядов.

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

Тенденции прогнозов и сезонность (одномерный)
Распознавание человеческой деятельности (многомерная классификация)
Прогноз использования электроэнергии (многомерный, многоступенчатый)
Типы моделей
Примеры из практики временных рядов
Прогноз загрязнения воздуха (многомерный, многоступенчатый)

Генеративные состязательные сети (GAN)

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

Сети

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

Вот как начать работу с глубоким обучением для генерирующих состязательных сетей:

  • Шаг 1 : Откройте для себя перспективы GAN для генеративного моделирования.
  • Шаг 2 : Откройте для себя архитектуру GAN и различные модели GAN.
  • Шаг 3 : Узнайте, как разрабатывать модели GAN на Python с помощью Keras.

Здесь вы можете увидеть все руководства по Generative Adversarial Network. Ниже приведены некоторые из самых популярных руководств.

Основы GAN
Функции потерь GAN
Разработка простых моделей GAN
GAN для перевода изображений

Нужна дополнительная помощь?

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

Если у вас остались вопросы и вам нужна помощь, у вас есть несколько вариантов:

  • Электронные книги : Я продаю каталог электронных книг, которые показывают, как быстро добиться результатов с помощью машинного обучения.
  • Блог : Я много пишу в блоге о прикладном машинном обучении, попробуйте функцию поиска.
  • Часто задаваемые вопросы : Самые частые вопросы, которые я получаю, и ответы на них
  • Свяжитесь с : Вы можете связаться со мной, чтобы задать свой вопрос, но, пожалуйста, по одному вопросу за раз.

Что такое глубокое обучение?

Последнее обновление 14 августа 2020 г.

Глубокое обучение — это подраздел машинного обучения, связанный с алгоритмами, основанными на структуре и функциях мозга, которые называются искусственными нейронными сетями .

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

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

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

Начните свой проект с моей новой книги «Глубокое обучение с помощью Python», включающей пошаговых руководств и файлы исходного кода Python для всех примеров.

Давайте нырнем.

Что такое глубокое обучение?
Фото Кирана Фостера, некоторые права защищены.

Глубокое обучение — большие нейронные сети

Эндрю Нг из Coursera и главный научный сотрудник Baidu Research официально основал Google Brain, что в конечном итоге привело к внедрению технологий глубокого обучения в большом количестве сервисов Google.

Он много говорил и писал о том, что такое глубокое обучение, и с него можно начать.

В своих ранних докладах о глубоком обучении Эндрю описал глубокое обучение в контексте традиционных искусственных нейронных сетей.В своем выступлении 2013 года под названием «Глубокое обучение, самообучение и обучение без учителя» он описал идею глубокого обучения как:

Используя моделирование мозга, надеемся:

— Сделайте алгоритмы обучения намного лучше и проще в использовании.

— Сделайте революционные достижения в области машинного обучения и искусственного интеллекта.

Я считаю, что это наш лучший шанс на пути к реальному AI

Позже его комментарии стали более тонкими.

По словам Эндрю, суть глубокого обучения заключается в том, что теперь у нас есть достаточно быстрые компьютеры и достаточно данных, чтобы фактически обучать большие нейронные сети.Обсуждая, почему именно сейчас наступает время взлета глубокого обучения на ExtractConf 2015, в своем выступлении под названием «Что следует знать специалистам по данным о глубоком обучении», он прокомментировал:

очень большие нейронные сети, которые у нас есть, и … огромные объемы данных, к которым у нас есть доступ

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

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

Он показывает это на своих слайдах:

Почему именно глубокое обучение?
Слайд Эндрю Нг, все права защищены.

Наконец, он ясно указывает на то, что преимущества глубокого обучения, которые мы наблюдаем на практике, исходят от обучения с учителем. Из выступления на ExtractConf в 2015 году он прокомментировал:

Сегодня почти вся ценность глубокого обучения заключается в контролируемом обучении или обучении на основе маркированных данных

Ранее во время беседы в Стэнфордском университете под названием «Глубокое обучение» в 2014 году он сделал аналогичный комментарий:

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

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

Джефф Дин (Jeff Dean) — мастер и старший научный сотрудник Google в группе по системам и инфраструктуре в Google. Он принимал участие и, возможно, частично отвечал за масштабирование и внедрение глубокого обучения в Google. Джефф принимал участие в проекте Google Brain и разработке крупномасштабного программного обеспечения для глубокого обучения DistBelief, а затем и TensorFlow.

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

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

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

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

Глубокое обучение — это изучение иерархических функций

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

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

Он описывает глубокое обучение с точки зрения способности алгоритмов обнаруживать и изучать хорошие представления с помощью функции обучения. В своей статье 2012 года под названием «Глубокое изучение представлений для неконтролируемого и трансфертного обучения» он прокомментировал:

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

Детально проработанная перспектива глубокого обучения в этом направлении представлена ​​в его техническом отчете 2009 года под названием «Изучение глубинных архитектур для ИИ», где он подчеркивает важность иерархии в обучении функций.

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

В книге «Глубокое обучение», которая скоро будет опубликована, в соавторстве с Яном Гудфеллоу и Аароном Курвиллем они определяют глубокое обучение с точки зрения глубины архитектуры моделей.

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

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

Типичный пример модели глубокого обучения — это глубокая сеть прямого распространения или многослойный персептрон (MLP).

Питер Норвиг, директор по исследованиям в Google, известен своим учебником по искусственному интеллекту под названием «Искусственный интеллект: современный подход».

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

вид обучения, при котором формируемое представление имеет несколько уровней абстракции, а не прямой ввод для вывода

Почему это называется «

Deep Learning »?
Почему не просто « Искусственные нейронные сети »?

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

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

В 2006 году он стал соавтором статьи под названием «Алгоритм быстрого обучения для сетей с глубоким убеждением», в которой они описывают подход к «глубокому» обучению (как во многоуровневой сети) ограниченных машин Больцмана.

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

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

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

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

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

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

В беседе с Королевским обществом в 2016 году под названием «Глубокое обучение» Джефф прокомментировал, что сети Deep Belief стали началом глубокого обучения в 2006 году и что первым успешным применением этой новой волны глубокого обучения стало распознавание речи в 2009 году. «Акустическое моделирование с использованием сетей глубокого убеждения», достигающее самых высоких результатов.

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

Описание глубокого обучения в докладе Королевского общества, как и следовало ожидать, очень ориентировано на обратное распространение. Интересно, что он приводит четыре причины, по которым обратное распространение (читай «глубокое обучение») не стало популярным в последний раз в 1990-х годах. Первые два пункта совпадают с комментариями Эндрю Нг выше о том, что наборы данных слишком малы, а компьютеры работают слишком медленно.

Что на самом деле было не так с обратным распространением в 1986 году?
Слайд Джеффа Хинтона, все права защищены.

Глубокое обучение как масштабируемое обучение в разных областях

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

Янн ЛеКун (Yann LeCun) — директор исследовательского центра Facebook и является отцом сетевой архитектуры, которая выделяется при распознавании объектов в данных изображения, называемой сверточной нейронной сетью (CNN). Этот метод пользуется большим успехом, потому что, как и многослойные нейронные сети с прямой связью персептрона, метод масштабируется с учетом данных и размера модели и может быть обучен с помощью обратного распространения.

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

В своем выступлении в Ливерморской национальной лаборатории Лоуренса в 2016 году под названием «Ускорение понимания: глубокое обучение, интеллектуальные приложения и графические процессоры» он описал глубокое обучение в целом как изучение иерархических представлений и определил его как масштабируемый подход к созданию систем распознавания объектов:

глубокое обучение [это]… конвейер модулей, каждый из которых можно обучить.… Глубокий, потому что [имеет] несколько этапов в процессе распознавания объекта, и все эти этапы являются частью обучения »

Глубокое обучение = изучение иерархических представлений
Слайд Ян Лекун, все права защищены.

Юрген Шмидхубер является отцом еще одного популярного алгоритма, который, как и MLP и CNN, также масштабируется в зависимости от размера модели и размера набора данных и может быть обучен с помощью обратного распространения, но вместо этого адаптирован для обучения данных последовательности, называемого сетью долгосрочной краткосрочной памяти (LSTM). , разновидность рекуррентной нейронной сети.

Мы действительно видим некоторую путаницу в формулировке этой области как «глубокое обучение». В своей статье 2014 года под названием «Глубокое обучение в нейронных сетях: обзор» он комментирует проблематичное именование области и различие между глубоким и поверхностным обучением. Он также интересно описывает глубину с точки зрения сложности проблемы, а не модели, используемой для решения проблемы.

На какой глубине проблемы заканчивается поверхностное обучение и начинается глубокое обучение? Обсуждения с экспертами DL пока не дали однозначного ответа на этот вопрос.[…], Позвольте мне просто определить для целей этого обзора: проблемы глубины> 10 требуют очень глубокого обучения.

Демис Хассабис — основатель DeepMind, позже приобретенного Google. DeepMind совершила прорыв, объединив методы глубокого обучения с обучением с подкреплением для решения сложных задач обучения, таких как игра, что хорошо продемонстрировано в играх Atari и игре Go with Alpha Go.

В соответствии с названием они назвали свою новую технику Deep Q-Network, сочетающую глубокое обучение с Q-Learning.Они также называют более широкую область обучения «Глубокое обучение с подкреплением».

В своем научном документе 2015 года под названием «Управление на уровне человека посредством глубокого обучения с подкреплением» они комментируют важную роль глубоких нейронных сетей в своем прорыве и подчеркивают необходимость иерархической абстракции.

Для этого мы разработали новый агент, глубокую Q-сеть (DQN), которая способна сочетать обучение с подкреплением с классом искусственных нейронных сетей, известных как глубокие нейронные сети.Примечательно, что недавние достижения в области глубоких нейронных сетей, в которых несколько уровней узлов используются для построения все более абстрактных представлений данных, позволили искусственным нейронным сетям изучать такие концепции, как категории объектов, непосредственно из необработанных сенсорных данных.

Наконец, в статье, которую можно считать определяющей в данной области, Янн ЛеКун, Йошуа Бенджио и Джеффри Хинтон опубликовали статью в Nature под названием «Глубокое обучение». В нем они открываются с четкого определения глубокого обучения, подчеркивая многоуровневый подход.

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

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

Методы глубокого обучения — это методы обучения представлению с несколькими уровнями представления, полученные путем составления простых, но нелинейных модулей, каждый из которых преобразует представление на одном уровне (начиная с необработанного ввода) в представление на более высоком, немного более высоком уровне. абстрактный уровень.[…] Ключевым аспектом глубокого обучения является то, что эти уровни функций не разрабатываются человеческими инженерами: они изучаются на основе данных с использованием универсальной процедуры обучения.

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

Сводка

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

Хотя ранние подходы, опубликованные Хинтоном и соавторами, сосредоточены на жадном послойном обучении и неконтролируемых методах, таких как автокодеры, современное глубокое обучение сосредоточено на обучении глубоких (многоуровневых) моделей нейронных сетей с использованием алгоритма обратного распространения. Самые популярные техники:

  • Многослойные сети персептронов.
  • Сверточные нейронные сети.
  • Рекуррентные нейронные сети с кратковременной памятью.

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

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

Разрабатывайте проекты глубокого обучения с помощью Python!

Что, если бы вы могли разработать сеть за считанные минуты

… всего несколькими строками Python

Узнайте, как это сделать, в моей новой электронной книге:
Deep Learning With Python

Он охватывает сквозных проектов по таким темам, как:
Многослойные персептроны , Сверточные сети и Рекуррентные нейронные сети и другие…

Наконец-то привнесите глубокое обучение в

Ваши собственные проекты

Пропустить академики. Только результаты.

Посмотрите, что внутри

Процесс прикладного машинного обучения

Последнее обновление 5 июля 2019 г.

Систематический процесс решения задач прогнозного моделирования
То, что
дает результаты выше среднего

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

После разработки вы можете использовать этот процесс снова и снова в проекте за проектом. Чем надежнее и совершеннее ваш процесс, тем быстрее вы сможете получить надежные результаты.

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

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

5-этапный систематический процесс

Мне нравился 5-этапный процесс:

  1. Определите проблему
  2. Подготовить данные
  3. Алгоритмы выборочной проверки
  4. Улучшение результатов
  5. Настоящие результаты

Этот процесс отличается большой гибкостью.Например, этап «подготовки данных» обычно разбивается на анализ данных (обобщение и график) и подготовку данных (подготовка образцов для экспериментов). Этап «выборочных проверок» может включать в себя несколько формальных экспериментов.

Это отличная большая производственная линия, которую я стараюсь продвигать линейно. Самое замечательное в использовании автоматизированных инструментов — это то, что вы можете вернуться на несколько шагов назад (скажем, от «Улучшить результаты» до «Подготовить данные») и вставить новое преобразование набора данных и повторно запустить эксперименты на промежуточных шагах, чтобы увидеть, что Получены интересные результаты и их сравнение с экспериментами, которые вы проводили ранее.

Производственная линия
Фото East Capital, некоторые права защищены

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

1. Определите проблему

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

  • Шаг 1. В чем проблема? Опишите проблему неформально и формально и перечислите предположения и аналогичные проблемы.
  • Шаг 2: Почему нужно решать проблему? Перечислите вашу мотивацию для решения проблемы, преимущества, которые дает решение, и способы его использования.
  • Шаг 3. Как решить проблему? Опишите, как проблема будет решена вручную, чтобы очистить знания предметной области.

Подробнее об этом процессе читайте в посте:

2. Подготовка данных

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

.

Фактический процесс подготовки данных состоит из трех следующих этапов:

  • Шаг 1: Выбор данных : Определите, какие данные доступны, какие данные отсутствуют и какие данные можно удалить.
  • Шаг 2: Предварительная обработка данных : Организуйте выбранные данные путем форматирования, очистки и выборки из них.
  • Шаг 3: Преобразование данных : Преобразуйте предварительно обработанные данные, готовые для машинного обучения, с помощью инженерных функций, используя масштабирование, декомпозицию атрибутов и агрегирование атрибутов.

Подробнее об этом процессе подготовки данных можно узнать в посте:

3. Алгоритмы выборочной проверки

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

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

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

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

Вы можете узнать больше об определении своего тестового жгута в сообщении:

Вы можете узнать о важности алгоритмов выборочной проверки в сообщении:

4.Улучшение результатов

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

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

Таким образом, процесс улучшения результатов включает:

  • Настройка алгоритма : поиск лучших моделей рассматривается как проблема поиска в пространстве параметров модели.
  • Методы ансамбля : где прогнозы, сделанные несколькими моделями, объединяются.
  • Extreme Feature Engineering : где декомпозиция и агрегирование атрибутов, наблюдаемые при подготовке данных, доведены до предела.

Вы можете узнать больше об этом процессе в сообщении:

5. Представить результаты

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

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

  • Контекст (почему) : Определите среду, в которой существует проблема, и настройте мотивацию для исследовательского вопроса.
  • Проблема (вопрос) : Кратко опишите проблему как вопрос, на который вы вышли и ответили.
  • Решение (ответ) : Кратко опишите решение как ответ на вопрос, который вы задали в предыдущем разделе. Быть конкретным.
  • Выводы : маркированные списки сделанных вами открытий, которые интересуют аудиторию. Это могут быть открытия в данных, методы, которые работали или не работали, или преимущества производительности модели, которых вы добились на своем пути.
  • Ограничения : подумайте, где модель не работает или вопросы, на которые модель не отвечает.Не уклоняйтесь от этих вопросов: определение того, где модель лучше всего, вызывает больше доверия, если вы можете определить, где она не превосходит других.
  • Выводы (почему + вопрос + ответ) : Пересмотрите «почему», исследовательский вопрос и ответ, который вы обнаружили в небольшом компактном пакете, который легко запомнить и повторить для себя и других.

Вы можете узнать больше об использовании результатов проекта машинного обучения в сообщении:

Сводка

В этом посте вы узнали мой общий шаблон для решения задачи машинного обучения.

Я использую этот процесс почти без сбоев, и я использую его на разных платформах, от Weka, R и scikit-learn, и даже на новых платформах, с которыми я экспериментировал, например pylearn2.

Каков ваш процесс, оставьте комментарий и поделитесь?

Будете ли вы копировать этот процесс, и если да, то какие изменения вы в него внесете?

«Я хочу изучать искусственный интеллект и машинное обучение. С чего начать? »| Даниэль Бурк

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

Я начал изучать машинное обучение (ML) и искусственный интеллект (AI).

Так много всего происходит. Слишком.

Каждую неделю кажется, что Google или Facebook выпускают новый вид ИИ, чтобы ускорить работу или улучшить наш опыт.

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

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

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

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

Довольно определений.

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

«Компьютер учится за вас?» Я не мог поверить в это.

Я наткнулся на программу Deep Learning Nanodegree от Udacity. Веселый персонаж по имени Сирадж Раваль был в одном из промо-роликов. Его энергия была заразительной. Несмотря на то, что я не отвечал основным требованиям (я никогда раньше не писал ни строчки на Python), я зарегистрировался.

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

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

Завершив курс Deep Learning Nanodegree, я гарантированно принял участие в программе Udacity AI Nanodegree, Self-Driving Car Nanodegree или Robotics Nanodegree. Все отличные варианты.

Я снова заблудился.

Классика. «Куда мне идти дальше?»

Мне нужна была учебная программа. Я заложил фундамент с помощью Deep Learning Nanodegree, теперь пришло время выяснить, что будет дальше.

Я не планировал в ближайшее время возвращаться в университет. В любом случае у меня не было 100000 долларов на получение степени магистра.

Итак, я сделал то, что делал вначале. Обратился за помощью к моему наставнику, Google.

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

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

Trello — мой личный помощник / координатор курса.

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

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

Я опубликовал доску Trello и написал в блоге сообщение о своих усилиях.

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

Я австралиец. И все волнения, казалось, происходили в США.

Итак, я поступил наиболее логично и купил билет в один конец. Я проучился год и решил, что пора начать применять свои навыки на практике.

Мой план состоял в том, чтобы попасть в США и получить работу.

Затем Эшли написала мне в LinkedIn: «Привет, я видела твои посты, и они действительно классные, я думаю, тебе стоит познакомиться с Майком».

Я встретил Майка.

Я рассказал ему свою историю обучения в Интернете, как я любил медицинские технологии и свои планы поехать в США.

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

Я встретил Кэмерон.

У нас была похожая беседа, о которой мы говорили с Майком.Здоровье, технологии, онлайн-обучение, США.

«Мы работаем над некоторыми проблемами со здоровьем, почему бы вам не прийти в четверг?»

Пришел четверг. Я нервничал. Но однажды кто-то сказал мне, что нервничать — это то же самое, что быть возбужденным. Я был взволнован.

Я провел день, встречаясь с командой Макса Кельзена и проблемами, над которыми они работали.

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

«Хотели бы вы присоединиться к команде?» — спросил Ник.

«Конечно», — сказал я.

Мой рейс в США был отложен на пару месяцев, и я купил обратный билет.

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

Ни того, ни другого у меня не было. Но у меня были навыки, полученные на множестве онлайн-курсов.

Попутно я делилась своей работой в Интернете. Мой GitHub содержал все проекты, над которыми я работал, мой LinkedIn был разложен, и я практиковался в передаче того, что я узнал, через YouTube и статьи на Medium.

Я никогда не сдавал резюме Максу Кельзену. «Мы видели ваш профиль в LinkedIn».

Моей основной работой было резюме.

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

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

Будь то GitHub, Kaggle, LinkedIn или блог, всегда есть место, где люди смогут вас найти.Кроме того, иметь собственный уголок в Интернете — это очень весело.

Куда вы идете, чтобы научиться этим навыкам? Какие курсы самые лучшие?

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

Что важнее, чем то, как вы начали, так это то, почему вы начинаете.

Начнем с того, почему.

Почему вы хотите получить эти навыки?

Хотите зарабатывать деньги?

Хотите строить вещи?

Хотите изменить мир к лучшему?

Нет правильной причины.Все действительны по-своему.

Начните с вопроса «почему», потому что «почему» важнее, чем «как». Если у вас есть «почему», значит, когда становится трудно, а — трудно, вам есть к чему обратиться. Что-то, чтобы напомнить вам, почему вы начали.

Понял почему? Хороший. Время для некоторых сложных навыков.

Могу порекомендовать только то, что пробовал.

Я прошел курсы (в порядке):

  • Treehouse — Введение в Python
  • DataCamp — Введение в Python и Python для науки о данных Track
  • Udacity — Deep Learning & AI Nanodegree
  • Coursera — Deep Learning by Эндрю Нг
  • быстро.ai — Часть 1, скоро будет Часть 2

Они все мирового класса. Я визуально обучаюсь. Я лучше учусь видеть, что делается. Все эти курсы так и делают.

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

Самый высокий уровень математического образования у меня был в средней школе.Остальное я узнал через Khan Academy, так как мне это было нужно.

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

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

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

В моем случае я не хочу углубляться в математику и улучшать производительность алгоритма на 10%. Я предоставлю это людям умнее меня.

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

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

Несмотря на обложки многих статей в Интернете, это не всегда связано с работой с роботами с красными глазами.

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

  • Контекст — Как можно использовать машинное обучение, чтобы узнать больше о вашей проблеме?
  • Данные — Вам нужно больше данных? В какой форме это должно быть? Что делать, если данные отсутствуют?
  • Моделирование — Какую модель следует использовать? Это слишком хорошо работает с данными (переоснащение)? Или почему не очень хорошо работает (не подходит)?
  • Производство — Как запустить свою модель в производство? Это должна быть онлайн-модель или она должна обновляться через определенные промежутки времени?
  • Выполняется — Что произойдет, если ваша модель сломается? Как улучшить его, добавив больше данных? Есть ли способ лучше?

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

Для подробностей я снял видео о том, чем мы обычно занимаемся в понедельник в Max Kelsen.

Нет правильного или неправильного способа попасть в ML или AI (или что-то еще).

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

Вы можете начать с изучения кода Python (мой любимый).

Вы можете начать с изучения математического анализа и статистики.

Вы можете начать с изучения философии принятия решений.

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

Чем больше я узнаю об этом, тем больше понимаю, что мне еще есть чему поучиться. И это меня возбуждает.

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

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

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

Компьютеры умны, но они все еще не могут учиться самостоятельно.Им нужна твоя помощь.

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

Почему так сложно понять, с чего начать или как начать обучение программированию?

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

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

Более половины разработчиков написали первую строчку кода, когда им было 14-15 лет.

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

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

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

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

Выберите свое оружие язык

Как кто-то однажды сказал: «оружие не делает человека». Вероятно, это цитата из какого-нибудь фильма о боевых искусствах B или Dragonball Z, но философия верна и для языков программирования.Хороший разработчик — хороший разработчик, независимо от языка. Изучение любого языка поможет вам понять основные концепции программирования. Однако , вам нужно с чего-то начать, и если вы выберете свой первый язык с умом, вы резко сократите время, необходимое для достижения своей цели.

Выбор языка сводится к тому, чем вы хотите заниматься. Это краткий список общих целей разработки и того, на каком языке (языках) лучше всего их достичь ( ПРИМЕЧАНИЕ : это не означает, что это только языков, которые вы можете использовать для данной области, просто мое предложение о том, с чего начать ):

  1. Внешняя веб-разработка (пользовательский интерфейс и взаимодействие): Javascript, HTML и CSS

  2. Внутренняя веб-разработка (услуги, которые предоставляют интерфейсные веб-приложения и мобильные приложения обращаются к): Ruby, Python, Javascript или PHP

  3. Мобильная разработка: Swift (iOS) или Java (Android)

  4. Разработка для Windows: C #

  5. Разработка для macOS: Swift или Objective -C

  6. Операционные системы, файловые системы, встроенные системы и т. Д .: C / C ++

  7. Разработка игр: (C ++, Unity и C #)

  8. Data Science: R

Естественно, есть О свои варианты для каждого из них.Например, Javascript полезен для пунктов 1–5. Но список — хорошая отправная точка как есть. ПРИМЕЧАНИЕ : Ряд людей связались со мной и упомянули, что в некоторых местах, особенно за пределами США, приведенный выше список отличается для внутренней веб-разработки. В этих странах C # и Java используются чаще, чем Python или Ruby. Предлагается проверить объявления о вакансиях, в которых вы планируете (или надеетесь) работать для работы и компаний , в которых вы хотите работать, и посмотреть, какие языки им требуются.Выбрав язык, вы на правильном пути, чтобы узнать, как начать учиться программировать.

Python — самый быстрорастущий из основных языков программирования

 Самые популярные языки по рейтингу IEEE 
Как найти хорошие ресурсы для начала обучения

Есть тонн ресурсов, чтобы научиться программировать на Интернет. Как вы просеиваете мякину и находите настоящие драгоценные камни?

Большинство ресурсов попадает в следующие категории:

  • Книги

  • Видео

  • Блоги / учебные пособия

  • Курсы

Книги — это традиционные ресурсы, которые можно найти.Найдите на Amazon.com свою тему и прочтите обзоры. Убедитесь, что все книги, которые вы рассматриваете, новые. Смена языков и старые книги могут замедлить ваш прогресс.

Многие люди тяготели к видео, чтобы научиться программированию и другим темам. YouTube — это первое место, куда смотрит большинство людей. Честное предупреждение, это будет куча дерьма. Посмотрите, сколько подписчиков у того или иного инструктора, и посмотрите несколько видеороликов, чтобы узнать, подходят ли вам их стиль и методика. Другая возможная проблема заключается в том, что, поскольку видео сложнее обновить для новых версий языка (или соответствующих инструментов), некоторые видео могут быть устаревшими.Эта часть очень важна для понимания того, как начать учиться программировать.

Почему обучение программированию — это так сложно

Для блогов и учебных пособий простой поиск в Google, например «лучший учебник по питону» или «лучший учебник по быстрому обучению для начинающих» — отличное место для начала. Как и в случае с видео, вам придется попробовать несколько, чтобы увидеть, как они сочетаются с вашим стилем обучения.

Онлайн-курсы — новейший ресурс на сцене. Codecademy — это то, что многие люди находят сразу. Однако после того, как я поговорил со многими людьми, которые попробовали его, никто не подумал, что он работает хорошо.Free Code Camp и Odin Project высоко ценятся за веб-разработку. У Udacity, Coursera, Udemy есть курсы разных жанров. Каждый проверил, так что вы можете сравнивать и смотреть только на те, которые помогли другим. Мои конкретные примеры приведены в следующем разделе.

С чего следует начать, в частности

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

  1. Front-end веб-разработка: Free Code Camp

  2. Back-end веб-разработка: Ruby (для Rails), Python (для Django), Javascript (для Node), PHP The Right Way, для мест, где C # и Java используются чаще, ресурсы см. в разделах «Разработка для Windows» и «Разработка для мобильных устройств (Java)» соответственно.

  3.  StackOverflow перечислил наиболее часто используемые языки программирования 
  4. Мобильная разработка: Swift Essentials от Swift Lynda (проверьте в своей местной библиотеке, получите ли вы бесплатную учетную запись Lynda с библиотечным билетом) или бесплатный курс Swift школы Flatiron, Swift Книга по программированию или Java Head First Java, MOOC Университета Хельсинки

  5. Разработка Windows: Head First C #, курс Pluralsight C #

  6. Разработка macOS: программирование какао для OS X или те же курсы для мобильных Swift

  7. Операционные системы, файловые системы, встроенные системы: книга «Как программировать» на C ++, Учебное пособие по C ++ для начинающих

  8. Разработка игр: см. Предыдущее для C ++ и разработку для Windows для C #

  9. Наука о данных: R Swirl или курс Coursera R

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

Самые простые языки программирования для изучения
Как избавиться от застревания после того, как вы начали

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

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

В Интернете проще всего найти помощь. Большинство разработчиков ищут решения в StackOverflow или просто выводят сообщение об ошибке в Google (если оно у них есть). Другие решения — найти группы новостей или форумы, посвященные используемому вами языку.

Как использовать Google, чтобы открепиться

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

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

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

  1. Используя StackOverflow, разработчики экономят 30-90 минут времени в неделю.
  2. Если вы работаете над публично опубликованной проблемой из книги или курса, добавьте эту информацию в поиск.

  3. Объясните, что вы пытаетесь сделать, как можно меньшим количеством слов. Это сложно для разработчиков любого уровня. Для новичка у вас могут возникнуть проблемы с правильной терминологией. Здесь пригодятся книги, учебные пособия и учебные материалы. Они должны использовать правильный язык, если вы делаете что-то похожее на то, что в них написано. Если нет, вам нужно будет попробовать другую формулировку. Помните, что у других новичков тоже будут проблемы, и они могут объяснить проблему таким же образом.

Вот несколько примеров, которые я использовал (без кавычек):
  • «ruby rails form helper checkbox» — я включил «rails», потому что знал, что form_helpers были частью Rails. Я мог бы удалить здесь слово «рубин», поскольку «рельсы» относятся к рубину и должны сузить область поиска. И да, я знаю, что это «Ruby on Rails», но поиск в Google по запросу «on» не помогает.

  • «рубиновое изобретение неизбежно после предложенного пути» — здесь «devise_invitable» — это драгоценный камень, библиотека кода Ruby (коллекция повторно используемого кода), и я хотел узнать больше о его методе after_invited_path .Обычно Google дает лучшие результаты, когда вы убираете символы подчеркивания «_». Если нет, попробуйте добавить их и заключить подчеркнутые слова в кавычки: «devise_invitable», «after_invited_path».

  • ‘java «не может ссылаться на не конечную переменную» »- ошибка, которую я получал , включена « не может ссылаться на не конечную переменную », но перед этой фразой относилась к файлам, относящимся к моему проекту, поэтому я не включал эти части.

Как только вы найдете решение, НЕ КОПИРУЙТЕ И НЕ ВСТАВЛЯЙТЕ .Это огромное «нет-нет». Дословное копирование кода из Интернета — хороший способ замедлить ваш прогресс и не дать вам стать лучшим разработчиком.

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

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

Получение помощи от человека

Поскольку поиск решения в Google — это искусство, требующее практики, проще и быстрее просто спросить кого-нибудь. Это, конечно, предполагает, что у вас есть доступ к кому-то. Вот несколько способов найти кого-то, кого можно спросить, и начать с самого лучшего:

    • Друзья или семья, друзья друзей или семьи.

    • Местные встречи, a la meetup.com или группы пользователей (google для «группы пользователей ruby ​​рядом со мной» или аналогичный). В любом случае это отличная идея для создания сети коллег, наставников и возможных работодателей.

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

    • Reddit.com (естественно) — r / learnprogramming — хорошее место для начала (вы здесь!) Или языковые субреддиты, такие как r / learnjava.

    • Локальные виртуальные группы в Slack.Введите в Google что-то вроде «tech slack » или «developer slack »

  • IRC, Internet Relay Chat. Это то, что модернизировал Slack и существует уже несколько десятилетий. Удивительное количество технологических компаний присутствует в IRC. Google «<мой язык> IRC канал», чтобы найти его.

  • Группы в Facebook (хотя я обнаружил, что они обычно более низкого качества).

  • Получение помощи от человека ускоряет обучение на 23%
Если вы работаете лучше, с большей ответственностью и людьми, есть другие варианты

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

Есть 2 основных альтернативы самообучению, которые решают большинство трудностей, хотя и за определенную цену:

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

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

Мы забыли что-то добавить в список «Как начать обучение программированию»? Свяжитесь с нами и дайте нам знать!

Алисия руководит контент-стратегией LearnWorthy, управляя командой производителей контента, стратегов и копирайтеров. Она творчески курирует информационные программы, информационные кампании, отчеты об исследованиях и другие интегрированные маркетинговые проекты.

Как я снова начну изучать машинное обучение (через 3 года)

Я в подполье, там, где все началось. Сидя в скрытом кафе, где я впервые встретил Майка. Я учился в своей спальне последние 9 месяцев и решил выйти из пещеры. Половина из меня была обеспокоена тем, что мне придется платить 19 долларов за завтрак (если только не Рождество, водить Uber по выходным не очень прибыльно), а другую половину беспокоило, значило ли какое-либо исследование, которое я проводил в Интернете, что-нибудь.

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

Через 9 месяцев после получения степени магистра искусственного интеллекта я встретил Майка, мы выпили кофе, я рассказал ему свой грандиозный план; использовать ИИ, чтобы помочь миру двигаться дальше и лучше питаться, он сказал мне, что я должен встретиться с Кэмом, я встретил Кэма, я сказал Кэму, что собираюсь в США, он сказал, почему бы не остаться здесь, приходите в четверг, хорошо, пошел в четверг на 1-дневную стажировку в неделю, а через две недели ему предложили роль младшего инженера по машинному обучению в Max Kelsen.

Проработав 14 месяцев в должности инженера по машинному обучению, я решил уйти и попробовать это самостоятельно.Я написал статью о том, что я узнал, Андрей нашел ее, написал мне по электронной почте, спрашивая, хочу ли я создать курс машинного обучения, удобный для новичков, я сказал, что да, мы создали курс, и через 6 месяцев у нас есть привилегия обучения 27 177 студентов в 150+ странах.

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

Итак, я чувствую, что закончил бакалавриат по машинному обучению.

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

  • 1 год в: Фаза медового месяца, также известная как период прибылей новичков. Вы намного лучше новичка, возможно, даже чересчур уверены в себе (хотя это неплохо).
  • 2 года в: О, может быть, я не так хорош, как я думал. Ваши навыки новичка начинают развиваться, но теперь вы понимаете, что для того, чтобы стать лучше, потребуются определенные усилия.
  • 3 года в: Ничего себе, еще так много предстоит узнать на этапе. Больше не новичок, но теперь вы знаете достаточно, чтобы понять, как много вы не знаете (я здесь).
Обучение нелинейное (не прямая линия). Вы можете учиться целый месяц и чувствовать, что ничего не добились. Затем, казалось бы, из ниоткуда, появляется открытие.Если вам нужен пример того, как мы себя обманываем, вы поймали ошибку? Кажется, я все еще забываю, как писать.

Но хватит обо мне. Это моя история. Ваш может быть похожим, или вы можете начать сегодня.

Если вы только начинаете, эта статья для вас. Если вы ветеран, вы можете дать свой совет или критиковать мои идеи.

Давайте займемся этим, ладно?

Если вы пришли за списком курсов, значит, вы оказались не в том месте.

Я прошел кучу онлайн-курсов.Я даже создал свой собственный.

И знаете что?

Это все ремиксы одного и того же.

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

Изучение чего-либо — это 10% материала, а 90% — желание учиться.

Скольких школьных учителей вы помните?

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

Что тогда?

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

Выучить какой-то навык — не неприятная задача, если учитель вас заинтересовал.

Проклятие инженера (и технологического ботаника)

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

Признаюсь. Я виновен.Каждый новый блестящий фреймворк, каждая новая ультрасовременная модель — вот что я использую.

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

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

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

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

«Я хочу создавать вещи»

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

Слишком много моделей живут и умирают в ноутбуках Jupyter.

Почему?

Поскольку машинное обучение — это проблема инфраструктуры (инфраструктура означает все, что связано с вашей моделью, чтобы другие могли ее использовать, новый горячий термин, который вы захотите найти, — это MLOps).

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

Но именно поэтому мне следовало проводить там больше времени.

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

Как?

Не бойтесь делать что-нибудь простое. Базовый интерфейс, с которым кто-то может взаимодействовать, гораздо интереснее, чем записная книжка в репозитории GitHub.

Нет уж, как?

Обучите модель, создайте на ее основе интерфейсное приложение с помощью Streamlit, заставьте приложение работать локально (на вашем компьютере), как только оно заработает, оберните приложение с помощью Docker, затем разверните контейнер Docker в Heroku или другом облачном провайдере.

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

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

  • Сколько времени занимает вывод (время для вашей модели, чтобы сделать прогноз) ?
  • Как люди взаимодействуют с ним (возможно, данные, которые они отправляют в ваш классификатор изображений, отличаются от вашего тестового набора, данные в реальном мире часто меняются)?
  • Кто-нибудь действительно этим воспользуется?

«Я хочу заняться исследованием»

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

Меня часто спрашивают: «Какие математические знания мне нужно знать, прежде чем я начну машинное обучение?»

На что я обычно отвечаю: «Сколько мне нужно знать о ходьбе, прежде чем я пойду на пробежку?»

На самом деле я этого не говорю, я обычно лучше и говорю что-то вроде: «Можете ли вы решить проблему, над которой вы сейчас работаете?», Если да, вы знаете достаточно, если нет, узнайте больше.

В качестве примечания, я только что заказал книгу «Математика для машинного обучения». Я собираюсь потратить следующие месяц или два, чтобы прочитать его от корки до корки. Прочитав бесплатный текст в Интернете, этого более чем достаточно, чтобы охватить основы.

Навык до сертификатов

Я получил сертификаты онлайн-курсов, которые выходят из моей задницы.

Меня поймали на мысли, что чем больше сертификатов, тем больше навыков.

Я читал лекции со скоростью 1,75 раза, чтобы дочитать до конца, сдать автоматизированный экзамен и поделиться своими успехами в Интернете.

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

Идиот.

Вот в чем дело. Все, что я выучил на экзамене, я забыл. Все, что я узнал, экспериментируя, я помню.

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

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

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

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

Перед тем, как добавить что-то , спросите себя: «Я высосал сок из того, что уже покрыл?»

Как я начал бы заново

Прежде всего, более важным, чем любой ресурс, является избавление от менталитета «Я не могу этому научиться».Это чушь. У тебя есть интернет. Вы можете научиться чему угодно.

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

Следующий путь тоже не задан. Он разработан как компас, а не как карта. И угадай что? Все это доступно в Интернете.

Давайте заложим фундамент.

Отрывок из Дорожной карты машинного обучения на 2020 год. Примечание: Эта учебная программа в значительной степени ориентирована на код, прежде всего на коде, в частности на код Python.Он также игнорирует разработку мобильных или встроенных устройств. Тем не менее, он содержит более чем достаточно ресурсов, чтобы получить отличную подготовку в этой области.
Путь для новичков (6–12 + месяцев)

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

Моей главной целью было бы создать больше вещей, с которыми люди могли бы взаимодействовать.

Специфические части машинного обучения будут:

  • Концепции машинного обучения — понять, для каких проблем можно и нужно использовать машинное обучение.Элементы ИИ отлично подходят для этого.
  • Python — сам язык вместе со специальными фреймворками для машинного обучения, NumPy, pandas, matplotlib, Scikit-Learn. Ознакомьтесь с pythonlikeyoumeanit или официальной документацией по каждому из них.
  • Инструменты машинного обучения , основным из которых является Jupyter Notebooks.

[ Примечание: Курс машинного обучения от нуля до мастерства (курс, который я преподаю) учит 3 вышеуказанным темам.]

Наряду с ними я прошел через:

Здесь много всего.Поэтому, чтобы закрепить свои знания, я создавал 1-2 этапных проекта, используя Streamlit или навыки веб-разработки, полученные на freeCodeCamp. И, конечно же, они будут размещены на GitHub.

Продвинутый путь (6–12 + месяцев / постоянно)

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

  • Все учебные программы fast.ai — практические примеры использования многих методов глубокого обучения и машинного обучения. Наблюдая за одним быстро.Лекция ai превратилась в решение, которое мы создали для клиента.
  • Любая из учебных программ deeplearning.ai — выберите ту, которая вызывает у вас наибольший интерес. Делает комплимент практическому подходу fast.ai теорией.
  • Учебная программа полного цикла глубокого обучения — здесь вы собираетесь связать полученные знания о машинном обучении с полученными знаниями в области веб-разработки.
  • Копия исследовательской работы (или нескольких).
  • Практическая книга по машинному обучению с Scikit-Learn и TensorFlow, часть 2 — TensorFlow сфокусирована, но концепции связаны со многими различными приложениями.

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

Примером может служить веб-приложение на основе модели машинного обучения.

Примеры учебных программ

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

Хорошая новость в том, что вы можете получить и то, и другое самостоятельно.

Я создал свою собственную степень магистра искусственного интеллекта как форму подотчетности и структуры.Вы можете сделать что-то подобное.

На самом деле, если бы я начинал заново, я бы следил за чем-то более похожим на книгу Джейсона Бенна «Как я изучал веб-разработку, разработку программного обеспечения и ML ». Он похож на мой, но включает больше методов разработки программного обеспечения.

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

Идея на миллиард долларов состоит в том, чтобы разработать платформу, на которой люди могут создавать свои собственные самостоятельные учебные программы и взаимодействовать с другими, идущими аналогичными путями.Я говорю здесь «самоуправляемый», потому что все знания в значительной степени самоучки. Вместо того, чтобы передавать знания с рук, роль инструктора заключается в том, чтобы возбуждать, направлять и бросать вызов.

Друзья, действительно существует платформа, которая позволяет студентам:

— Создавать свои собственные учебные планы (например, собирать различные онлайн-ресурсы)
— Находить студентов и взаимодействовать с ними по схожим направлениям
— Задавать вопросы в общей базе знаний

Если нет, почему бы и нет?

Пробовали ли это раньше?

— Даниэль Бурк (@mrdbourke) 10 августа 2020 г.

Поделитесь своей работой

Обучение и чтение — это увлекательно.Строительство и созидание — это выдох. Не задерживайте дыхание.

Найдите баланс между расходами материалов и собственными творениями.

Например, вы можете потратить 6 недель на обучение, а затем 6 недель на то, чтобы объединить свои знания в форме совместной работы.

Совместная работа — это ваше новое резюме.

Где?

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

Что не хватает?

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

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

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

Видеоверсия этой статьи

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

Как начать изучение машинного обучения?

Артур Самуэль ввел термин «Машинное обучение» в 1959 году и определил его как «Область исследования, которая дает компьютерам возможность учиться без явного программирования».

И это было началом машинного обучения! В наше время машинное обучение — один из самых популярных (если не самый!) Вариантов карьеры. Согласно Indeed, инженер по машинному обучению — лучшая работа 2019 года с ростом на 344% на и средней базовой зарплатой в размере $ 146 085 в год.

Внимание компьютерщик! Укрепите свои основы с помощью курса Python Programming Foundation и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS .И чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение — базовый уровень

Но все еще есть много сомнений в том, что такое машинное обучение и как начать его изучать? Итак, эта статья посвящена основам машинного обучения, а также пути, по которому вы можете в конечном итоге стать полноценным инженером по машинному обучению. А теперь приступим !!!

Что такое машинное обучение?

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

Как начать изучать машинное обучение?

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

Шаг 1. Ознакомьтесь с предварительными условиями

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

(a) Изучите линейную алгебру и многомерное исчисление

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

(b) Статистика обучения

Данные играют огромную роль в машинном обучении.Фактически, около 80% вашего времени в качестве эксперта по машинному обучению будет потрачено на сбор и очистку данных. А статистика — это поле, которое занимается сбором, анализом и представлением данных. Так что неудивительно, что вам нужно этому учиться !!!
Некоторые из ключевых концепций в статистике, которые имеют важное значение, — это статистическая значимость, распределения вероятностей, проверка гипотез, регрессия и т. Д. Кроме того, байесовское мышление также является очень важной частью машинного обучения, которое имеет дело с различными концепциями, такими как условная вероятность, априорные и апостериорные факторы. , Максимальное правдоподобие и т. Д.

(c) Изучите Python

Некоторые люди предпочитают пропускать линейную алгебру, многомерное исчисление и статистику и изучать их по мере их изучения методом проб и ошибок. Но единственное, что нельзя пропустить, — это Python! Хотя есть и другие языки, которые вы можете использовать для машинного обучения, например R, Scala и т. Д., Python в настоящее время является самым популярным языком для машинного обучения. На самом деле существует множество библиотек Python, которые особенно полезны для искусственного интеллекта и машинного обучения, такие как Keras, TensorFlow, Scikit-learn и т. Д.

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

Шаг 2 — Изучение различных концепций машинного обучения

Теперь, когда вы выполнили предварительные требования, вы можете перейти к собственному изучению машинного обучения (что является интересной частью !!!). Лучше всего начать с основ, а затем перейти к более сложные вещи. Вот некоторые из основных концепций машинного обучения:

(a) Терминология машинного обучения
  • Модель — Модель — это конкретное представление, полученное из данных путем применения некоторого алгоритма машинного обучения.Модель также называют гипотезой.
  • Признак — Признак — это индивидуальное измеримое свойство данных. Набор числовых признаков можно удобно описать вектором признаков. Векторы признаков передаются в модель в качестве входных данных. Например, чтобы предсказать плод, могут быть такие характеристики, как цвет, запах, вкус и т. Д.
  • Цель (метка) — Целевая переменная или метка — это значение, которое будет предсказано нашей моделью. Для примера фруктов, обсуждаемого в разделе функций, метка для каждого набора входных данных будет именем фрукта, например, яблоко, апельсин, банан и т. Д.
  • Обучение — Идея состоит в том, чтобы предоставить набор входных данных (функций) и ожидаемых результатов (меток), поэтому после обучения у нас будет модель (гипотеза), которая затем сопоставит новые данные с одной из обучаемых категорий. на.
  • Прогнозирование — Как только наша модель будет готова, ей можно подать набор входных данных, на которые она предоставит прогнозируемый результат (метку).
(b) Типы машинного обучения
  • Контролируемое обучение — Это включает обучение на основе обучающего набора данных с помеченными данными с использованием моделей классификации и регрессии.Этот процесс обучения продолжается до тех пор, пока не будет достигнут требуемый уровень производительности.
  • Неконтролируемое обучение — Это включает использование немаркированных данных с последующим поиском базовой структуры в данных, чтобы узнавать все больше и больше о самих данных с использованием моделей факторного и кластерного анализа.
  • Полу-контролируемое обучение — Это включает использование немаркированных данных, таких как неконтролируемое обучение, с небольшим количеством помеченных данных. Использование помеченных данных значительно повышает точность обучения, а также более рентабельно, чем контролируемое обучение.
  • Обучение с подкреплением — Это включает обучение оптимальным действиям методом проб и ошибок. Таким образом, следующее действие определяется путем изучения поведения, основанного на текущем состоянии и обеспечивающего максимальное вознаграждение в будущем.
(c) Как практиковать машинное обучение?
  • Самая трудоемкая часть в ML — это сбор, интеграция, очистка и предварительная обработка данных . Так что обязательно попрактикуйтесь с этим, потому что вам нужны высококачественные данные, но большие объемы данных часто бывают грязными.Так что это то, на что уйдет большая часть вашего времени !!!
  • Изучите различные модели и потренируйтесь на реальных наборах данных. Это поможет вам создать интуитивное представление о том, какие типы моделей подходят в различных ситуациях.
  • Наряду с этими шагами не менее важно, чтобы понимал, как интерпретировать результаты, полученные с помощью различных моделей. Это легче сделать, если вы разбираетесь в различных параметрах настройки и методах регуляризации, применяемых к разным моделям.
(d) Ресурсы для обучения машинному обучению:

Существуют различные онлайн и офлайн ресурсы (как бесплатные, так и платные!), Которые можно использовать для изучения машинного обучения. Некоторые из них представлены здесь:

  • Для широкого знакомства с машинным обучением довольно популярен Стэнфордский курс машинного обучения Эндрю Нга. Он фокусируется на машинном обучении, интеллектуальном анализе данных и статистическом распознавании образов, а видеоролики с пояснениями очень полезны для прояснения теории и основных концепций машинного обучения.
  • Если вам нужно руководство по машинному обучению для самостоятельного изучения, ускоренный курс по машинному обучению от Google подойдет вам, так как он предоставит вам введение в машинное обучение с видеолекциями, практическими примерами и практическими занятиями. упражнения.
  • Если вы предпочитаете автономный курс, курс Geeksforgeeks Machine Learning Foundation идеально подойдет вам. Этот курс познакомит вас с различными концепциями машинного обучения, а также ознакомит с практическим опытом их применения в учебной среде.

Шаг 3 — Примите участие в соревнованиях

После того, как вы поймете основы машинного обучения, можете переходить к безумной части !!! Соревнования! Это в основном сделает вас еще более опытным в машинном обучении, объединив в основном теоретические знания с практической реализацией. Некоторые из основных соревнований, с которых вы можете начать на Kaggle, которые помогут вам обрести уверенность, приведены здесь:

  • Titanic: Machine Learning from Disaster: Задача Titanic: Machine Learning from Disaster — очень популярный проект для начинающих в области машинного обучения. так как в нем доступно несколько учебных пособий.Так что это отличное введение в концепции машинного обучения, такие как исследование данных, разработка функций и настройка модели.



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *