Этот пост является частью 12-месячного проекта ускоренного обучения Month to Master. На май: Моя цель - построить программную часть беспилотного автомобиля.

Линейный метод обучения

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

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

Я называю это линейным методом обучения.

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

  1. Изучите многомерное исчисление
  2. Изучите линейную алгебру
  3. Изучите основы компьютерных наук
  4. Узнайте об общих концепциях машинного обучения
  5. Узнайте о концепциях компьютерного зрения
  6. Узнайте, как программировать на Python (язык кодирования, обычно используемый для машинного обучения)
  7. Узнайте, как использовать TensorFlow (специальная библиотека машинного обучения для Python)
  8. Узнайте, как компьютерное зрение применяется для создания программного обеспечения для беспилотных автомобилей.
  9. Узнайте, как писать код Python и TensorFlow для создания соответствующих программ.
  10. Так далее…

Хотя со временем этот метод может сработать, он неэффективен и, вероятно, неэффективен.

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

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

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

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

V-метод обучения

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

Вот как работает V-метод обучения:

  1. Я начинаю с конкретного, хорошо задокументированного примера моей конечной цели.
  2. Я пытаюсь понять, как работает этот пример
  3. Чтобы понять все, что я не понимаю в примере, я исследую основные концепции.
  4. Если я не понимаю лежащих в основе концепций, я исследую основные концепции лежащих в основе концепций, пока не почувствую, что исчерпал этот путь (либо достигнув понимания, либо достигнув точки убывающей отдачи)
  5. В конце концов, я раскладываю по плану достаточно разных путей, чтобы начать видеть закономерности в важных базовых концепциях.
  6. Я изучаю эти соответствующие основные концепции, медленно продвигаясь вверх по цепочке знаний, пока не вернусь на уровень детализации исходного примера.
  7. Наконец, я воспроизвожу пример, основанный на моих новых иерархических знаниях.

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

V-метод намного более эффективен, чем линейный метод, потому что я могу: 1. Изучать в порядке соответствия моей конечной цели, 2. Изучать основополагающие концепции в контексте чего-то осязаемого, и 3. Создавать и организовывать мои знания иерархически взаимосвязаны.

В результате этот метод намного эффективнее, действеннее и увлекательнее.

Итак, вот как я планирую применить V-метод к задаче этого месяца:

  1. Поищите образец кода для самоуправляемой машины с открытым исходным кодом на Github (Github - популярный репозиторий кода, что в основном означает, что я могу найти там множество программных проектов других людей)
  2. Построчно прорабатываю код
  3. Для каждой строчки кода, которую я не понимаю на интуитивном уровне (а это будет большинство из них), начните свой спуск через слои базовых концепций.
  4. Выявить закономерности в том, что я постоянно ищу / исследую, и определять наиболее важные основополагающие концепции
  5. Изучите эти основополагающие концепции
  6. Работайте над слоями базовых концепций, пока я не смогу эффективно объяснить себе каждую строку кода из образца проекта Github.

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

Мой первый шаг - поискать на Github хороший образец проекта ...

Прочтите следующий пост. Прочтите предыдущий пост.

Макс Дойч - навязчивый ученик, создатель продукта, подопытный кролик в Месяце до мастера и основатель Openmind.

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