Alvaros
.
- Регистрация
- 14.05.16
- Сообщения
- 21.452
- Реакции
- 101
- Репутация
- 204
Не каждый может найти время и деньги на то, чтобы получить очное образование в сферах Data Science (DS, наука о данных), AI (Artificial Intelligence, искусственный интеллект), ML (Machine Learning, машинное обучение). Недостаток времени и нехватка денег — это серьёзные препятствия. Преодолеть эти препятствия можно, занявшись самообучением. Но и тут не всё так просто. Для того чтобы успешно учиться самостоятельно, нужны дисциплина, сосредоточенность и правильный подбор учебных предметов. Самообучение в выбранной области, при правильном подходе, можно свободно совмещать с обычной жизнью или с учёбой в общеобразовательных учреждениях. Но в некоторых областях знаний, в таких, как DS, AI, ML, очень сложно начать учиться самостоятельно. Однако, прошу поверить мне на слово, сложности стоят того, что можно получить в результате. Ключ к успеху в самообучении лежит в том, чтобы учиться в собственном темпе.
В этом материале я хочу рассказать о том, как можно действовать тому, кто хочет самостоятельно обрести знания в областях DS, AI и ML. Применение предложенных здесь методов учёбы способно привести к хорошему прогрессу в изучении нового. Здесь, кроме того, я собираюсь поделиться ссылками на ресурсы, которыми я пользуюсь, и которые я без тени сомнения готов порекомендовать другим.
Изучите некоторые математические дисциплины
Математика, даже если это кому-то и не нравится, очень важна в интересующей нас области. Я думаю, что можно с достаточной уверенностью говорить о том, что те, кто это читают, уже обладают некоторыми знаниями по математике, которые они получили в школе. Это — хорошая база, но этого и близко недостаточно тому, кто хочет развиваться в сферах DS, AI и ML. А именно, тут понадобится углубиться в математику немного сильнее, чем это делается в школе, придётся изучить некоторые вещи из статистики, алгебры и других математических дисциплин. Я собрал бы список полезных ресурсов по математике для DS, но это уже сделали за меня в
Научитесь программировать
Если вы только начинаете самообучение — не стоит сразу бросаться в изучение того, как писать код для целей машинного обучения. Вместо этого стоит изучить основные концепции программирования, не привязанные к какой-либо предметной области. Узнайте о том, что такое программирование, ознакомьтесь с разными существующими типами кода, разберитесь с тем, как правильно писать программы. Это очень важно, так как в процессе освоения программирования вы изучите множество базовых идей, которые сослужат вам хорошую службу на протяжении всей вашей DS-карьеры.
Не спешите, не стремитесь сразу изучить что-то сложное. То, насколько хорошо вы поймёте основы, скажется на всей вашей будущей профессиональной деятельности.
Выберите один язык программирования и как следует в нём разберитесь
Существует много языков программирования, используемых теми, кто работает в областях DS, AI и ML. Чаще всего здесь используются Python, R, Java, Julia и SQL. В данных сферах могут применяться и другие языки, но те, которые я перечислил, применяются чаще других не без причины:
Нет ничего плохого в том, чтобы изучать несколько языков программирования. И, на самом деле, полезно знать более одного языка. Но во время изучения программирования не стоит торопиться. Нужно постараться заниматься, в некий промежуток времени, лишь одним языком, так как иначе вы можете сильно запутаться. Поэтому лучше всего изучать языки по одному, уделяя особое внимание тем их механизмам, которые пригодятся вам в работе. Я посоветовал бы выбрать, в качестве первого языка, Python. Это — довольно простой язык, в котором несложно разобраться даже новичку. Кроме того, я порекомендовал бы сначала изучить
Научитесь собирать данные
Чаще всего вам никто не будет давать данные, предназначенные специально для вас, а иногда в вашем распоряжении может не быть вообще никаких данных. Но, в любом случае, вам нужно найти способ сбора данных, с которыми вы будете работать. У организации, в которой вы трудитесь, может быть хорошая система сбора данных. Если это так, для вас это — большой плюс. Если такой системы в организации нет, то вам придётся найти способ сбора данных. Но речь идёт не о любых данных, а о качественной информации, с который вы сможете продуктивно работать, достигая поставленных целей. Сбор данных не имеет прямой связи с «добычей данных», с их глубинным анализом. Сбор данных — это шаг работы, который предшествует анализу.
Открытые данные, которыми можно пользоваться бесплатно, можно найти во многих местах интернета. Иногда же нужные данные можно собрать с веб-сайтов, применяя методы веб-скрапинга. Владение веб-скрапингом — это очень важный навык дата-сайентиста, поэтому я очень прошу всех, кто собирается работать в областях DS, AI и ML, освоить этот навык.
Данные, кроме того, могут храниться в базах данных, поэтому вам очень пригодятся начальные сведения по администрированию БД и умения по взаимодействию с базами данных. В частности, здесь очень важны знания SQL. Поучиться SQL можно
Научитесь обрабатывать данные
То, о чём я будут тут говорить, часто называют «первичной обработкой данных» (Data Wrangling). Этот процесс включает в себя очистку имеющихся данных. Здесь применяется разведочный анализ данных и удаление из них всего ненужного. Этот процесс так же включает в себя структурирование данных, приведение их к такой форме, с которой можно будет работать. Эта стадия работы с данными является самой тяжёлой и изматывающей. Те данные, с которыми вы столкнётесь в процессе обучения, будут уже подготовлены к анализу. Но данные, с которыми вы встретитесь в реальном мире, могут быть совершенно «сырыми». Если вы и правда стремитесь стать специалистом в области обработки и анализа данных, вам стоит найти настоящие данные и отыскать способы приведения их в пристойный вид.
Реальные данные можно найти практически повсюду. Например — на
Научитесь визуализировать данные
Если вы — специалист по DS, AI или ML, и хорошо разбираетесь в своём деле, вы не должны забывать о том, что то, что кажется вам очевидным, может быть совершенно непонятно окружающим. Не ждите от них того, что они, например, смогут сделать выводы, глядя на колонки цифр. Научиться визуализировать данные нужно для того чтобы результатами вашей работы могли бы воспользоваться специалисты из других областей. «Визуализацией данных» обычно называют процесс представления данных в графическом виде. Такое представление данных позволит извлечь их них пользу даже тем, кто не имеет специальных знаний в сферах DS, AI и ML.
Существует множество способов визуализации данных. Так как мы, всё же, программисты, нашим основным методом визуализации данных должно быть написание соответствующего кода. Это быстро и не требует покупки специализированных инструментов. При написании кода для визуализации данных можно пользоваться множеством бесплатных и опенсорсных библиотек, созданных для используемых нами языков программирования. Например, существуют библиотеки такого рода для Python. Это — Matplotlib, Seaborn и Bokeh.
Ещё один способ визуализации данных предусматривает использование инструментов с закрытым кодом. Например —
Искусственный интеллект и машинное обучение
AI и ML можно рассматривать как подразделы DS, так как они основаны на данных. AI и ML — это технологии, которые основаны на обучении машин поведению, сходному с поведением людей. Для этого используются специально подготовленные данные, передаваемые машинам. Компьютерные модели можно научить многому такому, на что способны люди. Для этого их обучают и направляют к нужному результату. В данном случае «машины» можно воспринимать как маленьких детей, не имеющих совершенно никаких знаний. Этих детей постепенно обучают идентифицировать объекты, говорить. Они учатся на своих ошибках и, по мере обучения, начинают всё лучше решать поставленные перед ними задачи. Так происходит и с машинами.
Технологии AI и ML — это то, что «оживляет» машины с использованием множества математических алгоритмов. Человечеству до сих пор не известны границы возможностей этих постоянно совершенствующихся технологий. В наши дни технологии AI и ML широко используются для решения когнитивных задач. Это — обнаружение и распознавание объектов, распознавание лиц и речи, обработка естественного языка, выявление спама и обнаружение мошенничества. Этот список можно ещё очень долго продолжать.
Более подробный рассказ об AI и ML достоин отдельной публикации. Пока же я могу порекомендовать
Изучите способы публикации ML-моделей в интернете
Существуют инструменты, позволяющие публиковать ML-модели в интернете. Это позволяет дать к ним доступ всем желающим. Для того чтобы публиковать модели в интернете, нужно хорошее понимание процессов веб-разработки. Дело в том, что под «публикацией модели» понимается создание веб-страницы (или группы страниц), обеспечивающей возможность работы с моделью в браузере. Кроме того, нужно учитывать то, что фронтенд проекта, его интерфейс, должен обмениваться данными с бэкендом, с серверной частью проекта, где расположена сама модель. Для того чтобы строить подобные проекты, вы должны уметь создавать серверные API и пользоваться этими API в клиентской части приложений.
В том случае, если вы планируете публиковать модели в облачных средах, если собираетесь использовать технологию Docker, вам пригодится хорошее знание сферы облачных вычислений и DevOps.
На самом деле, существует множество способов развёртывания моделей в интернете. Я посоветовал бы начать с изучения того, как это делается с использованием веб-фреймворка Flask, основанного на Python.
Найдите наставника
Самообучение — это прекрасно, но ничто не сравнится с обучением у профессионалов. Дело в том, что при таком подходе усваивается то, что используется в реальности, и в том, что так обучение идёт через практику. Многие вещи можно изучить только на практике. Обучение с наставником имеет множество сильных сторон, но надо учитывать то, что не каждый наставник способен оказать существенное влияние на вашу карьеру или жизнь. Именно поэтому очень важно найти хорошего наставника.
Например, эту задачу можно попытаться решить с помощью платформы
Итоги
Учтите, что изучение курсов, чтение статей и просмотр видео не сделают из вас специалиста по работе с данными. Вам понадобится пройти сертификацию в специализированном учреждении. Кроме того, некоторые вакансии требуют наличия определённых документов об образовании. Вложите время в самообучение, сертифицируйтесь или получите документы об образовании, и вы будете готовы к реальной работе.
Как вы думаете, что нужно знать и уметь тому, кто стремится стать ценным специалистом в сферах искусственного интеллекта или машинного обучения?
You must be registered for see links
В этом материале я хочу рассказать о том, как можно действовать тому, кто хочет самостоятельно обрести знания в областях DS, AI и ML. Применение предложенных здесь методов учёбы способно привести к хорошему прогрессу в изучении нового. Здесь, кроме того, я собираюсь поделиться ссылками на ресурсы, которыми я пользуюсь, и которые я без тени сомнения готов порекомендовать другим.
Изучите некоторые математические дисциплины
Математика, даже если это кому-то и не нравится, очень важна в интересующей нас области. Я думаю, что можно с достаточной уверенностью говорить о том, что те, кто это читают, уже обладают некоторыми знаниями по математике, которые они получили в школе. Это — хорошая база, но этого и близко недостаточно тому, кто хочет развиваться в сферах DS, AI и ML. А именно, тут понадобится углубиться в математику немного сильнее, чем это делается в школе, придётся изучить некоторые вещи из статистики, алгебры и других математических дисциплин. Я собрал бы список полезных ресурсов по математике для DS, но это уже сделали за меня в
You must be registered for see links
статье. И сделали очень хорошо.Научитесь программировать
Если вы только начинаете самообучение — не стоит сразу бросаться в изучение того, как писать код для целей машинного обучения. Вместо этого стоит изучить основные концепции программирования, не привязанные к какой-либо предметной области. Узнайте о том, что такое программирование, ознакомьтесь с разными существующими типами кода, разберитесь с тем, как правильно писать программы. Это очень важно, так как в процессе освоения программирования вы изучите множество базовых идей, которые сослужат вам хорошую службу на протяжении всей вашей DS-карьеры.
Не спешите, не стремитесь сразу изучить что-то сложное. То, насколько хорошо вы поймёте основы, скажется на всей вашей будущей профессиональной деятельности.
You must be registered for see links
вы можете найти очень хорошие видеоуроки, которые познакомят вас с программированием и информатикой. А именно, в них разбираются самые важные вещи, в которых вам нужно разбираться. Уделите этому вопросу достаточно времени и постарайтесь дойти до понимания всего, что узнаете.Выберите один язык программирования и как следует в нём разберитесь
Существует много языков программирования, используемых теми, кто работает в областях DS, AI и ML. Чаще всего здесь используются Python, R, Java, Julia и SQL. В данных сферах могут применяться и другие языки, но те, которые я перечислил, применяются чаще других не без причины:
- Их легко выучить. Если выделить на их изучение достаточно времени и проявлять в обучении настойчивость и постоянство, то достичь определённых успехов можно достаточно быстро.
- Они позволяют, создавая небольшие объёмы кода, решать достаточно масштабные задачи.
- Вокруг них сформировалось серьёзное сообщество, которое может помочь вам в сложной ситуации.
- Для этих языков созданы библиотеки и пакеты, среди которых можно найти практически всё, что может понадобиться тому, кто работает в сферах DS, AI и ML.
- Это — опенсорсные и бесплатные инструменты.
Нет ничего плохого в том, чтобы изучать несколько языков программирования. И, на самом деле, полезно знать более одного языка. Но во время изучения программирования не стоит торопиться. Нужно постараться заниматься, в некий промежуток времени, лишь одним языком, так как иначе вы можете сильно запутаться. Поэтому лучше всего изучать языки по одному, уделяя особое внимание тем их механизмам, которые пригодятся вам в работе. Я посоветовал бы выбрать, в качестве первого языка, Python. Это — довольно простой язык, в котором несложно разобраться даже новичку. Кроме того, я порекомендовал бы сначала изучить
You must be registered for see links
программирования на Python, а потом уже заниматься
You must be registered for see links
Python-инструментами для анализа данных.Научитесь собирать данные
Чаще всего вам никто не будет давать данные, предназначенные специально для вас, а иногда в вашем распоряжении может не быть вообще никаких данных. Но, в любом случае, вам нужно найти способ сбора данных, с которыми вы будете работать. У организации, в которой вы трудитесь, может быть хорошая система сбора данных. Если это так, для вас это — большой плюс. Если такой системы в организации нет, то вам придётся найти способ сбора данных. Но речь идёт не о любых данных, а о качественной информации, с который вы сможете продуктивно работать, достигая поставленных целей. Сбор данных не имеет прямой связи с «добычей данных», с их глубинным анализом. Сбор данных — это шаг работы, который предшествует анализу.
Открытые данные, которыми можно пользоваться бесплатно, можно найти во многих местах интернета. Иногда же нужные данные можно собрать с веб-сайтов, применяя методы веб-скрапинга. Владение веб-скрапингом — это очень важный навык дата-сайентиста, поэтому я очень прошу всех, кто собирается работать в областях DS, AI и ML, освоить этот навык.
You must be registered for see links
хорошее руководство по веб-скрапингу.Данные, кроме того, могут храниться в базах данных, поэтому вам очень пригодятся начальные сведения по администрированию БД и умения по взаимодействию с базами данных. В частности, здесь очень важны знания SQL. Поучиться SQL можно
You must be registered for see links
.Научитесь обрабатывать данные
То, о чём я будут тут говорить, часто называют «первичной обработкой данных» (Data Wrangling). Этот процесс включает в себя очистку имеющихся данных. Здесь применяется разведочный анализ данных и удаление из них всего ненужного. Этот процесс так же включает в себя структурирование данных, приведение их к такой форме, с которой можно будет работать. Эта стадия работы с данными является самой тяжёлой и изматывающей. Те данные, с которыми вы столкнётесь в процессе обучения, будут уже подготовлены к анализу. Но данные, с которыми вы встретитесь в реальном мире, могут быть совершенно «сырыми». Если вы и правда стремитесь стать специалистом в области обработки и анализа данных, вам стоит найти настоящие данные и отыскать способы приведения их в пристойный вид.
Реальные данные можно найти практически повсюду. Например — на
You must be registered for see links
. На этой замечательной платформе имеются данные от множества компаний со всего мира. Первичная обработка данных — это очень утомительное занятие, но если вы будете заниматься этим регулярно и настойчиво, вы, постепенно, поймёте, что занятие это ещё и очень интересное.
You must be registered for see links
хорошие лекции по первичной обработке данных.Научитесь визуализировать данные
Если вы — специалист по DS, AI или ML, и хорошо разбираетесь в своём деле, вы не должны забывать о том, что то, что кажется вам очевидным, может быть совершенно непонятно окружающим. Не ждите от них того, что они, например, смогут сделать выводы, глядя на колонки цифр. Научиться визуализировать данные нужно для того чтобы результатами вашей работы могли бы воспользоваться специалисты из других областей. «Визуализацией данных» обычно называют процесс представления данных в графическом виде. Такое представление данных позволит извлечь их них пользу даже тем, кто не имеет специальных знаний в сферах DS, AI и ML.
Существует множество способов визуализации данных. Так как мы, всё же, программисты, нашим основным методом визуализации данных должно быть написание соответствующего кода. Это быстро и не требует покупки специализированных инструментов. При написании кода для визуализации данных можно пользоваться множеством бесплатных и опенсорсных библиотек, созданных для используемых нами языков программирования. Например, существуют библиотеки такого рода для Python. Это — Matplotlib, Seaborn и Bokeh.
You must be registered for see links
видеоурок по Matplotlib.Ещё один способ визуализации данных предусматривает использование инструментов с закрытым кодом. Например —
You must be registered for see links
. Существует много таких средств, они позволяют добиваться весьма привлекательных результатов, но они не бесплатны. Tableau — один из самых распространённых подобных инструментов, им я пользуюсь очень часто. Я посоветовал бы всем, кто занимается анализом и визуализацией данных, изучить Tableau.
You must be registered for see links
хорошее руководство по этому инструменту.Искусственный интеллект и машинное обучение
AI и ML можно рассматривать как подразделы DS, так как они основаны на данных. AI и ML — это технологии, которые основаны на обучении машин поведению, сходному с поведением людей. Для этого используются специально подготовленные данные, передаваемые машинам. Компьютерные модели можно научить многому такому, на что способны люди. Для этого их обучают и направляют к нужному результату. В данном случае «машины» можно воспринимать как маленьких детей, не имеющих совершенно никаких знаний. Этих детей постепенно обучают идентифицировать объекты, говорить. Они учатся на своих ошибках и, по мере обучения, начинают всё лучше решать поставленные перед ними задачи. Так происходит и с машинами.
Технологии AI и ML — это то, что «оживляет» машины с использованием множества математических алгоритмов. Человечеству до сих пор не известны границы возможностей этих постоянно совершенствующихся технологий. В наши дни технологии AI и ML широко используются для решения когнитивных задач. Это — обнаружение и распознавание объектов, распознавание лиц и речи, обработка естественного языка, выявление спама и обнаружение мошенничества. Этот список можно ещё очень долго продолжать.
Более подробный рассказ об AI и ML достоин отдельной публикации. Пока же я могу порекомендовать
You must be registered for see links
видео, касающееся общих вопросов применения данных технологий. А
You must be registered for see links
— многочасовой видеоурок, посвящённый машинному обучению. Проработав эти видео, вы можете приобрести знания в сфере ML, соответствующие начальному или даже среднему уровню. Вы узнаете о множестве существующих алгоритмов машинного обучения, о том, как они устроены, и о том, как ими пользоваться. После этого у вас должно быть достаточно знаний для того чтобы приступить к созданию собственных простых ML-моделей. О том, как это сделать, можно почитать
You must be registered for see links
.Изучите способы публикации ML-моделей в интернете
Существуют инструменты, позволяющие публиковать ML-модели в интернете. Это позволяет дать к ним доступ всем желающим. Для того чтобы публиковать модели в интернете, нужно хорошее понимание процессов веб-разработки. Дело в том, что под «публикацией модели» понимается создание веб-страницы (или группы страниц), обеспечивающей возможность работы с моделью в браузере. Кроме того, нужно учитывать то, что фронтенд проекта, его интерфейс, должен обмениваться данными с бэкендом, с серверной частью проекта, где расположена сама модель. Для того чтобы строить подобные проекты, вы должны уметь создавать серверные API и пользоваться этими API в клиентской части приложений.
В том случае, если вы планируете публиковать модели в облачных средах, если собираетесь использовать технологию Docker, вам пригодится хорошее знание сферы облачных вычислений и DevOps.
На самом деле, существует множество способов развёртывания моделей в интернете. Я посоветовал бы начать с изучения того, как это делается с использованием веб-фреймворка Flask, основанного на Python.
You must be registered for see links
хорошее учебное руководство об этом.Найдите наставника
Самообучение — это прекрасно, но ничто не сравнится с обучением у профессионалов. Дело в том, что при таком подходе усваивается то, что используется в реальности, и в том, что так обучение идёт через практику. Многие вещи можно изучить только на практике. Обучение с наставником имеет множество сильных сторон, но надо учитывать то, что не каждый наставник способен оказать существенное влияние на вашу карьеру или жизнь. Именно поэтому очень важно найти хорошего наставника.
Например, эту задачу можно попытаться решить с помощью платформы
You must be registered for see links
. Здесь учащимся назначают персональных наставников, которые делают личный и профессиональный вклад в развитие учеников. Наставники доводят тех, кто хочет учиться, от начального до экспертного уровня в сферах DS, AI и ML. Notia AI, это, кроме того, самая доступная платформа такого рода.Итоги
Учтите, что изучение курсов, чтение статей и просмотр видео не сделают из вас специалиста по работе с данными. Вам понадобится пройти сертификацию в специализированном учреждении. Кроме того, некоторые вакансии требуют наличия определённых документов об образовании. Вложите время в самообучение, сертифицируйтесь или получите документы об образовании, и вы будете готовы к реальной работе.
Как вы думаете, что нужно знать и уметь тому, кто стремится стать ценным специалистом в сферах искусственного интеллекта или машинного обучения?
You must be registered for see links



