реклама на сайте
подробности

 
 
> Машинное обучение по известному поведению, Какие алгоритмы используются? Как реализовать?
syoma
сообщение Oct 30 2016, 07:30
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



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

Я так понимаю, это связано с нейросетями, но сам с ними не знаком. Мне кажется эта задача должна сравнительно легко решаться.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Guest_TSerg_*
сообщение Oct 30 2016, 19:54
Сообщение #2





Guests






Цитата(syoma @ Oct 30 2016, 10:30) *
Я так понимаю, это связано с нейросетями,

Не обязательно.

Есть нечеткая логика ("Fuzzy logic"). Придумана и обоснована моим земляком Лотфи Заде (Lotfi Askar Zadeh).
P.S.
"Предметом нечёткой логики считается исследование рассуждений в условиях нечёткости, размытости, сходных с рассуждениями в обычном смысле, и их применение в вычислительных системах"

В целом же, посмотрите сколько "на коленках" придумано методов принятия решений для систем поддержки принятия решений (Decision Support System, DSS):
- информационный поиск;
- интеллектуальный анализ данных;
- поиск знаний в базах данных;
- рассуждение на основе прецедентов;
- имитационное моделирование;
- эволюционные вычисления и генетические алгоритмы;
- нейронные сети;
- ситуационный анализ;
- когнитивное моделирование;
- нечеткая логика;
- др.
Go to the top of the page
 
+Quote Post
enclis_
сообщение Dec 14 2016, 13:08
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 119
Регистрация: 21-09-09
Из: Москва
Пользователь №: 52 501



Цитата(TSerg @ Oct 30 2016, 22:54) *
Не обязательно.

Есть нечеткая логика ("Fuzzy logic") ...

Нейронные сети в каком-то смысле есть обобщение нечёткой логики и систем принятия решений. В общем случае нейронные сети работают лучше чем нечёткая логика.

Цитата(syoma)
Но как быть с моментом времени для этого события?

Вам уже написали, что здесь наверное подойдут рекуррентные нейронные сети (LSTM, GRU итд). Для анализа временных рядов можно также попробовать сверточные нейронные сети.
Если втупую бустинг, деревья или нейронные сети не дают требуемой точности, то надо смотреть какие признаки больше влияют на результат и отбрасывать те, которые почти не влияют на него.




Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Dec 16 2016, 18:25
Сообщение #4





Guests






Цитата(enclis_ @ Dec 14 2016, 16:08) *
Если втупую ..

Топику стоит выложить часть логов и задачу в целом - это многим интересно и ожидаются бесплатные подсказки.
Go to the top of the page
 
+Quote Post
syoma
сообщение Dec 19 2016, 11:33
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата(TSerg @ Dec 16 2016, 21:25) *
Топику стоит выложить часть логов и задачу в целом - это многим интересно и ожидаются бесплатные подсказки.

Да логи есть любые.
Например, вот лог от датчика освещения, датчика движения и состояния диммера в различное время суток(утром, днем, вечером):
CODE

10/10/16 07:17:03.234 /myhome/state/Lumin_Hall 9
10/10/16 07:18:03.239 /myhome/state/Lumin_Hall 9
10/10/16 07:19:03.250 /myhome/state/Lumin_Hall 10
10/10/16 07:19:12.732 /myhome/state/Hall_motion OPEN
10/10/16 07:19:12.745 /myhome/command/Light_Hall/state 25
10/10/16 07:19:19.330 /myhome/state/Hall_motion CLOSED
10/10/16 07:19:32.358 /myhome/command/Light_Hall/state 0
10/10/16 07:20:03.240 /myhome/state/Lumin_Hall 10
10/10/16 07:20:45.698 /myhome/state/Hall_motion OPEN
10/10/16 07:20:45.714 /myhome/command/Light_Hall/state 25
10/10/16 07:20:56.337 /myhome/state/Hall_motion CLOSED
...
10/09/16 15:14:14.743 /myhome/state/Lumin_Hall 1000
10/09/16 15:15:14.803 /myhome/state/Lumin_Hall 1000
10/09/16 15:16:14.884 /myhome/state/Lumin_Hall 1000
10/09/16 15:16:26.837 /myhome/state/Hall_motion OPEN
10/09/16 15:16:33.975 /myhome/state/Hall_motion CLOSED
10/09/16 15:16:36.948 /myhome/state/Hall_motion OPEN
10/09/16 15:16:47.991 /myhome/state/Hall_motion CLOSED
10/09/16 15:16:51.524 /myhome/state/Hall_motion OPEN
10/09/16 15:16:55.989 /myhome/state/Hall_motion CLOSED
10/09/16 15:17:14.917 /myhome/state/Lumin_Hall 1000
10/09/16 15:18:14.979 /myhome/state/Lumin_Hall 1000
10/09/16 15:19:15.043 /myhome/state/Lumin_Hall 1000
10/09/16 15:19:23.918 /myhome/state/Hall_motion OPEN
10/09/16 15:19:35.155 /myhome/state/Hall_motion CLOSED
10/09/16 15:19:37.060 /myhome/state/Hall_motion OPEN
10/09/16 15:19:51.172 /myhome/state/Hall_motion CLOSED
10/09/16 15:20:03.101 /myhome/state/Hall_motion OPEN
10/09/16 15:20:11.197 /myhome/state/Hall_motion CLOSED
10/09/16 15:20:15.103 /myhome/state/Lumin_Hall 1000
...
10/08/16 19:56:23.492 /myhome/state/Lumin_Hall 15
10/08/16 19:57:23.480 /myhome/state/Lumin_Hall 12
10/08/16 19:58:23.480 /myhome/state/Lumin_Hall 11
10/08/16 19:59:23.477 /myhome/state/Lumin_Hall 15
10/08/16 19:59:58.442 /myhome/state/Hall_motion OPEN
10/08/16 19:59:58.458 /myhome/command/Light_Hall/state 100
10/08/16 20:00:02.684 /myhome/state/Hall_motion CLOSED
10/08/16 20:00:15.699 /myhome/command/Light_Hall/state 0
10/08/16 20:00:23.477 /myhome/state/Lumin_Hall 11
10/08/16 20:00:26.161 /myhome/state/Hall_motion OPEN
10/08/16 20:00:26.175 /myhome/command/Light_Hall/state 100
10/08/16 20:00:30.699 /myhome/state/Hall_motion CLOSED
10/08/16 20:00:41.180 /myhome/state/Hall_motion OPEN
10/08/16 20:00:41.194 /myhome/command/Light_Hall/state 100
10/08/16 20:00:47.696 /myhome/state/Hall_motion CLOSED
10/08/16 20:00:50.205 /myhome/state/Hall_motion OPEN
10/08/16 20:00:50.226 /myhome/command/Light_Hall/state 100
10/08/16 20:00:55.696 /myhome/state/Hall_motion CLOSED

Lumin_Hall - текущая освещенность - <20 - это темно, 1000 - это день. Hall_motion - датчик движения в коридоре Open - движение есть, Close нет. Light_Hall/state - состояние светильника 100 - максимальная яркость, 25 - низкая яркость, 0 - выключен. Такие логи есть по многим параметрам - температура на улице, статистика включения света на кухне, в туалете, управление жалюзями и т.д. Запись логов ведется круглосуточна и будет доступна за года и месяцы.
Вопрос - как с помощью машинного обучения из этих логов выделить закономерности, что Темно -> Вечер -> Есть движение -> Включили свет на полную, но в то же время Темно -> Утро -> Есть движение -> Включили свет на минимум, а днем вообще свет не включается? Т.е. чтобы после того, как закономерности найдены, полученный алгоритм мог бы сам управлять светом без ручного программирования алгоритма управления (как собственно обычно сегодня реализуется в системах УД).

Т.е. как бы вырисовывается такая концепция обучения умного дома:
- ставим умный дом и датчики, выясняем у жильцов, что им примерно хочется.
- включаем нужные модули в режим обучения, ждем, пока не соберется нужно количество данных, пока пользователи продолжают все делать вручную - т. е. изучаем привычки пользователей.
- переключаем модули в режим исполнения. Оставляем пользователям кнут и пряник для дальнейшего самообучения - если свет вдруг включился, когда не нужно, или наоборот не включился когда нужно, пользователь должен иметь возможность указать контроллеру на ошибку, а контроллер уточнить входные данные.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- syoma   Машинное обучение по известному поведению   Oct 30 2016, 07:30
- - count_enable   Почитайте статьи известного Geohot'a. Он добил...   Oct 30 2016, 08:03
- - tujhjd   Ну как бы я б глядел в сторону Python. Библиотека ...   Nov 11 2016, 05:10
|- - syoma   Цитата(tujhjd @ Nov 11 2016, 08:10) Ну ка...   Nov 11 2016, 11:33
|- - TSerg   Цитата(syoma @ Nov 11 2016, 14:33) Но как...   Nov 11 2016, 13:54
|- - tujhjd   Цитата(syoma @ Nov 11 2016, 15:33) Спасиб...   Nov 21 2016, 04:20
- - count_enable   Вообще не понимаю зачем здесь какое-то машинное об...   Dec 19 2016, 16:48
|- - syoma   ЦитатаКажется кто-то стреляет даже не из пушки, а ...   Dec 19 2016, 20:40
|- - count_enable   Цитата(syoma @ Dec 19 2016, 23:40) А хочу...   Dec 19 2016, 22:49
- - TSerg   С учетом того, что энергосберегайки (разные) не до...   Dec 19 2016, 21:26
|- - syoma   Цитата(TSerg @ Dec 20 2016, 00:26) С учет...   Dec 19 2016, 21:34
|- - TSerg   Цитата(syoma @ Dec 20 2016, 00:34) Есть L...   Dec 19 2016, 22:01
- - syoma   ЦитатаИли подождите лет 20-30, или сделайте хотя б...   Dec 20 2016, 10:57
- - count_enable   Тогда это стандартная задача по System Identificat...   Dec 20 2016, 11:21
- - syoma   Цитата(count_enable @ Dec 20 2016, 14:21)...   Dec 20 2016, 11:44


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 21:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01398 секунд с 7
ELECTRONIX ©2004-2016