Привет, я Каран, старшеклассник из Сингапура. Потратив последний год на изучение области искусственного интеллекта (ИИ) и машинного обучения (МО), я считаю, что не существует траектории обучения в этой области, созданной специально для старшеклассников . Это моя попытка создать его.
С тех пор, как я начал свой путь в этой области, я старался каждый день уделять пару часов тому, чтобы понять как можно больше, будь то просмотр видео на Youtube, выполнение личных проектов или просто чтение книг. Меня направляли старшие коллеги, у которых было гораздо больше опыта, чем у меня, но я знаю, что такое руководство доступно не каждому, поэтому это моя попытка передать все знания в один конкретный документ.
Вся информация, которую я собрал в этом руководстве, предназначена для старшеклассников, желающих преуспеть в этой многообещающей области. Его следует следовать в хронологическом порядке, и в отличие от большинства руководств/путей обучения, с которыми я сталкивался, он не требует понимания линейной алгебры, частных производных и других сложных математических концепций, которые нельзя найти в программах средней школы. Тем не менее, он включает в себя курс, охватывающий основы базовой математики для машинного обучения, уровень которой я бы назвал сопоставимым с математикой в средней школе. Если вы будете регулярно проходить этот путь, я считаю, что вы сможете достичь достаточно профессионального уровня примерно за три месяца. Тем не менее, этот путь обучения предоставляет контент, который поможет вам учиться до конца вашего обучения в старшей школе.
Итак, давайте перейдем к делу.
Я настоятельно рекомендую Python в качестве отправной точки, поскольку это язык, который отвечает большинству требований, когда дело доходит до использования в области искусственного интеллекта и машинного обучения: его не только чрезвычайно легко изучить, но он предоставляет библиотеки и платформы практически для каждого базового алгоритма. известен в данной области. Хотя R полезен, я считаю, что Python гораздо больше подходит для старшеклассников из-за его читаемости и обучаемости. Помимо базового программирования, в частности для машинного обучения, наиболее полезными библиотеками являются Numpy, Pandas и Matplotlib.
Тем из вас, кто никогда раньше не программировал, я предлагаю пойти на курс Университета Торонто (один из лучших университетов по AI/ML на данный момент). Это займет у вас несколько недель, но оно того стоит: большую часть знаний, которые вы получите в ходе этого курса, можно применить к любому другому языку программирования, с той лишь разницей, что это синтаксис. Курс бесплатный, его можно найти здесь.
Тем из вас, у кого есть опыт программирования на каком-либо языке, кроме Python, просто просмотрите это руководство, чтобы получить базовое понимание синтаксиса Python — это не займет у вас больше дня.
Машинное обучение и искусственный интеллект построены на таких математических принципах, как исчисление, линейная алгебра, теория вероятностей, статистика и оптимизация. Многие обнадеживающие специалисты по искусственному интеллекту (вроде меня) находят это устрашающим. Этот курс edX Essential Math for Machine Learning: Python Edition от Microsoft не предназначен для того, чтобы вы стали математиком. Скорее, он призван помочь вам изучить некоторые важные фундаментальные концепции и обозначения, используемые для их выражения. Курс предоставляет практический подход к работе с данными и применению методов, которые вы изучили, в реальных условиях. Финансовая помощь доступна тем, кто в ней нуждается.
Теперь, после того как вы изучили основы Python, вам необходимо понять две фундаментальные библиотеки, используемые в этой области — Numpy и Pandas, которые используются в основном для манипулирования, представления и хранения данных. Matplotlib, третья «основная» библиотека в этой области, используется для визуализации этих данных с помощью графиков и диаграмм, но мы вернемся к этому позже. Эти два курса вместе не должны занимать больше пары дней: Numpy и Pandas.
Теперь, когда это у вас в заднем кармане, вы должны освоить основные программы, необходимые для изучения машинного обучения и искусственного интеллекта.
Если и существует универсальный курс по машинному обучению, то это должен быть курс Эндрю Нга. Это может показаться немного сложным для старшеклассников, поскольку оно относится к таким понятиям, как частные производные.
но я твердо верю, что понимание этого не обязательно для получения осязаемых знаний из курса. Я нашел особенно полезным пересмотреть некоторые лекции на 3-й и 5-й неделях — эти темы являются продвинутыми, поэтому при первом просмотре они могут показаться немного быстрыми. Не беспокойтесь, если вы не можете полностью освоить основы математики, особенно в области исчисления — некоторые из них, безусловно, требуют математических знаний университетского уровня. Более важно, чтобы вы могли следить за мыслительным процессом, который профессор Нг использует при передаче своих знаний, поскольку это позволяет вам понять, что происходит под капотом процессов машинного обучения.
Я бы посоветовал вам делать заметки во время курса, поскольку запись того, что вы узнаете, помогает убедиться, что вы действительно понимаете передаваемую информацию. Выполнение учебных пособий и упражнений по программированию не является обязательным, поскольку они выполняются в Matlab, что (по моему опыту) может быть сложно понять, поскольку это язык на основе матриц. Но не волнуйтесь, совсем скоро мы будем реализовывать те же самые (и гораздо более сложные) алгоритмы на Python.
Этот бесплатный курс можно найти здесь.
Внедрение алгоритмов МО без математических знаний университетского уровня, лежащих в основе этих алгоритмов, звучит как парадоксальная задача, однако команда из Австралии намеревалась сделать именно это.
Кирилл Еременко и Хаделин де Понтевес, пара исследователей из команды SuperDataScience, просто фантастически умеют находить подходящие способы применения простых алгоритмов в реальной жизни. Более того, они углубляются в подходящую глубину, чтобы понять функциональность алгоритма, но без сложной математики, которую не сможет понять старшеклассник. Их курс охватывает как Python, так и R, хотя на данный момент я бы не беспокоился о R — просто просмотрите учебные пособия по Python. Кроме того, если вы обнаружите, что они идут слишком медленно, пройдите этот курс со скоростью 1,25x (я так и сделал и нашел, что это гораздо более подходит для моего обучения).
Их курс находится на Udemy и предлагается только в виде платной версии, хотя Udemy регулярно предлагает скидки на свои курсы в размере 90 % и более. Его можно найти здесь, и обычно он стоит около 10 долларов. Он охватывает все: от базовых алгоритмов регрессии до глубоких нейронных сетей, последняя из которых является базовой архитектурой, используемой во многих современных приложениях, таких как ChatGPT и AlphaFold. Если вы хотите изучить еще более продвинутые области, их курс глубокого обучения предлагается в конце машинного обучения со скидкой 90%.
Если вы не хотите платить за этот курс, вы можете ознакомиться с бесплатным курсом глубокого обучения Google здесь или бесплатным курсом Мичиганского университета здесь. Однако, на мой взгляд, они далеко не так разнообразны, как курсы команды SuperDataScience.
Для этих курсов ведение заметок не является необходимостью — в Интернете есть множество «шпаргалок по алгоритмам», которые дают быстрое представление о том, как они работают. На этом сайте перечислены некоторые из них.
Теперь, когда вы изучили широкий спектр концепций машинного обучения, пришло время самостоятельно использовать эти знания для выполнения некоторых проектов. Я бы предложил изучить Kaggle и репозиторий машинного обучения UCI — найдите набор данных, который вас интересует, и смоделируйте некоторые решения проблем, к которым они относятся. Поэкспериментируйте с различными алгоритмами и работайте над оптимизацией производительности.
Убедитесь, что используемые вами наборы данных просты и понятны по своей природе, т. е. для работы с ними не требуется слишком много предварительной обработки или знаний в конкретной области. Некоторые простые наборы данных, которые пришли мне в голову, - это Iris, Wine, рак молочной железы, штат Висконсин, скрининг на аутизм, голосование в Конгрессе, рукописные цифры MNIST и мода MNIST.
Если вы когда-нибудь столкнетесь с препятствием, Stack Overflow — ваш лучший друг: у него есть ответ практически на любой ваш вопрос. Если нет, просто опубликуйте его — вы получите ответы в течение нескольких часов! В этом шаге нет ничего особенного — когда вы обнаружите, что освоили весь процесс моделирования от начала до конца, смело двигайтесь дальше!
Теперь вы должны не только иметь хорошее и широкое понимание всех основ, но и уметь применять их к некоторым реальным проблемам с данными. Однако важно понимать, что эти основы не охватывают весь мир МО/ИИ — скорее, многие из них уже много лет являются известными способами решения таких проблем с данными, но, к сожалению, лишь совсем недавно компьютеры стали достаточно мощными, чтобы по-настоящему эффективно использовать их за разумное время выполнения. Большинство современных работ в этой области сосредоточено на их совершенствовании различными новыми способами и создании систем, связанных с ними, которые используют базовые алгоритмы, но улучшают, расширяют и расширяют их различными способами. Таким образом, я предлагаю вам найти область интересов в более широкой области машинного обучения и углубиться в нее, чтобы получить больше опыта в современном состоянии этой области, как оно есть сегодня. Вероятно, за время учебы в старшей школе у вас не будет времени стать экспертом во всех областях, которые я обрисовал, но постарайтесь овладеть одной или двумя.
Прежде чем углубляться в эти области, я бы порекомендовал по-настоящему понять, о чем идет речь: простой поиск высокоуровневого объяснения на YouTube даст вам все, что вам нужно. Итак, давайте перейдем к делу.
Компьютерное зрение: эта область относится к тому, чтобы заставить компьютеры видеть и понимать вещи, используя особый тип нейронной сети. Стэнфорд публикует свой курс по этому вопросу здесь, а лекции, конспекты курса и задания доступны онлайн. Пройдите через это, но не беспокойтесь о том, что математика иногда окажется слишком сложной — курс предназначен в первую очередь для углубления ваших знаний, что неизбежно и произойдет. Вы также можете обратиться к OpenCV, библиотеке компьютерного зрения, которая делает за вас множество сложных задач. Отличный урок можно найти здесь. Как только вы закончите с ними, посмотрите на более продвинутые наборы данных изображений на Kaggle и UCI или даже примите участие в некоторых соревнованиях Kaggle.
Обработка естественного языка. Понимание того, как компьютеры учатся говорить, сегодня также является важной темой. И снова Стэнфорд предлагает отличный онлайн-курс, который можно найти здесь. Если вы не понимаете некоторые математические концепции, не волнуйтесь, просто поймите, как работает эта область. Для реализации вы можете пройти этот курс Udemy. Однако в качестве альтернативы вы можете просмотреть некоторые из видеороликов известного специалиста по машинному обучению Сираджа Раваля. После того, как вы это сделаете, попробуйте заняться простыми, хорошо известными проектами, такими как создание чат-бота, анализ настроений или создание текста песни — простой поиск на YouTube должен вам помочь. Более современные приложения, такие как ChatGPT и Claude, построены на основе системы нейронных сетей под названием «Большие языковые модели», которые в основном основаны на архитектуре Transformer. Этот курс Эндрю Нга является хорошей отправной точкой.
Обучение с подкреплением: эта область фокусируется на том, как машины учатся действовать в определенных условиях, и ее наиболее популярное применение находится в области видеоигр. У Сираджа Раваля есть довольно хороший плейлист на эту тему, который можно найти здесь. Если вы ищете учебные пособия, основанные на реализации, в частности с использованием пакета высокого уровня, такого как Tensorflow, у Денни Бритца есть солидный набор учебных пособий, которые можно найти здесь. Курс UCL Дэвида Сильвера также великолепен, хотя новичкам он может показаться немного сложным — его можно найти здесь. Как только вы закончите с этим, вполне логично просто начать загружать базовые проекты или игры из Интернета и добавлять элемент ИИ, который будет управлять действиями агентов. Простые пошаговые руководства снова можно найти с помощью простого поиска на YouTube.
Наука о данных и аналитика: эта область представляет собой многообещающую область с множеством интересных вакансий и широко используется в большинстве современных корпораций для получения информации из огромных массивов данных, собираемых для принятия бизнес-решений. Я предлагаю пройти либо платный курс SuperDataScience, либо бесплатный курс на основе Python в Калифорнийском университете в Сан-Диего, хотя вы можете найти конкретные пути обучения науке о данных с помощью простого поиска в Google. Вы также можете использовать следующие ссылки для изучения SQL и Matplotlib — дополнительных языков, используемых во многих современных средствах анализа данных. Преимуществом изучения этого на студенческом уровне является возможность трудоустройства: у меня есть множество друзей в старшей школе, которым предложили стажировку в области науки о данных, поскольку идеи, полученные в этой дисциплине, могут быть мгновенно монетизированы компаниями. Принятие решений на основе данных — действительно единственная форма принятия решений в современном корпоративном мире.
Есть также такие области, как «Машины Больцмана» (используются для систем рекомендаций), «Состязательные сети» (ИИ, улучшающий ИИ) и «Генетические алгоритмы» (улучшение решения проблемы способом, аналогичным естественной эволюции), но, на мой взгляд, сочетание их ниши применимость и необходимость более продвинутого уровня математических знаний делают их менее желательными в качестве отправной точки. Не стесняйтесь исследовать их, если у вас есть особая страсть к одному из них, хотя они также не так хорошо документированы, как другие области, что может затруднить их освоение.
Если вы хотите работать в этой области в долгосрочной перспективе, очень важно понимать ее с более целостной точки зрения — под этим я подразумеваю изучение новаторских открытий, дискуссий о том, как их следует применять, и их общих последствий для общества. Вам следует начать выполнять действия, перечисленные в этом разделе, как только у вас появится необходимое понимание того, как работает технология. Я считаю, что хорошей отправной точкой будет начало раздела 4 этого курса обучения. Такая информация, возможно, не поможет конкретно в реализации алгоритмов для решения проблем с данными, но для технологии, которая настолько неотъемлема от современного мира, она действительно помогает сформировать более четкое понимание ее роли, истинного потенциала и ограничений.
Есть несколько вещей, которые старшеклассник может сделать, чтобы углубить свое общее понимание предметной области и сделать его более осведомленным:
Начните читать исследовательские работы: я хотел бы подчеркнуть, что на самом деле это не так сложно, как кажется. Хотя математика, которая управляет современными технологиями, может быть очень продвинутой, простое знакомство с тем, что происходит на переднем крае отрасли, никогда не будет плохим. Если вы когда-нибудь столкнетесь с чем-то, чего не понимаете, просто отложите его — альтернатив более чем достаточно, чтобы занять вас. Этот веб-сайт предлагает множество отличных статей для начала, но после того, как вы их закончите, он предлагает более длинный список — просто прочитайте те, которые вас интересуют или связаны с вашей областью «экспертизы», из Раздела 5. Полезно сохранить небольшой дневник знаний из каждой статьи. Если вы не можете по-настоящему понять многие из этих исследовательских работ, попробуйте прочитать это руководство, которое я написал, в котором более понятно описаны некоторые недавние инновации. На этом канале Youtube также есть множество вводных объяснений статей, каждое из которых посвящено всего две минуты.
Следуйте за пионерами: такие люди, как Эндрю Нг, Ян Гудфеллоу и Янн ЛеКанн, регулярно дают интервью, раскрывая точку зрения «основателей» того, что мы сегодня знаем как AI и ML. На этом канале Youtube собрано лучшее из этих выступлений и объединено в центральный ресурс — смотрите по одному вечером, и я гарантирую, что через несколько недель вы почувствуете себя экспертом.
Будьте в курсе событий: Wired — одна из лучших платформ для всех, кто интересуется технологиями. Каждый день он публикует множество статей, связанных с искусственным интеллектом (хотя в наши дни так делают не все?), которые можно найти здесь. Это быстрый и увлекательный способ понять тенденции того времени. Альтернативно, подпишитесь на бота Facebook Messenger от TechCrunch — он часто публикует интересные статьи, связанные с искусственным интеллектом, и каждый день предлагает вам информацию.
Поймите последствия: нет лучшего способа сделать это, чем слушать выступления TED. Их докладчики чрезвычайно хорошо осведомлены в этой области, и в их выступлениях все больше внимания уделяется искусственному интеллекту. Подборку видеороликов можно найти здесь.
Философия: у ИИ есть свои сторонники и противники. Однако философия, стоящая за этим, интригует. Мои любимые книги, посвященные этой области и подходящие для старшеклассников, включают «Как создать разум» Рэя Курцвейла и «Жизнь 3.0» Макса Тегмарка — обязательно попробуйте. Они смотрят на более долгосрочную траекторию развития ИИ, которая может показаться не столь актуальной в повседневной жизни, но помогает понять более широкий контекст технологии в целом.
Вклад: Если вы тот человек, который любит учиться на опыте других, обратите внимание на такие каналы общения, как эта группа в Facebook, где люди регулярно публикуют содержательные статьи и статьи, касающиеся достижений в этой области. Альтернативно, для более непринужденного общения, посетите субреддиты об искусственном интеллекте, подобные этому.
Погрузитесь в математику. Да, для этого вам нужны основы математики университетского уровня, но если вы хорошо изучаете математику, ничто не мешает вам пройти несколько онлайн-курсов. У Microsoft есть бесплатный курс, о котором я слышал хорошие отзывы, и он требует только знаний математики на уровне средней школы. В этой теме Quora также есть несколько отличных ресурсов, которые вам стоит проверить. Имя 3Blue1Brown также известно в сообществе, поскольку его видеоролики на YouTube отлично подходят для изучения математики (в первую очередь линейной алгебры и исчисления), лежащей в основе некоторых более сложных концепций.
Я слышал, как слишком много людей говорили мне, что изучение машинного обучения и искусственного интеллекта — это слишком сложно для старшеклассника, чтобы не написать это — при хорошо проложенном пути обучения его может изучать каждый. И при этом я желаю всем удачи на этом пути обучения.
Если у вас есть дополнения или возможные улучшения к этому руководству, смело делайте пиар в этот репозиторий. А по вопросам обратной связи, сотрудничества или просто по общим вопросам пишите мне по адресу @ [email protected].