Традиционные программы и механизмы, основанные на правилах, имеют определенный набор инструкций и деревьев решений, которые работают с входными данными для определения выходных данных. Есть определенные области, где у нас есть богатая интерпретация входных данных, определяющих результат. Но мы не можем позволить себе роскошь постоянно выявлять корреляцию между входными и выходными данными — например: — глядя на МРТ-сканирование, чтобы определить, есть ли у пациента или может ли он заболеть болезнью Альцгеймера. Это сложные проблемы, и в этих случаях глубокие нейронные сети оказались довольно мощными, чтобы определить выходные данные для тестового ввода с учетом обучающего набора входных и выходных данных.

Как специалисты по машинному обучению, мы сталкиваемся с разными проблемами. Некоторые задачи имеют богатые наборы данных с точками данных, покрывающими широкий диапазон выборочного пространства, некоторые — нет. В случае, когда данных недостаточно для обучения сети, инженеры пытались понять основные входные данные, чтобы найти закономерности корреляции с выходными данными. Другими словами, была предпринята попытка интерпретировать данные, и «интерпретируемость» была названа полезным инструментом. Давайте попробуем глубже понять эту потребность в «интерпретируемости». Глубокие нейронные сети используются для решения сложных задач, таких как автономные транспортные средства или принятие решений в сложных операциях. Вообще говоря, из-за того, что эта технология новая, мы боимся нейронных сетей, в первую очередь потому, что не понимаем, как они работают. Это общие причины/мысли о том, почему часть сообщества машинного обучения/глубокого обучения поддерживает «интерпретируемость».

· Понимание данных — чтобы дать нам уверенность в модели и в том, что она работает.

· Устранение неполадок и отладка — если что-то пойдет не так с выводом (например: операция пойдет не так или машина сбила пешехода, мы хотим понять, как отлаживать модель)

· Подотчетность — Если модель неверна, кто виноват? Это из-за данных обучения или команды, которая построила модель?

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

Это веские причины, но они маскируют основную причину того, почему мы не полностью «доверяем» этим глубоким нейронным сетям. Со временем мы начнем верить в них так же, как сейчас верим в технологии, которых не существовало несколько лет назад — например, автопилоты для самолетов или некоторых поездов. Если мы сможем проверить качество обучающих/тестовых данных и почти бесконечный набор (например, масштаб набора данных ImageNet), обучение модели улучшится благодаря точной настройке гиперпараметров и эпох.

Я хотел бы привести пример и здесь. Был эксперимент, в котором нейронной сети давали набор данных пациентов с пневмонией с симптомами и просили предсказать, выживет ли они. Нейронная сеть предсказала, что пациенты, у которых уже есть астма, имеют больше шансов на выживание. Для опытного медицинского глаза это явно звучит неправильно. Причина этого предсказания становится немного яснее, когда мы анализируем это дальше. Пациенты с астмой или сердечными заболеваниями уделяют особое внимание своему дыханию. Таким образом, если такой пациент заметит аномалии в дыхании, он, скорее всего, попадет в больницу, чтобы проверить это. Это НЕ означает, что лучшее понимание этих данных или их «интерпретация» привели бы нас к лучшей модели.

Глубокие нейронные сети полезны в тех случаях, когда у нас нет широкого понимания базовых данных. Есть и другие способы убедиться, что мы не обнаруживаем ложных срабатываний. Несколько вариантов, которые я считаю полезными:

1. Анализ чувствительности. Это анализ для определения того, как на выходные данные нейронной сети влияют ее входные данные и/или изменения веса. Это статистический анализ, который не обязательно зависит от знания самих данных, но от понимания эффектов настройки гиперпараметров при моделировании глубокой нейронной сети.

2. Исключение выборки нейронов: при использовании полносвязных нейронных сетей соседние сети развивают взаимозависимость друг от друга. Dropout предотвращает взаимозависимое обучение между нейронами. Когда некоторые нейроны отбрасываются, ожидается, что другие нейроны «вступят», чтобы компенсировать эти отсутствующие нейроны. Было доказано, что это уменьшает переобучение при моделировании глубоких нейронных сетей.

В заключение и подчеркнув важность обучающих данных, я хотел бы указать на две ключевые статьи, которые эффективно это демонстрируют.

· Мишель Банко и Эрик Билл из Microsoft написали статью на эту тему на http://www.aclweb.org/anthology/P01-1005.

· Питер Норвиг и его команда из Google написали культовую статью по адресу https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/35179.pdf.