При чтении некоторых работ о полноте Тьюринга рекуррентных нейронных сетей (например: вычислительная способность Тьюринга с нейронными сетями, Hava T. Siegelmann и Eduardo D. Sontag, 1991), у меня возникло ощущение, что доказательство, которое было дано там, было не так уж и практично. Например, справочная статья нуждается в нейронной сети, деятельность нейронов должна быть бесконечной точности (для надежного представления любого рационального числа). Другие доказательства нуждаются в нейронной сети бесконечного размера. Ясно, что на самом деле это не так практично.
Но я начал задаваться вопросом, не имеет ли вообще смысла спрашивать о полноте Тьюринга. По строгому определению, никакая компьютерная система в настоящее время не является полной Тьюрингом, потому что ни один из них не сможет имитировать бесконечную ленту.
Интересно, что спецификация языка программирования оставляет его наиболее часто открытым, если они завершены или нет. Все сводится к вопросу, если они всегда смогут выделить больше памяти, и если размер стека вызовов функции бесконечен. В большинстве спецификаций это не указывается. Конечно, все доступные реализации ограничены здесь, поэтому все практические реализации языков программирования не являются Тьюрингом.
Итак, вы можете сказать, что все компьютерные системы так же мощны, как машины с конечным состоянием, а не больше.
И это подводит меня к вопросу: Насколько полезен термин "Тьюринга" вообще?
И вернемся к нейронным сетям: для любой практической реализации нейронной сети (включая наш собственный мозг) они не смогут представлять бесконечное число состояний, т.е. по строгому определению полноты Тьюринга, они не являются Тьюрингом полный. Так ли вообще вопрос о том, действительно ли нейронные сети имеют смысл?
Вопрос о том, насколько они столь же могущественны, как машины с конечным состоянием, ответил уже гораздо раньше (1954 г. Минский, ответ, конечно: да), а также легче ответить. Я., по крайней мере теоретически, это уже доказательство того, что они настолько сильны, как любой компьютер.Некоторые другие вопросы, которые больше о том, что я действительно хочу знать:
-
Есть ли какой-либо теоретический термин, который может сказать что-то более конкретное относительно вычислительной мощности компьютера? (учитывая ограниченное пространство памяти)
-
Как вы можете сравнить вычислительную мощь практических реализаций нейронных сетей с компьютерами? (Тьюринга-полнота не полезна, как указано выше.)