Реинжиниринг системы генерации чисел

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Реинжиниринг системы генерации чисел

Сообщение MIT » 21.03.2009 (Сб) 13:59

Возможно ли воспроизвести систему генерации чисел, если у нас имеются только результаты работы этой системы, т.е. сгенерированные числа?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Реинжиниринг системы генерации чисел

Сообщение jangle » 21.03.2009 (Сб) 14:55

MIT писал(а):Возможно ли воспроизвести систему генерации чисел, если у нас имеются только результаты работы этой системы, т.е. сгенерированные числа?


Для простых случаев, например ряд Фибоначи, это наверное можно сделать

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Реинжиниринг системы генерации чисел

Сообщение MIT » 21.03.2009 (Сб) 15:05

А если что-нибудь посложнее?
Читал где-то, что подобные задачи можно скармливать нейронкам.

Да, кстати, вопрос заключается не в написании подобных продуктов, а в нахождении таких технологий и софта, работающего по ним.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Реинжиниринг системы генерации чисел

Сообщение Хакер » 21.03.2009 (Сб) 15:27

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

А если у тебя есть только бессистемный набор выводов, то помоему здесь вообще ничего нельзя сделать в общем случае.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Реинжиниринг системы генерации чисел

Сообщение jangle » 21.03.2009 (Сб) 16:20

MIT писал(а):А если что-нибудь посложнее?
Читал где-то, что подобные задачи можно скармливать нейронкам.

Да, кстати, вопрос заключается не в написании подобных продуктов, а в нахождении таких технологий и софта, работающего по ним.


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

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Реинжиниринг системы генерации чисел

Сообщение MIT » 21.03.2009 (Сб) 16:32

Хакер писал(а):А если у тебя есть только бессистемный набор выводов, то помоему здесь вообще ничего нельзя сделать в общем случае.
Допустим, что есть как входные двоичные данные, так и выводные двоичные данные; так что с этой позиции учить есть по чему.


jangle писал(а):Похоже ты решил детектировать информационный шум? Это отдельная область в математике.
Знать бы еще что это такое...
Гугль писал(а):Информационный шум - это когда изобилие поступающей человеку информации делает большую её часть нерелевантной (то есть не полезным сигналом, а именно "шумом"), отфильтровать который оказывается чрезвычайно затруднительно. И человек автоматически отфильтровывает вообще всё.
:?


добавлено:
А вот еще смежная задачка. Есть какой-то алгоритм (может быть выражен функцией IsValid(Data as String) as boolean), который анализирует данную ему строчку (пусть она будет тоже двоичным числом) говорит либо "да", либо "нет". У меня есть (допустим) 100 строк, на которые этот алгоритм реагирует положительно. Можно ли подобрать еще одно подходящее число?

З.Ы.: если кто-то подумал о кейгенах и т.п., то он не прав :)
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Re: Реинжиниринг системы генерации чисел

Сообщение Amed » 21.03.2009 (Сб) 17:56

MIT, теоретически можно, но стопроцентной гарантии не будет.

Приведу пример. Нейросеть после обучения на сотне строчек, будет давать на выходе функцию IsValid = f(Data), принимающую два возможных значения: 0 (нет) и 1 (да).

Правильная функция должна выглядеть как-то так (N - число всех возможных входных строк):

Код: Выделить всё
IsValid
  ^
  |
1 |   |     | |         |
  |   |     | |         |
0 -----------------------------> Data
      0 1 2 3 4 5 6 7 8 9 .. N-1


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

Однако, если формула расчета IsValid простая, вероятность правильной экстраполяции будет [говорю эмпирически, доказать не могу] повышаться тем сильнее, чем равномернее выбраны 100 точек из интервала 0..N-1.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Реинжиниринг системы генерации чисел

Сообщение MIT » 21.03.2009 (Сб) 18:11

А как эту равномерность установить?
Должны быть какие-то критерии для подбора изначально правильных строк?

А в какую сложность алгоритма может вписаться решение? XOR-наложение маски, например, это сложно или нет?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Re: Реинжиниринг системы генерации чисел

Сообщение Amed » 21.03.2009 (Сб) 18:43

Предположу, что если входная строка кодируется одним байтом (0..255), то надо обучать сеть на 100 точках через каждые (256/100)=2,56 штуки :)

То есть будет ряд "обучающих индексов":
0 ->
2,56 -> 3
5,12 -> 5
7,68 -> 8
...

В реальности одним байтом можно закодировать всего 256 "строк" из одной буквы, поэтому предложенный метод реально неприемлем. Стандартных методов и критериев, скорее всего, не существует. Есть два пути:
1) основательно залезть в гугл и попытаться найти аналогичные исследования (скорее всего, англоязычные)
2) проанализировать функцию сначала безо всяких нейросетей, обычными методами (частота букв/повторы/...) и дальше действовать по обстоятельствам

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Реинжиниринг системы генерации чисел

Сообщение MIT » 21.03.2009 (Сб) 18:52

Amed писал(а):Предположу, что если входная строка кодируется одним байтом (0..255), то надо обучать сеть на 100 точках через каждые (256/100)=2,56 штуки
Тогда для 8-ми байтовой изначальной строки...

Amed писал(а):1) основательно залезть в гугл и попытаться найти аналогичные исследования (скорее всего, англоязычные)
Оставим на крайний случай.
Amed писал(а):2) проанализировать функцию сначала безо всяких нейросетей, обычными методами (частота букв/повторы/...) и дальше действовать по обстоятельствам
Каким образом производить анализ? Опять же, если у меня известно 100 строк, то что мне с ними делать? Искать закономерности размещения бит?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Re: Реинжиниринг системы генерации чисел

Сообщение Amed » 21.03.2009 (Сб) 19:27

На этот вопрос ответить не могу.

Укажу на то, что задача кажется мне неразрешимой для нейросети "в лоб" и добавлю еще немного слов.

Представь, что функция содержит простейшее условие "Если первая буква строки не А, то IsValid сразу False"
Как сеть воспроизведет в себе такое условие? Сеть - это всего лишь система уравнений, и думаю, что составить систему уравнений, реализующую if-ветвление - нетривиальная задача.
Можно сделать сеть с нейронами, которые выдают на выходе логические функции - но надо точно знать, как это будет работать, а схему реинжиниринга строк я пока даже представить не могу.

Вопрос с простотой нахождения XOR-маски открыт...

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Реинжиниринг системы генерации чисел

Сообщение MIT » 22.03.2009 (Вс) 19:08

Amed писал(а):Как сеть воспроизведет в себе такое условие?
Мне тоже интересно :)

Amed писал(а):Можно сделать сеть с нейронами, которые выдают на выходе логические функции - но надо точно знать, как это будет работать
А оно хоть у кого-нибудь работает? Есть ли проекты, работающие по смежным проблемам?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Re: Реинжиниринг системы генерации чисел

Сообщение Amed » 22.03.2009 (Вс) 19:54

Конечно, работает. Есть ли смежные проекты - не знаю.

Вот интересная ссылка по теме: ftp://ftp.sas.com/pub/neural/FAQ.html


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 88

    TopList  
cron