Как я понимаю, для большинства задач возможны три общих подхода. Рассмотрим две задачи – игра в шахматы и распознавание букв на рисунке.
Шахматы:
1) Если бы компьютеры были бесконечной мощности, любой школьник мог бы написать гроссмейстерскую программу, банально перебирающую все возможные ходы. С реальными компьютерами, как я понимаю, такой подход позволяет предсказывать игру максимум на 6-8 ходов вперёд;
2) Тоже перебор, но с применением множества хитрых эвристических приёмов. Это сложно программировать, но теоретически результат будет наилучшим;
3) Обучить нейросеть, как описано в
этой темеАвтор: itmanager85
Дата: 06.12.17
. Она сыграет сама с собой миллиард партий и научится отлично играть.
Третий подход не так просто реализовать, как первый, и он не обеспечит не такой мощный результат, как второй (при условии что над вторым подходом долго работали талантливые программисты), но в целом по соотношению цена/качество третий подход рулит.
Распознавание образов (например букв).
1) Провести очень большой перебор смещений, поворотов, сжатий/наложений для картинки, найдя максимальное соответствие с каждой буквой шаблона;
2) В
этой темеАвтор: StandAlone
Дата: 28.04.12
предлагали решить более простую задачу: определить, есть ли на рисунке шар либо прямоугольник. Я
предложилАвтор: Khimik
Дата: 29.04.12
такой алгоритм – найти центр масс фигуры, построить график плотности от расстояния до центра, далее найти производную этого графика и пр.
Этот подход даёт наиболее быстрый результат, но он совсем не универсален – для того, чтобы отличить цифру 5 от цифры 6, потребуется придумать ещё один алгоритм, чтобы отличить 7 от 8 – ещё один алгоритм и т.д.
3) Опять же, наиболее эффективный подход, как я понимаю – натренировать нейросеть, которая будет распознавать произвольные буквы.
На каком же всё-таки философском принципе основан третий подход? Какие аналогии можно провести с первым и третьим подходом?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.