От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
Тестирование Нейронных сетей
1. Software quality assurance days
21 Международная конференция
по вопросам качества ПО
sqadays.com
Москва. 26–27 мая 2017
Михаил Чумаков
TechOps. Москва, Россия.
Тестирование нейронных сетей
10. Тестирование нейронных сетей
Применение нейронных сетей:
● социальные сети
● рекомендательные
сервисы - показывать
то что купит
пользователь
● работа с
изображением,
текстом, звуком.
14. Тестирование нейронных сетей
Виды машинного обучения
● Обучение деревьев принятия решений
● Обучение правилам ассоциации
● Индуктивное логическое программирование
● Метод опорных векторов
● Кластерный анализ
● Байесовская сеть
● Обучение с подкреплением
● Обучение представлению (функциональное обучение)
● Обучение сходству и метрикам
● Генетический алгоритм
● Обучение на скудном словаре
● Основанное на правилах машинное обучение
● Системы обучающихся классификаторов
● Нейронные сети
● Глубинное обучение
24. Тестирование нейронных сетей
Обучение НС. Виды обучений
● Обучение с учителем
● Обучение без учителя
● Обучение с подкреплением
● Активное обучение
● Обучение с частичным привлечением учителя
● Трансдуктивное обучение (англ. transduction
(machine learning))
● Многозадачное обучение (multi-task learning)
● Многовариантное обучение (multiple-instance
learning)
36. Поиск с помощью рисунка
1. Работает только с
вектором
1. Поиск по мере рисования
наброска
2. Это позволяет не
переводить идею в
словоформы
3. Это позволяет искать
иконку по её очертаниям
4. Работа с вектором - очень
экономит “железо”
http://ai.icons8.com/
37. Ещё один сервис - CAPTCHA
Идея простая:
Пользователь не робот, если
смог нарисовать
предложенную иконку.
Да, мы изобретаем очередной велосипед
Да, скорее всего, это не составит труда
хакнуть
Мы надеемся хипстерам это понравится
http://captcha.icons8.com/
40. Тестирование нейронных сетей
Как мы тестировали
● Собрали данные - 50000
● Сделали выборки - 4 штуки
● Обучали - 20-100 на одну картинку, 20 картинок на одну
сеть
● Тестировали на других выборках - микс из выборок
42. Тестирование нейронных сетей
Проблемы машинного обучения
● Необходимость больших объёмов данных (обучающие выборки)
● Пропуски в данных (часть переменных пропущена)
● Ошибки в данных
● Прогнозирование необходимых переменных
● Экспериментальность в подборе количество нейронов в слое, самих слоёв.
● Проблема переобучения
● Большая вычислительная мощность
45. Тестирование нейронных сетей
Переобучение
Переобучение — явление, когда построенная модель хорошо объясняет примеры из
обучающей выборки, но относительно плохо работает на примерах, не участвовавших в
обучении (на примерах из тестовой выборки).
49. Тестирование нейронных сетей
Применение нейронных сетей в тестировании
● Инструменты для обработки данных в
файлах
● Фреймворки для тестирования
визуальной части
● Возможно, помощь в выборе тестовых
данных
● Существуют исследования в применении
нейронных сетей в тестировании ПО
51. Тестирование нейронных сетей
Что было в докладе?
1. Где применяются сети?
2.1. Машинное обучение - подходы (НС,
ГО)
2.2. Нейронные сети:
2.2.1. Обучение. Типы обучений
2.2.2. Типы нейронных сетей
2.3. Глубокое обучение
3. Применения
3.1. как я это тестировал
4. Проблемы нейронных сетей
53. Тестирование нейронных сетей
За кадром● История ML
● Обучение с подкреплением (средний вариант)
● Этическая сторона вопроса
● Квантовое машинное обучение
● Data Mining
● Нейрокомпьютеры
● Transfer learning (нейропластичность)
● Классические методы машинного обучения
54. Как мы параметризуем вектор
Определяем точки
пересечения
Сразу решается проблема
деформаций
1
Рассчитываем каждую точку
2
Сразу скалируем длину до интервала
(0,1)
56. Как мы учили ИИ
50.000
пользовательских
скриблов
Editor's Notes
Запутано про скрытые состояние / параметры / входы
Запутано про скрытые состояние / параметры / входы
Добавить логотипы
Слишком много пунктов - убрать со слайдов то о чём не говоришь
Применение - разбить по разделам (фан, реальность)
Выделить пункты про которые говоришь
Слишком много пунктов - убрать со слайдов то о чём не говоришь
Применение - разбить по разделам (фан, реальность)
Выделить пункты про которые говоришь
Слишком много пунктов - убрать со слайдов то о чём не говоришь
Применение - разбить по разделам (фан, реальность)
Выделить пункты про которые говоришь
оставить три
оставить три
картинка на весь слайд или 50 процентов
Запутано про скрытые состояние / параметры / входы
Запутано про скрытые состояние / параметры / входы
Запутано про скрытые состояние / параметры / входы
Запутано про скрытые состояние / параметры / входы
Один заголовок, нижний текст сделать заметным
Проверить про линейный процессор
3 пункта и многие другие
3 пункта и многие другие
Убрать НС = сеть
сделать 3 штуки
Более понятная картинка, объяснить своими словами
Более понятная картинка, объяснить своими словами
Связать повествование со слайдами
Убрать if > 1
Убрать НС = сеть
сделать 3 штуки
Замыленная картинка, много текста, выровнять
Взять хорошие картинки с сайтов продуктов, по одному
Взять хорошие картинки с сайтов продуктов, по одному
Взять хорошие картинки с сайтов продуктов, по одному
Взять хорошие картинки с сайтов продуктов, по одному
Убрать пункты, сделать на весь слайд
Разделать на два слайда (сначала картинка, потом текст)