Как стать автором
Обновить

Комментарии 15

Спасибо за обзор.

Что интересно, несмотря на некоторую принципиальную ограниченность (нейронные сети не сказать что производят интеллектуальные действия, скорее тренируют рефлексы) — нейронные сети показывают весьма сильные результаты.
НЛО прилетело и опубликовало эту надпись здесь
Существуют НС, полные по Тьюрингу (http://arxiv.org/pdf/1410.5401v2.pdf), т.ч. они ограничены не более, чем МТ.
Вот неплохая статья о RNN: http://karpathy.github.io/2015/05/21/rnn-effectiveness/

Пример случайного кода сгенерированного нейросетью из сорцов ядра линукс (чуть подправить и в продакшен!):

/*
 * Increment the size file of the new incorrect UI_FILTER group information
 * of the size generatively.
 */
static int indicate_policy(void)
{
  int error;
  if (fd == MARN_EPT) {
    /*
     * The kernel blank will coeld it to userspace.
     */
    if (ss->segment < mem_total)
      unblock_graph_and_set_blocked();
    else
      ret = 1;
    goto bail;
  }
  segaddr = in_SB(in.addr);
  selector = seg / 16;
  setup_works = true;
  for (i = 0; i < blocks; i++) {
    seq = buf[i++];
    bpf = bd->bd.next + i * search;
    if (fd) {
      current = blocked;
    }
  }
  rw->name = "Getjbbregs";
  bprm_self_clearl(&iv->version);
  regs->new = blocks[(BPF_STATS << info->historidac)] | PFMR_CLOBATHINC_SECONDS << 12;
  return segtable;
}
Если придумать язык сверхвысокого уровня, программы на котором будут валидны и более-менее полезны при таком почти случайном объединении кусочков кода из других программ — успех ему будет гарантирован )
А у меня возникала идея генерировать код для граничных условий в каких-то алгоритмах. Поскольку именно на них тратиться больше времени, а возникают они реже.
Да, аналогия с рефлексами — по-моему, хорошая.
Есть еще интересный проект MarI/O. Там совсем простая сеть, однако ее хватает чтобы пройти пару уровней в игре Super Mario.
Unless вы про него что-то знаете, чего нет в видео на youtube, сложность и масштаб достижений не сравнимы.
Во-первых, в MarI/O есть код, который распознает экран в уже готовый грид объектов — стен, монстров, итд, что принципиально облегчает задачу обучения из пикселей.
Во-вторых, Марио детерминирован, поэтому сетка в MarI/O, насколько я понимаю, учит прежде всего уровень, а не игру вообще. Если уровни делать случайно, она ничему не научится.
Собственно, это в каком-то виде понятно, сравнив количество нодов и нейронов в нейросетях. Десятки против сотен тысяч, кажется.
Вот кстати DQN пытается играть в случайные уровни Марио — http://youtu.be/wfL4L_l4U9A. Видно, что он к концу часа что-то научается делать, но явно играет плохо и валится на простых для человека местах. Впрочем, всего час тренировать — неспортивно, а героев, которые тренировали сотню часов на Марио нет :(
Там, кстати, в последнем кадре видна диаграмма, и на ней есть слой Encoded Symbolic State S1, очень похожий на тот что в MarI/O.
И действительно, кругом обман :(
Надеюсь, хоть уровни честно рандомные
Никто не пробовал с этой технологией бота для какой-нибудь большой игры написать?
Ну вот как раз эти Deepmind после недавнего успеха AlphaGo вроде сказали, что следующим шагом может быть создание бота для старкрафта
Чем игра сложнее, тем хуже все это работает. Для игры должно быть достаточно исключительно состояния экрана и она должна играться на рефлексах.
Но вот новая версия алгоритма уже в 3d что-то делает: https://www.newscientist.com/article/2076552-google-deepmind-ai-navigates-a-doom-like-3d-maze-just-by-looking/

Это замечательно, что у нас столько прекрасных тренажеров есть :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации