Нейросеть для угадывания

Тема в разделе "Вопросы", создана пользователем NeuroNetter, 14 ноя 2017 в 00:31.

  1. NeuroNetter

    NeuroNetter Новичок

    Регистрация:
    Вторник
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    Здравствуйте!
    Являюсь разработчиком. С недавнего времени заинтересовался нейронными сетями. По обучалкам CMTV и прочим кратко ознакомился с нейронными сетями и методами обучения. В теории всё кажется простым и понятным, на практике же возникают вопросы.

    И вот для практики поставил себе предельно простую задачу:
    Есть игра "орёл-решка", есть статистика подбрасывания монеты, в которой записан номер броска и выпавшая сторона (орёл или решка).
    Нужно написать нейросеть и обучить её на основе имеющейся статистики так, чтобы нейросеть предсказывала результат следующего броска монеты, и, желательно номер и результат броска так же добавляла в свою базу знаний для обучения (училась походу игры).

    Но как подступиться к решению этой задачи с практической стороны, как-то смутно себе представляю. В какую сторону посоветуете копать и что изучить, чтобы выполнить эту задачу с практической точки зрения?
     
  2. NeuroNetter

    NeuroNetter Новичок

    Регистрация:
    Вторник
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    Никто не знает? Серьёзно?
    Ладно, давайте подойдём к вопросу последовательно.
    Итак, есть статистика подбрасывания монеты, допустим, 1000 бросков, статистика представляет собой таблицу:
    №Броска | Выпавшая сторона |

    Маловато данных, чем можем дополнить? Например, процентом выпадения той или иной стороны (орла или решки).
    Допустим, дополненная статистика имеет следующий вид:
    №Броска | Выпавшая сторона | Орёл% | Решка% |
    1 | Орёл | 100 | 0
    2 | Решка | 50 | 50
    3 | Решка | 33 | 66
    4 | Орёл | 50 | 50

    Возникает целый ряд вопросов, но начну с самого первого вопроса: какую порекомендуете задать архитектуру сети (количество слоёв и нейронов) и почему?
     
  3. Time_Master

    Time_Master Новичок

    Регистрация:
    Среда
    Сообщения:
    9
    Симпатии:
    4
    Баллы:
    3
    Пол:
    Мужской
    На мой взгляд, сама задачка безссмысленна. Известно из статистики, что вероятность 50/50, если монета "правильная". Исход следующего бросания не зависит от предыдущих бросков, поэтому нейросеть не найдет закономерностей. Соответственно обучатся не будет.
     
  4. NeuroNetter

    NeuroNetter Новичок

    Регистрация:
    Вторник
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    Можно статистику "подправить" в нужную сторону, чтобы было, допустим 60/40% или усложнить задачу.
    Тем не менее, вопрос остаётся прежним: с чего начать? с чего начать хотя бы проектирование? какую порекомендуете задать архитектуру сети (количество слоёв и нейронов) и почему?
     
  5. Time_Master

    Time_Master Новичок

    Регистрация:
    Среда
    Сообщения:
    9
    Симпатии:
    4
    Баллы:
    3
    Пол:
    Мужской
    В поставленной задачке скрытых закономерностей нет. Поэтому оптимально будет 3-х слойная нейросеть. Входной, скрытый и выходной слой. Так как нет причинно-следственных связей между предыдущими бросаниями и результатом текущего броска монеты размер входного вектора придется выбирать исходя из размеров базы примеров. Для обучения нейросети без ошибочного переобучения необходимо иметь примерно 5-10 примеров на один синапс нейросети. Тогда можно попробовать применить архитектуру 10-5-1. В такой нейросети 55-60 синапсов в зависимости от реализации алгоритма. Базы примеров из 1000 бросаний будет вполне достаточно. На вход подовать серии из 10 бросаний. Закодировать скажем 0-решка, 1-орел. Выход соответственно так же. Результат ответа обученной нейросети расматривать как вероятностный ответ. Скажем 0.4 это скорее решка чем орел с вероятностью 60%.
     
    NeuroNetter нравится это.
  6. NeuroNetter

    NeuroNetter Новичок

    Регистрация:
    Вторник
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    Спасибо за ответ!
    Скажите:
    1) А как Вы рассчитываете параметры нейросети? Количество синапсов? Количество нейронов? Что за архитектура 10-5-1? И т.д., где обо всём этом можно почитать? Мои знания о нейросетях сейчас весьма поверхностны, ощущается необходимость продолжить обучение в этой области, чтобы углубить знания и лучше разбираться в теме.
    2) В задаче "подбрасывания монеты" смущает то, что нейросеть не будет обучаться. А что если ещё чуть усложнить задачу, например, у нас какая-то "не правильная" монета, пусть среднее процентное соотношение будет 60/40, максимальное 65/35, минимальное 55/45? Т.е. с каждым броском вероятность выпадения той или иной стороны монеты будет меняться. Сможет ли в таких условиях нейросеть обучиться?
     
  7. Time_Master

    Time_Master Новичок

    Регистрация:
    Среда
    Сообщения:
    9
    Симпатии:
    4
    Баллы:
    3
    Пол:
    Мужской
    1. Почитать про нейросети можно здесь на сайте. Есть и полезные ссылки.
    2. По поводу задачки. Я не могу понять что вы хотите получит от нейросети? Результат следующего бросания предсказать не возможно. Нейросети не гадалки и предсказатели. Построить прогноз да, это возможно с использованием нейросети. Но в Вашей задаче возможен только вероятностный ответ. А вероятность выпадения Вы хотите изначально "подправить", то есть она известна. Зачем тогда вообще прогноз? Если вероятность выпадения не известна, то статистика Вам в помощь, зачем нужна нейросеть?
     
  8. NeuroNetter

    NeuroNetter Новичок

    Регистрация:
    Вторник
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Пол:
    Мужской
    Задача с монеткой - это первое, что пришло мне в голову. Какие задачи Вы бы порекомендовали выполнить, чтобы научиться работать с нейросетями? Не для распознавания образов (этим займусь позже), а именно для прогнозирования/предсказывания?
     

Поделиться этой страницей