| Нейрокомпутерные системы
Ad simplicitas
Лабораторная работа
Обучение нейронной сети с учителем по готовому задачнику
(простая и легко решаемая задача - сдвиг или -
распознавание направления сдвига).
Для испытаний алгоритмов и программ существует набор известных и часто
используемых задач. Для нейронных сетей одной из таких задач стало
распознавание направления сдвига последовательности из нулей и единиц.
Представим числа от 0 до 255 в двоичном коде (восемь бит). Затем сделаем с
каждым двоичным числом операции циклического сдвига влево и вправо. При
сдвиге влево самая первая (левая) цифра переставляется в конец, вправо -
последняя (правая) цифра переставляется в начало.
Распознавание направления сдвига
| Число |
Двоичный код |
Сдвиг влево |
Сдвиг вправо |
| 1 | 00000001 | 00000010 | 10000000 |
| 2 | 00000010 | 00000100 | 00000001 |
| 3 | 00000011 | 00000110 | 10000001 |
| 4 | 00000100 | 00001000 | 00000010 |
| 5 | 00000101 | 00001010 | 10000010 |
| 6 | 00000110 | 00001100 | 00000011 |
| 7 | 00000111 | 00001110 | 10000011 |
| 8 | 00001000 | 00010000 | 00000100 |
| 9 | 00001001 | 00010010 | 10000100 |
| 10 | 00001010 | 00010100 | 00000101 |
| 11 | и т.д. | и т.д. | и т.д. |
Если объединить 8 цифр исходного двоичного числа и 8 цифр числа, полученного
путем сдвига влево, получим последовательность из 16 цифр (нулей и единиц).
То же самое проделаем с исходным числом и числом, полученным сдвигом вправо.
Задача для нейросети - по последовательности из 16 цифр научиться определять,
в какую сторону был сделан сдвиг - влево (1 класс) или вправо (2 класс).
Если взять для обучающей выборки первые 254 целых числа, получим 504 примера
(по 252 каждого класса). Числа 0 (00000000) и 255 (11111111) брать нельзя, так
же, как и 170 (10101010) и 85 (01010101), поскольку при сдвиге в любую сторону
для них будет получен один и тот же результат.
Как правило, нейронные сети легко и быстро обучаются решать эту задачу.
Частичное описание взято из книги
Горбань А.Н., Россиев Д.А. Нейронные сети на персональном компьютере. Новосибирск: Наука, 1996.- 276 с.
Файл с данными SHIFTS.DBF создан мной,
однако, может быть создан и самостоятельно. В файле 512 записей, по две
записи для каждого числа - сдвиг влево и вправо. Для полноты картины и
возможности проверки сложностей с числами 0, 85, 170 и 255 они также
присутствуют в выборке, однако, в текущей версии файла для них отсутствует
ответ. Нумерация бит последовательная и легко воспринимаемая, как и вся
задача.
|