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

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


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

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



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

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


Местный
***

Группа: Свой
Сообщений: 294
Регистрация: 28-01-13
Из: Испания
Пользователь №: 75 384



Почитайте статьи известного Geohot'a. Он добился значительного успеха в создании автопилота, обучая нейронку на примере своей езды. Сеть "смотрит" сенсорами и пытается уловить закономерности, почему живой водитель ведёт себя так или иначе.

Для временных сценариев отлично подходят рекуррентные НС. Это стандартный метод анализа и прогнозирования временных рядов, машинного перевода, генерации текстов. Готовые библиотеки есть в матлабе - вообще можно всё кликая мышкой сделать, или использовать популярные сейчас Caffe/Theano.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Oct 30 2016, 19:54
Сообщение #3





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
tujhjd
сообщение Nov 11 2016, 05:10
Сообщение #4





Группа: Участник
Сообщений: 10
Регистрация: 30-01-06
Пользователь №: 13 751



Ну как бы я б глядел в сторону Python. Библиотека sklearn.
Втупую - решающие деревья попробовать бы попробовал. Может и пойдет такая модель. Ествественно зависит от объема данных обучающих.
https://habrahabr.ru/post/202090/ - для понимания примерного.

Но в этой библиотеке есть все инструменты, надо только научиться ими пользоваться.
Go to the top of the page
 
+Quote Post
syoma
сообщение Nov 11 2016, 11:33
Сообщение #5


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

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



Цитата(tujhjd @ Nov 11 2016, 08:10) *
Ну как бы я б глядел в сторону Python. Библиотека sklearn.
Втупую - решающие деревья попробовать бы попробовал. Может и пойдет такая модель. Ествественно зависит от объема данных обучающих.
https://habrahabr.ru/post/202090/ - для понимания примерного.
Но в этой библиотеке есть все инструменты, надо только научиться ими пользоваться.

Спасибо. Но вот я чего не понимаю - в статье описывается статистика и алгоритмы, направленные на то, чтобы найти корреляцию между различными признаками, без объяснения почему они вдруг влияют на результат. Это понятно.
Например задача по Титанику - есть результат и признаки, без объяснения зависимостей.
Но у меня на входе - временные данные. Т.е. в общем случае это лог-файл. Получается, чтобы их обработать алгоритмом, мне нужно их перевести в какой-то другой формат, аналогичный указанному в статье.
Вопрос как это сделать, если важно не столько выполнение/невыполнение события (аналогично с примером из Титаника можно считать включение/невключение света как спасся/не спасся). Но как быть с моментом времени для этого события?
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Nov 11 2016, 13:54
Сообщение #6





Guests






Цитата(syoma @ Nov 11 2016, 14:33) *
Но как быть с моментом времени для этого события?

Времена года (зима, осень, весна, лето); время суток (утро, полдень, вечер, ночь); погода ( безоблачно, облачно, туман, дождь, снег..) и т.д.
Т.е. сделать кластеризацию.
Go to the top of the page
 
+Quote Post
tujhjd
сообщение Nov 21 2016, 04:20
Сообщение #7





Группа: Участник
Сообщений: 10
Регистрация: 30-01-06
Пользователь №: 13 751



Цитата(syoma @ Nov 11 2016, 15:33) *
Спасибо. Но вот я чего не понимаю - в статье описывается статистика и алгоритмы, направленные на то, чтобы найти корреляцию между различными признаками, без объяснения почему они вдруг влияют на результат. Это понятно.
Например задача по Титанику - есть результат и признаки, без объяснения зависимостей.
Но у меня на входе - временные данные. Т.е. в общем случае это лог-файл. Получается, чтобы их обработать алгоритмом, мне нужно их перевести в какой-то другой формат, аналогичный указанному в статье.
Вопрос как это сделать, если важно не столько выполнение/невыполнение события (аналогично с примером из Титаника можно считать включение/невключение света как спасся/не спасся). Но как быть с моментом времени для этого события?


А временной момент вам действительно нужен? Может он вообще никак не влияет? А если нужен - ну ок, правильно выше написали, отнесите конкретное значение времени к одному из классов. Типа - утро, день, вечер, ночь. ДАлее - можете уточнять (раннее утро, утро, позднее утро и т.д.).
Это не суть. Важнее понять как эту всю информацию использовать в дальнейшем.
Go to the top of the page
 
+Quote Post
enclis_
сообщение Dec 14 2016, 13:08
Сообщение #8


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

Группа: Свой
Сообщений: 101
Регистрация: 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
Сообщение #9





Guests






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

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


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

Группа: Свой
Сообщений: 1 640
Регистрация: 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
count_enable
сообщение Dec 19 2016, 16:48
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 294
Регистрация: 28-01-13
Из: Испания
Пользователь №: 75 384



Вообще не понимаю зачем здесь какое-то машинное обучение.

Базовый набор правил, задаваемый примитивным конечным автоматом.
Есть движение - включаем свет пропорционально уровню освещенности.

Какой другой сценарий предполагается? Светить, когда никого нет каждую Пятницу, 13? В День Земли вырубать всю РЭА на территории? Если человек вошел два раза и вышел на протяжении одной минуты, начать моргать морзянкой "Нефиг шляться, человечишко"?

Кажется кто-то стреляет даже не из пушки, а из ЗРК по воробьям и пытается допилить радар чтобы ракеты наводились на птичек, а не самолёты.
Go to the top of the page
 
+Quote Post
syoma
сообщение Dec 19 2016, 20:40
Сообщение #12


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

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



Цитата
Кажется кто-то стреляет даже не из пушки, а из ЗРК по воробьям и пытается допилить радар чтобы ракеты наводились на птичек, а не самолёты.

В этом-то и смысл - современный смартфоновый процессор в 1000 раз мощнее обычного восьмибитника. Почему-бы не использовать это преимущество?

Цитата(count_enable @ Dec 19 2016, 18:48) *
Вообще не понимаю зачем здесь какое-то машинное обучение.
Базовый набор правил, задаваемый примитивным конечным автоматом.
Есть движение - включаем свет пропорционально уровню освещенности.

Конечно можно решить автоматом, как оно собственно и решено в тех логах. Но для этого нужно данный алгоритм разработать и настроить. А это первая проблема - вот не хочу я заниматься программированием каждого чиха в том числе и таких простых вещей. А хочу, чтобы один или два раза показал, и робот, как слуга начал повторять и с каждым разом все лучше и лучше. Весь смысл в том, чтобы убрать программирование. Вообще. И пусть для этого хоть триллион вычислений понадобится - компьютерное время сейчас дешевое.
Цитата
Какой другой сценарий предполагается? Светить, когда никого нет каждую Пятницу, 13? В День Земли вырубать всю РЭА на территории? Если человек вошел два раза и вышел на протяжении одной минуты, начать моргать морзянкой "Нефиг шляться, человечишко"?

А я не знаю и не хочу знать, какие сценарии предполагаются. Вот такие требования.
Кто-то хочет поярче, кто-то потемнее. У кого-то глаза чувствительные, у кого-то нет. Кому-то надо поспать, кто-то рано встает. Кто-то включает свет и вечером и утром, а кто-то только вечером. Или только утром. Сценарии могут быть разные, но решение - одинаковым.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Dec 19 2016, 21:26
Сообщение #13





Guests






С учетом того, что энергосберегайки (разные) не допукают диммирования - это вообще все туфта.
Регулировать количеством?
Go to the top of the page
 
+Quote Post
syoma
сообщение Dec 19 2016, 21:34
Сообщение #14


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

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



Цитата(TSerg @ Dec 20 2016, 00:26) *
С учетом того, что энергосберегайки (разные) не допукают диммирования - это вообще все туфта.
Регулировать количеством?

Есть LED, которые прекрасно диммируются.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Dec 19 2016, 22:01
Сообщение #15





Guests






Цитата(syoma @ Dec 20 2016, 00:34) *
Есть LED, которые прекрасно диммируются.

Ну да, если это не просто стандартная LED лампочка.

В общем случае, задача не решается.
В один и тот же коридор входят по-очереди:
- нормальный чел;
- чел в инвалидной коляске;
- чел с пониженным зрением
- чел на костылях с пониженным зрением
и т.д.
И хто будет их желания распознавать?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th November 2017 - 01:12
Рейтинг@Mail.ru


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