30-дневный курс по обучению ИИ
Зарина Шаухалова

© Зарина Шаухалова, 2025

ISBN 978-5-0067-1720-6

Создано в интеллектуальной издательской системе Ridero

Вступление

Добро пожаловать на «30-дневный курс по обучению ИИ»! Этот курс разработан специально для тех, кто стремится быстро освоить ключевые аспекты искусственного интеллекта и начать применять их на практике. В течение следующих 30 дней мы вместе пройдем увлекательный путь от основ машинного обучения до создания собственных проектов с использованием современных технологий ИИ.

Готовы погрузиться в мир алгоритмов и нейронных сетей?

План обучения:

**Неделя 1: Основы машинного обучения**

– День 1: Введение в искусственный интеллект и машинное обучение.

– День 2: Линейная регрессия.

– День 3: Логистическая регрессия.

– День 4: Классификационные модели: K-ближайших соседей, метод опорных векторов (SVM).

– День 5: Деревья решений и случайные леса.

– День 6: Оценка моделей: перекрестная проверка, метрики качества.

– День 7: Практические задания и разбор ошибок.

**Неделя 2: Нейронные сети**

– День 8: Введение в нейронные сети.

– День 9: Персептроны и многослойные перцептроны.

– День 10: Обучение нейронных сетей: градиентный спуск, обратное распространение ошибки.

– День 11: Глубокое обучение: сверточные нейронные сети (CNN) и рекуррентные нейронные сети (RNN).

– День 12: Регуляризация и борьба с переобучением.

– День 13: Практика: создание простой нейронной сети для классификации изображений.

– День 14: Разбор практических заданий и обсуждение результатов.

**Неделя 3: Работа с данными и предобработка**

– День 15: Сбор и подготовка данных.

– День 16: Методы нормализации и стандартизации данных.

– День 17: Выбор признаков и уменьшение размерности.

– День 18: Работа с пропущенными значениями и выбросами.

– День 19: Визуализация данных и анализ корреляций.

– День 20: Практикум: предобработка набора данных для задачи классификации.

– День 21: Проверка результатов и обсуждение методов улучшения качества данных.

**Неделя 4: Применение ИИ в реальных задачах**

– День 22: Примеры применения ИИ в бизнесе и науке.

– День 23: Создание чат-бота на основе RNN.

– День 24: Распознавание лиц и объектов на изображениях с использованием CNN.

– День 25: Анализ текстов и классификация отзывов с помощью NLP.

– День 26: Прогнозирование временных рядов и использование LSTM.

– День 27: Практическое задание: разработка проекта по выбранной теме.

– День 28: Презентация проектов и обсуждение результатов.

**Неделя 5: Заключительная неделя**

– День 29: Подготовка к экзамену: повторение основных тем.

– День 30: Экзамен: теоретический тест и практическое задание.

– День 31: Итоговое обсуждение курса, обратная связь от студентов.

**День 1: Введение в искусственный интеллект и машинное обучение**

**Что такое искусственный интеллект?**

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

**Что такое машинное обучение?**

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

**Основные типы задач машинного обучения:**

1. **Классификационные задачи:** Определение категории объекта на основе его характеристик. Например, определение спама в электронных письмах.

2. **Регрессионные задачи:** Предсказание числового значения на основе входных данных. Например, прогнозирование цен на акции.

3. **Задачи кластеризации:** Группировка схожих объектов вместе без предварительного определения категорий. Например, сегментация клиентов на группы.

**Примеры использования машинного обучения:**

– Рекомендательные системы (например, Netflix, Spotify)

– Автоматизированные переводчики (Google Translate)

– Системы распознавания лиц

**Этапы процесса машинного обучения:**

1. **Сбор данных:** Получение данных из различных источников.

2. **Предобработка данных:** Очистка, нормализация и преобразование данных.

3. **Выбор модели:** Определение подходящего алгоритма для решения задачи.

4. **Обучение модели:** Тренировка модели на подготовленных данных.

5. **Оценка модели:** Проверка точности модели на тестовых данных.

6. **Применение модели:** Использование обученной модели для предсказаний на новых данных.

**День 2: Линейная регрессия**

**Что такое линейная регрессия?**

Линейная регрессия – это статистический метод, который используется для моделирования взаимосвязей между зависимой переменной и одной или несколькими независимыми переменными. Основная цель линейной регрессии – найти линию наилучшего соответствия данным, которая может использоваться для предсказания значений зависимой переменной.

**Простая линейная регрессия**

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

$$ y = \beta_0 + \beta_1 x

$$

где:

– $y$ – зависимая переменная,

– $\beta_0$ – свободный член (пересечение),

– $\beta_1$ – коэффициент наклона линии,

– $x$ – независимая переменная.

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

**Множественная линейная регрессия**

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

$$ y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + … + \beta_n x_n

$$

где:

– $n$ – количество независимых переменных,

– $x_i$ – i-я независимая переменная,

– $\beta_i$ – соответствующий коэффициент для каждой независимой переменной.

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

**Метод наименьших квадратов**

Для нахождения коэффициентов $\beta_0$, $\beta_1$, …, $\beta_n$ мы используем метод наименьших квадратов. Этот метод минимизирует сумму квадратов отклонений между наблюдаемыми значениями $y$ и предсказанными значениями $\hat {y} $.

**Практическое задание**

Используя Python и библиотеку `scikit-learn`, попробуйте построить модель линейной регрессии для предсказания цены автомобиля на основании его пробега. Вы можете использовать набор данных «Auto MPG» из UCI Machine Learning Repository.

```python

from sklearn.linear_model import LinearRegression

from sklearn.model_selection import train_test_split

import pandas as pd

# Загрузка данных

data = pd.read_csv (’auto-mpg. csv’)

X = data [[’mileage’]]

y = data [’price’]

# Разделение данных на тренировочный и тестовый наборы

X_train, X_test, y_train, y_test = train_test_split (X, y, test_size=0.2, random_state=42)

# Создание и обучение модели

model = LinearRegression ()

model.fit (X_train, y_train)

# Предсказание на тестовом наборе

predictions = model.predict (X_test)

**День 3: Логистическая регрессия**

**Что такое логистическая регрессия?**

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

**Формула логистической регрессии**

Основная формула логистической регрессии выглядит следующим образом:

$$ P (y=1|x) = \frac {1} {1 + e^ {– (\beta_0 + \beta_1 x)}}

$$

где:

– $P (y=1|x) $ – вероятность того, что объект принадлежит к классу 1 при заданном значении $x$,

– $\beta_0$ – свободный член,

– $\beta_1$ – коэффициент наклона,

– $e$ – основание натурального логарифма.

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

**Множественная логистическая регрессия**

Как и в случае с множественной линейной регрессией, можно использовать несколько независимых переменных:

$$ P (y=1|X) = \frac {1} {1 + e^ {– (\beta_0 + \beta_1 x_1 + \beta_2 x_2 + … + \beta_n x_n)}}

$$

где:

– $X$ – вектор независимых переменных,

– $n$ – количество независимых переменных,

– $x_i$ – i-я независимая переменная,

– $\beta_i$ – соответствующий коэффициент для каждой независимой переменной.

**Максимальная правдоподобие**

Для нахождения коэффициентов $\beta_0$, $\beta_1$, …, $\beta_n$ используется метод максимальной правдоподобия. Этот метод максимизирует функцию правдоподобия, которая представляет собой вероятность получения наблюдаемых данных при заданных параметрах модели.

**Практическое задание**

Используя Python и библиотеку `scikit-learn`, попробуйте построить модель логистической регрессии для классификации писем как спам или не-спам. Вы можете использовать набор данных «Spam Classification Dataset» из Kaggle.

```python

from sklearn. datasets import fetch_20newsgroups

from sklearn. feature_extraction. text import TfidfVectorizer

from sklearn.model_selection import train_test_split

from sklearn.linear_model import LogisticRegression

from sklearn.metrics import accuracy_score

# Загрузка данных

categories = ['alt.atheism’, 'soc.religion.christian’]

twenty_train = fetch_20newsgroups (subset=’train’, categories=categories, shuffle=True, random_state=42)

# Преобразование текста в числовые признаки

vectorizer = TfidfVectorizer ()

X = vectorizer.fit_transform (twenty_train. data)

y = twenty_train. target

# Разделение данных на тренировочный и тестовый наборы

X_train, X_test, y_train, y_test = train_test_split (X, y, test_size=0.2, random_state=42)

# Создание и обучение модели

model = LogisticRegression (random_state=42)

model.fit (X_train, y_train)

# Предсказание на тестовом наборе

predictions = model.predict (X_test)

accuracy = accuracy_score (y_test, predictions)

print (f’Accuracy: {accuracy:.2f}»)

```

Продолжаем наш путь в мире машинного обучения. Сегодня мы сосредоточимся на двух популярных классификационных моделях: методе k-ближайших соседей (k-Nearest Neighbors, k-NN) и методе опорных векторов (Support Vector Machines, SVM).

**День 4: Классификационные модели: k-ближайших соседей и метод опорных векторов**

**Метод k-ближайших соседей (k-NN) **

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

**Принцип работы k-NN**

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

2. Выбираются k ближайших соседей.

3. Класс нового объекта определяется большинством голосов среди выбранных соседей.

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

**Параметры метода k-NN**

– **k**: Количество ближайших соседей, которые будут учитываться при классификации. Обычно выбирается нечётное число, чтобы избежать ситуаций равного количества голосов.

– **Метрика расстояния**: Наиболее распространённые метрики – Евклидово расстояние и Манхэттенское расстояние.

**Преимущества и недостатки k-NN**

– **Преимущества**:

– Простота реализации и понимания.

– Хорошо работает с небольшими наборами данных.

– **Недостатки**:

– Чувствительность к выбору параметра k.

– Медленная работа на больших наборах данных.

**Практическое задание**

Используя Python и библиотеку `scikit-learn`, попробуйте построить модель k-NN для классификации цветов по их RGB-значениям. Вы можете использовать набор данных «Iris» из библиотеки `sklearn`.

```python

from sklearn. datasets import load_iris

from sklearn.model_selection import train_test_split

from sklearn.neighbors import KNeighborsClassifier

from sklearn.metrics import accuracy_score

# Загрузка данных

iris = load_iris ()

X = iris. data

y = iris. target

# Разделение данных на тренировочный и тестовый наборы

X_train, X_test, y_train, y_test = train_test_split (X, y, test_size=0.2, random_state=42)

# Создание и обучение модели

model = KNeighborsClassifier (n_neighbors=5)

model.fit (X_train, y_train)

# Предсказание на тестовом наборе

predictions = model.predict (X_test)

accuracy = accuracy_score (y_test, predictions)

print (f’Accuracy: {accuracy:.2f}»)

```

Теперь перейдем ко второму алгоритму – методу опорных векторов.

**Метод опорных векторов (SVM) **

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

**Принцип работы SVM**

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

2. Эти ближайшие точки называются опорными векторами.

3. Гиперплоскость определяет границу разделения классов.

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

**Параметры метода SVM**

– **Kernel**: Функция ядра, которая позволяет работать с нелинейно разделяемыми данными. Популярные варианты – линейное ядро, полиномиальное ядро и радиально-базисная функция (RBF).

– **Regularization parameter C**: Параметр регуляризации, который контролирует степень влияния опорных векторов на решение.

**Преимущества и недостатки SVM**

– **Преимущества**:

– Хорошо справляется с задачами высокой размерности.

– Может эффективно работать с нелинейно разделяемыми данными благодаря использованию ядер.

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.