Технические темы, такие как математика, физика и даже информатика, преподаются по восходящей схеме.

Этот подход включает в себя логическое построение тем изучаемой области с естественным увеличением сложности и возможностей.

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

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

Конечные результаты после прочтения будут следующими:

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

Давайте начнем.

Обзор

Здесь мы обсудим:

Обучение снизу вверх

Учимся читать

Обучение вождению

Обучение программированию

Обучение сверху вниз

Изучите машинное обучение

Изучение математики

Обучение снизу вверх

Возьмем область обучения, например математику.

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

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

Большая часть школы построена на этом восходящем естественном прогрессе в изучении материала. Таким образом преподается множество технических и научных областей обучения.

Вспомните учебу в средней школе или бакалавриате и основные области, в которых вы, возможно, работали: такие примеры, как:

  • Математика, как уже упоминалось.
  • Биология.
  • Химия.
  • Физика.
  • Информатика.

Подумайте о том, как материал был выложен: неделя за неделей, семестр за семестром, год за годом. Снизу вверх, логическая прогрессия.

Проблема в том, что логическое продвижение по материалу может быть не лучшим способом выучить материал, чтобы быть продуктивным.

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

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

Теперь, если вы изучили технический предмет, вспомните, как вы на самом деле его выучили. Бьюсь об заклад, это было не снизу вверх.

Учимся читать

Передумать; как ты научился читать?

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

  • Начните с того, что вас прочитают, чтобы вызвать интерес и показать преимущества.
  • Получите алфавит и издавайте нужные звуки.
  • Запомните наиболее частые слова, их звуки и способы их написания.
  • Изучите эвристику «произнесения слова» для работы с неизвестными словами.
  • Читайте книги под присмотром.
  • Читайте книги без присмотра.

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

  • Читайте субтитры в телешоу.
  • Читайте рассказы на темы, которые ему нравятся, например "Звездные войны".
  • Читайте вывески и меню, когда мы на улице.
  • So on…

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

  • Большой словарный запас.
  • Более плавный стиль чтения
  • Книги возрастающей сложности.

Вот как он не научился читать:

  • Определения типов слов (глаголы, существительные, наречия и т. Д.)
  • Правила грамматики.
  • Правила пунктуации.
  • Теория человеческих языков.

Обучение вождению

Ты водишь?

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

Как ты научился водить?

Я помню некоторые письменные тесты и, возможно, тест на компьютере. Я не помню, как учился у них, хотя, скорее всего, помнил. Вот что я помню.

Я помню, как нанял инструктора по вождению и брал уроки вождения. Каждый урок был практическим, в машине я практиковал навыки, которые мне требовалось овладеть, - вождение машины в пробке.

Вот что я не изучал и не обсуждал со своим инструктором по вождению:

  • История автомобиля.
  • Теория двигателей внутреннего сгорания.
  • Распространенные механические неисправности в автомобилях.
  • Электросистема автомобиля.
  • Теория транспортных потоков.

По сей день мне удается безопасно водить машину, не зная этих тем.

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

Если машина сломается, позову специалиста.

Обучение программированию

Я начал программировать, совершенно не понимая, что такое программирование или разработка программного обеспечения.

Дома я возился с командами на Basic. Я возился с командами в Excel. Я модифицировал компьютерные игры. И так далее. Это было весело.

Когда я начал изучать программирование и программную инженерию, это было в университете, по принципу «снизу вверх».

Мы начали с:

  • Теория языка
  • Типы данных
  • Структуры потока управления
  • Структуры данных
  • и Т. Д.

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

Я ненавидел программирование.

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

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

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

По крайней мере, меня и многих таких разработчиков, как я, они учили неправильно. Они действительно это сделали. И это напрасная трата времени, усилий и результатов / результатов, которые увлеченные и свободные от времени студенты, такие как я, могли посвятить тому, чем они действительно увлечены.

Обучение сверху вниз

Подход снизу вверх - это не просто обычный способ изучения технических тем; похоже, единственный способ.

По крайней мере, до тех пор, пока вы не подумаете о том, как на самом деле учиться.

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

И, как я уже сказал, для некоторых это может сработать.

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

Альтернативой является подход сверху вниз.

Переверните традиционный подход с ног на голову.

Не начинайте с определений и теории. Вместо этого начните с того, что соедините тему с желаемыми результатами и покажите, как получить результаты немедленно.

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

Это отличается

Это не традиционный путь.

Будьте осторожны, не используйте традиционные способы мышления или сравнения, если вы идете по этому пути.

Бремя ответственности лежит на вас. Нет никакой виноватой системы. Вы терпите поражение только тогда, когда останавливаетесь.

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

Это опасно

Серьезно, я много раз слышал, как «эксперты» говорили об этом, например:

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

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

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

Необходимо продемонстрировать мастерство.

Доверие нужно заслужить.

Это верно независимо от того, как приобретается навык.

Вы техник

Действительно!?

Это еще одна «критика», которую я видел в адрес такого подхода к обучению.

Точно. Мы хотим быть техническими специалистами, используя инструменты на практике, чтобы помогать людям, а не быть исследователями.

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

Промышленные разработчики - не компьютерщики; они инженеры. Они гордые мастера своего дела.

Эффективный, действенный и увлекательный способ обучения

Преимущества значительно перевешивают сложность обучения таким образом:

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

Это быстрее.

Так веселее.

И, держу пари, от этого тебе станет намного лучше.

Как ты мог быть лучше?

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

Восторженный ученик пронесется мимо фундаменталиста.

Изучите машинное обучение

Итак, как вы подошли к теме машинного обучения?

Серьезно, расскажите мне о своем подходе в комментариях ниже.

  • Вы изучаете восходящий университетский курс?
  • Вы моделируете свое обучение на таком курсе?

Или хуже:

Вы придерживаетесь подхода сверху вниз, но полны вины, математической зависти и неуверенности?

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

  • Не начинайте с математики предшественников.
  • Не начинайте с теории машинного обучения.
  • Не создавайте каждый алгоритм с нуля.

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

  1. Начните с изучения того, как решать очень простые задачи прогнозного моделирования, используя фиксированную структуру с бесплатными и простыми в использовании инструментами с открытым исходным кодом.
  2. Практикуйтесь над множеством небольших проектов и постепенно увеличивайте их сложность.
  3. Покажите свою работу, создав публичное портфолио.

«Эксперты» из университетов скажут, что это опасно. Игнорируй их.

Практики мирового уровня расскажут вам, как они учились и продолжают учиться. Смоделируйте их.

Помните:

  • Вы научились читать, практикуя чтение, а не изучая теорию языка.
  • Вы научились водить машину, практикуя вождение, а не изучая двигатели внутреннего сгорания.
  • Вы научились программировать, практикуя кодирование, а не изучая теорию вычислимости.

Вы можете изучить машинное обучение, практикуя прогнозное моделирование, а не изучая математику и теорию.

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

Изучение математики

Не останавливайтесь на достигнутом.

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

Вы можете использовать тот же подход сверху вниз.

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

Например, вы выбрали линейную алгебру.

Целью может быть SVD или PCA. Это методы, используемые в машинном обучении для задач проектирования, сокращения данных и выбора функций.

Подход сверху вниз может заключаться в следующем:

  1. Реализуйте метод в высокоуровневой библиотеке, такой как scikit-learn, и получите результат.
  2. Реализуйте метод в библиотеке нижнего уровня, такой как NumPy / SciPy, и воспроизведите результат.
  3. Реализуйте метод напрямую, используя матрицы и матричные операции в NumPy или Octave.
  4. Изучите и исследуйте задействованные матричные арифметические операции.
  5. Изучите и исследуйте задействованные операции разложения матриц.
  6. Методы исследования аппроксимации собственного разложения матрицы.
  7. И так далее…

Цель обеспечивает контекст, и вы можете позволить своему любопытству определить глубину изучения.

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

Это очень продуктивно и очень весело!

Ссылка:

Выдержки из моего обсуждения с профессором Джейсоном Браунли, доктором философии, человеком, стоящим за Machine Learning Mastery