О мыслях и способах их выражения
20-08-2009 03:31
к комментариям - к полной версии
- понравилось!
Стал замечать за собой странную особенность: мысль обгоняет её выражение. Когда я пишу какой-то текст, каждую фразу я могу несколько раз прокручивать про себя, выбирая наиболее подходящий вариант. Потом, напечатав, я смотрю на то, что получилось, и вижу, что из фразы выкинута середина. Получается, что к тому времени, когда я дохожу до середины фразу при наборе, в мыслях я уже давно занимаюсь концом, и пальцы сами переходят на него.
С другой стороны, получается, что набираю я уже совершенно не задумываясь. На клавиатуру ещё иногда смотрю, но только по привычке, на слепой набор могу перейти, просто отбросив взгляд, но не перестав печатать, при том, что никогда ему не учился. Но дело даже не в том, что я не смотрю, куда нажимаю. Дело в том, что я не задумываюсь о том, что набираю.
Впрочем, скорость набора меня таки не радует. И у меня наконец-то дошли руки сдвинуть с мёртвой точки дело решения проблемы более совершенных интерфейсов. Я откопал в интернета две замечательные библиотеки: pynia -- она получает данные с OCZ NIA, заносит их в массив и ещё раскладывает их в ряд Фурье, он мне и нужен был; и bpnn -- простейшая нейросеть, обучающаяся с учителем. Потом написал на Питоне двухпоточную программу, которая в одном потоке с вероятностью 0,5 либо включала на полсекунды звук (просто писала массив значений синуса в файл /dev/dsp), либо на то же время засыпала, а в другом брала текущее значение спектра с энцефалографа. Между потоками была общая переменная, показывающая включён ли звук (её значения выставлял первый поток). Её значение вместе с рядом Фурье писал в список второй поток.
В спектре pynia берёт 40 гармоник, а за время эксперимента я набрал 170 пар спектр/звук (первый поток только после своего завершения выставлял в истину значение переменной, позволяющей второму перестать писать данные). И попробовал на них обучить нейросеть. И сразу же понял, что интерпретируемый высокоуровневый язык -- это не всего хорошо. Только один проход по нейросети занял около минуты. Я это дело бросил, решив, что на первый раз и десяти пар хватит. Десять минут обучения - и ничего. Точнее, выход сети почему-то сразу ушёл в -1 и не хотел оттуда возвращаться. Надо думать. С одной стороны, надо регулировать число скрытых нейронов. С другой, для сорока входов нужно было бы хотя бы четыреста пар. А я и десять с трудом прогнал. Буду искать нейросети на Си, только так, чтобы можно их прицепить к питону. Потому что Си - это здорово, но мой мозг уже съеден чёртовой динамической типизацией и функциями -- объектами первого класса, поэтому всё писать на Си уже как-то не хочется. Только боттлнеки.
вверх^
к полной версии
понравилось!
в evernote