← Назад к вопросам

В чём разница между машинным обучением и глубоким обучением?

1.0 Junior🔥 251 комментариев
#Глубокое обучение#Машинное обучение

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Различие между Machine Learning и Deep Learning

Deep Learning (глубокое обучение) — это подмножество Machine Learning, но с принципиально иным подходом к извлечению и обучению на признаках.

Основное различие

┌─────────────────────────────────┐
│     Artificial Intelligence     │
│   (Искусственный интеллект)      │
│                                 │
│ ┌───────────────────────────┐   │
│ │   Machine Learning        │   │
│ │  (Машинное обучение)      │   │
│ │                           │   │
│ │ ┌─────────────────────┐   │   │
│ │ │ Deep Learning       │   │   │
│ │ │ (Глубокое обучение) │   │   │
│ │ └─────────────────────┘   │   │
│ └───────────────────────────┘   │
└─────────────────────────────────┘

Deep Learning ⊂ Machine Learning ⊂ AI

Сравнительная таблица

АспектMachine LearningDeep Learning
Feature Engineeringручнаяавтоматическая
Архитектурапростая (деревья, SVM)сложная (нейросети)
Требуемые данныеменьше (100s-1000s)много (100,000s+)
Требуемая памятьнизкаяочень высокая
Мощность вычисленияCPUGPU/TPU
Интерпретируемостьвысокаячёрный ящик
Время обучениябыстро (минуты)долго (часы/дни)
Тип задачтабличные данныеизображения, текст, аудио

Machine Learning — Feature Engineering

# ML: ручное извлечение признаков
import numpy as np
from sklearn.ensemble import RandomForestClassifier

# Данные
X = np.array([
    [23, 5000, 0],      # age, salary, years_employed
    [45, 120000, 15],
    [32, 75000, 5]
])

# Ручное создание признаков
X_engineered = np.column_stack([
    X[:, 0],                              # age
    X[:, 1],                              # salary
    X[:, 2],                              # years
    X[:, 0] * X[:, 2],                    # age × years (interaction)
    np.log(X[:, 1] + 1),                  # log(salary) (non-linear transform)
    (X[:, 1] / X[:, 0]).reshape(-1, 1)    # salary/age (ratio)
])

# Модель
rf = RandomForestClassifier()
rf.fit(X_engineered, y)

# Человек определил, какие признаки важны!

Deep Learning — Automatic Feature Learning

# DL: автоматическое изучение признаков
import tensorflow as tf
from tensorflow import keras

# Модель с несколькими слоями
model = keras.Sequential([
    keras.layers.Dense(128, activation='relu', input_shape=(784,)),  # Layer 1
    keras.layers.Dropout(0.2),
    keras.layers.Dense(64, activation='relu'),   # Layer 2
    keras.layers.Dropout(0.2),
    keras.layers.Dense(32, activation='relu'),   # Layer 3
    keras.layers.Dense(10, activation='softmax') # Output
])

model.compile(optimizer='adam', loss='sparse_categorical_crossentropy')
model.fit(X_train, y_train, epochs=50)

# Каждый слой учится извлекать свои признаки!
# Layer 1: простые паттерны (edges, corners)
# Layer 2: более сложные паттерны (shapes, textures)
# Layer 3: высокоуровневые концепции (объекты, лица)

Визуализация обучения признаков

Традиционное Machine Learning (ручное):

Исходные данные → [Human] → Выбранные признаки → Модель → Предсказание
                ручной выбор

Deep Learning (автоматическое):

Исходные данные → [Layer1] → [Layer2] → [Layer3] → Модель → Предсказание
                 низкий    средний    высокий
                 уровень   уровень    уровень
                 абстракции

Примеры машинного обучения

# 1. Классификация текста (ML)
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.svm import SVC

vectorizer = TfidfVectorizer(max_features=1000)
X = vectorizer.fit_transform(texts)  # ручное извлечение (TF-IDF)

model = SVC(kernel='rbf')
model.fit(X, y)

# 2. Предсказание цены дома (ML)
from sklearn.ensemble import GradientBoostingRegressor

# Признаки: area, bedrooms, age, location
model = GradientBoostingRegressor()
model.fit(X_features, y_prices)

# 3. Fraud detection (ML)
from sklearn.linear_model import LogisticRegression

model = LogisticRegression()
model.fit(X_features, y_fraud)

Примеры глубокого обучения

# 1. Классификация изображений (DL)
import tensorflow as tf

model = tf.keras.applications.ResNet50(weights='imagenet')
# Модель автоматически выучилась всем признакам
# от простых edges до сложных объектов

# 2. NLP: перевод текста (DL)
from transformers import AutoModelForSeq2SeqLM

model = AutoModelForSeq2SeqLM.from_pretrained('t5-base')
# Модель выучилась семантике языка

# 3. Генеративные модели (DL)
from diffusers import StableDiffusionPipeline

model = StableDiffusionPipeline.from_pretrained('runwayml/stable-diffusion-v1-5')
image = model('a cat sleeping').images[0]
# Модель выучилась визуальным паттернам изображений

Когда использовать ML vs DL

ML лучше для:
✓ Табличные данные (100-10,000 строк)
✓ Когда нужна интерпретируемость (медицина, финансы)
✓ Ограниченные вычислительные ресурсы
✓ Малые датасеты
✓ Когда нужны объяснимые коэффициенты

DL лучше для:
✓ Изображения, видео
✓ Текст (NLP, LLM)
✓ Аудио, речь
✓ Огромные датасеты (млн+ образцов)
✓ Когда нужна высокая точность
✓ Когда есть GPU/TPU

Практический пример

# ЗАДАЧА: предсказать, купит ли клиент товар

# Вариант 1: Machine Learning
from sklearn.ensemble import GradientBoostingClassifier

X = pd.DataFrame({
    'age': [...],
    'income': [...],
    'purchases_count': [...],
    'last_purchase_days_ago': [...]
})

model = GradientBoostingClassifier()
model.fit(X, y)
accuracy = model.score(X_test, y_test)  # ~92%

# Вариант 2: Deep Learning
import tensorflow as tf

model = tf.keras.Sequential([
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dropout(0.3),
    tf.keras.layers.Dense(32, activation='relu'),
    tf.keras.layers.Dropout(0.3),
    tf.keras.layers.Dense(1, activation='sigmoid')
])

model.compile(optimizer='adam', loss='binary_crossentropy')
model.fit(X_train, y_train, epochs=20)
accuracy = model.evaluate(X_test, y_test)[1]  # ~91%

# На табличных данных ML = DL, но ML проще!

Резюме

Machine Learning:

  • Feature engineering вручную
  • Модели: деревья, SVM, регрессия
  • Мало данных, быстро, интерпретируемо
  • Табличные данные

Deep Learning:

  • Feature learning автоматически
  • Модели: нейросети, CNN, RNN, Transformers
  • Много данных, долго, чёрный ящик
  • Изображения, текст, аудио, видео

Выбор: используй ML для табличных данных, DL для неструктурированных данных (изображения, текст).