LINUX.ORG.RU

Нужна литература по алгоритмам БЕЗ(!!!) нейронок и ML для сопоставления ч/б векторных картинок с образцами

 


3

1

Что-то в духе распознавания рукописных символов в УЖЕ очищенном от шума векторном виде. Такое, чтобы после прочтения я мог сам состряпать нужные алгоритмы.

Требование «БЕЗ нейронок и ML» ключевое – чтобы я мог руками впилить в эти алгоритмы свои знания и быть на 100% уверенным в логике их работы, а не пердолиться с придумыванием обучающих данных и получить потом на выходе чёрный ящик, выдающий непредсказуемые результаты.

Т.е. нужны некие базовые до-ML-ные идеи. Например, попалось на глаза словечко «кластерный анализ» – похоже в тему, но где б найти с подходящей (но не избыточной) детализацией идеи и с примерами. И вот всё такое похожее надо.

Те книги, которые рекомендует гугл, – про сильно более навороченные вещи (e.g. мне не нужны цветные пиксельные картинки и построение 3D из 2D), и с непременным ML в том или ином виде. Разве что 1е издание Фукунага «Введение в статистическую теорию распознавания образов» – 1979 год, это по ощущениям ещё до-нейроночная эпоха, там может быть что-то подходящее.

А пишу в форум про нейронки, потому что тутошняя публика как раз может что-то знать на тему.

★★★★★

Последнее исправление: dimgel (всего исправлений: 4)

Что-то в духе распознавания рукописных символов в УЖЕ очищенном от шума векторном виде

БЕЗ нейронок и ML

Ну то есть, что угодно бесперспективное, тупиковость чего подтверждена многими годами?

Ну такого много. Можно просто толксы тыт читать, там такого половина будет. Пользы примерно столько же.

Ещё вот Гегеля порекомендую, «Феноменологию духа». Тоже отличный вариант как потратить много времени и когнитивных усилий, а в итоге получить пшик.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)

нужны некие базовые до-ML-ные идеи.

Фу К.С. Структурные методы в распознавании образов © (libcats.org).
Там используют синтаксис цепного кодирования контура, двумерные грамматики, … и в конечном счёте метод сводится к решению задачи линейного программирования.
Гонсалес Р., Вудс Р. Цифровая обработка изображений © (litres.ru).
Ещё глянь в старых номерах журнальчика: Pattern Recognition and Image Analysis © (nauch-journal.ru).

quickquest ★★★★★
()
Ответ на: комментарий от Aceler

100%-ю уверенность в работе алгоритмов на такой задаче как «распознавание образов»?

«Идеальный почтовый индекс» даёт 100% уверенность распознавания © (elementy.ru) :)

quickquest ★★★★★
()
Ответ на: комментарий от maxcom

Какой-нибудь SIFT для этого не подходит?

Иногда подходит для выделения инвариантов, но есть более устойчивые и шустрые модификации типа SURF © (wikipedia.org) совместно с преобразованием Хафа © (wikipedia.org) для идентификации кластеров.

quickquest ★★★★★
()

Идея разделения сета данных на котором алгоритм отлаживается и проверочного сета - характерна не только для нейронок, но и для любого алгоритма сопоставления с образцами, просто для того чтоб оценить насколько он эффективен. И ещё моменнт - если в алгоритме есть хоть один коэффициент, который «подтюнивается под данные» - это уже частный случай машинного обучения. Просто не сврточная неёрнонка. Так, например вам возможно подойдёт что-то похожее на метод опорных векторов https://en.wikipedia.org/wiki/Support_vector_machine#History который на мой взгляд является просто частным случаем типичной однослойной не-свёрточной нейронки, хотя и разработан в 1964.

Так что моё имхо отчасти подкреплённое опытом - если вы боитесь непредсказуемости/непонятности - можно просто брать 1-2 слойные сети на полностью понятной архитектуре, а методы подбора коэффициентов через обучения никуда не убирать.

GPFault ★★★
()
Ответ на: комментарий от GPFault

И ещё моменнт - если в алгоритме есть хоть один коэффициент, который «подтюнивается под данные» - это уже частный случай машинного обучения.

Логично.

Всем спасибо. Буду потихоньку изучать что накидали.

dimgel ★★★★★
() автор топика

Ищите вот эту статью. В разделе про традиционные схемы и описание и ссылки и про методы раздела на области, и на кросс-кораляцию, и на метода наименьших квадратов, и на узловые точки, есть про оператор Моравика от 1977 года, ну и про машинное обучение, кода же без него?

Image Matching: A Comprehensive Overview of Conventional and Learning-Based Methodsб Encyclopedia 2025, 5, 4б 21 страница.

VIT ★★
()

обзорное, может поможет выбрать и/или определиться куда копать:
Кристофер М. Бишоп - Распознавание образов и машинное обучение.

etwrq ★★★★★
()
Последнее исправление: etwrq (всего исправлений: 2)

Т.е. нужны некие базовые до-ML-ные идеи. Например, попалось на глаза словечко «кластерный анализ»

Кластерный анализ — это ML, классический пример обучения без учителя.

Судя по описанию задачи, не-ML решение в ней может быть разумным, только если анализируемые данные описываются конечным и заранее известным набор формализованных признаков. Подходы ML позволяют для кучи данных найти базис, по которому эти данные хорошо раскладываются. Вообще, сложилось впечатление, что для ТСа не очевидно, что ML и нейронки — это совсем не одно и то же (второе является подмножеством первого). Если это действительно так, то имеет смысл почитать книжки по ML.

annulen ★★★★★
()
Ответ на: комментарий от annulen

Судя по описанию задачи, не-ML решение в ней может быть разумным, только если анализируемые данные описываются конечным и заранее известным набор формализованных признаков.

Ну к слову, именно в эту сторону и смотрю. А литературу спросил, чтобы не напридумывать уж вообще какую-нибудь дичь.

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

dimgel ★★★★★
() автор топика
Ответ на: комментарий от dimgel

именно в эту сторону и смотрю

В сторону алгоритмического распознавания?

Оно хорошо для таких задач:

  • распознавания штрих-кодов, qr-кодов и т.п. кодировок, изначально спроектированных для машинного распознавания;

  • распознавания цифр «как в индексе на конверте», текста шрифтом по ГОСТу на чертежах, и т.п. — где есть жёсткий стандарт, какие «символы» допустимы и как их нужно рисовать.

Если задача не похожа по духу на вышеперечисленное, а похожа на распознавание рукописных символов «как в MNIST», то с большой вероятностью алгоритмическое распознавание будет плохим решением.

annulen ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Вот «a» и «b» и есть learning

Ничё не понял. В моей картине мира в ходе лёрнинга должна получится модель, которую можно применить к другому набору входных данных. Если такой модели на выходе нет - мы никого ничему не налёрнили.

r--r--r--
()
Ответ на: комментарий от hobbit

Да как-то сложно пруфать отрицательные утверждения. Попросту я не видел ни одной успешной реализации до нейронок и ML, хотя попытки были. Тут бы пруф обратного скорее не помешал.

CrX ★★★★★
()
Ответ на: комментарий от CrX

я не видел ни одной успешной реализации

На "фестивале науки" люди из ВМК показывали прогу (на паскале под дельфи), которая только афинными преобразованиями вполне успешно распознавала нарисованную как в пеинте руками букву. Включая тяжёлые случаи - такие как буква "А" с незамкнутым вверху стыком двух боковых линий.

Практическая реализация классификации векторных символов - вполне себе решаемая задача. Вопрос в трудозатратах и сфере применимости.

r--r--r--
()
Ответ на: комментарий от CrX

Попросту я не видел ни одной успешной реализации до нейронок и ML, хотя попытки были. Тут бы пруф обратного скорее не помешал.

Такие попытки и простейшие реализации собраны в справочнике Васильев В.И Распознающие системы © (urss.ru).
начиная с постановки задач (1967 г.) М.М.Бонгарда Проблема узнавания © (urss.ru),
некоторые актуальны до сих пор: Index of Bongard Problems © (foundalis.com).

quickquest ★★★★★
()
Ответ на: комментарий от r--r--r--

В моей картине мира в ходе лёрнинга должна получится модель, которую можно применить к другому набору входных данных. Если такой модели на выходе нет - мы никого ничему не налёрнили.

Машинное обучение (наверное точнее было бы назвать машинным научением) в общем случае подразумевает, что ты «учишь» модель по набору входных данных делать какие-то выводы из данных. В случае задачи, так называемой регрессии, по входному набору векторов (Xi и Yi) строить модель, которая затем будет предсказывать численное значение Y по X. Линейная регрессия означает, что модель состоит из линейной функции от X.

Проиллюстрирую на примере. Например, ты хочешь сделать модель, которая будет предсказывать проседание твоей машины в зависимости от веса, которым её нагрузил. То есть какой дорожный просвет у неё (клиренс) в зависимости от груза.

Ты что-то, например, гантели или гири, кладёшь в багажник и/или на сиденья и измеряшь линейкой просвет между днищем и дорогой. Ты решил, что модель у тебя будет линейной, входной вектор (фичи) из одного числа массы состоять. Получаешь серию данных m(i), l(i), где m - масса, которую ты положил в машину, l - дорожный просвет при этой массе. Линейная модель описывается уравнением l(m) = k*m + l0, где l - просвет с массой m, l0 - просвет без дополнительной нагрузки. k - может интепретироваться как коэффициент упругости пружин рессоров.

Проводишь обучение модели, подбирая k (и вообще говоря l0) так, чтобы минимизировать функцию потерь между истинным l(i) для m(i) и предсказанным lp. Классически для функции потерь выбирают метод наименьших квадратов, то есть, чтобы сумма разниц квадратов между l(i) и lp была минимальной. В итоге у тебя будет модель, которая для произвольной (в разумных пределах) массы будет предсказывать какой окажется дорожный просвет.

Наборы исходных данных (фичи) тут простейшие: одно число массы. Но ты мог бы усложнить модель, к примеру, добавить параметры: давление в камерах и температуру воздуха. Тогда вектор X состоял бы из трёх фичей X (m, P, t) и функция была бы более сложной Y = k1*m + k2*P + k3*t. Конечно и набор данных для обучения (датасет) усложнился бы, тебе пришлось бы провести измерения при разных не только массах, но и давлениях в шинах и температурах.

Если не использовать модный термин ML, то у нас с советских времён такая задача ещё называется задачей математического моделирования и построением вычислительной модели.

Нейросети, вернее то, что в настоящее время под ними подразумевается, в принципе тоже являются такой функцией, но нелинейной и многомерной (число измерений равно числу параметров). Её обучение, например, какой-нибудь LLM с 700B параметров - поиском минимума нелинейной функции в 700-миллиардомерном пространстве.

anonymous_incognito ★★★★★
()
Последнее исправление: anonymous_incognito (всего исправлений: 5)
Ответ на: комментарий от anonymous_incognito

Проиллюстрирую на примере.

И потеряно самое главное:

Проводишь обучение модели
В итоге у тебя будет модель

Что за "модель"-то? Потому что если ты говоришь о построении серии экспериментов и подбор матмодели с предсказательной силой, то к машинному обучению это не имеет никакого отношения. Тут машинности нет вообще нигде никакой, этим всем занимались с логарифмической линейкой 100 лет тому назад.

Выше правильно написали:

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

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

То есть, если ты поставишь датчики для анализа машин на массогабариты, понасобираешь статистики с разных машин в условную "нейронку", которую будешь бить палкой за неправильный ответ на вопрос "легковая ли машина или грузовая" - то в итоге у тебя будет "обученная машина", а сам процесс будет "машинным обучением" - ты будешь обучать машину.

А коэффициенты теплопроводимости, удельного электрического сопротивления или прости господи ускорения свободного падения записывать в "машинное обучение" - это чё-то как-то уже совсем за гранью.

r--r--r--
()
Последнее исправление: r--r--r-- (всего исправлений: 1)
Ответ на: комментарий от anonymous_incognito

у нас с советских времён такая задача ещё называется задачей математического моделирования и построением вычислительной модели.

И это НЕ машинное обучение. Машина тут вообще не участвует.

Нейросети, вернее то, что в настоящее время под ними подразумевается, в принципе тоже являются такой функцией,

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

В случае с матмоделью исходному набору данных соответствует один результат, и его можно вычислить с заданной точностью.

r--r--r--
()
Ответ на: комментарий от r--r--r--

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

Вопрос о терминах, нейронки на логарифмических линейках тренировать тоже никто не запрещает. Я специально привёл пример попроще для иллюстрации того, что происходит в процессе «обучения». И если фичей не одна (масса), то уже даже для трёх (масса, давление, температура) можно устать считать вручную, а на практике их запросто будет десятки и даже сотни с тысячами.

Я встречал такое определение:

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

Как я уже говорил, у нас исторически термин машинное обучение даже не использовался, а называлось это построением вычислительной модели. Учебники по вычислительной математике имелись ещё в докомпьютерную эпоху.

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

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

То есть, если ты поставишь датчики для анализа машин на массогабариты, понасобираешь статистики с разных машин в условную «нейронку», которую будешь бить палкой за неправильный ответ на вопрос «легковая ли машина или грузовая» - то в итоге у тебя будет «обученная машина», а сам процесс будет «машинным обучением» - ты будешь обучать машину.

Да, это называется задачей классификации.

А коэффициенты теплопроводимости, удельного электрического сопротивления или прости господи ускорения свободного падения записывать в «машинное обучение» - это чё-то как-то уже совсем за гранью.

Технически тоже самое, разница с как бы настоящим ML в количестве расчётов.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от anonymous_incognito

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

Отличное определение. И как раз то, чего я категорически хочу избежать: автоматизированного извлечения закономерностей. Как я написал в ОП, хочу вшивать в алгоритмы свою собственную экспертизу. А в книжках буду искать (возможно, между строк) способы формализации своих знаний.

dimgel ★★★★★
() автор топика
Последнее исправление: dimgel (всего исправлений: 2)
Ответ на: комментарий от r--r--r--

И это НЕ машинное обучение. Машина тут вообще не участвует.

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

Нет, не являются, в том-то и дело. Принципиальное отличие «нейросетей» от матмоделей - работа с недетерменированными, часто стохастическими данными и как правило непредсказуемый для произвольного набора входных данных результат.

Не понял, что ты имеешь ввиду? Недерминированным может быть результат работы, а не данных. Непредсказуемость LLM и генеративных моделей - это не имманентное свойство нейросетей, а специально сделанная особенность.

В случае генеративных моделей они восстанавливают предмет (изображение обычно) его из некоторого, т.н. латентного пространства. Это сжатое, скрытое, многомерное математическое представление данных. В нем сложные объекты (изображения, тексты, звуки) превращаются в векторы - наборы чисел. Похожие объекты (например, изображения кошек) в этом пространстве находятся рядом друг с другом, а непохожие далеко. Оно формируется из датасета в ходе обучения. Модели (GAN, диффузионные модели, автоэнкодеры) «учатся» структуре данных в этом пространстве, что позволяет затем им создавать новые, уникальные объекты, интерполируя или изменяя данные между существующими точками.

При этом промпт после запроса преобразуется в вектор, попадающий в такое пространство. Для разнообразия объект генерируется не из точно той точки, куда попал запрос, а с некоторым рандомом, зависящим от «температуры». Чем она выше, тем точка может уйти дальше, модель сильнее бредит, так сказать.

В случае LLM при генерации ответа у каждого слова оценивается его вероятность появления в рамках предсказания токенов по запросу (промпту). Чтобы результат был лучше не всегда выбирается наибольшая вероятность.

На самом деле есть ещё особенность, связанная с погрешностями машинного округления и представления данных, в том числе при параллельных расчётах на GPU, конкретные реализации (PyTorch) могут иметь недерминированные алгоритмы обработки данных. Но это не свойство машинного обучения и нейросетей, а отдельных библиотек для их написания.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Вопрос о терминах

Да.

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

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

Ты не понял высказывания. На разных данных возвращается идентичный результат. Например, мы принимаем на выход либо 0, либо 1.

Технически тоже самое,

Нет. Совсем не тоже самое. И ключевое тут - обработка стохастических данных. К примеру, если мы запрограммируем матмодель распознавания штрихкодов, то эта матмодель на одних и тех же "снимках" штрихкода, должна выдавать один и тот же результат. Если мы испортим часть данных штрихкода, наш алгоритм не сможет прочитать штрихкод. Это его нормальное поведение, его можно наблюдать на любой кассе со считывателем штрихкодов.

Тогда как если мы обучим нейронку на распознавание штрихкодов, нейронка с одной стороны проглотит некорректный штрихкод и вернёт какое-то значение, а с другой - может некорректно распознать штрихкод без погрешностей. В этом заключается принципиальная разница "нейронок" и матмоделей.

r--r--r--
()
Ответ на: комментарий от anonymous_incognito

Не понял, что ты имеешь ввиду? Недерминированным может быть результат работы, а не данных.

Не чёткими, не соответствующими жёсткой структуре. На вход может подаваться не только вектор чисел разного диапазона, но ещё и разной размерности.

Непредсказуемость LLM и генеративных моделей - это не имманентное свойство нейросетей, а специально сделанная особенность.

Нет. Ты путаешь специально добавленную случайность при генерации ответа с логикой работы самих сетей. Если убрать примесь случайной величины в ответе, то для достаточно большой сети с большим обучающим набором, ты не сможешь формально гарантировать ответ для данных вне обучающего датасета. То есть, не существует способа верифицировать расчёт, сделанный достаточно сложной нейросестью. И он может быть ошибочным.

На маленьких сетях и объёмах данных предсказуемости можно добиться, да.

r--r--r--
()
Последнее исправление: r--r--r-- (всего исправлений: 1)

ML это любой подбор коэффициентов модели, даже прямой линии.

По теме - раз у тебя векторы, возьми набор эталонов, нормируй на них испытуемый образец, найди все наименьшие квадраты расстояний. Где экстремум, там готово

Но что-то мне подсказывает, что лучше нейронки :)

Shadow ★★★★★
()
Ответ на: комментарий от r--r--r--

Моя постоянная задача - прогнозирование спроса. Описывается сигмоидом, никаких заданных коэффициентов нет, есть только история продаж в похожих условиях. Подбор по ней коэффициентов - типичное ML.

Shadow ★★★★★
()
Ответ на: комментарий от r--r--r--

именно по «стохастическим» данным.

...или нет (попытка шутки про вероятности)

Shadow ★★★★★
()

Я вот примерно 25-30 лет назад в экономике изучал кластерный анализ и дерево решений, и там всё было достаточно прозрачно. Сам задаешь правила, видишь веса признаков, понимаешь (иногда) шаги алгоритма и можешь управлять результатом.

Есть цель - понимать логику работы и детерминированные алгоритмы, наверно, что-то такое и надо.

One ★★★★★
()
Ответ на: комментарий от r--r--r--

На разных данных возвращается идентичный результат. Например, мы принимаем на выход либо 0, либо 1.

Получается всё-равно не понял. Мы только что говорили о линейной регрессии, а 0 или 1 - это уже классификация. Но пусть классификация и модель обучаем распознаванию, что это принципиально меняет? На практике в этом случае модель обучается выдавать вероятности для 0 и 1 или просто некоторые числа, которые как-то интерпретируются в дальнейшем. Например, что всё отрицательное - это ноль.

Тогда как если мы обучим нейронку на распознавание штрихкодов, нейронка с одной стороны проглотит некорректный штрихкод и вернёт какое-то значение, а с другой - может некорректно распознать штрихкод без погрешностей. В этом заключается принципиальная разница «нейронок» и матмоделей.

Разница не в этом, потому что на самом деле и модель и нейронка имеют вероятность ложного считывания. Ты обрабатывал или программировал штрих-коды или qr-код? Специально против ошибок считывания в более-менее совремённых (реально уже больше 30 лет) стандартах предусмотрена контрольная сумма, например, в EAN-13/8. Считываются 12 цифр, а 13-я - контрольная. Просто готовая программа распознавания штрихкодов уже умеет по стандарту проверять её, смотри к примеру её расчёт для ean-13 https://roskod.ru/info-articles/raschet-kontrolnoj-tsifry-ean-13/ Старые 1D или Code39 варианты штрихкодов не содержат контрольной суммы, хотя никто не мешает при кодировании ими самому добавить.

Сам факт наличия и границы штрихкода определяются по стартстопным символам. Никто не мешает натренировать нейронку на результат «нет штрихкода», это называется добавить пустой класс (empty class).

Принципиальная разница с нейронками в том, что в случае вычислительной модели мы заранее знаем строгий алгоритм (функцию) работы, а для нейронки его фактически выводим. Концептуально обучение нейронки можно считать нахождением коэффициентов разложения истинной функции в базис в гильбертовом пространстве. Базисом являются функции активации скрытых слоёв.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от r--r--r--

Не чёткими, не соответствующими жёсткой структуре. На вход может подаваться не только вектор чисел разного диапазона, но ещё и разной размерности.

Да какая разница какая там размерность: в конечном итоге это вопрос обработки таких чисел. Если же заранее не известно какой размерности число, то просто задача сложнее.

для достаточно большой сети с большим обучающим набором, ты не сможешь формально гарантировать ответ для данных вне обучающего датасета. То есть, не существует способа верифицировать расчёт, сделанный достаточно сложной нейросестью. И он может быть ошибочным.

В принципе формально это так, но в рамках математической теории обучения (Statistical Learning Theory) можно дать статистическую (вероятностную) гарантию того, что ошибка на новых данных не превысит определенный порог. Т.н. Байесовская PAC-граница. https://bguedj.github.io/files/bguedj-talk-2021-jds.pdf

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

На маленьких сетях и объёмах данных предсказуемости можно добиться, да.

Парадокс в том, что как раз на больших сетях предсказуемость выше. Об этом даже статьи пишут https://arxiv.org/abs/2109.06099

Но в принципе, а для строгих обычных алгоритмов что там на практике насчёт допустимых значений и гарантий отсутствия ошибок на их множестве? Как бы тоже строго гарантировать на 100% что-то очень трудно.

anonymous_incognito ★★★★★
()
Последнее исправление: anonymous_incognito (всего исправлений: 1)
Ответ на: комментарий от dimgel

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

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

Подкину пару статей для не «ИИ» подхода. Они довольно старые, но фундаментальные. https://epub3.livejournal.com/2214.html

Алгоритм «AutoR» был компактный, быстрый и в полной мере «интеллектуальный», то есть по-настоящему шрифтонезависимый. Этот алгоритм разработали и испытали ещё в конце 60-х два молодых биофизика, выпускники МФТИ — Г. М. Зенкин и А. П. Петров. Свой метод распознавания они опубликовали в журнале «Биофизика» в номере 12, вып. 3 за 1967 год.

Читал, что Abbyy пыталась лицензировать этот софт у Ocrus, но не договорились и сами разработали реализацию в Finereader, хотя напрямую вроде никогда не говорили, что в основе движка алгоритм Зенкина-Петрова.

1) Г.М. Зенкин, А.П. Петров. Система анализа изображений и узнавание объектов на сложном фоне. – журн. «Биофизика», М., том12, вып.3, 1967, С.493-501

https://ailab.ru/media/kunena/attachments/104/Zenkin_Petrov_BF_67.pdf

2) Г.М. Зенкин, А.П. Петров. Анализ изображения, применяемый в модели, обучающейся распознаванию зрительных образов. Тоже в какой-то Биофизике был опубликован примерно тогда же

https://ailab.ru/media/kunena/attachments/104/Petrov_Zenkin_VK_67.pdf

anonymous_incognito ★★★★★
()
Последнее исправление: anonymous_incognito (всего исправлений: 2)
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария