Мудрость является не продуктом обучения, а пожизненной попыткой ее приобрести.
Альберт ЭйнштейнКаждому, кто серьёзно занимается машинным обучением, необходимо научиться понимать то, что публикуется в научных статьях. Подобные публикации делают учёные, находящиеся на переднем крае исследований в соответствующих областях. Это искусственный интеллект (AI, Artificial Intelligence), машинное обучение (ML, Machine Learning), глубокое обучение (DL, Deep Learning) и многие другие сферы.
Для того чтобы оставаться в курсе последних открытий и расширять собственные знания, нужно обладать научным складом мышления и соответствующими привычками. Технологии AI, ML и DL развиваются с невероятной скоростью. Поэтому нам нужно, чтобы не отставать от прогресса, запастись соответствующими знаниями. Эти знания можно получить только в ходе работы с научными публикациями.
Здесь вы найдёте руководство по эффективной работе с научными статьями. В частности, мы остановимся на следующих темах:
- Систематический подход к чтению подборок публикаций для получения знаний в интересующей вас области.
- Правила чтения научных статей.
- Полезные интернет-ресурсы, которые могут помочь вам в поиске публикаций и важнейшей информации.
Кто такой Эндрю н?
Эта статья основана на лекциях, которые читал Эндрю н. Я, кроме того, добавил сюда некоторые собственные рекомендации и полезные сведения, найденные в интернете.
Для начала хочу в двух словах рассказать о том, кто такой Эндрю н (Andrew Ng).
Эндрю н является доцентом Стэнфордского университета. Он, вероятно, самый известный (и обладающий самой большой зрительской аудиторией) преподаватель, читающий лекции в сфере машинного обучения. Эндрю, кроме того, является сооснователем Deeplearning.ai и Coursera.
Как люди приобретают полезные навыки?
Для человека совершенно естественно перенимать навыки и привычки, которые демонстрируют те, кто его окружает. Именно благодаря этому у студентов-докторантов и вырабатываются навыки эффективного усвоения информации из научных публикаций. Это, в определённой мере, общеизвестный факт. Эндрю упоминает об этом в самом начале своей видеолекции, на которую я давал ссылку выше.
Но мы не студенты, хотя кто-то из вас, возможно, является студентом. Поэтому перед нами встаёт вопрос о том, как обычному человеку обзавестись навыками, необходимыми для чтения и глубокого понимания научных публикаций.
Методика подбора материалов для чтения
Талантливому человеку, который хочет трудиться в сфере машинного обучения, лучше всего на чём-то специализироваться. Например, достойно одобрения обладание общими сведениями из сферы машинного зрения (Computer Vision). Но тот, у кого есть специализированные знания и опыт использования основных методов решения задачи оценки положения объекта в пространстве (Pose Estimation, PE) будет выглядеть гораздо привлекательнее с точки зрения потенциального работодателя, которому нужен специалист соответствующего профиля.
Давайте, на примере задачи PE, разберём методику работы с научными публикациями по интересующей нас теме.
1. Подбор материалов
На первом шаге работы мы сформируем подборку ресурсов, относящихся к предмету нашего интереса. В понятие ресурсы входят научные публикации, статьи с Medium, материалы из блогов, видеозаписи, GitHub-репозитории и так далее.
Если поискать в Google по фразе pose estimation, в нашем распоряжении окажется набор ссылок на основные ресурсы, имеющие отношение к интересующему нас вопросу. На этом шаге работы нашей целью является сбор всего того, что нам может подойти. Это и видео с YouTube, и документация, касающаяся практической реализации интересующих нас механизмов машинного зрения, и, конечно, научные статьи. Тут, в идеале, не нужно ограничиваться каким-то определённым количеством ресурсов, которые вы считаете важными. Главное составить итоговый список материалов, которые могут принести вам пользу.
2. Анализ материалов и оценка уровня их понимания
Здесь мы проведём анализ ресурсов, признанных ранее потенциально полезными и относящимися к интересующему нас вопросу. Очень важно учитывать то, что существует метод оценки уровня понимания материалов, включённых на предыдущем шаге работы в итоговый список. Эндрю н советует сделать таблицу, в которой можно указывать уровень понимания каждого из материалов. Выглядеть эта таблица может примерно так, как показано ниже.
Таблица ресурсов, используемая для оценки уровня их понимания
Рекомендуется постараться прочесть как минимум 10-20% содержимого каждого документа, добавленного в подобную таблицу. Это позволит ознакомиться с таким объёмом материала, которого хватит для того чтобы достаточно точно проверить то, насколько материал соответствует нашим нуждам.
С материалами, которые лучше других соответствуют предмету нашего интереса, нужно разобраться глубже, чем с другими. В итоге вы найдёте некоторые подходящие ресурсы, которые полностью вам понятны.
Возможно, вы сейчас задаётесь вопросом о том, сколько статей или других ресурсов должны быть вам полностью понятны.
У меня нет ответа на этот вопрос, а вот у Эндрю ответ есть.
А именно, он говорит о том, что понимание 5-20 материалов указывает на базовый уровень ориентирования в вопросе. Возможно, этого уровня достаточно для перехода к практической реализации различных методик.
Если речь идёт о понимании 50-100 материалов, это значит, что вы очень хорошо разбираетесь в вопросе.
После того, как вы проанализируете ресурсы, и кое-что о них узнаете, ваша таблица будет выглядеть примерно так, как показано ниже.
Обновлённая таблица для оценки уровня понимания ресурсов
3. Краткое описание материалов
Третий шаг предварительной работы с материалами основан на моём собственном опыте. Когда я пытаюсь понять научные публикации, я делаю структурированные заметки, в которых кратко, своими словами, обобщаю основные результаты, находки, методики, описанные в работах.
Теперь, после того, как мы нашли материалы, которые стоит прочесть, мы переходим к их чтению.
Чтение научной статьи
Когда что-то читают ради того, чтобы понять, одного прочтения материала недостаточно. Эндрю говорит, что чтение всей статьи за один присест, возможно, не лучший способ работы, позволяющий сформировать понимание материала.
Будьте готовы к тому, что вам, чтобы как следует освоить статью, придётся прочитать её как минимум три раза.
4. Первое прочтение
При первом прочтении статьи сосредоточьтесь на заголовке, аннотации и рисунках.
5. Второе прочтение
При втором прочтении обратите особое внимание на введение и заключение. Кроме того, ещё раз взгляните на рисунки и бегло просмотрите остальные части статьи.
Вводный и заключительные разделы статьи содержат чёткие и краткие сведения о её содержимом, в них подводятся итоги по основным находкам, сделанным авторами статьи. В эти разделы обычно не включают каких-то вспомогательных сведений. Здесь находится только то, что действительно важно. Благодаря этому читатель оказывается подготовленным к восприятию остальных частей статьи.
6. Третье прочтение
При третьем проходе по статье читают основной текст, пропуская при этом сложные математические вычисления или описания методик, новых для читателя. На данном этапе работы можно, кроме того, пропускать непонятные или новые термины.
7. Следующие прочтения статьи
Тот, кто занимается глубокими исследованиями в некоей области, может прочитать статью ещё несколько раз. Эти дополнительные сеансы чтения будут, в основном, направлены на разбор математических выкладок, на освоение методик, на выяснение значения незнакомых терминов.
Тот, кто обычно читает научные статьи в информационных целях, и ради того, чтобы быстро ознакомиться с предлагаемыми ими методиками работы, может столкнуться с тем, что глубокое изучение статей отнимает у него очень много времени. Особенно если речь идёт о нескольких десятках статей, которые нужно проработать.
Вот пример того, что я называю здесь глубоким исследованием. Я прочитал эту статью по представленной здесь методике, разобрался в ней, а потом, на её основе, написал 4 собственные статьи (1, 2, 3, 4).
Вопросы, которые стоит задать самому себе при чтении статьи
Эндрю даёт нам список вопросов, которые следует задавать самому себе при чтении статьи. Эти вопросы, в целом, направлены на то, чтобы выявить понимание того, о чём вы читаете. Я использую следующие вопросы в качестве ориентиров, позволяющих мне не отклоняться от моей основной цели понимания сути статьи.
Вот эти вопросы:
- Опишите то, чего пытается достичь автор статьи, или, возможно, то, чего он уже достиг.
- Если вы встречаетесь с новым подходом к решению задачи, с новой техникой или методикой, опишите их ключевые элементы.
- Что именно в статье вы считаете самым полезным для себя?
- Какие материалы, упомянутые в статье, вам хочется прочитать?
Дополнительные ресурсы, которые могут помочь в исследованиях
Мне, в поисках информации, очень помогли некоторые ресурсы, список которых я привожу ниже.
- r/MachineLearning
- r/deeplearning
- paperswithcode.com
- Сайты ведущих профильных конференций: NIPS, ICML, ICLR.
- researchgate.net
Вы вполне можете составить подобный список самостоятельно.
Итоги
Долговременные результаты даёт постоянная стабильная учёба, а не изучение чего-либо набегами.
Эндрю нЯ всё ещё сравнительно новый человек в сферах машинного обучения и компьютерного зрения. И здесь, мягко говоря, ещё очень много такого, чего я не знаю. Но, несмотря на это, я уверен в том, что если человек последователен в поисках знаний, неважно, в какой области, он будет вознаграждён пониманием и навыками, которые позволят ему подняться выше некоего среднего уровня.
Я, пользуясь методикой работы с научными статьями, предложенной Эндрю ном, планирую читать как минимум четыре научных статьи в месяц. Читать их до тех пор, пока не пойму. Если говорить честно, на то, чтобы прочесть и понять вышеупомянутую статью про LeNet, у меня ушло полторы недели. Но, чем больше я буду читать, тем быстрее и лучше это у меня будет получаться. Это относится не только ко мне.
Эндрю говорит, что постоянно носит с собой пачку статей, которые запланировал прочитать. Эндрю известная личность в сфере машинного обучения. Я думаю, что тот, кто переймёт его привычки и методы изучения нового, может оказаться в большом плюсе.
Как вы читаете научные статьи?