Решён
Как сделать легкий искусственный интеллект?

Pavel Data Машинное обучение
7.3k
8

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

Как сделать легкий искусственный интеллект который мог бы например отвечать на простые вопросы или распознавать картинки? Какие библиотеки нужны и с чего начать?

Решение
73
Эксперт • 5 ответов

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

Библиотеки:

  • TensorFlow или PyTorch (фреймворки для нейросетей)
  • Keras (высокоуровневая обертка над TensorFlow, проще для новичков)

Пример классификации изображений с Keras:

from tensorflow import keras
from tensorflow.keras import layers

model = keras.Sequential([
    layers.Conv2D(32, (3,3), activation='relu', input_shape=(64,64,3)),
    layers.MaxPooling2D((2,2)),
    layers.Flatten(),
    layers.Dense(10, activation='softmax')
])

model.compile(optimizer='adam', loss='categorical_crossentropy')
model.fit(X_train, y_train, epochs=10)

Это простейшая сверточная нейросеть. Для старта хватит.

Чтобы реально понять как это работает, советую пройти курс Andrew Ng на Coursera - Machine Learning. Там все разжевано от азов.

Аватар Pavel Data

Спасибо за пример! А какой датасет лучше взять для первых экспериментов с картинками?

Аватар Диванный Геймер

MNIST (рукописные цифры) или CIFAR-10 (10 классов объектов). Оба встроены в Keras, качать отдельно не надо.

34
Эксперт • 1 ответ

Начни с чат-бота на базе правил. Берешь библиотеку NLTK или spaCy для обработки текста, создаешь словарь шаблонов вопрос-ответ, и бот будет отвечать на ключевые слова.

Пример на NLTK:

import nltk
from nltk.chat.util import Chat, reflections

pairs = [
    [r"привет|здравствуй", ["Привет!", "Здравствуй!"]],
    [r"как дела", ["Отлично, спасибо!"]],
    [r"(.*) твое имя", ["Меня зовут Бот"]]
]

chatbot = Chat(pairs, reflections)
chatbot.converse()

Это не настоящий ИИ, но для старта норм.

14
Эксперт • 4 ответа

Можно вообще не заморачиваться с кодом, а воспользоваться no-code платформами типа Teachable Machine от Google. Там буквально drag-and-drop: загружаешь свои картинки, разбиваешь по категориям, жмешь Train, и модель готова.

Получишь работающий результат за 10 минут без единой строчки кода. Правда экспортировать модель можно только в TensorFlow.js формат.

19
Эксперт • 1 ответ

Прежде чем лезть в нейросети, нужно понять базовую математику: линейная алгебра, матстат, теория вероятностей. Без этого ты будешь просто copy-paste код из туториалов, не понимая что происходит.

Минимальный набор знаний:

  • Производные и градиенты (для backpropagation)
  • Матричные операции (умножение, транспонирование)
  • Функции активации (sigmoid, ReLU, softmax)
  • Метрики качества (accuracy, loss)

Если математика хромает - сначала подтяни ее, потом уже переходи к коду.

8
Участник • 1 ответ

Термин "искусственный интеллект" в твоем вопросе используется некорректно. То, что обычно называют ИИ сейчас - это машинное обучение, а точнее глубокое обучение на нейросетях. Настоящий AGI (Artificial General Intelligence) пока не существует.

То что ты хочешь сделать называется narrow AI или weak AI - система, решающая узкую задачу. Для начала определись с задачей:

  • Классификация (определить категорию объекта)
  • Регрессия (предсказать числовое значение)
  • Кластеризация (разбить данные на группы)
  • Генерация (создать новый контент)

От задачи зависит выбор архитектуры модели.

25
Эксперт • 2 ответа

Я когда начинал с ML, первым делом прошел курс от Яндекса на Stepik - "Введение в машинное обучение". Бесплатный, на русском языке, с практическими заданиями в Jupiter Notebook.

После курса сделал свой первый проект - классификатор спама для почты на sklearn. Точность получилась 87%, был очень горд собой))

Советую начать именно с классических алгоритмов (decision trees, random forest, SVM), а не сразу прыгать в deep learning. Так проще понять принципы.

16
Эксперт • 4 ответа

Если цель просто "пощупать" тему, бери готовые API. Например HuggingFace Transformers - там куча предобученных моделей для разных задач.

from transformers import pipeline

classifier = pipeline('sentiment-analysis')
result = classifier('Этот фильм просто супер!')
print(result)

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

Написать ответ

Премодерация гостей

Вы отвечаете как гость. Ваш ответ будет скрыт до проверки модератором. Чтобы ответ появился сразу и вы получали репутацию — войдите в аккаунт.

Будьте вежливы и соблюдайте правила платформы.