Охота на электроовец. Большая книга искусственного интеллекта
Шрифт:
Также автоэнкодеры могут применяться для очистки сигнала от шума, в таком случае используют термин «шумоподавляющие автокодировщики» (Denoising Autoencoders, DAE) [1504] . При обучении такого автокодировщика мы можем добавлять на вход сети некоторый шум, стремясь на выходе получить образ до внесения в него шума.
К латентному пространству автокодировщика можно присоединить какую-либо семантическую информацию относительно входного образа, например возраст человека на фото или наличие у него бороды. Затем, на этапе работы декодера, можно подменить эти значения другими, тем самым заставив сеть изменить возраст человека на фото или пририсовать ему бороду. Нередко отдельные компоненты латентного представления сами по себе в результате обучения оказываются интерпретируемыми параметрами: их смысл можно обнаружить, наблюдая изменения, происходящие с образом при изменении отдельных компонентов латентного вектора. Словом, значение автокодировщиков
1504
Pascal V., Hugo L. (2010). Stacked Denoising Autoencoders: Learning Useful Representations in a Deep Network with a Local Denoising Criterion / Journal of Machine Learning Research. 11: 3371–3408 // http://www.jmlr.org/papers/volume11/vincent10a/vincent10a.pdf
Разобраться
1505
Pearson K. (1901). On Lines and Planes of Closest Fit to Systems of Points in Space / Philosophical Magazine. 2 (11): 559–572 // https://doi.org/10.1080/14786440109462720
1506
Kohonen T. (1981). Automatic formation of topological maps of patterns in a self-organizing system / Oja E., Simula O. (1981). Proceedings of the 2nd Scandinavian Conference on Image Analysis. Espoo: Suomen Hahmontunnistustutkimuksen Seura, pp. 214–220
1507
Kohonen T. (1982). Self-organized formation of topologically correct feature maps / Biological Cybernetics, Vol. 43, pp. 59—69 // https://doi.org/10.1007/BF00337288
1508
Kohonen T. (1984). Self-organization and associative memory. Springer-Verlag // https://books.google.ru/books?id=LYZQAAAAMAAJ
В 1984 г. Экли, Хинтон и Сейновски предложили [1509] решение, в котором набор входных образов сопоставляется с набором выходных образов через небольшой набор скрытых нейронов. В последующем году появилась публикация [1510] , посвящённая исследованию методов обучения такой сети.
Эта модель и получила название «машина Больцмана», в честь австрийского физика Людвига Больцмана, одного из основоположников статистической физики. Все синаптические связи между нейронами больцмановской машины — симметричные, а сами нейроны разделены на два множества — скрытые и видимые, где последние выполняют роль рецептивного слоя. Каждый нейрон может находиться в одном из двух состояний — «включённом» [on] и «выключенном» [off], причём это состояние он приобретает на основе некоторой функции вероятности от состояний нейронов, соединённых с нашим нейроном, и от синаптических весов этих связей. Синаптические веса являются действительными числами и могут принимать также и отрицательные значения. Довольно интересно здесь то, что авторы статьи не говорят о том, какая именно функция вероятности может быть использована в машине, что позволяет конструировать машины Больцмана на основе самых разных функций. Понятно, что классическим решением будет логистическая функция от суммы произведений состояний связанных нейронов (где «включённое» состояние соответствует 1, а «выключенное» — 0) на веса соответствующих связей. Каждый нейрон также имеет индивидуальную величину «смещения» [bias] (иногда также используется термин «порог» [threshold]), обозначаемую традиционно буквой ?. Смещение можно рассматривать как вес синапса, связывающего наш нейрон с особенным нейроном, находящимся в постоянно включённом состоянии.
1509
Hinton G. E., Sejnowski T. J., Ackley D. H. (1984). Boltzmann Machines: Constraint satisfaction network that learn. Technical Report No. CMU-CS-84-119. Pittsburgh, PA: Carnegie-Mellon University.
1510
Ackley D. H., Hinton G. E., Sejnowski T. J. (1985). A Learning Algorithm for Boltzmann Machines / Cognitive Science, Vol. 9, pp. 145—169 // https://doi.org/10.1207/s15516709cog0901_7
Хинтон и его коллеги рассматривали машину Больцмана как модель для решения задачи «удовлетворения ограничений» [constraint satisfaction], то есть задачи поиска набора значений переменных, удовлетворяющих определённому набору ограничений.
В математической статистике модели, подобные машине Больцмана, называют марковскими случайными полями.
Впрочем, достижением Хинтона и его коллег стало не только и не столько создание прямого нейросетевого аналога случайных марковских полей и присвоение ему имени австрийского физика (тем более что некоторые исследователи склонны рассматривать машину Больцмана в качестве разновидности сети Хопфилда), сколько идея использования для обучения таких сетей так называемого алгоритма имитации отжига [simulated annealing].
Название этого алгоритма отсылает нас ВНЕЗАПНО к металлургии, в которой отжигом называется вид термической обработки стали, заключающийся в нагреве заготовки до определённой температуры, выдержке в течение некоторого времени и последующем, обычно медленном, охлаждении до комнатной температуры. Из школьного курса физики мы знаем, что температура вещества пропорциональна средней кинетической энергии составляющих его частиц. Чем выше температура, тем быстрее движутся частицы, по мере же остывания их движение становится всё более медленным, и в случае с кристаллическими телами частицы постепенно всё ближе и ближе перемещаются к позициям, соответствующим узлам кристаллической решётки. В процессе остывания система приближается к состоянию, соответствующему энергетическому минимуму. В машине Больцмана таким энергетическим минимумом является состояние, при котором набор синаптических весов (включая смещения) и состояний нейронов находится в «полностью непротиворечивом состоянии» (когда состояния нейронов видимого слоя, установленные в результате инициализации сети, совпадают с их состояниями, рассчитанными на основе синаптических входов). Энергию системы создатели модели описывают при помощи следующей нехитрой формулы:
где wij —
где P — вероятность перехода, E — энергия в текущей точке, E’ — энергия в новой точке, T — температура.
На следующем шаге мы уменьшаем величину T и повторяем процедуру, пока температура не достигнет нуля, а энергия — минимума.
Обученную машину Больцмана можно использовать так же, как и любой другой автокодировщик, — либо для расчёта латентного вектора для прецедента, либо для генерации нового прецедента на основе заданного (например, случайного) латентного вектора.
Ограниченная машина Больцмана, предложенная изначально в 1986 г. Полом Смоленским под названием Harmonium, представляет собой частный случай машины Больцмана, получаемый путём добавления следующего ограничения: синаптические связи могут связывать только скрытые нейроны с видимыми (но не скрытые со скрытыми или видимые с видимыми).
Завершённая в 1987 г. диссертация [1511] Лекуна, публикации [1512] Галлинари и его коллег, а также Бурлара и Кампа [1513] заложили основы применения автокодировщиков.
1511
LeCun Y. (1987). Modeles connexionistes de l’apprentissage. PhD thesis, Universite de Paris VI // https://www.persee.fr/doc/intel_0769-4113_1987_num_2_1_1804
1512
Gallinari P., LeCun Y., Thiria S., Fogelman-Soulie F. (1987). Memoires associatives distribuees / Proceedings of COGNITIVA 87. Paris, La Villette // https://www.researchgate.net/publication/216792895_Memoires_associatives_distribuees_une_comparaison_distributed_associative_memories_a_comparison
1513
Bourlard H., Kamp Y. (1988). Auto-Association by Multilayer Perceptrons and Singular Value Decomposition / Biological Cybernetics, Vol. 59, Iss. 4—5, pp. 291–294 // https://doi.org/10.1007/BF00332918
В 1990-е и начале 2000-х гг. исследования автокодировщиков продолжались. Например, в 1991 г. свет увидела работа [1514] Марка Крамера из MIT, в которой было показано преимущество автоэнкодеров (сам Крамер использовал термин «автоассоциативные нейронные сети» (Autoassociative Neural Networks)) над классическим методом главных компонент. В 1990-е и начале 2000-х гг. основным центром исследования автокодировщиков была группа Джеффри Хинтона в Торонто. В это время активно изучаются [1515] , [1516] различные способы обучения таких сетей, позволяющие добиться наилучших результатов. Важным шагом вперёд становится появление глубоких сетей доверия — варианта ограниченной машины Больцмана с несколькими слоями скрытых нейронов (при этом допускаются связи между нейронами различных скрытых слоёв, но не внутри отдельного слоя). Для обучения таких сетей в начале 2000-х гг. в группе Хинтона применяли [1517] алгоритмы послойного обучения. Однако в целом можно сказать, что автокодировщики оставались в тени других нейросетевых моделей того времени (в первую очередь свёрточных и рекуррентных сетей). По всей видимости, в те годы многим исследователям казалось, что автокодировщики представляют главным образом теоретический интерес, а на практике могут применяться лишь в небольшом числе весьма специфических задач.
1514
Kramer M. A. (1991). Nonlinear principal component analysis using autoassociative neural networks / AIChE Journal, Vol. 37, No. 2, pp. 233—243 // https://doi.rog/10.1002/aic.690370209
1515
Hinton G. E., Zemel R. S. (1994). Autoencoders, minimum description length and Helmholtz free energy / Advances in neural information processing systems, Vol. 6, pp. 3—10.
1516
Hinton G. E., Salakhutdinov R. R. (2006). Reducing the Dimensionality of Data with Neural Networks / Science. — 2006-07-28. — Vol. 313, Iss. 5786, pp. 504—507 // https://dx.doi.org/10.1126%2Fscience.1127647
1517
Hinton G. E., Osindero S., Teh Y. W. (2006). A Fast Learning Algorithm for Deep Belief Nets // https://www.cs.toronto.edu/~hinton/absps/fastnc.pdf
Резкий рост интереса к автоэнкодерам начался уже в 2010-е гг. В 2011 г. была опубликована революционная работа исследователей из группы Юргена Шмидхубера в лаборатории искусственного интеллекта швейцарского института IDSIA (Istituto Dalle Molle di Studi sull’Intelligenza Artificiale, Институт исследований искусственного интеллекта Далле Молле) под названием «Сгруппированные свёрточные автокодировщики для извлечения иерархических признаков» (Stacked Convolutional Auto-Encoders for Hierarchical Feature Extraction) [1518] , в которой впервые описаны свёрточные автоэнкодеры [convolutional autoencoders], ставшие результатом комбинации автокодировщиков со свёрточными нейронными сетями. В свёрточном автоэнкодере роль кодировщика выполняет свёрточная сеть, а обратную ей роль декодера — развёрточная [deconvolutional].
1518
Masci J., Meier U., Ciresan D., Schmidhuber J. (2011). Stacked convolutional autoencoders for hierarchical feature extraction / International Conference on Artificial Neural Networks, pp. 52—59 // http://people.idsia.ch/~juergen/icann2011stack.pdf