Блеск и нищета Искусственного Интеллекта
На примере простой задачи с простой нейронной сетью. Навеяно вот этой статьей и сеть взята без изменений. Просто выполнить код было неинтересно и пытливый ум решил внести изменения в предмет распознавания. А именно, нужно взять и перемешать точки в 28х28 и посмотреть.
Вот код из статьи с некоторыми изменениями и особо прошу обратить внимание на блок “permutations” — там и будем вносить и удовлетворять свое любопытство.
Прочитали исходные картинки (Что за картинки и для чего – прошу прочесть в исходной статье)
И выбрали случайно по 10 шт из Train и Test для показа. Картинки как картинки, если ничего в них не менять (perm = np.arange(28*28)) сеть дает 98% и более. Нормально.
Можете проверить сами.
Но теперь случайно перемешаем картинки. Случайно то случайно, но все картинки мешаем одинаково.
Смотрим на картинки и запускаем сеть.


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


Напомню, что перемешивались все картинки одинаково.
Но тут о! мистика, сеть легко справляется с такими картинками и у меня получается [0.082131341451834983, 0.98219999999999996].
Никакой человек с такой задачей на таких перемешанных картинках никогда не справится. Это блеск!!! Это феноменально по сравнению с человеком. Искать большую медведицу и стрельца нужно тысячелетиями.
Но пытливый ум на этом не останавливается и теперь пытается взболтать. Точнее применить другой код:
Перемешиваются не точки, а значения точек. Можно опять перемешать случайно, но главное одинаково по всем картинкам, а можно выбрать одно очень широко в узких кругах известное перемешивание:
И результат работы сети (тот же код без изменений) сразу насторожил:
[1.0329392189979554, 0.64970000000000006]




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




Глазами все видно, но сеть выдает
[2.301039520263672, 0.1135]
Вывод: “Перемешать, но не взбалтывать”.
PS. статья оставляет ощущение незавершенности. Пришлось писать
продолжение про монстров и блондинок
Прочитали исходные картинки (Что за картинки и для чего – прошу прочесть в исходной статье)
И выбрали случайно по 10 шт из Train и Test для показа. Картинки как картинки, если ничего в них не менять (perm = np.arange(28*28)) сеть дает 98% и более. Нормально.
Можете проверить сами.
Но теперь случайно перемешаем картинки. Случайно то случайно, но все картинки мешаем одинаково.
Смотрим на картинки и запускаем сеть.


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


Напомню, что перемешивались все картинки одинаково.
Но тут о! мистика, сеть легко справляется с такими картинками и у меня получается [0.082131341451834983, 0.98219999999999996].
Никакой человек с такой задачей на таких перемешанных картинках никогда не справится. Это блеск!!! Это феноменально по сравнению с человеком. Искать большую медведицу и стрельца нужно тысячелетиями.
Но пытливый ум на этом не останавливается и теперь пытается взболтать. Точнее применить другой код:
Перемешиваются не точки, а значения точек. Можно опять перемешать случайно, но главное одинаково по всем картинкам, а можно выбрать одно очень широко в узких кругах известное перемешивание:
И результат работы сети (тот же код без изменений) сразу насторожил:
[1.0329392189979554, 0.64970000000000006]




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




Глазами все видно, но сеть выдает
[2.301039520263672, 0.1135]
Вывод: “Перемешать, но не взбалтывать”.
PS. статья оставляет ощущение незавершенности. Пришлось писать
продолжение про монстров и блондинок
Комментарии
Отправить комментарий