Опубліковано 22.02.2017
Говорити про машинне навчання або машинне навчання Сьогодні це може бути ще щось цікаве і для багатьох невідоме, але правда полягає в тому, що воно присутнє більше, ніж ми думаємо. Ми використовуємо його щодня та несвідомо під час перегляду веб-сторінок в Інтернеті, коли ми консультуємось із нашими соціальними мережами або навіть роблячи покупку.
Що таке машинне навчання?
Машинне навчання - це тип штучного інтелекту, розроблений для того, щоб комп’ютерні програми могли вчитися на нашій поведінці та використанні технологій. Таким чином, покращується взаємодія з користувачем, і навіть можуть бути запропоновані нові утиліти або послуги.
Ця система виявляє моделі поведінки та пристосовує програму до потреб користувача. Одним з найвідоміших прикладів є Facebook, який використовує машинне навчання, щоб виявити, що цікавить користувача, і запропонувати їм відповідний вміст на своїй стіні. Але це може бути зроблено на крок далі, як ми пояснимо в цьому дописі, і змусимо систему навчитися розпізнавати певні рухи або жести, і тим самим створити нову систему спілкування, де жест є мовою між людиною та машиною.
У цьому невеликому відео ви побачите, як ми здійснили весь процес, який ми пояснимо нижче:
Чому машинне навчання настільки популярне?
Тепер ми маємо дані
Щоб машинне навчання було дійсно ефективним, йому потрібен великий обсяг даних та якість його роботи. Отримати ці дані буває важче, ніж змоделювати сам алгоритм.
Завдяки використанню великих даних, де зберігається якомога більше інформації для обробки та вилучення відфільтрованих та відповідних даних, машинне навчання може швидко розвиватися.
"Перемагає не той, хто має найкращий алгоритм, а найбільше даних"
При достатній кількості добре структурованих даних необов’язково використовувати найкращий алгоритм, остаточна точність змінюватиметься лише на десяті частки.
Тепер у нас є хмарні обчислення
Однією з основних причин того, що машинне навчання раніше втрачало вагу, була висока його обчислювальна вартість.
Ми знаємо, що для того, щоб результат був ефективним, необхідно використовувати великий набір даних, на якому буде здійснюватися множення матриць, головним чином, щоб пристосувати дані до конкретної моделі, яку потрібно навчити.
Однак потужності обладнання обмежені, як в обробці, так і в пам'яті, що означало, що шукалися інші обчислювально більш легкі альтернативи. Сьогодні це вже не проблема, оскільки існує безліч хмарних сервісів, які дозволяють працювати з величезними обсягами даних та виконувати обробку за лічені хвилини, що може зайняти тисячі років на одному звичайному комп’ютері.
Зараз ми маємо інструменти та ресурси
Це, мабуть, було найважливішим прогресом за останні роки. Не тільки розроблені нові інструменти та основи для машинного навчання, такі як TensorFlow, Caffe, Keras, Torch, Deepnet тощо; Але також створено безліч публічних ресурсів для тестування та навчання в різних областях, таких як обробка природної мови, класифікація зображень, розпізнавання тексту тощо.
Одним з найважливіших наборів даних, на якому навіть проводяться змагання, і який має глобальний рейтинг, є популярний MNIST - набір зображень із вільними цифрами, на яких досягнуто точності 99,7%. Іншими словами, прямо зараз можливо, що машина може ідентифікувати будь-яку цифру, написану будь-ким, починаючи з попереднього навчання з цим набором даних, тобто вона зазнає невдачі лише в середньому 3 рази з кожних 1000 спроб.
Як ми застосовуємо машинне навчання в Neosentec?
Серед іншого, ми застосовували його для виявлення обличчя (наприклад, за допомогою Spooface) або для класифікації зображень для проектів доповненої реальності, але ми хочемо зосередитись на іншому проекті, набагато рідше поширеному, з яким ми грали в наша лабораторія.
Виявлення жестів на носимих пристроях
Ви пам’ятаєте фільм “Звіт меншин”, де головний герой керував безліччю екранів, роблячи жести руками?
Вже можна зробити щось подібне за допомогою глибинних камер, таких як Kinect або Magic Leap, але обидва вимагають використання в приміщенні, щоб жести були видимими для камер, і, очевидно, попередня установка цих пристроїв.
Але уявіть собі тепер, коли ми знімаємо всі попередні обмеження, і ми даємо можливість керувати будь-яким пристроєм за допомогою простого браслета, навіть якщо його не видно. Це те, що ми грали.
Процес
Ми вирішили потренувати простий жест, відомий як "подвійне перевертання", в результаті чого відбувся подвійний поворот у 2 напрямки на одній осі.
Першим кроком було отримання даних, для цього ми використали носимий прототип з акселерометром та датчиками гіроскопа, здатний вимірювати сили та кути повороту в 3 вимірах. За допомогою чого ми отримуємо 6 графіків, подібних показаним нижче.
Ми встановили тривалість кожного жесту 2 секунди і почали з того, що взяли 1000 негативних проб (рухів усіх видів, які не включали ту, яку ми хочемо виявити), і вони були позначені як "негативні".
Пізніше ми зробили те саме, але взяли 100 позитивних проб, тобто, виконавши жест, який ми хотіли тренувати, 100 разів і позначивши їх як "подвійне перевертання".
Для навчання ми використали бібліотеку Google TensorFlow, застосувавши простий алгоритм логістичної регресії, поєднуючи нормовані значення 6 попередніх графіків, що дало матрицю з 1100 зразків х 1200 характеристик (200 на графік). Незважаючи на використання простого алгоритму та дуже обмеженої кількості зразків, результати були повністю задовільними, досягнувши точності 95%.
Як ми вже бачили, можливості машинного навчання практично нескінченні і можуть бути застосовані до будь-якого сектору чи проекту, навіть для таких нетипових ідей, як ми представили.
- 9 маленьких жестів, щоб отримати форму, не помічаючи (майже)
- Кілька простих жестів для схуднення, які вже були перевірені - циферблат Cadena
- Продукти для схуднення та інші міфи про те, як добре чи погано робить нам те, що ми їмо - Press
- Жіночі спортивні трусики Тренер на талії Неопренові сауни Контрольні труси для спалювання жиру
- 9 причин кинути палити, про які ви, можливо, не чули