Автор: гость во лбу гвоздь Нет, я говорил только о рояле, до того как мелодию на не наиграли никакого алгоритма нет, ни детерминированного, ни недетерминированного, его просто нет. |
|
Речь идёт не о рояле, а об алгоритме рояля, и он ничем не хуже алгоритма нейронной сети или моделей любых других физических систем.
Автор: гость во лбу гвоздь Если придерживаться все же принятого определения, когда детерминированность означает один и тот же результат, одну и ту же реакцию на одни и те же данные, |
|
Нет такого определения детерминированности.
Автор: гость во лбу гвоздь вот нейросеть действительно может реагировать на одни и те же данные по разному в момент обучения, т.к. данные из предыдущей итерации могут влиять на поведение сети в текущей итерации. Но если ее обучить и дальнейшую возможность обучения заблокировать, то сеть становится детерминированным алгоритмом |
|
Не становится.
***
гость во лбу гвоздь,
1. Если вы введёте функцию, которая при повторном появлении тех же данных будет как-то их менять, то алгоритм от этого недетерминированным не станет, хотя условие «один и тот же результат на одни и те же данные» выполняться не будет.
То же происходит в нейронной сети — блокировка не делает её детерминированным алгоритмом, как и само по себе изменение в процессе обучения не делает её алгоритмом не детерминированным. Все элементы нейронной сети строго заданы и недетерминированность в них не найти.
2. Детерминированность алгоритма заключается в том, что путь к решению предопределен однозначно. Другими словами, детерминированный алгоритм должен вести к конкретной цели за конечное число строго определённых шагов. Нейронная сеть ни к какой цели не ведёт — вы вообще не знаете к чему вас приведёт сеть, когда её создаёте, неважно будет ли сеть обучаться или нет. То есть сеть — это просто модель физической системы, никаких конкретных задач она не решает и ни к чему конкретному, заранее вам известному, не ведёт. По этому основанию и алгоритм нейронной сети, и алгоритм рояля — это алгоритмы недетерминированные.
3. Но понятнее следующее основание. Детерминированный алгоритм «детерминирует» путь к решению задачи, то есть порядок шагов детерминированного алгоритма должен быть определён строго. Но порядок работы элементов нейронной сети может быть разным — всё зависит от конфигурации входа. Поэтому есть только вероятность, что комбинируя данные, вы в какой-то момент выйдете на нужный вам результат. Но вероятность — это и есть недетерминированность.
Например,
«В информатике, «недетерминированный алгоритм» — это алгоритм, указывающий несколько путей обработки одних и тех же входных данных, — без какого-либо уточнения, какой именно вариант будет выбран.» То есть одни и те же сигналы можно подавать на разные входы сети, они будут обрабатываться по-разному, и ничто «правильную» конфигурацию заранее не детерминирует. Полностью аналогичная ситуация с роялем.
Недетерминированный алгоритм.
Поэтому, во-первых, так как данные заранее не известны, то заранее неизвестно и по какому конкретному алгоритму из множества возможных сеть будет работать в некий момент времени. Во-вторых, из-за того, что порядок работы элементов не предопределён, сеть может «больше» детерминированного алгоритма. Нейронная сеть может подстраиваться под данные, выбирая для каждой конфигурации входа свой конкретный (теперь уже детерминированный) алгоритм. В детерминированном алгоритме такое, естественно, невозможно.
При этом алгоритм нейронной сети, в отличии от алгоритма рояля, задаёт ещё и возможность изменения элементов сети под влиянием данных, то есть возможность обучения, и определённый порядок этих изменений. В результате просто комбинируя данные, вы можете со временем добиться определённой логики их обработки сетью — а можете и не добиться, так как сеть ... .