2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Определение человека по клавиатурному набору, нейросеть.
Сообщение09.01.2010, 03:34 


09/01/10
3
Всем доброго времени суток. У меня вот такая тема диплома.

1.Я написал кейлоггер, он собирает логи такого типа

18761458|160|0
18761474|90|0
18761698|8|1
18761858|8|0
18762034|160|1
18762066|164|1
18762154|164|0
18762234|160|0
18762322|160|1


таймер-код клавиши-нажата или отпущена

2.теперь надо выбрать нейросеть и понять какой лог ей нужен, ну и обучать ее.

какие варианты существуют?
какую сеть выбрать? что подавать в нее?
Кохоннена? и подаваь время которое была нажата одна клавиша и какое друга, и врем биграмм?

так реально?
можно попробовать подавать на вход такой вектор
t1|x1|t2|x2|...|tn|xn
где ai = (ti|xi) - информация о клавиатурном событии (время и тип
события). т.е а1...an - это память о n событиях.
тогда на вход сети будут подаваться выборки:
1: а1...an
2: а2...an+1
...
так можно попытаться заставить сеть самостоятельно определить нужные
вторичные параметры типа скорости набора и времени удержания



собственно вопрос-какую нейросеть выбрать лучше и в какой программе обучать=)
спасибо)

 Профиль  
                  
 
 Re: Определение человека по клавиатурному набору, нейросеть.
Сообщение09.01.2010, 16:23 
Заслуженный участник


09/08/09
3438
С.Петербург
На мой взгляд, прежде, чем выбирать архитектуру нейросети, надо убедиться в том, что данных, собираемых Вашим логером, достаточно для более-менее надежного распознавания человека, работающего на клавиатуре. Для этого, мне кажется, надо накопить данные по нескольким людям и попытаться вручную (без всяких нейросетей) выделить в этих данных некоторые паттерны, которые позволяют распознать конкретного оператора. Выделение таких паттернов и есть основная сложность в Вашей задаче; а уж какую нейросеть использовать - это дело второе. Например, если Вы хотите использовать в качестве одного из классифицирующих признаков время удержания определённой клавиши (или клавиш), то сначала неплохо бы убедиться, что эти времена для разных людей отличаются сильнее, чем для одного человека в разные моменты времени.

Некоторые моменты, на которые, как мне кажется, стоит обратить внимание:
1. Скорость работы на клавиатуре может существенно меняться в зависимости от физического и "душевного" состояния человека.
2. Существенное значение имеет характер выполняемой работы: на каком языке выполняется набор, насколько часто человек задумывается при наборе текста, печатает он под диктовку, с листа, или из головы и многое другое.
3. При обучении слепому десятипальцевому методу набора специальное внимание уделяется ритмичности и чёткости нажатия клавиш, поэтому чем лучше человек работает на клавиатуре, тем сложнее его "узнать".
4. Огромное значение имеет сама клавиатура: данные, полученные на эргономичной клавиатуре, могут качественно отличаться от данных, полученных на клавиатуре попроще.

Кстати, а как у Вас ставится задача? Распознавание оператора во время "обычной" работы или при выполнении каких-нибудь специальных упражнений?

По поводу входных данных: использование абсолютных отсчётов времени представляется не очень разумным: нейросеть распознаёт повторяющиеся входные образцы, поэтому абсолютное время в качестве входного параметра малопригодно.

 Профиль  
                  
 
 Re: Определение человека по клавиатурному набору, нейросеть.
Сообщение09.01.2010, 19:06 


09/01/10
3
Maslov в сообщении #278900 писал(а):
На мой взгляд, прежде, чем выбирать архитектуру нейросети, надо убедиться в том, что данных, собираемых Вашим логером, достаточно для более-менее надежного распознавания человека, работающего на клавиатуре. Для этого, мне кажется, надо накопить данные по нескольким людям и попытаться вручную (без всяких нейросетей) выделить в этих данных некоторые паттерны, которые позволяют распознать конкретного оператора. Выделение таких паттернов и есть основная сложность в Вашей задаче; а уж какую нейросеть использовать - это дело второе. Например, если Вы хотите использовать в качестве одного из классифицирующих признаков время удержания определённой клавиши (или клавиш), то сначала неплохо бы убедиться, что эти времена для разных людей отличаются сильнее, чем для одного человека в разные моменты времени.

Некоторые моменты, на которые, как мне кажется, стоит обратить внимание:
1. Скорость работы на клавиатуре может существенно меняться в зависимости от физического и "душевного" состояния человека.
2. Существенное значение имеет характер выполняемой работы: на каком языке выполняется набор, насколько часто человек задумывается при наборе текста, печатает он под диктовку, с листа, или из головы и многое другое.
3. При обучении слепому десятипальцевому методу набора специальное внимание уделяется ритмичности и чёткости нажатия клавиш, поэтому чем лучше человек работает на клавиатуре, тем сложнее его "узнать".
4. Огромное значение имеет сама клавиатура: данные, полученные на эргономичной клавиатуре, могут качественно отличаться от данных, полученных на клавиатуре попроще.

Кстати, а как у Вас ставится задача? Распознавание оператора во время "обычной" работы или при выполнении каких-нибудь специальных упражнений?

По поводу входных данных: использование абсолютных отсчётов времени представляется не очень разумным: нейросеть распознаёт повторяющиеся входные образцы, поэтому абсолютное время в качестве входного параметра малопригодно.



1.данные 4х людей у меня уже есть
2.насчет душевного состояния и настроения-наскольтко я понимаю, лучше сделать так-человек проверется программой, и после програама когд удостоверилась что это за человек, начнинает работать в режиме обучения дальнейшего, чтобы сть обучалась ждальше, так можно уйти от проблемы изменения скорости его письма итжд итп
3.насчет разных клавиатур-это верно, но в моем случае не планируетс смена клавиатуры, и все люди работают за своей клавиатурой и не меняют ее
4.у меня задача ставится так "определение пользоватлся по калвиатурному набору" это диплом. насколько я понимаю-если нейросеть будет плорхо работать-это тоже результат, так что в данном случае я бы хотел посоветоватьс что на входе давать в нее и какую выбрать...
5.таймер в логе легко передалать...там выбрано абсоютное значение для того чтобы этот лог легко преобразовывалсяв любой другой...

 Профиль  
                  
 
 Re: Определение человека по клавиатурному набору, нейросеть.
Сообщение09.01.2010, 20:12 
Заслуженный участник


09/08/09
3438
С.Петербург
Что-то конкретное посоветовать достаточно сложно: для этого надо иметь опыт в решении именно Вашей задачи. Что же касается общих рекомендаций, то я бы начал с выделения некоторых типовых последовательностей нажатий клавиш (например, некоторых заранее известных слов) и попытался проанализировать, можно ли на основе этих данных надежно различать разных операторов. Дело в том, что люди набирают текст все-таки словами, поэтому тайминг нажатия клавиш в процессе набора определенного слова может, на мой взгляд, нести весьма существенную информацию для распознавания "наборщика".

umnicus в сообщении #278972 писал(а):
5.таймер в логе легко передалать...там выбрано абсоютное значение для того чтобы этот лог легко преобразовывалсяв любой другой...
Я говорил не про лог, а про входные данные для нейросети:
umnicus в сообщении #278746 писал(а):
можно попробовать подавать на вход такой вектор
t1|x1|t2|x2|...|tn|xn
где ai = (ti|xi) - информация о клавиатурном событии (время и тип события)
Кроме этого, следует учитывать, что стандартный системный таймер (по крайней мере, в Windows) имеет разрешение порядка 10 мс, что может оказаться недостаточно для Ваших целей.

umnicus в сообщении #278972 писал(а):
4.у меня задача ставится так "определение пользоватлся по калвиатурному набору" это диплом. насколько я понимаю-если нейросеть будет плорхо работать-это тоже результат
С одной стороны, это, конечно, так. Но с другой стороны, было бы интересно понять причину такого результата:
1. Задача в указанной постановке не решается в принципе.
2. Задача решается, но инструмент (НС) не годится для её решения.
3. И задача решается, и инструмент годится, но применяется инструмент неправильно.

И ещё раз спрошу:
Maslov в сообщении #278900 писал(а):
Кстати, а как у Вас ставится задача? Распознавание оператора во время "обычной" работы или при выполнении каких-нибудь специальных упражнений?

(Оффтоп)

При ответе не надо цитировать всё сообщение; цитируйте только те фрагменты, на которые отвечаете.

 Профиль  
                  
 
 Re: Определение человека по клавиатурному набору, нейросеть.
Сообщение09.01.2010, 22:24 


09/01/10
3
Цитата:
Кроме этого, следует учитывать, что стандартный системный таймер (по крайней мере, в Windows) имеет разрешение порядка 10 мс, что может оказаться недостаточно для Ваших целей.


Это у меня кейлоггер учитывает, в нем свой таймер точность 1мс, так что с этим все в порядке.

Цитата:
С одной стороны, это, конечно, так. Но с другой стороны, было бы интересно понять причину такого результата:
1. Задача в указанной постановке не решается в принципе.
2. Задача решается, но инструмент (НС) не годится для её решения.
3. И задача решается, и инструмент годится, но применяется инструмент неправильно.


для начала надо получить хоть какие-то результаты....
я пока даже не выбрал нейросеть и программув которой оан быдет реализована...
вот поэтому туту спрашиваю.

Цитата:
И ещё раз спрошу:
Maslov в сообщении #278900 писал(а):
Кстати, а как у Вас ставится задача? Распознавание оператора во время "обычной" работы или при выполнении каких-нибудь специальных упражнений?


никаких конкретных указаний по этому поводу не было.
между слов консультант мой говорил что может быть в будушем можно будет сделать клоиент -серверную архитектуру,чтобы клиенты посылали на сервер лог в реальном времен и сервер контроллировал рботу пользователей.
то есть как таово от аеня хотя одного-чтобы я научился с неросетью работать и чтобы она хоть чего то определяла у меня...я так понимаю=)
спасибо)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Rasool


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group