Для начала следовало бы определиться с тем, что мы понимаем под повышением эффективности глубокого обучения?
- Уменьшение времени обучения сети.
- Уменьшение требований сети к памяти.
- Уменьшение требований сети к качеству входных данных.
- Возможно, что-то ещё.
Ввиду специфики портала останавливаться на каждом пункте отдельно я не буду, а дам общий ответ по всем.
Методы глубокого обучения - это всего-лишь подмножество итерационных методов апроксимации. И это никогда не следует забывать. Глубокое обучение - это не волшебная палочка, решающая все задачи, и для повышения его эффективности нужно максимально конкретно определиться с тем:
- Подходит-ли глубокое обучение для данной задачи и нет-ли точных численных или аналитических методов, решающих данную задачу? Дело в том, что глубокое обучение, как и любой метод апроксимации, получает решение с некоторой заранее заданной погрешностью, в следствие чего всегда уступает точным методам, разработанным специально для решения данной задачи, если таковые вообще имеются. Соответственно, глубокое обучение - это крайняя мера, на которую следует идти только, если другие методы отсутствуют или слишком дороги.
- Какую функцию Вы пытаетесь аппроксимировать? Игнорирование данного вопроса - это одна из самых распространённых ошибок, особенно у начинающих. Так, например, в задаче распознавания эмоций по фотографии следует понимать, что сеть будет способна лишь восстановить функцию реакции мышц лица(например) на соответствующую эмоцию(и это ещё не считая засветки и прочих нюансов самой съёмки). Соответственно, работать это будет только если у группы подопытных эта функция более или менее одинаковая. Для людей же с эмоциональными отклонениями в психике данный метод ничего разумного показать не сможет.
- Является ли набор исходных данных достаточно полным? То есть действительно-ли он содержит все данные, необходимые для восстановления исходной функции. Данный вопрос особенно важен для задач классификации, но и при построении регрессии его игнорировать не стоит. Так, например, при построении регрессии часто подмешивание небольших помех к данным, внезапно, повышает точность как раз по причине того, что в реальных условиях ваша нейронная сеть будет всегда получать данные с небольшой примесью случайных помех. То есть все варианты одного и того же вектора исходных данных с наложением всевозможных помех соответствуют всё тому же выходному вектору, что и эталонный вектор входных данных, на который помех не накладывали.
- Для задач классификации, также, важно понимать, что Ваше семейство классов, на которые вы хотите разбить исходное множество, должно иметь оператор эквивалентности, порождающий искомое семейство классов именно на том множестве признаков, на которых Вы хотите обучать сеть. То есть, если Вы будете пытаться разбить исходное множество на классы по некоторому принципу, для которого нельзя сформулировать корректный оператор эквивалентности, порождающий данное семейство классов, то результаты будут значительно хуже, если будут вообще. Так, например, при распознавании букв и цифр часто не придают значения тому, что буква 'O' визуально похожа на цифру '0', считая, что нейронка, мол, сама разберётся. Но нейронка может сама разобраться в такой проблеме только, если в исходных данных достаточно признаков хорошо коррелирующих с одним из данных классов. Иначе найденный оператор эквивалентности попросту будет относить представителей обоих классов к одному и будет прав.
Есть ещё много важных моментов, учёт которых позволяет значительно увеличить эффективность глубокого обучения, но это уже выходит за рамки формата данного портала. Поэтому в качестве вывода скажу:
Для повышения эффективности глубокого обучения нужно как можно глубже понимать как особенности решаемой задачи так и математику, лежащую в основе используемых Вами методов глубокого обучения.