Кодирование данных для обучения в нейронной сети - PullRequest
0 голосов
/ 25 октября 2018

Я преобразовал 349,900 слова из файла словаря в хэш md5.Пример ниже:

74b87337454200d4d33f80c4663dc5e5
594f803b380a41396ed63dca39503542
0b4e7a0e5fe84ad35fb5f95b9ceeac79
5d793fc5b00a2348c3fb9ab59e5ca98a
3dbe00a167653a1aaee01d93e77e730e
ffc32e9606a34d09fca5d82e3448f71f
2fa9f0700f68f32d2d520302906e65ce
1c9b32ff1b53bd892b87578a11cbd333
26a10043bba821303408ebce568a2746
c3c32ff3481e9745e10defa7ce5b511e 

Я хочу обучить нейронную сеть для расшифровки хэша, используя простую архитектуру, такую ​​как MultiLayer Perceptron.Поскольку все хеш-значения имеют длину 32, я считал, что количество входных узлов равно 32, но проблема здесь заключается в количестве выходных узлов.Поскольку выходные данные представляют собой слова в словаре, они не имеют конкретной длины.Это может быть различной длины.Вот почему я запутался в том, сколько у меня будет выходных узлов.

Как я буду кодировать свои данные, чтобы у меня было определенное количество выходных узлов?

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

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

Как я буду реализовывать то, что говорится в газете.Я думаю ограничить количество символов для расшифровки.Первоначально я могу ограничить его только 4 символами (только для целей тестирования).

Моими входными узлами будут 32 узлов, представляющих каждый символ хэша.Каждый входной узел будет иметь (ASCII-значение each_hash_character / 256).Мой выходной узел будет иметь 32 узла, также представляющих двоичный формат.Поскольку 8 бит / 8 узлов представляют один символ, моя сеть будет иметь возможность расшифровывать символы до 4 символов только потому, что (32/8) = 4. (Я могу увеличить его, если хочу.) Я планирую использовать 33 узла,Возможна ли моя сетевая архитектура?32 x 33 x 32?Если нет, почему?Пожалуйста, ведите меня.

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Существует большая дискуссия о возможности взлома SHA256 с использованием нейронных сетей на другом форуме Stack Exchange: https://security.stackexchange.com/questions/135211/can-a-neural-network-crack-hashing-algorithms

Был принят следующий ответ:

Нет.

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

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

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

Следующий ответ также делает забавное сравнение:

SHA256 имеет выходное пространство 2 ^ 256, ипространство ввода, которое по существу бесконечно.Для справки, время, прошедшее с момента Большого взрыва, оценивается в 5 миллиардов лет, что составляет около 1,577 × 10 ^ 27 наносекунд, что составляет около 2 ^ 90 нс.Таким образом, предполагая, что каждая итерация обучения занимает 1 нс, вам понадобится 2 ^ 166 возрастов вселенной для обучения вашей нейронной сети.

0 голосов
/ 08 ноября 2018

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

...