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

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

5 Не

1. Не считайте кодирование без ошибок.

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

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

2. Не смотрите только на окончательные показатели оценки.

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

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

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

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

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

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

4. Не усложняйте вещи.

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

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

Как только мы сможем решить одно, мы сможем расширить до двух, трех. Но к тому времени мы знаем, что можем предоставить хорошее решение, а основные из них уже доказали свою эффективность.

5. Не замедляйте повторение

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

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

5 Do

1. Проведите предварительное исследование еще до начала проекта.

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

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

2. Сделайте контроль версий

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

GitHub можно найти ниже:



3. Проведите оценку со случайным повторением.

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

4. Делайте запись на протяжении всего проекта.

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

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

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

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

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



Спасибо за прочтение!

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