Возможности искусственного интеллекта

XXI Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Возможности искусственного интеллекта

Устинова У.Е. 1Кравченко С.И. 1
1МБОУ ГМ СОШ
Каменева Т.В. 1
1МБОУ ГМ СОШ
Автор работы награжден дипломом победителя III степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

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

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

Цель нашей работы — на основе анализа структуры и возможностей нейронных сетей показать принципы ее работы на примере программы-переводчика.
Задачи:
1.Рассмотреть понятие, структуру, характеристики и процесс обучения нейронных сетей, как программного инструмента искусственного интеллекта.
2. Исследовать возможности применения искусственного интеллекта в образовании, способность к обучению.
3. Создать программу-пример применения нейронных сетей.

4. С использованием созданной программы доказать актуальность использования нейронных сетей в IT сфере.

Проблема: написание программы трудоемкий процесс.

Объект исследования: нейронные сети

Предмет исследования: использование нейронных сетей в образовании

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

Глава 1

Понятие нейросети

Нейронная сеть — это искусственный интеллект, работающий по принципу человеческого мозга. Она состоит из искусственных нейронов, синапсов, матрицы весов и слоёв. Вычислительные элементы используются для запоминания и последующей обработки информации. Благодаря этому нейросеть может обрабатывать большие объемы данных за короткое время. [1]. Основные принципы работы нейронных сетей были сформированы ы 1943 году, а в 1958 году американский нейрофизиолог Фрэнк Розенблатт разработал первую простую модель машинного обучения. Уже тогда Алан Тьюринг говорил: «Я полагаю, что в конце века употребление слов и общее образованное мнение изменятся настолько, что можно будет говорить о машинном мышлении, не ожидая возражений».

Рис.1 Фрэнк Розенблатт Рис.2 Первая нейросеть

На протяжении почти 50 лет математические модели усложнялись и совершенствовались. Был разработан «Метод обратного распространения ошибки». Он заключается в том, что нейросеть сравнивает свое предположение на счет чего-либо с реальным значением и вычисляет разницу между ними, т.е. ошибку. Затем ошибка используется для корректировки весов нейронов, которые влияют на выходные данные нейросети. После 2007 года большие объемы данных открыли возможность использовать нейронные сети для машинного обучения. Этот привело к разработке новых алгоритмов и инструментов для обучения искусственного интеллекта. Одним из таких алгоритмов стал Deep Learning, дословно - глубокое обучение.

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

Основной характеристикой нейросетей является архитектура. Архитектура нейронных сетей определяет структуру и взаимодействие нейронов, а также способы обработки информации внутри сети. Основные модели архитектур:

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

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

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

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

Создание архитектурной модели нейронной сети лишь некоторая часть от всего объема работы.

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

Глубина нейронной сети зависит от слоев. Всего имеются 3 слоя: входной или рецепторный слой, ассоциативный или скрытый слой и выходной слой.

Входной слой — это вектор параметров. Можно сказать, это цифровая информация, снятая рецепторами из «внешнего» мира. Слой содержит столько элементов, сколько входных параметров

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

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

Вес и связь представляют собой основные компоненты, определяющие способность сети извлекать признаки из входных данных и делать гипотезы. В связи с этой характеристикой нейронные сети делятся на два типа: полносвязанные и разреженные.

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

В разреженных сетях многие связи между нейронами отсутствуют или имеют нулевой вес.

Глава 2.

2.1 Процесс обучения нейросети

Как происходит обучение нейросети? Для начала нужно объяснить, чем нейронная сеть отличается от обычного алгоритма. Алгоритм — это заранее прописанная последовательность действий, которую должен выполнить компьютер, дающая определенный предсказуемый результат. В качестве примера можно привести программу, которая рассчитывает площадь квартиры или дома по чертежу. В ней есть четкая пошаговая инструкция, какие величины перемножать, какие складывать и т. д. У такого алгоритма понятная и простая архитектура, в него можно свободно вносить изменения на любом этапе.

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

Чтобы успешно решать задачи, нейросети нуждаются:

  • в данных. К ним относится все, что может помочь обучению. Например, статистика, исторические факты, примеры переводов с одного языка на другой, изображения. Эти данные накапливаются годами и объединяются в огромные массивы — датасеты. Они есть у всех крупных IT-компаний. Всем знаком способ сбора данных с помощью капчи. Люди выбирают правильные изображения, а система запоминает корректные ответы;

  • признаках. Их еще называют свойствами или характеристиками. Признаки — это то, на что должна обращать внимание нейросеть в процессе обучения. Например, к ним относится частотность слов в тексте, цена определенных товаров. Чем более четко обозначены свойства и чем меньше их количество, тем сети проще обучаться. Однако для решения сложных задач современные ML-модели вынуждены учитывать десятки миллионов признаков, которые определяют, как входные данные преобразуются в выходные;

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

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

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

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

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

  1. Постановка задачи. С этого начинается работа над построением нейронной сети.

  2. Сбор исходных данных. Для работы нейросети нужна информация, на основе которой она будет учиться искать решение.

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

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

  5. Тестирование нейросети на реальных данных. Если она начинает плохо справляться с поставленной задачей, её дообучают — показывают несколько примеров новых данных до тех пор, пока она не исправится.

  6. Дополнительное обучение. Для идеальной работы нейронной сети необходимо «подтягивать» её знания по определенным параметрам.

2.2 Сферы применения нейросети

На самом деле применение сетей очень широко. Рассмотрим некоторые из них.

Компьютерное зрение:

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

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

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

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

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

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

Робототехника:

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

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

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

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

Биоинформатика

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

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

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

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

Но и это еще не всё. Авиация, медицина, связь и телекоммуникации также не обходятся без нейросетей. Искусственный интеллект пробрался даже в сферу развлечений. Нейронные сети генерируют тексты и изображения, обрабатывают фотографии и многое другое. Например, нейросеть CharacterAI создает ответы от лица какого-либо персонажа [9].

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

Рис.3 Мальчик, созданный нейросетью Рис.4 Котята, созданные нейросетью

Далее мы стали размышлять, можно ли применить нейросети в школе

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

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

2)Использовать нейросеть для генерирования любого вида наглядностей. Графические изображения и наглядные пособия обеспечивают полное формирование какого-либо образа и способствуют выработке у учащихся эмоционально-оценочного отношения к сообщаемым знаниям [11].

3) Нейросети также владеют быстрым поиском и сортировкой информации, что также можно применять в учебной деятельности.

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

Глава 3

Создание программы-переводчика

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

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

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

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

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

Таким образом создание программы у нас ушло несколько недель упорной работы.

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

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

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

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

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

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

С кодом вы можете ознакомиться в Приложении 1.

Заключение

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

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

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

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

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

Список источников:

  1. https://vc.ru/u/1560497-neyronochka/634194-kak-primenyayutsya-neyroseti-v-sovremennom-mire

  2. https://vc.ru/future/606777-ochen-kratkaya-istoriya-neyrosetey-ot-razrabotok-20-go-veka-do-chatgpt

  3. https://blog.eldorado.ru/publications/chto-takoe-neyroseti-na-chto-sposobny-kak-rabotayut-i-komu-nuzhny-35389

  4. https://practicum.yandex.ru/blog/chto-takoe-neyronnye-seti/

  5. https://libtime.ru/expertsystems/harakteristiki-iskusstvennoy-neyronnoy-sistemy.html

  6. https://dzen.ru/a/ZB5BBwoeZ354ph9-

  7. https://nauchniestati.ru/spravka/preimushhestva-i-nedostatki/#:~:text=Преимущества%20нейронных%20сетей%20включают%20высокую,большого%20количества%20данных%20для%20обучения

  8. https://vc.ru/future/617223-chego-ozhidat-ot-neyronnyh-setey-v-2023-godu

  9. https://beta.character.ai/?ref=ailibricom

  10. https://www.sberbank.com/promo/kandinsky/

  11. https://www.yaneuch.ru/cat_16/naglyadnye-metody-obucheniya-na-urokah/590959.3513285.page2.html

  12. https://trainingdata.ru/metodic/tpost/vjrhfibe51-obuchenie-neiroseti-metodi-i-algoritmi

Приложение 1.

import json

# Загрузка словаря из файла

def load_dictionary():

try:

with open('dictionary.json', 'r', encoding='utf-8') as file:

dictionary = json.load(file)

return dictionary

except FileNotFoundError:

return {}

# Сохранениесловарявфайл

def save_dictionary(dictionary):

with open('dictionary.json', 'w', encoding='utf-8') as file:

json.dump(dictionary, file, ensure_ascii=False, indent=4)

# Функция для добавления слова и перевода в словарь

def add_word(dictionary):

word = input("Введите слово на исходном языке: ")

translation = input("Введите перевод слова: ")

dictionary[word] = translation

save_dictionary(dictionary)

print(f"Слово '{word}' и его перевод '{translation}' успешно добавлены в словарь.")

# Функция для поиска перевода слова в словаре

def search_translation(dictionary, word):

if word in dictionary:

return dictionary[word]

else:

return "Перевод не найден"

# Функция для удаления слова из словаря

def delete_word(dictionary):

word = input("Введитесловодляудаления: ")

if word in dictionary:

del dictionary[word]

save_dictionary(dictionary)

print(f"Слово '{word}' успешноудаленоизсловаря.")

else:

print(f"Слово '{word}' не найдено в словаре.")

# Функциядлявыводасловаря

def display_dictionary(dictionary):

if dictionary:

print("Словарь:")

for word, translation in dictionary.items():

print(f"{word}: {translation}")

else:

print("Словарь пуст.")

# Функция для составления предложения из переведенных слов

def compose_sentence(dictionary):

words = input("Введитесловачерезпробел: ").split()

translated_words = []

for word in words:

translation = search_translation(dictionary, word)

if translation != "Переводненайден":

translated_words.append(translation)

sentence = " ".join(translated_words)

return sentence

# Основнаяпрограмма

dictionary = load_dictionary()

while True:

action = input("Выберите действие:\n1. Добавить слово и перевод\n2. Поиск перевода слова\n3. Удаление слова из словаря\n4. Вывести словарь\n5. Составить предложение\n6. Выход\nВведите номер действия: ")

if action == '1':

add_word(dictionary)

elif action == '2':

word = input("Введите слово для перевода: ")

translation = search_translation(dictionary, word)

print(f"Переводслова '{word}': {translation}")

elif action == '3':

delete_word(dictionary)

elif action == '4':

display_dictionary(dictionary)

elif action == '5':

sentence = compose_sentence(dictionary)

print(f"Предложение: {sentence}")

elif action == '6':

break

else:

print("Неверныйввод. Попробуйте снова.")

print("Программа завершена.")

Просмотров работы: 53