Диссертация. Основам искусственного интеллекта и анализа данных в курсе информатики на уровне среднего общего образования Научная
Скачать 4.76 Mb.
|
f 2 F теор f 2 F теор 1 161,4 24 4,26 2 18,51 25 4,24 3 10,13 26 4,22 4 7,71 27 4,21 5 6,61 28 4,20 6 5,99 29 4,18 7 5,59 30 4,17 8 5,32 35 4,12 9 5,12 40 4,08 10 4,96 45 4,06 11 4,84 50 4,03 12 4,75 60 4,00 13 4,67 70 3,98 14 4,60 80 3,96 15 4,54 90 3,95 16 4,49 100 3,94 17 4,45 125 3,92 18 4,41 150 3,90 19 4,38 200 3,89 20 4,35 300 3,87 21 4,32 400 3,86 146 f 2 F теор f 2 F теор 22 4,30 500 3,86 23 4,28 1000 3,85 Другие таблицы вы можете найти в специализированных сборниках по статистике. Помимо линейной регрессии, зависимость может быть выражена уравнениями второй и выше степеней. Однако, чаще всего при рассмотрении регрессии все нелинейные уравнения приводят к линейному виду с помощью алгебраических преобразований или даже аппроксимации замены исходной функции другой, результаты которой совместимы с результатами исходной функции с заданной допустимой погрешностью. Подведем некоторые итоги изучения линейной регрессии линейная регрессия позволяет правдоподобно описать простые зависимости алгоритмы линейной регрессии изучают зависимости между объектами, а не сами объекты качество регрессии зависит от величины функции потерь, чаще всего рассматриваемой как коэффициент детерминации R 2 ; алгоритмы при работе сохраняют исходные данные неизменными алгоритмы не итеративны, так как исследуются отношения всех объектов сразу относится к обучению с учителем. Последующий рассматриваемый нами пункт несколько отличается, но затрагивает не менее важную область искусственного интеллекта, а именно экспертные системы. Тема ЭКСПЕРТНЫЕ СИСТЕМЫ 147 Знакомство с принципом работы экспертных систем в курсе информатики углублённого уровня позволяет обучающимся легче усвоить алгебру предикатов, развить логическое мышление и имеет практическую пользу в дальнейшей жизни. Экспертные системы присутствовали в УМК различных авторов довольно часто, поэтому возможно использование любых теоретических материалов авторов УМК или из других источников. В данном пункте мы уделим чуть больше внимания практическим особенностям применения конкретного модуля для языка программирования Python. При изучении структур данных в рамках линии Алгоритмизация и программирование внимание также уделяется деревьям решений [91]. Решающее дерево хорошо работает тогда, когда у насесть заранее определенный набор признаков и нам не надо учитывать их взаимодействие через длинные цепочки «Если-То». Очевидно, что так бывает далеко не всегда, и особенно часто - когда система правил является обобщением знаний эксперта. Во всех этих случаях мы должны при принятии решения опираться не только на четкие правила поиска по дереву по ветвям, но и на наличие связей внутри системы (вертикальных и горизонтальных. Любая экспертная система направлена на формирование логического вывода в результате цепочки рассуждений (логических следствий) с помощью машин логического вывода [45]. Предметная область описывается не только отдельными понятиями, но и связями, вместе образуя базу знаний экспертной системы. В её составлении всегда участвует не только проектировщик баз данных, но и профильный специалист (инженер, биолог, фармацевт, врачи пр. Внутри базы знаний находятся [45]: 148 Факты — это утверждения, зафиксированные состояния предметной области. Под фактом понимается любое свойство или качество, а также отдельные связи. Правила — это правила преобразования фактов, то есть их создания, модификации или удаления. Они используют форму если, то. В экспертных системах с нечётким выводом добавляется также ограничение на выполнение правила с определённой вероятностью. Машины логического вывода обрабатывают факты согласно правилам, двумя способами Системы прямого вывода. В этом случаем машина напрямую выводит из имеющихся фактов всевозможные, применяя правила. Системы обратного логического вывода. Задаются некоторые факты и отношение между фактами рассматривается тоже как факт – описывающий связь) и машина обратного логического вывода из этого выстраивает обратную цепочку до исходного факта. Один из известных инструментов для написания экспертных систем – CLIPS (C Language Integrated Production System). Из названия становится понятно, что данный инструмент написан на языке программирования C. CLIPS – самостоятельная программная среда для разработки экспертных систем. Её разработал Гэри Райли для Космического центра Джонсона NASA в далёком 1984 году. Тогда же Чарльз Форги предложил название для системы. Чуть ранее Форги создал алгоритм Rete, ставший основой для машины вывода CLIPS. После того, как NASA прекратила поддержку программной среды для собственных целей, её продолжил поддерживать и обновлять сам Райли и стали развивать энтузиасты, в том числе создавая новые продукты на её основе. CLIPS и основанные на его подходе библиотеки используют машину прямого логического вывода. CLIPS вдохновил многих исследователей написать инструменты для создания экспертных систем под их любимые 149 языки программирования, включая Python. Например, библиотеки PyKnow, Experta, PyKE, clipspy и другие. Они практически полностью используют подход CLIPS: начиная от описания фактов и заканчивая логическим выводом с помощью Rete. К сожалению, перевод на другой язык программирования с другими особенностями приводит к потере некоторого оригинального функционала или невозможности более тонкой настройки машины вывода при использовании библиотеки. Для практической работы мы будем использовать библиотеку PyKnow. Её написал энтузиаст Роберто Абделькадер Мартинес Перес. Экспертная система работает с фактами и правилами – это две основных единицы базы знаний. Под фактом понимается некоторое событие, а правило – описанная взаимосвязь между фактами. При работе с PyKnow ничего не меняется. Рассмотрим некоторые дополнительные особенности данного модуля. Факты (Facts): являются словарями (подклассом класса dict), порядок данных внутри неважен можно создавать без ключевых значений – они будут добавлены автоматически в виде числовых индексов бывают двух типов по умолчанию и заданные одно событие может описываться несколькими фактами – это будет учитываться при составлении правил. Выглядят как class first_fact(Fact): Объявили первый факт" pass class second_fact(Fact): Объявили второй факт" 150 pass Объект с двумя описанными свойствами something = первый, второй) Факты по умолчанию (DefFacts) являются базовыми и нужны для работы системы. Они загружаются автоматически каждый раз при перезапуске экспертной системы. Они записываются в специальный декоратор, который мы рассмотрим позднее. Вместе с фактами по умолчанию в него могут выписаны условия или дополнительные функции, которые нужно запустить сразу при старте системы. Факты по умолчанию мы создаем примерно таким образом @DefFacts( Факт по умолчанию может быть пустым) Необходимая подготовка. Например, сохранить информацию по умолчанию. def very_needed_data(self): # Эта функция всегда возвращает себя. yield Fact(gender="girl") Посетитель по умолчанию - девочка. Правила (Rules), являющиеся продукциями (то есть средствами создания, изменения и удаления фактов, мы начинаем описывать с обязательного декоратора @Rule. Каждое правило пишется внутри скобок. Правила внутри всегда состоят из двух частей левой (LHS, left-hand-side) и правой (RHS, right-hand-side). Левая часть описывает условия (pattern - шаблон, которые должны быть выполнены, чтобы привести к следствиям 151 из правой части. Условия похожи на факты, однако имеют одно отличие – они содержат только элементы, без ключей и используются лишь в левой части правил. Чтобы следствие было выполнено, все условия должны быть истинными. Пример определения правила с помощью библиотеки PyKnow: @Rule(MyFact()) Это LHS def rule_for_my_fact(): Эта функция – RHS.") pass При перечислении условий к ним могут быть применены логические функции AND, OR, NOT. Также возможно использование специальных функций MATCH – связывание переменных внутри левой части (например, для проверки равенства значений в разных фактах) и TEST – проверка значения. Поиск позволяет сравнивать значения переменных, которые получены входе работы машины вывода. Функция TEST проверяет выполнение прописанного выражения если результат true, то поиск продолжится, иначе – произойдёт переход к проверке следующего правила. С этими функциями вы столкнётесь при выполнении практических работ. Конечно, есть ещё несколько функций, но о них вы можете прочитать самостоятельно в официальной документации PyKnow. Правая часть каждого правила — это функция на языке Python, в которой мы выполняем все необходимые действия запрашиваем данные, выводим сообщения и, собственно, меняем факты. Последнее и самое главное, с чем нужно познакомиться перед реализацией собственной экспертной системы с помощью PyKnow – это машина вывода (Knowledge Engine). Сам автор библиотеки описывает этот механизм ёмкой фразой Это место, где случается вся магия. Вы 152 оформляете данные для неё как класс, внутри которого помещены все имеющиеся правила и факты, а машина выполняет все эти правила, используя факты. При работе с машиной вывода мы чаще всего используем несколько методов-функций класса машины вывода facts() – вызывает список всех внесённых фактов declare() – добавляет новый факт в список фактов системы retract() – удаляет факт с указанным в качестве аргумента номером из списка фактов modify() – позволяет обновить факт с указанным в качестве аргумента номером duplicate() – создаёт копию факта с указанным в качестве аргумента номером. Определившись с возможным теоретическим наполнением, доступным по уровню обучающимся, а также определив место искусственного интеллекта в российской школе, перейдём к созданию деятельностной модели (или методики) изучения искусственного интеллекта и интеллектуальных алгоритмов в курсе информатики старшей школы на углублённом уровне. 153 2.3. Методические аспекты обучения основам ИИ и анализа данных в курсе информатики на уровне среднего общего образования 2.3.1. Интеграция тем искусственного интеллекта, моделирования и программирования Разработанная деятельностная модель обучения основам искусственного интеллекта и анализа данных в курсе информатики среднего общего образования является основой методики обучения основам ИИ и анализа данных в курсе информатики на уровне среднего общего образования. Модель предусматривает интеграцию вопросов искусственного интеллекта, моделирования и программирования, которую рассмотрим далее подробнее. В предыдущих параграфах были рассмотрены формируемые при изучении искусственного интеллекта компетенции в качестве целевого компонента методики обучения ИИ в курсе информатики, а также основная часть содержательного компонента методики, те. изучаемые темы области искусственного интеллекта. Говоря о формировании компетенций, через формирование устойчивых цифровых навыков, мы отмечали, что каждая предпрофессиональная компетенция состоит из нескольких образовательных результатов (которые также можно рассматривать как цифровые навыки, формируемые на конкретных темах, те. более узких областях. Так цифровые навыки, формируемые при изучении ИИ, были близки к навыкам, отдельно формируемым при изучении вопросов моделирования и программирования с дополнительным усилением, порождаемым их комбинациями. Так как в данной работе использовалось следующее определение интеграции интеграция — это процесс объединения компонентов с общей научной составляющей в систему [117]. В данном случае общей составляющей является область ИИ. Исходя 154 из свойства интеграции к усилению связей между компонентами, мы также отметим, что это влияет на развитие самих компонентов за счёт друг друга. В настоящем параграфе рассмотрим подробно интеграцию тем искусственного интеллекта, моделирования и программирования. Темы искусственного интеллекта не возникают в курсе информатики сами по себе. Как было отмечено ранее, при погружении в исторический контекст изучения искусственного интеллекта в российской школе, что, например, экспертные системы рассматривались как усложнение работы с базами данных (БД) и их системами управления (СУБД. В тоже время легко предположить, что изучение интеллектуальных алгоритмов и анализа данных, а тем более их реализация на конкретном языке программирования (ЯП) тесно связана с программированием. В таблице 11 представлены обязательные разделы курса информатики моделирование и программирование с входящими в них тематическими блоками. Для каждого тематического блока раскрывается возможность углубления темы в контексте погружения в тематику искусственного интеллекта и развернуто описывается деятельность обучающихся по освоению материала. Для реализации описанной деятельности используется содержательный материал, предложенный в предыдущем параграфе в качестве теории и практические работы из практикума, описанного в следующем пункте настоящего параграфа (см. 2.3.2). Полученные результаты позволяют нам представить инструментарий, который мы сможем использовать при разработке практической части основ искусственного интеллекта и анализа данных, опираясь на уже сформированные предметные результаты и навыки, полученные при изучении программирования и моделирования. 155 Таблица 11. Интеграция тем искусственного интеллекта, моделирования и программирования Раздел Изучаемая тема Углубление темы в контексте ИИ (блоки) Деятельность обучающихся по освоению материала Моделирование Информационные системы Интеллектуальные информационные системы Усложнение работы с информационной системой с помощью добавления интеллектуальных алгоритмов в СУБД. Например, рассмотрение экспертных систем как БД из фактов и правил (усложнённых по сравнению связей между сущностями и таблицами в обычных БД) и машины вывода (интеллектуальной СУБД. Для подготовки данных используются принципы нормализации, изучаемые при знакомстве с БД. Система и системный подход Введение в науку о данных Рассмотрение модели науки о данных как информационных интеллектуальных систем, использующих в качестве БД большие данные (чаще – потоковые. Цикл жизни и дорожная карта проектов науки о данных. Итерации отдельных этапов жизни проекта — это усложнение изученных ранее этапов жизни ИС. Алгебра логики Алгебра предикат Введение дополнительных кванторов для работы с логическими выражениями, предложениями. Изучение вопросов чёткой и нечёткой логики. Модели разной природы Проекты науки о данных Выявление ключевых свойств (features) в данных для будущего анализа, постановка целей моделирования. Визуализация и интерпретация результатов первичной обработки данных перед запуском модели с классификаторами. 156 Раздел Изучаемая тема Углубление темы в контексте ИИ (блоки) Деятельность обучающихся по освоению материала В целом проект науки о данных — это проект по моделированию, который предусматривает, в том числе, восстановление утерянных или выявление нетривиальных связей между описанными объектами. Робототехника Информационные робототехнические системы (ИРС) Поскольку иногда робототехника рассматривается на уровне ООО как прикладной компонент изучения вопросов моделирования, также включим ее в этот список. Робототехника как одна из областей и задач искусственного интеллекта. Введение в информационные робототехнические системы. Рассмотрение интеллектуальных алгоритмов, входящих в состав высших систем управления ИРС. Вопросы компьютерного зрения. Ситуационное и имитационное моделирование Прогностические и описательные модели с применением интеллектуальных алгоритмов Применение интеллектуальных алгоритмов для восстановления пропущенных значений (например, регрессионный анализ, выявления связей (классификация, кластеризация) и правил (экспертные системы, прогнозирования поведения (ассоциации. Выделение типичных представителей множеств для сжатия информации (например, путём выделения из множеств типичных представителей кластеров вместо всего множества. Программирование Структуры данных Большие данные Использование матриц и массивов pandas, других специфических структур. Продолжение работы со списками и деревьями. Рассмотрение описаний объектов как векторов информации. Хранение, преобразование и передача информации, представленной в виде подобных структур, включая изменение их типа, сокращение размерности, применение энкодеров и т.д. 157 Раздел Изучаемая тема Углубление темы в контексте ИИ (блоки) Деятельность обучающихся по освоению материала Бинарные деревья поиска Деревья решений. Экспертные системы Алгоритмы деревьев решений, такие как CART, в своей основе содержат обычные деревья — структуры, реализуемые в рамках изучения программирования. Экспертные системы могут рассматриваться как усложнение деревьев решений с добавлением правил как веса и новых горизонтальных связей и связей между связями. Поиски сортировка Интеллектуальные алгоритмы Во многих интеллектуальных алгоритмах предусмотрен шаг поиска определённых элементов и нахождения расстояния между ними. Кроме того, данные должны быть упорядочены определенным образом – приведены к нормальному и стандартному виду. Для этого требуется применять изученные алгоритмы сортировки, поиска и замены элементов. Поиск также применяется на этапе подготовки данных для удаления Строки и символьные переменные. Регулярные выражения Интеллектуальные алгоритмы и экспертные системы. Большие данные. Введение в глубинный анализ текстовых данных (Text Mining) Для поиска также используются регулярные выражения, особенно если речь идёт об анализе данных, изначально записанных на естественном языке. Тексты требуется разбивать на отдельные элементы и преобразовывать в массивы. Вывод некоторых готовых модулей формируется в виде строки, которую необходимо представить в виде, понятном потребителю- человеку. Более того при работе сдатчиками или Интернет-сервисами данные часто упаковываются в формат строки. Функции, модули и библиотеки Интеллектуальные алгоритмы Для работы над проектами требуется подключение библиотеки использование сред программирования. Без понимания принципов работы функций и готовых библиотек невозможно создание программы-модели с классификаторами (ИА) внутри. 158 Рассмотрение искусственного интеллекта в интеграции стемами компьютерного моделирования и программирования также даёт возможность не выстраивать тему как отдельный самостоятельный и обособленный курс (на который может не хватить даже вариативных часов в программе, а реализовать в рамках обязательных для изучения разделов Программирование и Моделирование в 11 классе на углублённом уровне. В тоже время, модульное изложение тем искусственного интеллекта в основном в виде практических работ и кейсов позволяет использовать разработанные материалы для организации и проведении курса по выбору для любой целевой аудитории. Например, в академических или медицинских классах (предпрофессионального обучения, в группах подготовки к олимпиаде по искусственному интеллекту, а также в подготовке будущих учителей информатики или на курсах повышения квалификации работающих учителей информатики. |