← Назад к вопросам
В чём разница между машинным обучением и глубоким обучением?
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 Learning | Deep Learning |
|---|---|---|
| Feature Engineering | ручная | автоматическая |
| Архитектура | простая (деревья, SVM) | сложная (нейросети) |
| Требуемые данные | меньше (100s-1000s) | много (100,000s+) |
| Требуемая память | низкая | очень высокая |
| Мощность вычисления | CPU | GPU/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 для неструктурированных данных (изображения, текст).