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, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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