212
Глава 7.
Простейшие нейронные сети
библиотеки.нейронных.сетей.Java,.такие.как.TensorFlow.и.PyTorch,.не.только.
задействуют.SIMD-инструкции,.но.и.широко.применяют.вычисления.на.GPU..
Поскольку.графические.процессоры.специально.оптимизированы.для.быстрых.
векторных.вычислений,.это.на.порядок.ускоряет.работу.нейронных.сетей.по.
сравнению.с.работой.только.на.центральном.процессоре.
Подчеркну.еще.раз:.
вы вряд ли станете строить нейронную сеть для практической
работы, используя только стандартную библиотеку Java, как мы делали в этой
главе
..Вместо.этого.следует.задействовать.хорошо.оптимизированную.библиотеку.
с.поддержкой.SIMD.и.GPU,.такую.как.TensorFlow..Единственным.исключением.
будет.библиотека.нейронных.сетей,.предназначенная.для.обучения,.или.библи-
отека,.которая.должна.работать.на.встроенном.устройстве,.не.поддерживающем.
SIMD-инструкции.и.не.имеющем.GPU.
7.7. ПРОБЛЕМЫ И РАСШИРЕНИЯ
НЕЙРОННЫХ СЕТЕЙ
Благодаря.достижениям.в.области.глубокого.обучения.нейронные.сети.сейчас.
в.моде,.но.у.них.есть.существенные.недостатки..Самая.большая.проблема.заклю-
чается.в.том,.что.решение.задачи.в.нейронной.сети.—.это.что-то.вроде.черного.
ящика..Даже.когда.нейронные.сети.работают.хорошо,.они.не.позволяют.пользо-
вателю.детально.разобраться.в.том,.как.именно.они.решают.проблему..Например,.
классификатор.набора.данных.ирисов,.над.которым.мы.работали.в.этой.главе,.не.
особенно.ясно.показывает,.насколько.каждый.из.четырех.входных.параметров.
влияет.на.выходные.данные..Что.важнее.для.классификации.образца.—.длина.
или.ширина.чашелистика?
Возможно,.тщательный.анализ.окончательных.весов.в.обученной.сети.может.дать.
некоторое.представление.об.этом,.но.он.нетривиален.и.не.дает.такого.понима-
ния,.которое.дает,.скажем,.линейная.регрессия.с.точки.зрения.значения.каждой.
переменной.в.моделируемой.функции..Другими.словами,.нейронная.сеть.может.
решить.задачу,.но.не.объясняет,.как.именно.это.делает.
Другая.проблема.нейронных.сетей.заключается.в.том,.что.для.обеспечения.точ-
ности.им.часто.нужны.очень.большие.наборы.данных..Представьте.себе.класси-
фикатор.изображений.для.пейзажей..Возможно,.потребуется.классифицировать.
тысячи.различных.типов.изображений.(леса,.долины,.горы,.ручьи,.степи.и.т..п.)..
Потенциально.для.этого.потребуются.миллионы.обучающих.образов..Нужны.
будут.миллионы.обучающих.изображений..Такие.большие.наборы.данных.не.
только.трудно.найти.—.для.некоторых.приложений.их.может.вообще.не.существо-
вать..Как.правило,.хранилищами.данных.и.техническими.средствами.для.сбора.
7.7. Проблемы и расширения нейронных сетей
213
и.хранения.таких.объемных.наборов.данных.располагают.крупные.корпорации.
и.правительства.
Наконец,.нейронные.сети.д
ó
роги.с.вычислительной.точки.зрения..Даже.про-
стое.обучение.на.наборе.данных.среднего.размера.может.вызвать.перегрузку.
компьютера..И.это.не.просто.наивные.реализации.нейронных.сетей..На.любой.
вычислительной.платформе,.где.применяются.нейронные.сети,.выполняется.
огромное.количество.вычислений.для.обучения.сети.—.ничто.другое.не.занимает.
так.много.времени..Существует.множество.приемов,.позволяющих.повысить.про-
изводительность.нейронной.сети,.например.применение.SIMD-инструкций.или.
графических.процессоров,.но.в.любом.случае.обучение.нейронной.сети.требует.
большого.количества.операций.с.плавающей.точкой.
Один.из.приятных.нюансов.—.то,.что.в.вычислительном.отношении.обучение.
обходится.намного.дороже,.чем.использование.сети..Некоторые.приложения.не.
требуют.постоянного.обучения..В.этих.случаях.обученную.сеть.можно.просто.
вставить.в.приложение.для.решения.задачи..Например,.первая.версия.платформы.
Apple.Core.ML.даже.не.поддерживает.обучение..Она.только.помогает.разработ-
чикам.приложений.запускать.предварительно.обученные.модели.нейронных.
сетей.в.своих.приложениях..Разработчик,.создающий.приложение.для.обработки.
фотографий,.может.загрузить.модель.классификации.изображений.с.открытой.
лицензией,.вставить.ее.в.Core.ML.и.сразу.же.начать.задействовать.эффективное.
машинное.обучение.в.своем.приложении.
В.этой.главе.мы.работали.с.нейронной.сетью.только.одного.типа.—.с.прямой.
связью.и.обратным.распространением..Как.уже.упоминалось,.существует.много.
других.видов.нейронных.сетей..Сверточные.нейронные.сети.также.имеют.прямую.
связь,.но.у.них.есть.несколько.типов.скрытых.слоев,.различные.механизмы.рас-
пределения.весов.и.другие.интересные.свойства,.из-за.чего.они.особенно.хорошо.
подходят.для.классификации.изображений..В.рекуррентных.нейронных.сетях.
сигналы.не.просто.движутся.в.одном.направлении.—.такие.сети.допускают.петли.
обратной.связи..Эти.сети.оказались.полезными.для.приложений.непрерывного.
ввода,.распознающих.написанное.от.руки.и.прочитанное.вслух.
Простым.расширением.нейронной.сети,.которое.могло.бы.сделать.ее.более.про-
изводительной,.было.бы.добавление.нейронов.смещения..
Нейроны смещения
.
подобны.фиктивным.нейронам.в.слое,.который.позволяет.предоставлять.вы-
ходным.данным.следующего.слоя.больше.функций,.обеспечивая.подачу.на.него.
постоянного.входного.сигнала.(все.еще.измененного.посредством.весов)..Даже.
простые.нейронные.сети,.используемые.для.реальных.задач,.обычно.содержат.
нейроны.смещения..Если.вы.добавите.такие.нейроны.в.созданную.здесь.сеть,.
то,.вероятно,.обнаружите,.что.для.достижения.аналогичного.уровня.точности.
потребуется.меньше.времени.на.обучение.
Do'stlaringiz bilan baham: |