Software quality assurance days
21 Международная конференция
по вопросам качества ПО
sqadays.com
Москва. 26–27 мая 2017
Михаил Чумаков
TechOps. Москва, Россия.
Тестирование нейронных сетей
Тестирование нейронных сетей
Докладчик
Профессионально тестирую 10 лет
Внедряю автоматизацию
Контролирую качество
Управляю командами тестировщиков
Работал в стартапах и enterprise
Disclaimer
Тестирование нейронных сетей
Содержание
- теория
- применение
- тестирование
- проблемы
Что за сети?
Тестирование нейронных сетей
Что за сети
Тестирование нейронных сетей
Что за сети
Алгоритмы Нейронные сети
VS.
Тестирование нейронных сетей
Применение нейронных сетей:
● социальные сети
● рекомендательные
сервисы - показывать
то что купит
пользователь
● работа с
изображением,
текстом, звуком.
Тестирование нейронных сетей
Применение нейронных сетей:
● поисковые системы
● анализ (текст, звук,
изображения и т.д.)
● классификация
Тестирование нейронных сетей
Применение нейронных сетей:
● биоинформатика
(расшифровка генома)
● финансовый сектор
● построение
суррогатных моделей -
предсказательное
моделирование (что
если?)
Тестирование нейронных сетей
Виды машинного обучения
● Нейронные сети
● Глубинное обучение
Тестирование нейронных сетей
Виды машинного обучения
● Обучение деревьев принятия решений
● Обучение правилам ассоциации
● Индуктивное логическое программирование
● Метод опорных векторов
● Кластерный анализ
● Байесовская сеть
● Обучение с подкреплением
● Обучение представлению (функциональное обучение)
● Обучение сходству и метрикам
● Генетический алгоритм
● Обучение на скудном словаре
● Основанное на правилах машинное обучение
● Системы обучающихся классификаторов
● Нейронные сети
● Глубинное обучение
Тестирование нейронных сетей
Обучение деревьев принятия решений
Тестирование нейронных сетей
Как работают нейронные сети?
Тестирование нейронных сетей
Как работают нейронные сети?
Тестирование нейронных сетей
Как работают нейронные сети?
Тестирование нейронных сетей
Как работают нейронные сети?
Переменные наблюдаемые Переменные скрытые
Тестирование нейронных сетей
Искусственный нейрон
Нейрон - линейный классификатор
Тестирование нейронных сетей
Обучение НС. Виды обучений
- Обучение с учителем
- Обучение без учителя
Тестирование нейронных сетей
Обучение с учителем
Тестирование нейронных сетей
Обучение без учителя
Тестирование нейронных сетей
Обучение НС. Виды обучений
● Обучение с учителем
● Обучение без учителя
● Обучение с подкреплением
● Активное обучение
● Обучение с частичным привлечением учителя
● Трансдуктивное обучение (англ. transduction
(machine learning))
● Многозадачное обучение (multi-task learning)
● Многовариантное обучение (multiple-instance
learning)
Тестирование нейронных сетей
Виды нейронных сетей
● Персептрон
● Свёрточная НС
● Рекуррентная НС
Тестирование нейронных сетей
Персептрон
Модель нейронной
сети, разработанная в
1957 г.
Тестирование нейронных сетей
Персептрон
Свёрточные нейронные сети
Тестирование нейронных сетей
Рекуррентные сети
“Помнят” что было на предыдущем слое.
Есть развития с более сложной логикой
Тестирование нейронных сетей
Виды нейронных сетей
● Персептрон
● Физическая НС
● Модулярная НС
● Сеть радиально - базисных функций
● НС с прямой связью
● Свёрточная НС
● Рекуррентная НС
Тестирование нейронных сетей
Тестирование нейронных сетей
Кто работает над продуктами с ИНС
Тестирование нейронных сетей
Кто работает над продуктами с ИНС
Тестирование нейронных сетей
Кто работает над продуктами с ИНС
● API
● Анализ текста,
изображения,
голоса
● Перевод
Тестирование нейронных сетей
Кто работает над продуктами с ИНС
Поиск с помощью рисунка
1. Работает только с
вектором
1. Поиск по мере рисования
наброска
2. Это позволяет не
переводить идею в
словоформы
3. Это позволяет искать
иконку по её очертаниям
4. Работа с вектором - очень
экономит “железо”
http://ai.icons8.com/
Ещё один сервис - CAPTCHA
Идея простая:
Пользователь не робот, если
смог нарисовать
предложенную иконку.
Да, мы изобретаем очередной велосипед
Да, скорее всего, это не составит труда
хакнуть
Мы надеемся хипстерам это понравится
http://captcha.icons8.com/
Тестирование нейронных сетей
Тестирование Нейронных сетей
FrontendFrontend Backend
AI
Тестирование нейронных сетей
Как мы тестировали
● Собрали данные
● Сделали выборки
● Обучали
● Тестировали на других выборках
Тестирование нейронных сетей
Как мы тестировали
● Собрали данные - 50000
● Сделали выборки - 4 штуки
● Обучали - 20-100 на одну картинку, 20 картинок на одну
сеть
● Тестировали на других выборках - микс из выборок
Тестирование нейронных сетей
Тестирование нейронных сетей
Проблемы машинного обучения
● Необходимость больших объёмов данных (обучающие выборки)
● Пропуски в данных (часть переменных пропущена)
● Ошибки в данных
● Прогнозирование необходимых переменных
● Экспериментальность в подборе количество нейронов в слое, самих слоёв.
● Проблема переобучения
● Большая вычислительная мощность
Тестирование нейронных сетей
Обучающие выборки
Тестирование нейронных сетей
Обучающие выборки
Тестирование нейронных сетей
Переобучение
Переобучение — явление, когда построенная модель хорошо объясняет примеры из
обучающей выборки, но относительно плохо работает на примерах, не участвовавших в
обучении (на примерах из тестовой выборки).
Тестирование нейронных сетей
Переобучение
Тестирование нейронных сетей
Переобучение
Тестирование нейронных сетей
Переобучение
Тестирование нейронных сетей
Применение нейронных сетей в тестировании
● Инструменты для обработки данных в
файлах
● Фреймворки для тестирования
визуальной части
● Возможно, помощь в выборе тестовых
данных
● Существуют исследования в применении
нейронных сетей в тестировании ПО
Тестирование нейронных сетей
Инструменты
- Matlab
- Github
Тестирование нейронных сетей
Что было в докладе?
1. Где применяются сети?
2.1. Машинное обучение - подходы (НС,
ГО)
2.2. Нейронные сети:
2.2.1. Обучение. Типы обучений
2.2.2. Типы нейронных сетей
2.3. Глубокое обучение
3. Применения
3.1. как я это тестировал
4. Проблемы нейронных сетей
Тестирование нейронных сетей
Контакты
aino@techops.ru
ainomc@gmail.com
https://ru.linkedin.com/in/mchumakov
Тестирование нейронных сетей
За кадром● История ML
● Обучение с подкреплением (средний вариант)
● Этическая сторона вопроса
● Квантовое машинное обучение
● Data Mining
● Нейрокомпьютеры
● Transfer learning (нейропластичность)
● Классические методы машинного обучения
Как мы параметризуем вектор
Определяем точки
пересечения
Сразу решается проблема
деформаций
1
Рассчитываем каждую точку
2
Сразу скалируем длину до интервала
(0,1)
Как мы мучали ИИ
Как мы учили ИИ
50.000
пользовательских
скриблов

Тестирование Нейронных сетей

Editor's Notes

  • #9 Запутано про скрытые состояние / параметры / входы
  • #10 Запутано про скрытые состояние / параметры / входы
  • #11  Добавить логотипы Слишком много пунктов - убрать со слайдов то о чём не говоришь Применение - разбить по разделам (фан, реальность) Выделить пункты про которые говоришь
  • #12 Слишком много пунктов - убрать со слайдов то о чём не говоришь Применение - разбить по разделам (фан, реальность) Выделить пункты про которые говоришь
  • #13 Слишком много пунктов - убрать со слайдов то о чём не говоришь Применение - разбить по разделам (фан, реальность) Выделить пункты про которые говоришь
  • #14 оставить три
  • #15 оставить три
  • #16 картинка на весь слайд или 50 процентов
  • #17 Запутано про скрытые состояние / параметры / входы
  • #18 Запутано про скрытые состояние / параметры / входы
  • #19 Запутано про скрытые состояние / параметры / входы
  • #20 Запутано про скрытые состояние / параметры / входы
  • #21 Один заголовок, нижний текст сделать заметным Проверить про линейный процессор
  • #22 3 пункта и многие другие
  • #25 3 пункта и многие другие
  • #26 Убрать НС = сеть сделать 3 штуки
  • #27 Более понятная картинка, объяснить своими словами
  • #28 Более понятная картинка, объяснить своими словами
  • #30 Связать повествование со слайдами Убрать if > 1
  • #31 Убрать НС = сеть сделать 3 штуки
  • #32 Замыленная картинка, много текста, выровнять
  • #33 Взять хорошие картинки с сайтов продуктов, по одному
  • #34 Взять хорошие картинки с сайтов продуктов, по одному
  • #35 Взять хорошие картинки с сайтов продуктов, по одному
  • #36 Взять хорошие картинки с сайтов продуктов, по одному
  • #37 Убрать пункты, сделать на весь слайд
  • #38 Разделать на два слайда (сначала картинка, потом текст)
  • #39 Порядок, как рассказываю
  • #40 Порядок, как рассказываю
  • #41 Порядок, как рассказываю
  • #42 Порядок, как рассказываю
  • #43 Порядок, как рассказываю
  • #44 Формулировка, как в проблеме (в списке)
  • #45 Убрать зелёную плашку
  • #46 Убрать текст
  • #49 На весь экран картинку
  • #50 На весь экран картинку
  • #51 Matlab / Github
  • #54 Фулл скрин с библиотекой