Диссертация. Основам искусственного интеллекта и анализа данных в курсе информатики на уровне среднего общего образования Научная
Скачать 4.76 Mb.
|
203 y_test=data_test.Weight data_train=data_train.sort_values(by=['Length']) x_true=data_train.Length data_test=data_test.sort_values(by=['Length']) x_test=data_test.Length Ограничим область прогнозируемых значений при работе модели. У нас появятся три новых набора y — прогнозируемые значения по функции регрессии (prstd), нижняя граница области (iv_l) и верхняя граница области (iv_u), внутри которых будут попадать новые объекты из-за ошибок prstd, iv_l, iv_u = wls_prediction_std(model_results) Построим график, используя различное оформление для каждого типа данных (см. Рисунок 25). Границы области прогнозируемых значений отметим пунктиром. Для всех выборок, кроме тестовой, используются данные веса (x) от обучающей выборки. fig, ax = plt.subplots(figsize=(8,6)) ax.plot(x_test, y_test, 'o', Тестовая выборка) ax.plot(x_true, y_true, 'b-', Обучающая выборка) ax.plot(x_true, model_results.fittedvalues, 'r--.', Прогноз) ax.plot(x_true, iv_u, 'r--') ax.plot(x_true, iv_l, 'r--') 204 Зависимость длины отвеса рыбы) Длина, см) Вес, г) legend = ax.legend(loc="best") Рис. 25. Зависимость длины отвеса рыбы (прогноз) График функции — это не одна прямая, а набор соединённых прямых, образующих ломаную. Для каждой окрестности ищется подходящая прямая. Это намного эффективнее, чем пытаться описать всё множество объектов одной прямой. Если рассматривать процесс поиска и построения графика сточки зрения математики, то он будет называться кусочно- линейной интерполяцией, а сама ломаная — сплайном го порядка. 205 В качестве дополнительного задания повышенной сложности может выступить предложение добавить команду маски на область отображения функции при предоставлении отчёта конечному потребителю проекта. Если внимательно посмотреть на график, становится ясно, что в прогнозе в данному случае модель, не обладая пониманием смысла, породила отрицательных окуней. Используем обученную модель для прогнозирования. Допустим, мы хотим узнать, сколько будет весить рыба определённого размера. С клавиатуры вводим размер рыбы. Затем мы должны с помощью функции predict() получить прогнозируемое значение. В качестве аргументов на вход функции подаются параметры самой модели и описание экзогенной переменной, те. независимой переменной, относительно которой мы будем вести поиск прогнозируемого значения. Добавим небольшое исключение, поскольку отрицательный вес невозможен. Введите длину рыбы (см ")) pred_weight= int(model.predict(params= model_results.params, exog=[[1,pred_lengh]])) if pred_lengh<=0 or pred_weight<=0: Такой рыбы нет) else: Е вес скорее всего (г, pred_weight) Введите длину рыбы (см 19 Е вес скорее всего (г 103 206 Гипотеза была доказана, а также была обучена прогнозирующая модель. Данная задача и её решение могут быть использованы в качестве практической работы. ЭКСПЕРТНЫЕ СИСТЕМЫ В данном пункте рассматриваются экспертные системы, написанные на основе принципов CLIPS, однако с применением библиотеки PyKnow. Приведём две задачи разной степени сложности. Задача № 9. Чёрный ящик Для демонстрации работы с экспертными системами и их составляющими мы используем библиотеку PyKnow для языка Python. Создадим простую экспертную систему, которая угадывает, что находится в чёрном ящике. У насесть кактус (маленькое и зелёное) и злой крокодил (большое и зелёное). Тогда решение выглядит следующим образом from pyknow import * Создание класса машины вывода (KnowledgeEngine) class BlackBox(KnowledgeEngine): @DefFacts() def _initial_action(self): yield Fact(action="know") Описание правил @Rule(Fact(action='know'), NOT(Fact(color=W())), NOT(Fact(shape=W()))) def whois(self): 207 кого оно цвета - ОНО большое или маленькое - "))) # Проверка @Rule(Fact(action='know'), Fact(color="color" << W()), Fact(shape="shape" << W())) def thinking(self, color, shape): Оно на цвет %s! А ещё оно %s." % (color, shape)) if((color=="зелёное") & (маленькое В коробке кактус) elif((color=="зелёное") & (большое В коробке крокодил. Берегите руки) else: Это точно не кактус и не крокодил) self.color = color self.shape = shape Запуск машины вывода и экспертной системы в целом engine = BlackBox() engine.reset() engine.run() Система выведет на экран следующее (при вводе «зелёное, маленькое Какого оно цвета - зелёное Оно большое или маленькое - маленькое 208 Оно на цвет зелёное! А ещё оно маленькое. В коробке кактус Задача № 10. Кто джеминоид? Сама задача сводится к игре в имитацию в дань Алану Тьюрингу и его статье. Всего в доме есть четыре комнаты водной (гостиной) сидят игроки, пьющие чай, в трёх других — загадочные личности. Игроки могут рассуждать вслух, решая, кто находится за каждой из оставшихся дверей. Здесь мы отметим, что двери из матового запылённого стекла, поэтому все мы видим силуэты женщин и их спокойные движения. Ответы на вопросы звучат женским голосом. Подобное не удивляет, поскольку один из джеминоидов (geminoid) профессора Хироши Ишигуро работает моделью в модном бутике в Токио, другой – администратором в отеле, а третий вовсе снялся в фильме после успешной карьеры актёра. Вместе с игроками в гостиной находится эксперт-компьютер. У каждой из девушек есть история или легенда, которую жюри записывает в виде анкет с указанием имени, места рождения и профессии. Участницы приехали из разных городов Афины, Оксфорд, Лос-Анджелес, но все говорят на английском. Однако, девушки не всегда рассказывают про себя. Иногда они добавляют фразы про своих соседок. Жюри узнали, что. Девушка из первой комнаты назвалась Алисой. Она сказала, что никогда не видела Голливуд – известнейший район в Лос-Анджелесе, о котором рассказала живущая там актриса. Водной из комнат находится также известная писательница. Говорливая Барбара заверила, что никогда не была в Греции или Англии. Кассандра находится через одну дверь от Алисы. До интервью ей сказали, что в отборе участвует физик из Оксфорда - она была бы рада пообщаться, чтобы заимствовать образ для книги. Мы знаем, что жительницы Оксфорда не существует – это джеминоид, принадлежащий актрисе, забравшей робота из лаборатории в 209 этом городе. Кто находится в какой комнате Кто из девушек соврали о чём? Данную задачу проще всего решать с помощью построения графа. Построим подобный граф по условиям нашей задачи см. Рис. 26). Непрерывными линиями отмечены связи с весом 1, прерывистыми – 0. Рис. 26. Решение задачи про джеминоидов с помощью графа При решении мы по умолчанию учитываем, что свойства не повторяются нет двух тёзок, все девушки из разных городов и заняты на разных профессиях. Необходимое условие выполнено. Предположим, в качестве достаточного условия выступает полный граф. Наличие связей между всеми вершинами является избыточным, поэтому необходимое условие – это построение любого связного графа на обозначенных вершинах, причём граф необязательно должен быть деревом. Однако, мы можем ещё уточнить условия должны быть связаны (n-1) свойств одной категории. На естественном языке это понимается как факт, что мы можем точно определить последнее оставшееся свойство методом исключения. Каждая вершина – это одно сведение, свойство или же (в более сложных случаях) искомая особенность (feature). Ребра графа – это существующие связи между свойствами, то есть факты, учитываемые экспертной системой. 210 Итоговое решение задачи сводится к Таблице 20: Таблица 20. Решение задачи Номер комнаты Имя Город Профессия 1 Алиса Оксфорд Физик 2 Барбара Лос-Анджелес Актёр 3 Кассандра Афины Писатель Код решения выглядит так from enum import Enum from textwrap import wrap, dedent from itertools import chain from pyknow import * class Name(Enum): Alice = 0 Barbara = 1 Cassandra = 2 class City(Enum): Oxford = 0 LA = 1 Athens = 2 class Profession (Enum): physicist = 0 actress = 1 writer = 2 211 class Value(Fact): pass class Solution(Fact): pass class Geminoid(KnowledgeEngine): @DefFacts() def startup(self): print(dedent(""" Кто является джеминоидом? """)) for x in chain(Name, City, Profession): yield Value(x) @Rule(AS.f << Value(MATCH.v)) def generate_combinations(self, f, v): self.retract(f) self.declare(*[Fact(v, x) for x in range(1, 4)]) @Rule( Fact(Name.Alice, MATCH.a1 & L(1)), Fact(City.LA, MATCH.b1 & MATCH.a1), Fact(Profession.actress, MATCH.c1 & MATCH.b1), Fact(Profession.writer, MATCH.c2 & MATCH.a1 & MATCH.c1) 212 Fact(City.Oxford, MATCH.b2 & MATCH.b1), Fact(City.Athens, MATCH.b3 & MATCH.b1 & MATCH.b2), Fact(Name.Barbara,MATCH.a2 & MATCH.b2 & MATCH.b3 & MATCH.a1), Fact(Name.Cassandra, MATCH.a3 & MATCH.c2 & MATCH.b2), TEST(lambda a3, a1: a3 == (a1+2)), Fact(Profession.physicist, MATCH.c3 & MATCH.b2) ) def find_solution(self, **match): self.declare(*[ Solution(Name, 'Алиса, match["a1"]), Solution(City, 'Лос-Анджелес', match["b1"]), Solution(Profession, актриса, match["c1"]), Solution(Name, 'Барбара', match["a2"]), Solution(City, 'Оксфорд, match["b2"]), Solution(Profession, писатель, match["c2"]), Solution(Name, 'Кассандра, match["a3"]), Solution(City, 'Афины, match["b3"]), Solution(Profession, физик, match["c3"])]) @Rule( AS.f1 << Solution(Name, MATCH.a1, 1), 213 AS.f2 << Solution(City, MATCH.b1, 1), AS.f3 << Solution(Profession, MATCH.c1, 1), AS.f4 << Solution(Name, MATCH.a2, 2), AS.f5 << Solution(City, MATCH.b2, 2), AS.f6 << Solution(Profession, MATCH.c2 , 2), AS.f7 << Solution(Name, MATCH.a3, 3), AS.f8 << Solution(City, MATCH.b3, 3), AS.f9 << Solution(Profession, MATCH.c3, 3) ) Вывод решения def print_solution(self, a1, a2, a3, b1, b2, b3, c1, c2, c3, **fs): for f in fs.values(): self.retract(f) Дверь | %-10s | %-15s | %-10s " % Имя, "Город, "Профессия) print("--------------------------------------- -----------------------------") print(" 1 | %-10s | %-15s | %-10s " % (a1, b1, c1)) print(" 2 | %-10s | %-15s | %-10s " % (a2, b2, c2)) print(" 3 | %-10s | %-15s | %-10s " % (a3, b3, c3)) print("\n") 214 Запуск машины вывода g = Geminoid() g.reset() g.run() 215 Выводы к главе 2: 1. Были обоснованы и сформулированы цифровые компетенции в виде планируемых предметных результатов обучения, формируемые при изучении основ искусственного интеллекта и анализа данных на уровне среднего общего образования в качестве целевого компонента методики обучения информатике. 2. На основании выделенных цифровых компетенций разработана деятельностная модель методики обучения основам искусственного интеллекта и анализа данных и раскрыто содержание изучаемых тем искусственного интеллекта и анализа данных. 3. Обоснована возможность интеграции тем искусственного интеллекта, компьютерного моделирования и программирования в курсе информатики на уровне среднего общего образования. 4. Предложено в качестве технологий обучения использовать кейсы, игровые модули и проекты науки о данных. 216 Глава 3. Педагогический эксперимент и анализ его результатов 3.1. Предварительный блок эксперимента Рассмотрим общее отношение к искусственному интеллекту в школе. Ежегодно с 2015 года мы проводили опрос среди обучающихся 10-11 классов (до изучения темы Искусственный интеллект в курсе информатики, одним из вопросов которого было предложение дать определение искусственного интеллекта собственными словами. Стоит отметить, что прослеживается положительная динамика. Типичные ответы представлены в Таблице 21. Таблица 21. Результаты опроса обучающихся Год Типичный ответ Комментарий (пояснение позиции) 2015 Это терминатор из фильма. Робот сам анализирует семантический смысл, способен к мышлению. Обязательно в форме человека. 2016 Различные роботы, которые умеют думать. Роботы думают, делают решения, ноне обязательно умеют мыслить, различая смыслы. 2017 Компьютер, имитирующий человеческое мышление. Не только в форме андроидных роботов, но и любой компьютер. Неспособен думать над семантикой. 2018 Человекоподобные роботы В этот год была выпущена игра Detroit: Become Human, сюжет которой строился вокруг этичности использования искусственного интеллекта и роботов, тогда же выходит популярный мультфильм Любовь и роботы, где ИИ также представлены как некие киборги. Под действием СМИ и массовой культуры мы получили шаг назад. 217 2019 Нейронные сети, которые считают что-то сложное и сами себя обучают. Новый пик популярности машинного обучения и нейронных сетей породил много интересных проектов, но словосочетание искусственный интеллект оказалось совмещено только с областью нейронных сетей. Нет понимания, что нейронные сети применяются в программах, которые обучающиеся используют ежедневно. Это что-то серьезное, страшное и далёкое. Полностью выпадает обучение с учителем. 2020 Искусственный интеллект – это интеллектуальные помощники, которые могут быть где угодно. Например, Алиса или Siri. Также поисковые системы. Отсутствует привязка к конкретному аппаратному обеспечению (или роботам, расширяется круг решаемых задач. Усиление практической значимости ИИ в мировоззрении обучающихся. Полученные результаты показывают, что общий уровень понимания значительно возрос, причём из-за широкого использования интеллектуальных сервисов в повседневной жизни. За несколько лет мы прослеживаем изменение отношения как обязательного наличия аппаратной составляющей в комплексах искусственного интеллекта (строго область робототехники) и различных исследовательских дорогих и недоступных программных решений к продуктам, применяемым в повседневной жизни. Если ранее ребята не понимали, что данные программы используют интеллектуальные алгоритмы и представляли искусственный интеллект как довольно отдалённую от них абстракцию, то сегодня мы можем говорить о сформированному обучающихся образе «чёрного ящика с интеллектуальными алгоритмами. 218 Также был проведён опрос среди учителей-предметников. В нём приняли участие 102 педагога из 6 регионов Саратовская область, Москва и Московская область, Республика Татарстан, Республика Крым, Новосибирская область. Первый блок опроса был направленна анализ понимания различия между сильными слабым искусственным интеллектом. Вопрос Существует ли искусственный интеллект получил следующие ответы см. Рис. 27): Рис. 27. Существует ли искусственный интеллект Таким образом, мы можем предположить, что именно понимания различия между слабыми сильным ИИ и способен ли компьютер на самом деле думать, как человек, нет. Этому способствует сформированный в СМИ образ искусственного интеллекта, что отмечается также западными исследователями. В отличие от обучающихся, которые чаще обращают внимание на собственные гаджеты, а также различную рекламу в них, не все учителя осознают, что применяют интеллектуальные алгоритмы (см. Рис. 219 Рис. 28. Используете ли вы искусственный интеллект в повседневной жизни Использовать ИИ как инструмент для организации и сопровождения образовательного процесса готовы только 30% респондентов (см. Рис. 29): Рис. 29. Планируете ли вы применять ИИ для организации и сопровождения образовательного процесса Причём учителя понимают важность преподавания искусственного интеллекта в школе, хотя сами недостаточно осведомлены на данный момент в этой области. Среди опрошенных педагогов 62,9% согласились бы преподавать искусственный интеллект в будущем при наличии должной квалификации и 15,7% готовы включить вопросы ИИ или уже включили их в курс информатики (см. Рис. 30): 220 Рис. 30. Рассматриваете ли вы возможность преподавания вопросов ИИ вами в будущем Второй блок опроса был посвящен месту искусственного интеллекта в содержании курса информатики старшей школы. В нём приняли участие 70 респондентов. Они определили место искусственного интеллекта в содержании образования следующим образом (см. Рис. 31): Рис. 31. Место искусственного интеллекта на уровне СОО. Результаты опроса Большая часть респондентов отметила, что пока не видят тему искусственный интеллект в интеграции с имеющимися темами, что подчёркивает актуальность данной работы. Далее было предложено отметить, что, по мнению учителей, должно входить в блок, посвящённый ИИ сточки зрения содержания Что должно быть в содержании. Предложенные варианты Основные термины (ИИ, инженерия знаний, задачи ИИ) 221 Примеры областей применения Введение в Data Science и Data Mining Реализация интеллектуальных алгоритмов на ЯП Теория. Основные интеллектуальные алгоритмы Введение в экспертные системы Мнение распределилось следующим образом (см. Рис. 32): Рис. 32. Содержание вопросов ИИ в СОО Педагоги и обучающиеся сошлись в точке зрения на практическую ориентацию материалов, посвящённых искусственному интеллекту, причём основной упор делался даже не на конкретные реализации алгоритмов с помощью ЯП, а на погружение в понимание областей применения. Насколько глубоко и как бы хотели учителя видеть модуль искусственного интеллекта в курсе информатики (см. Рис. 33)? Рис. 33. Погружение в вопросы ИИ на уровне СОО 222 Также многие учителя сошлись во мнении, что алгоритмы надо рассматривать не только как готовые модули, но и изучать их реализацию. Перейдём непосредственно к педагогическому эксперименту. 3.2. Описание этапов эксперимента и реализация разработанной методики Проверка гипотезы исследования могла быть разделена на две смысловых части 1. Теоретическая часть заключалась в выделении и обосновании цифровых компетенций, возникающих в процессе изучения ИИ в углубленном курсе информатики старшей школы определения компонентов и предложением модели содержания модуля ИИ в курсе информатики углублённого уровня и методических подходов 2. Практическая часть — экспериментальная проверка педагогический эксперимент) предложенной модели в рамках урочной деятельности обучающихся на уроках информатики на уровне СОО (углублённый уровень. Сам эксперимент был разбит на два крупных блока. Первый блок эксперимента проходил в 2017-2018 годах. В нём содержание было ограничено введением в искусственный интеллект, знакомством с интеллектуальными алгоритмами и практической реализацией алгоритма ассоциативных правил Apriori (без средств автоматизации, с помощью табличного процессора и на C++, применялись кейсы. Было отобрано две группы обучающихся 11 класса (контрольная и экспериментальная, изучающих информатику на углублённом уровне в Лицее г. Реутов (всего 62 обучающихся. Необходимо было проверить возможность интеграции темы искусственный интеллект в обновленном содержании с практическими работами в углублённом курсе информатики. Для этого были разработаны теоретические материалы и кейсы с упором на 223 УМК И. А. Калинина и Н. Н. Самылкиной. По средним показателям успеваемости по предмету Информатика отобранные группы были равносильными. Они показали равноценные результаты при входном контроле по теме Искусственный интеллект (входное анкетирование. Содержание вопросов и заданий анкеты было направлено на выявление у обучающихся знаний и умений в области искусственного интеллекта, программирования и моделирования, в соответствии со балльной шкалой. Поскольку по результатам группы оказались примерно равными, мы можем говорить об однородности двух выборок. Контрольная группа обучалась по традиционной методике, изучая знакомство с искусственным интеллектом в виде теории, приведённой в УМК без каких-либо практический реализаций. Вторая выборка знакомилась с алгоритмами по подготовленным материалам, участвовала в решении кейсов и выполняла индивидуальные проекты, в которых применялся изученный алгоритм в качестве инструмента. Затем на завершающем этапе обучающиеся обеих выборок выполняли итоговые работы, направленные на проверку формирования компетенций, перечисленных ранее в работе. Второй блок эксперимента проводился с 2018 по 2021 год. На первом установочном этапе было отобрано две группы обучающихся 11 класса МАОУ Лицей г. Реутова инженерного профиля (58 человек. Первая группа была контрольной, вторая выбрана как экспериментальная. Перед установочным этапом подготовленное содержание было оформлено в виде кейсов, включающих теоретический материал с учётом возрастающей сложности при изучении тем, практическими заданиями, задачами, пошаговыми инструкциями и заданиями для самостоятельного решения, а также описанными ситуациями, для которых необходимо было сделать проекты науки о данных. Также подготовлены контрольно- измерительные материалы и шкалы. 224 На втором этапе была определена успеваемость по предмету Информатика в обеих группах и знания и навыки по теме искусственного интеллекта, программирования и моделирования с помощью входного тестирования в соответствии со балльной шкалой. Анализ результатов входного контроля показал, что группы по составу и характеристикам сопоставимы и однородны (распределение баллов соответствует нормальному. На третьем этапе второго блока обучающиеся контрольной выборки продолжили обучение по традиционной методике, знакомясь с теоретическими основами искусственного интеллекта в объёме, предусмотренном УМК И. А. Калинина и Н. Н. Самылкиной. Экспериментальная группа в рамках урочной деятельности обучалась по предложенной экспериментальной методике, используя подготовленные материалы и применяя полученные знания и навыки в индивидуальных проектах. На завершающем этапе эксперимента (2019-2021 гг) обе группы выполняли итоговые работы, направленные на проверку сформированности знаний и умений в области информатики по областям моделирования и программирования, куда был интегрировано знакомство с искусственным интеллектом и наукой о данных. Были подготовлены тематические контрольно-измерительные материалы, оцениваемые в соответствии со 100- балльной шкалой. Итоговый балл составлялся из полученных очков и результатов тестирования. О принципе начисления очков будет написано в пункте 3.3. Также проводились собеседования с участниками экспериментальной группы для получения обратной связи, нацеленной на совершенствование предлагаемой методики. |