МООК обещал и обещает, что такое большое количество студентов позволит использовать большие данные для улучшения обучения. Теперь у нас есть несколько чисел и впечатляющие диаграммы, которые показывают, насколько может быть программирование переменных.
Одним из первых массовых открытых онлайн-курсов — MOOC — был курс машинного обучения Coursera, проведенный Эндрю Нг в феврале 2011 года. Именно здесь мы впервые начали получать некоторое представление о большом количестве участвующих. Из 120 000 первоначальных заявок только 35 839 представили хотя бы одно задание и только 10 405 выполнили все 8 заданий. Это может показаться ужасным показателем отсева, но как бывший студент курса я могу засвидетельствовать объем работы, необходимой для выполнения даже одного из заданий. Это просто следствие того, что регистрация была легкой, а завершение — сложной.
Теперь у нас есть некоторые данные о том, как продвигался курс, и о характере решения заданий. Хотя было всего 8 заданий, каждое из них состояло из нескольких вопросов:
Вы можете видеть, что после начального падения скорость истирания довольно постоянна.
Анализ представленного кода с помощью набора модульных тестов показал удивительную степень изменчивости. Например, простая задача построить единичную матрицу 5×5 привела к 218 различным тестовым векторам. В некотором смысле это означает, что существует 217 различных способов ошибочного построения единичной матрицы. Если вы думаете, что это звучит потрясающе, рассмотрите 2992 отдельных выходных данных модульного теста, созданных задачей регуляризации логистической регрессии. Дальнейший анализ показал, что большинство студентов либо поняли это правильно, либо допустили одну из небольшого числа ошибок — тогда было множество очень индивидуальных способов сделать это неправильно. На практике это означает, что вы можете покрыть большую часть ошибок классов, имея дело всего с 50 различными способами ошибиться.
Переходя от функционального тестирования к вопросу о том, сколько разных способов написания программы, является следующей интересной темой. Это было сделано путем сравнения представлений абстрактного синтаксического дерева (AST) каждой программы. Большой шок здесь в том, что было произведено гораздо больше AST, чем вы можете себе представить. Приведенная ниже диаграмма построена с использованием расстояния редактирования дерева между AST, что дает хорошее представление о том, насколько похожи программы. На диаграмме каждый узел имеет размер AST, чтобы показать, скольким представлениям он соответствует, и наносится на график в соответствии с расстоянием редактирования от других узлов. Цвета соответствуют результатам модульного тестирования. Дальнейший результат состоит в том, что AST, которые находятся в пределах 10 редакций, функционально подобны, как измерено модульным тестом.
щелкните, чтобы увеличить изображение
Так что же делать с этими результатами?
Вы можете видеть, что есть кластеры, и идея состоит в том, чтобы использовать кластеры для определения типичных подходов к проблеме и, следовательно, подходящих корректирующих действий.
Если вы хотите внести свой вклад в статистику, курс машинного обучения только что начался. Помимо того, что это отличный курс, который научит вас многим основам практического машинного обучения, его реклама включает в себя следующие строки:
«Через несколько недель мы также анонсируем разовую пилотную программу, которая может помочь некоторым студентам преуспеть в курсе — следите за обновлениями!»
Интересно, о чем это могло быть …