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

Объявление

Наш баннер

Сайт Обучонок содержит исследовательские работы и проекты учащихся, темы творческих проектов по предметам и правила их оформления, обучающие программы для детей.
Будем благодарны, если установите наш баннер!
Баннер сайта Обучонок
Код баннера:
<a href="https://obuchonok.ru/" target="_blank"> <img src="https://obuchonok.ru/banners/banob2.gif" width="88" height="31" alt="Обучонок. Исследовательские работы и проекты учащихся"></a>
Все баннеры...
Тематика: 
Информатика
Автор работы: 
Понамарев Владислав
Руководитель проекта: 
Мохов Дмитрий Васильевич
Учреждение: 
ГБОУ Лицей №150 Калининского р-на Санкт-Петербурга
Класс: 
10

В рамках проведения исследовательской работы по информатике на тему «Разработка и внедрение искусственного интеллекта» учащимся был создан бот с искусственным интеллектом, а также проведено сравнение ботов, созданных в 2019 и 2020 гг с учетом полученных на каждый период времени знаний.

Подробнее о работе:


В готовом учебном проекте по информатике «Разработка и внедрение искусственного интеллекта» автор разбирает материал по Искусственному интеллекту: что это, для чего/кого, польза и вред ИИ. Учащийся школы узнает, на чем и благодаря чему работает бот, изучает представленные в открытом доступе примеры создания искусственного интеллекта, основываясь на всем найденном материале создает собственного бота.

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

Оглавление

Введение
1. Искусственный интеллект и нейросеть.
2. Польза и вред искусственного интеллекта.
3. Создание бота.
Заключение
Литература

Введение


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

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

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

Задачи:

  1. Отыскать материал по Искусственному интеллекту: что это, для чего/кого, польза и вред.
  2. Узнать на чем работает, благодаря чему.
  3. Отыскать в открытом доступе примеры создания ИИ.
  4. Основываясь на всем найденном материале создать собственного бота.

Продукт - бот с искусственным интеллектом

Необходимое оборудование для проекта- персональный компьютер или ноутбук.

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

Искусственный интеллект и нейросеть


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

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

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

Как научная дисциплина ИИ включает несколько подходов и методов:

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

Можно выделить два направления развития ИИ:

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

Для улучшения работы ИНС применяются различные техники оптимизации. ИНС моделируется с использованием нескольких слоёв нейронов. Нейроны представляют собой отдельные вычислительные единицы, способные получать входные данные и применять к ним некоторую математическую функцию для определения того, стоит ли передавать эти данные дальше. В простой трёхслойной модели первый слой является слоем ввода, за ним следует скрытый слой, а за ним — слой вывода (рис. 1). Каждый слой содержит не менее одного нейрона.

искусственный интеллект 1

Рисунок 1

С усложнением структуры модели посредством увеличения количества слоёв и нейронов возрастают потенциал решения задач ИНС. Однако, если модель оказывается слишком «большой» для заданной задачи, её бывает невозможно оптимизировать до нужного уровня. Это явление называется переобучением.

ИИ является мощным средством обработки данных и может находить решения сложных задач быстрее, чем традиционные алгоритмы, написанные программистами. ИНС и методики глубокого обучения могут помочь решить ряд разнообразных проблем. Минус состоит в том, что самые оптимизированные модели часто работают как «чёрные ящики», не давая возможности изучить причины выбора ими того или иного решения. Этот факт может привести к этическим проблемам, связанным с прозрачностью информации.

Польза и вред искусственного интеллекта


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

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

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

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

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

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

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

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

Создание бота


Для создания бота я использовал язык программирования Python. Первым делом я пытался найти более быстрый и легкий способ по написанию кода. Этим способом оказалось использование сайта Dialogflow.com. Dialogflow - это сервис, позволяющий создавать чат-ботов для разных платформ и языков на разных устройствах.

Другими словами, именно на этом сайте и создаются основные команды для бота, а с помощью кода на Python программа принимает запросы пользователя и вытаскивает ответ. В этом нам помогают два специальных модуля JSON (JavaScript Object Notation) и API.AI.

JSON позволяет кодировать и декодировать данные в удобном формате, а API.AI позволяет легко интегрировать распознавание речи с естественного языка.

Дальше уже идет написание кода:

0. import apiai

1. import json

2. import colorama as i

3. import termcolor as t

4. from termcolor import colored, cprint

5. i.init ()

6. print('----------April----------------')

7. def send_message(message):

8. # Токен API к Dialogflow

9. request = apiai.ApiAI('284b7a7808e148bd8675345de315ba1c').text_request()

10. # На каком языке будет послан запрос

11. request.lang = 'ru'

12. # ID Сессии диалога (нужно, чтобы учить бота)

13. request.session_id = 'April2020'

14. # Посылаем запрос к ИИ с сообщением от пользователя

15. request.query = message

16. # Разбираем JSON и вытаскиваем ответ

17. response = json.loads (request.getresponse().read().decode('utf-8'))

18. a = response['result']['fulfillment']['speech']

19. print(t.colored(a, 'white', 'on_blue'))

20. print ('--')

21. return response['result']['action']

22. print (t.colored('Напишите мне что-нибудь: ', 'red'))

23. message = input()

24. print ('--')

25. action = None

26. while True:

27. action = send_message(message)

28. if action == 'smalltalk.greetings.bye':

a. break

29. message = input ()

30. print ('--')

Подключение (импортирование) модулей и методов:

В строках 0-5 мы подключаем различные модули для работы с Dialogflow, и выводом текста. О модулях 0 и 1 строках я рассказывал ранее. В строках 2-4 мы подключаем модули termcolor и colorama для вывода цветного текста на экран пользователя, что бы продукт не выглядел слишком сырым, и имел хоть какой-то дизайн.

В строке 5 мы подключаем метод __init__ — это примерно то, что представляет конструктор в Python; например, в нашем случае без этого метода вместо цветного текса выводился бы текст с непонятными для нас символами. Именно поэтому мы используем вместе модуль colorama (импортируемый как i) с методом __init__.

искусственный интеллект 2

искусственный интеллект 3

Написание остальной части программы:

В строке 6 мы говорим программе, что бы она выводила в самом начале программы строчку с ее названием.

В строке 7 мы подключаем инструкцию def определяющую новую функцию send_message, которая использует параметр message, и принимает его значения. В строке 9 создается переменная request(запрос), которой присваивается значение модуля apiai, содержащего функцию ApiAI(‘x’), которая в свою очередь содержит еще одну функцию text_request (), где х – это токен(ключ), который мы получаем при создании бота(агента) в Dialogflow. Далее мы указываем на каком языке будет послан запрос и ID сессии диалога, для дальнейшего обучения бота (строки 11 и 13)

В строке 15 мы присваиваем значение переменной message (нашего запроса или сообщения) к переменной request.query (request – переменная, query - метод), и посылаем запрос к ИИ с сообщением от пользователя.

В строке 17 мы присваиваем переменной response (Ответ) значение вытаскиваемого программой ответа на наше сообщение.

В строке 18 переменная a принимает значение переменной response, при этом исключая не нужные подробности об ответе (выполнение, и т.д.)

В строках 19 и 20 мы говорим программе, что бы она выводила полученный ответ цветным текстом (используется модуль termcolor)

В строках 22 – 25 при запуске бота мы говорим программе, что бы она просила какое-либо сообщение от пользователя, и создаем переменную message, которая и будет принимать значения наших запросов и передавать их в переменную request.query.

В строках 26 – 30 мы указываем программе, что бы она не прекращала свою работу пока пользователь не отправит любой из значений списка smalltalk.greetings.bye (пока/до свидания/спокойной ночи), который хранится на сайте Dialogflow.

Дальше я начал разработку дизайна программы с помощью PyQt - набор расширений графического фреймворка Qt для языка программирования Python, выполненный в виде расширения Python. PyQt разработан британской компанией Riverbank Computing.

Заключение

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

Для написания данной работы были использованы ресурсы Сети Интернет.


Если страница Вам понравилась, поделитесь в социальных сетях:

Объявление

Статистика