Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Следите за руками: Python, умные часы и нейронные сети

Следите за руками: Python, умные часы и нейронные сети

Глеб Ивашкевич @ MoscowPython 37

Умные часы и фитнес-браслеты могут показывать не только число шагов и время, но и много других вещей. Чтобы их извлечь, нам понадобится Python, машинное обучение и умение удивляться. Заодно узнаем, что нейронные сети в Python - это просто и быстро.

Moscow Python Meetup

July 21, 2016
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. Носимые устройства и безопасность Можно ли распознать ПИН-код с помощью

    умных часов? Да Каким образом? С помощью данных со встроенных сенсоров
  2. Носимые устройства и безопасность Можно ли распознать ПИН-код с помощью

    умных часов? Да Каким образом? С помощью данных со встроенных сенсоров Это сложно? Нет
  3. Восстановление ПИН-кода 22% - одна попытка, одно наблюдение 35% -

    три попытки, одно наблюдение 53% - три попытки, три наблюдения 0,03% - три попытки, наугад
  4. Сбор данных: сенсоры часы: Sony SmartWatch 3 + приложение (Android

    Wear) сенсоры: акселерометр, гироскоп частота: ~50Hz (SENSOR_DELAY_GAME) количество: ~200K точек
  5. Сбор данных: обучающая выборка 8 1 5 7 1 81

    81 8 15 5 57 57 7 номера классов (one-hot) сенсоры клавиши
  6. Нейронная сеть: keras inpt = Input(shape=[SLICE_DT, 3]) x = Convolution1D(128,

    3, activation='relu', border_mode='same')(inpt) x = MaxPooling1D(2, border_mode='same')(x) x = Dropout(0.5)(x) x = Convolution1D(128, 3, activation='relu', border_mode='same')(x) x = MaxPooling1D(2, border_mode='same')(x) x = Flatten()(x) x = Dropout(0.5)(x) x = Dense(Y.shape[1], activation='softmax')(x) model = Model(inpt, x) model.compile(optimizer='adagrad', loss='categorical_crossentropy') model.fit(Xtr, Ytr, nb_epoch=500, batch_size=BATCH_SIZE, shuffle=True, validation_data=(Xcv, Ycv) keras functional API сверточный слой max-pooling слой dropout слой тренировка
  7. Нейронная сеть: keras - высокоуровневый интерфейс - поддержка GPU -

    прост в использовании - можно покопаться внутри
  8. Нейронная сеть: предсказания 8 1 5 7 сенсоры 8 8

    8 8 8 1 1 8 8 1 1 1 1 1 1 8 1 5 7 1 1 5 5 5 5 5 5 5 5 7 7 5 5 7 7 7 7 7 7 8
  9. Восстановление ПИН-кода 22% - одна попытка, одно наблюдение 35% -

    три попытки, одно наблюдение 53% - три попытки, три наблюдения 0,03% - три попытки, наугад