Forge
markdowne8ad0934
1# Machine Learning: Fundamentals & Applied Tasks v1
2
3Фундаментальный проход по машинному обучению и прикладным задачам: парадигмы обучения, типы задач, пайплайн данных; **OCR** (препроцессинг, Tesseract, когда облако vs on-device); **распознавание штрихкодов и 2D-кодов** (1D/2D, UPC, EAN, Code 128, QR, Data Matrix, требования к изображению). Мир **software.ml-applied** обеспечивает согласованность с остальной базой знаний при запросах на ML, распознавание текста и кодов.
4
5**world:** `software.ml-applied`
6
7---
8
9## 1. Парадигмы обучения
10
11| Парадигма | Описание | Типичные задачи |
12|-----------|----------|------------------|
13| **Supervised** | Обучение по размеченным парам «вход–выход»; предсказание на новых входах | Классификация (категория), регрессия (число) |
14| **Unsupervised** | Поиск структуры в данных без меток | Кластеризация, снижение размерности, аномалии |
15| **Semi-supervised** | Мало размеченных + много неразмеченных данных | Когда разметка дорогая, а неразмеченных много |
16| **Reinforcement** | Обучение через взаимодействие со средой и награды | Управление, игры, политики действий |
17| **Transfer** | Перенос модели с одной задачи/домена на другую | Дообучение на малом целевом датасете |
18| **Self-supervised** | Предобучение на неразмеченных данных, затем дообучение на задаче | Языковые и визуальные модели |
19| **Deep learning** | Многослойные сети, иерархические представления | Классификация изображений, NLP, речь |
20| **Generative** | Генерация контента или многшаговые задачи | Текст, изображения, оркестрация |
21
22- **Классификация** — предсказание категории (спам/не спам, объект на изображении).
23- **Регрессия** — предсказание числа (цена, вероятность, оценка).
24- Стандартное разбиение данных: **train** (обучение), **validation** (подбор гиперпараметров, ранняя остановка), **test** (финальная оценка на невидимых данных). Утечка теста в обучение недопустима.
25
26---
27
28## 2. Прикладные задачи и выбор подхода
29
30- **Распознавание текста (OCR), штрихкодов, QR/2D-кодов** — ниже §3–4.
31- **Распознавание объектов, лиц, сцен** — обычно supervised/transfer (предобученные CNN); при ограничениях по приватности или latency — on-device (например ML Kit, Core ML).
32- **Кластеризация пользователей/событий** — unsupervised (k-means, иерархическая, DBSCAN) или semi-supervised при частичных метках.
33- **Аномалии** — unsupervised (изоляция, статистика) или one-class / детекция новизны при наличии только «нормы».
34- **Рекомендации** — коллаборативная фильтрация, контентные признаки, гибриды; метрики — precision/recall, NDCG под задачу.
35- **Когда ML, когда правила:** при чётких, стабильных правилах и малом объёме исключений — правила дешевле и предсказуемее; ML оправдан при паттернах в данных, шуме, изменяющемся распределении или когда правила неформализуемы.
36
37---
38
39## 3. OCR (распознавание текста)
40
41### 3.1 Назначение и границы
42
43- **Цель:** извлечь текст из растрового изображения (скан, фото, кадр) в машиночитаемый вид (строка, разметка по блокам/строкам/словам).
44- **Ограничения:** качество результата сильно зависит от разрешения, контраста, наклона, шрифта и языка; плохой вход без препроцессинга даёт мусор на выходе.
45
46### 3.2 Препроцессинг (критичен для точности)
47
48- **Разрешение:** Tesseract и многие движки лучше работают при **300+ DPI**; масштабирование низкого разрешения вверх не восстанавливает детали, но выравнивание по сетке и бинаризация могут помочь.
49- **Ориентация и наклон:** автоматическое определение ориентации (0°/90°/180°/270°) и **выравнивание (deskew)**; при наклоне падает качество сегментации строк.
50- **Бинаризация:** перевод в ч/б (Otsu, адаптивный Otsu, Sauvola) при неравномерном фоне и тенях.
51- **Шум:** удаление артефактов и пятен (морфология, фильтры); при «расплывших» буквах (исторические документы) — осторожная морфология (расширение/эрозия) для нормализации толщины.
52- **Контраст и выравнивание фона:** выравнивание освещения и удаление водяных знаков/пятен улучшают стабильность распознавания.
53
54### 3.3 Движки и режимы (Tesseract)
55
56- **OEM (Engine):** LSTM (--oem 1) — по умолчанию, нейросетевой, лучше для сложных и многоязычных документов; Legacy (--oem 0) — посимвольные шаблоны, проще и легче по ресурсам.
57- **PSM (Page Segmentation Mode):** 3 — авто; 6 — один блок текста; 11 — разреженный текст; 13 — одна строка и т.д. Подбор под тип страницы (книга, форма, этикетка) сильно влияет на результат.
58- **Языки:** указать нужные языки (например eng+rus); лишние языки увеличивают путаницу и время.
59
60### 3.4 Облако vs on-device
61
62- **Облако (Google Cloud Vision, AWS Textract, Azure Document Intelligence):** высокая точность, сложные макеты, многоязычность, рукопись; зависимость от сети, стоимость, вопросы конфиденциальности.
63- **On-device (Tesseract, EasyOCR, ML Kit):** бесплатно, офлайн, низкая задержка; качество сильно зависит от препроцессинга; для «грязных» или сложных макетов часто нужен более тяжёлый облачный пайплайн или кастомная модель.
64- **Правило:** начинать с препроцессинга и Tesseract (или аналога) на типовых документах; при плато качества или требованиях к рукописи/сложному layout — рассматривать облако или кастомную модель.
65
66---
67
68## 4. Распознавание штрихкодов и 2D-кодов (Barcode, QR, Data Matrix и др.)
69
70### 4.1 1D (линейные) штрихкоды
71
72- **Кодирование:** вертикальные полосы, данные только по горизонтали; объём обычно до ~85 символов.
73- **Типы:** UPC-A (12 цифр, ритейл США), UPC-E (6); EAN-13 / EAN-8 (Европа, товары); **Code 128** (цифры и буквы, логистика, авто, оборонка); Code 39, Code 93, ITF, Codabar и др.
74- **Сканирование:** линейные лазерные сканеры или area-имиджеры (камера); для камеры нужно достаточное разрешение и контраст, минимум ~2 px на узкий элемент для стабильного чтения.
75
76### 4.2 2D-коды
77
78- **Кодирование:** сетка модулей (квадратов), данные по горизонтали и вертикали; большая ёмкость, встроенная коррекция ошибок (до ~30% повреждения допустимо).
79- **QR Code:** ссылки, текст, контакты; массовое использование, хорошая поддержка в библиотеках и на устройствах.
80- **Data Matrix:** очень высокая надёжность (низкая частота ошибок), малый размер; аэрокосмос, фарма, производство, маркировка мелких объектов.
81- **Другие 2D:** Aztec, PDF417 и т.д. — под отраслевые стандарты.
82
83### 4.3 Требования к изображению и выбор решения
84
85- **Разрешение:** элемент кода (модуль/полоса) не менее **2 px** по ширине; для мелких кодов — увеличить разрешение кадра или приблизить камеру.
86- **Резкость и освещение:** размытие и блики снижают надёжность; равномерное освещение, без пересвета по центру кода.
87- **Ориентация:** большинство современных декодеров (ML Kit, ZXing, облачные API) работают при любом повороте; для 1D лазерных сканеров ориентация полос важна.
88- **On-device:** ML Kit (Firebase), ZXing, встроенные API iOS/Android — быстрые, офлайн, под мобильные и встраиваемые сценарии.
89- **Облако:** при необходимости распознавания повреждённых или нестандартных кодов, массовой пакетной обработки — Cloud Vision API и аналоги.
90- **Сложные/повреждённые QR:** специализированные решения (например QReader на базе YOLO + декодер) для «трудных» изображений.
91
92---
93
94## 5. Операционный слой (правила по сигналу → действие)
95
96| # | Сигнал | Действие | Граница переноса |
97|---|--------|----------|-------------------|
98| R1 | Задача: предсказать категорию или число по данным | Выбрать парадигму: supervised (класс/регрессия); разбить train/val/test; не допускать утечки test в обучение | software.ml-applied |
99| R2 | OCR даёт мусор или низкая точность | Проверить препроцессинг: DPI/масштаб, deskew, бинаризация, шум; подобрать PSM/OEM (Tesseract) или язык; при плато — облако или кастомная модель | OCR-пайплайны |
100| R3 | Нужен OCR офлайн или на edge | Tesseract / EasyOCR / ML Kit Text Recognition; обязательно настроить препроцессинг и языки | On-device OCR |
101| R4 | Распознавание штрихкода/QR в приложении | Выбрать формат (1D vs 2D, конкретный тип при известности); обеспечить разрешение ≥2 px на элемент, равномерный свет; ML Kit / ZXing / платформенные API для on-device | Barcode/QR |
102| R5 | QR или 2D-код не читается | Проверить размер кода в пикселях, резкость, блики, частичное закрытие; при повреждениях — специализированный декодер или препроцессинг (выравнивание, контраст) | 2D-коды |
103| R6 | Вопрос «ML или правила?» | Если правила чёткие и стабильные — правила дешевле; ML — при паттернах в данных, шуме, меняющемся распределении или неформализуемых правилах | Выбор подхода |
104| R7 | Развёртывание модели в продакшене | Валидация на отложенной выборке; мониторинг дрифта и качества; версионирование данных и модели; откат при деградации метрик | MLOps (краткий ориентир) |
105
106---
107
108## 6. Transfer boundary
109
110- Применимо к **прикладному ML**: выбор парадигмы и типа задачи, пайплайны OCR и распознавания кодов, требования к данным и изображениям, on-device vs облако.
111- **software.ml-applied** не подменяет: глубокую теорию (learning theory, оптимизация), доменные онтологии (медицина, финансы), юридические требования к персональным данным при обработке ML в продакшене — при необходимости маршрутизировать в соответствующие домены и документы.
112- Согласованность: при запросах на OCR, barcode, QR, «распознавание текста/кодов», «машинное обучение для прикладных задач» — загружать этот kb и применять мир **software.ml-applied**.
113
114
View only · write via MCP/CIDE