В этом эксперименте я использовал результаты маркетингового исследования своей диссертации, проведенного с участием реальных людей, чтобы изменить ядро ​​CNN. Идея заключалась в том, чтобы добавить человеческую рациональность для решения задачи MNIST с помощью различительного нейронного клеточного автомата. Также был добавлен остаточный слой для имитации человеческой памяти. Результаты показывают, что нейронная сеть вела себя как 5-летний ребенок.

Стоит прочитать.

___________________________________________________________________

В моей докторской диссертации, еще в 2006 году, я изучал бизнес-администрирование, и у меня появилась идея совместить концепции электронной инженерии с бизнесом. В то время я знал, что междисциплинарность — это способ генерировать инновационные решения. Это решение позволило мне получить полную стипендию от университета. После обширного обзора литературы в течение двух лет обучения в магистратуре, где я изучал социальные сети, мне пришла в голову идея симулировать человеческие взаимодействия, происходящие в реальном мире, в частности, восприятие качества профессиональных услуг.

Вначале я изучал возможности и познакомился с генетическими алгоритмами, изучая работы Мелани Митчелл (1996) и Джона Холланда. Так как раньше я работал стоматологом, я знал генетику, кроссовер, мутацию и другие понятия из биологии. Концепция эволюции и естественного отбора вдохновила меня и открыла мне глаза на другие жизненно важные концепции: сложность, обратную связь с окружающей средой, эмерджентность, закрытые и открытые системы (Bertalanffy, 1950).

В настоящее время это одно из направлений исследований Института Санта-Фе в Нью-Мексико, где преподает Мелани. Эти концепции, наряду с уроками эпистемологии, приближенными к работам Поппера, Бачелара, Канта, Декарта и других, привели меня к Эдгару Морену, французскому философу, у которого есть обширные работы о сложности. Морин критикует редукционизм, заявляя, что он изолирует явления от контекста и игнорирует случайность. Он поддерживает рекурсивные научные методы и трансдисциплинарность, утверждая, что целое содержится в каждой из частей системы. Это напрямую связано со сложностью, когда вся система обычно больше, чем сумма ее отдельных частей.

Именно тогда я подошел к клеточным автоматам, вдохновленный моим другом. Простые и локальные правила, порождающие сложные закономерности и возникновение явлений. Как я объясню далее, клеточные автоматы — это итерационная закрытая система, эволюция которой во времени зависит от контекста (среды), в который вставлены отдельные части (клетки, особи). Последние работы по глубокому обучению, такие как GFlowNets, от Bengio et al. (2021), представляют довольно интересное сходство с концепциями клеточных автоматов, учитывая, что поток информации следует по путям внутри данной системы.

Но как именно клеточные автоматы связаны с восприятием качества? Фактически человеческое восприятие качества зависит от материальных (комфорт, внешний вид) и нематериальных (честность, готовность помочь, уверенность) аспектов бизнеса. Люди взаимодействуют друг с другом, и во многих случаях реклама из уст в уста играет решающую роль в распространении положительной (или отрицательной) информации о бизнесе. Этот поток информации можно смоделировать с помощью клеточных автоматов.

Итак, изучив теоретические концепции восприятия качества в литературе, я провел исследование рынка с реальными людьми (взрослыми) в два разных периода времени: один в нулевое время и второй в нулевое время плюс 4 месяца. Это называется лонгитюдным исследованием рынка.

Моя идея состояла в том, чтобы разработать модель, начальное состояние которой было унаследовано от результатов первого исследования рынка, и развить ее для моделирования человеческого взаимодействия, которое привело к значениям второго исследования рынка. Затем сравните результаты модели со вторым исследованием рынка, как показано на рисунке 1.

Говоря эпистемологически, я пытался избавиться от априорногопредубеждения, рассматривая понятия из сложности, возникновение глобальных явлений из простых правил таким образом, чтобы их можно было смоделировать с помощью агентного моделирования, не пытаясь форсировать результат. Я хотел, чтобы это произошло. Рискованно. У меня не было никаких предубеждений по поводу конечного результата. Я имею в виду, хотя я тщательно изучал теоретические концепции из области бизнеса и сложности, весь эксперимент мог пойти не так. Была вероятность, что я смогу отвергнуть гипотезу, утверждающую, что моя модель может имитировать человеческие взаимодействия с разумной точностью.

Исследование рынка было применено к потребителям эстетических услуг с использованием шкалы Лайкерта (категория) из 5 баллов, от полного несогласия (0) до полного согласия (4) и центрального нейтрального ответа в соответствии со структурой SERVQUAL (Parasuraman et al, 1985, 1988). ) и подтверждены качественными исследованиями (интервью). Полная методология и результаты исследования подробно описаны в Zimbres (2009), опубликованном в Elsevier.

Эти значения в ответах 0, 1, 2, 3 и 4 использовались в качестве начального состояния клеточного автомата для каждого человека.

Ниже вы можете увидеть эволюцию клеточного автомата относительно индикатора честности. Начиная с одной горизонтальной линии (время = 0), люди (квадратные ячейки) взаимодействуют по локальным правилам и генерируют вторую линию ниже (время = 1) и так далее. Интересно наблюдать, как неудовлетворенность (красные квадраты) распространяется среди людей. Также возможно найти периодическое состояние контура, узор внутри черных квадратов, конфигурацию, которая повторяется с течением времени, влияя на разные группы людей.

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

Клеточные автоматы

Давайте теперь объясним, как происходят эти взаимодействия. Клеточные автоматы — это конечные автоматы, в которых ячейки, обычно в виде решетки, взаимодействуют друг с другом по простым правилам. Как сложная система, состояния людей развиваются в соответствии с их собственными состояниями и окружением (средой), с которым они взаимодействуют. Из простых правил возникают сложные закономерности, и часто эти сложные закономерности имеют мало общего с простотой начальных условий.

В своей диссертации я использовал правило клеточного автомата (CA) с 5 состояниями, но давайте начнем с основ, одномерного клеточного автомата с 2 состояниями. Считайте, что у одной центральной клетки есть два соседа, один справа и один слева. Поскольку у него может быть только 2 состояния, эти состояния могут быть 0 или 1. Для правила 232 ЦС, правила большинства, у нас есть следующая Таблица истинности:

Затем правило может быть получено суммой произведений конечных состояний ячейки на позиционные множители. Это можно перевести в следующую таблицу переходов:

То есть для каждой ячейки в решетке с ее позицией c(i,j), где i и j — строка и столбец соответственно, функция Sc(t)=S(t;i,j) связан с решеткой для описания состояния ячейки c во времени t. Итак, за время t+1 состояние S(t+1,i,j) определяется следующим образом:

S(t+1;i, j ) = [S(t;i,j)+δ]mod k

где − k ≤ δ ≤ k, а k — количество состояний ячейки c. Формула для δ:

δ = μ, если условие (a) верно

δ = -S(t;i,j), если условие (b) верно

δ = 0 иначе

где a и b изменяются в соответствии с правилом.

Это означает, что центральная ячейка в соответствии со своим состоянием и состоянием соседей слева и справа в time=0 обновляет свое значение в время t +1, иногда распространяя информацию по решетке.

В 3D, используя двумерные CA (Packard and Wolfram, 1984), эти правила могут генерировать очень сложные шаблоны, такие как пирамидальная структура:

В моей диссертации, хотя пространство поиска возможных правил было порядка 10^80 (ровно 2350988701644575015937473074444491355637331113

544175043017503412556834518909454345703125 возможных правил) и вычислительные ресурсы были ограничены AMD с 512 МБ ОЗУ, можно было найти правило клеточного автомата, которое могло имитировать человеческие взаимодействия с точностью 73,80%. На самом деле это была не удача, а то, что я называю «случайным управляемым поиском» в течение 4 месяцев. Я использовал Mathematica для моделирования.

В настоящее время некоторые исследователи разрабатывают нейронные клеточные автоматы (NCA), то есть клеточные автоматы, интегрированные в архитектуры глубокого обучения. Александр Мордвинцев (Google), Этторе Рандаццо (Google), Эйвинд Никлассон (Google) и Майкл Левин (Allen Discovery Center) разработали регенеративный NCA, основанный на морфогенезе, то есть «процессе развития формы организма». В своей работе они итерируют генеративные нейронные сети таким образом, что окончательная ошибка относительно желаемого результата служит добавочным обновлением (потери для обратного распространения) для следующей итерации, используя 16-канальные изображения, фильтр Собеля для 2D-свертки и концепция остаточных нейронных сетей, как показано на рисунке 10.

Учитывая, что я смог найти правило клеточного автомата, которое разумно имитирует человеческую рациональность во всех существующих ограничениях, мне было любопытно узнать, что произойдет, если мы добавим эту рациональность в различительную нейронную архитектуру с простым набором данных, например MNIST. Интересно, что нейронная сеть вела себя как человек. Я объясню.

Эксперимент

Учтите, что у нас есть следующее ядро ​​​​5x5 для обычной архитектуры глубокого обучения:

Теперь представьте, что мы будем применять одномерное правило клеточного автомата к каждой строке этого ядра (t=0), развивая каждую строку по вертикали, в глубину и беря следующую конфигурацию (t =1). Для клеточного автомата я использовал тороидальную конфигурацию, в которой последняя ячейка слева взаимодействует с последней ячейкой справа. Чтобы сделать это проще в Python, я дополнил исходное ядро ​​​​5x5 с обеих сторон, искусственно создав тороид, как показано на рисунке ниже (слева), где двумерная решетка (справа) складывается вокруг себя.

Затем я запустил правило своего тезиса, правило:

2159062512564987644819455219116893945895958528152021228705752563807959237655911950549124 на один шаг по вертикали в каждом ряду вышеуказанного ядра.

Ниже показана его таблица переходов:

Эта итерация клеточного автомата на исходном ядре создала новое ядро, асимметричное, как показано ниже:

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

Код Python для клеточных автоматов:

regra=2159062512564987644819455219116893945895958528152021228705752563807959237655911950549124
base1=5
states=np.arange(0,base1)
dimensions=5

## KERNEL 5x5

kernel=[[1, 0, 1, 0, 1],
       [0, 1, 0, 1, 0],
       [0, 0, 1, 0, 0],
       [0, 1, 0, 1, 0],
       [1, 0, 1, 0, 1]]

def cellular_automaton():
    global kernel

    lista=states
    kernel=np.pad(kernel, (1, 1), 'constant', constant_values=(0))
    kernel[0]=kernel[1]
    kernel[-1]=kernel[-2]

    kernel2=np.transpose(kernel)
    kernel2[0]=kernel2[1]
    kernel2[-1]=kernel2[-2]

    kernel=np.transpose(kernel2)

    all_possible_states=np.array([p for p in itertools.product(lista, repeat=3)])[::-1]

    zeros_all_possible_states = np.zeros(all_possible_states.shape[0])
    final_states = [int(i) for i in np.base_repr(int(regra),base=base1)]
    zeros_all_possible_states[-len(final_states):]=final_states
    length_rules=np.array(range(0,len(zeros_all_possible_states)))

    final_state_central_cell=[]
    for i in range(0,len(zeros_all_possible_states)):
        final_state_central_cell.append([0,int(zeros_all_possible_states[i]),0])

    initial_and_final_states=[]
    for i in range(0,len(all_possible_states)):
        initial_and_final_states.append(np.array([all_possible_states[i],np.array(final_state_central_cell).astype(np.int8)[i]]))


    def ca(row):
        out=[]
        for cell in range(0,dimensions):
            out.append(final_state_central_cell[next((i for i, val in enumerate(all_possible_states) if np.all(val == kernel[row][cell:cell+3])), -1)][1])
        return out

    kernel=np.array([item for item in map(ca,range(1,kernel.shape[0]-1))])
    return kernel

Для архитектуры нейронной сети я использовал 2 свертки, максимальный пул, 2 отсева, пакетную нормализацию и 3 полносвязных слоя, всего 3 328 474 параметра. Я не делал аугментацию данных для улучшения результатов. Регуляризация не применялась.

class Net(nn.Module):
    def __init__(self,kernel):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(32, 64, 3, 1,bias=False)
        self.conv2 = nn.Conv2d(1, 64, 10, 1,bias=False)
        self.dropout1 = nn.Dropout(0.2)
        self.dropout2 = nn.Dropout(0.4)
        self.fc1 = nn.Linear(3136, 28*28)
        self.fc2 = nn.Linear(28*28, 128)
        self.fc3 = nn.Linear(128, 10)
        torch.nn.init.xavier_uniform(self.conv1.weight)
        torch.nn.init.xavier_uniform(self.conv2.weight)
        torch.nn.init.xavier_uniform(self.fc1.weight)
        torch.nn.init.xavier_uniform(self.fc2.weight)
        torch.nn.init.xavier_uniform(self.fc3.weight)
        self.batch_norm = nn.BatchNorm1d(3136)
        self.conv1.weight = nn.Parameter(kernel,requires_grad=False)


    def forward(self, x):
        res = x.view(batch_size1, 784)
        x = self.conv1(x)
        x = F.relu(x)
        x = self.conv2(x)
        x = nn.MaxPool2d(2, 2)(x)
        x = F.relu(x)
        x = self.dropout1(x)
        x = torch.flatten(x, 1)
        x = self.batch_norm(x)
        x = self.fc1(x)
        x = F.relu(x)
        x = self.fc2(torch.mean(torch.stack((x,res)),0))
        x = F.relu(x)
        x = self.dropout2(x)
        x = self.fc3(x)
        output = F.log_softmax(x, dim=1)
        return output

Затем я прогнал эпохи с «человеческим» ядром и получил неоптимальный результат, точность 98,78%. Противоречиво интуитивно, верно? Мы всегда стремимся к наилучшему результату. Однако известно, что производительность человека на MNIST показывает среднюю точность 98,29%. Итак, сначала кажется, что мой эксперимент частично удался, потому что добавление «человеческого» ядра клеточного автомата в MNIST дало результаты, близкие к человеческой точности. Этот субоптимальный результат легко понять, если принять во внимание то, что сказал Герберт Саймон еще в 1978 году относительно ограниченной рациональности: люди не могут достичь оптимальных результатов из-за своих когнитивных ограничений, а также потому, что они соприкасаются только с частью информации, а есть информация. асимметрия.

Как специалисты по данным, мы привыкли добиваться оптимальных результатов даже в поиске общего искусственного интеллекта. Но учитывая, что люди неоптимальны и неэффективны, какие параметры мы должны учитывать? Может ли улучшение памяти, которым мы учим детей, повысить человеческую производительность? Можно ли использовать эту стратегию для улучшения моделей обучения с подкреплением вместо стохастических процессов?

Учитывая эти вопросы и пытаясь улучшить результаты, я добавил остаточный слой в качестве бокового входа для верхнего полносвязного слоя. Результаты подскочили до 99,29% точности с ядром 5x5 и до 99,38% точности с ядром 3x3.

Результат, достигнутый с ядром 3x3, на 0,11% лучше, чем у Achara et al. (Google AI и Amazon Search) в своей статье 2021 года под названием «Надежное обучение в больших измерениях с помощью блочно-координатного геометрического медианного спуска», где они решили MNIST с 1,16 миллионами параметров CNN. Авторы используют механизм остаточной памяти, добавленный к градиенту, «вдохновленный механизмом обратной связи по ошибке». По их словам, «компенсация потерь, понесенных из-за аппроксимации с помощью механизма памяти, является общей концепцией в литературе по управлению с обратной связью и обработке сигналов». В их случае применялась регуляризация L2. Хотя они применили искажение к MNIST, точность 99,27% была достигнута в чистом наборе данных.

Результаты были очень похожи на Granmo et al. (2019), который получил точность 99,40% в MNIST, используя смешанную модель автомата Цетлина (Xiao et al., 2017) и автомата обучения с конечным состоянием (Narendra, 1989), примененного к фильтрам. По словам авторов, «равновесие Нэша уравновешивает ложные срабатывания против ложноотрицательных классификаций, борясь с переоснащением с помощью частых принципов извлечения паттернов».

Предлагаемая мной модель лучше, чем модель SEER RG-64gf от Goyal et al. (Meta AI Research, 2022 г.), который получил точность 99,32% с помощью модели с 250 миллионами параметров и 27 слоями.

Обратите внимание, что разработанная мной нейронная сеть не маленькая, довольно неглубокая, и я использовал функции активации ReLU, поэтому проблем с исчезающими градиентами и насыщением веса НЕТ. Однако добавление остаточного слоя улучшило результаты. Тогда я начал размышлять: не является ли неоптимальное поведение людей следствием недостатка памяти? Если мы освежим человеческую рациональность исходной идеей (остаточным слоем), сможем ли мы улучшить человеческую производительность? Это похоже на ключевой момент в этом эксперименте:если бы мы имели дело со взрослыми, добавление памяти означало бы сказать: «Смотрите, это девятка, это восьмерка, это шестерка». Это не имеет смысла, верно? Взрослые уже знают, что такое 6, 8 или 2. Итак, похоже, что мы имеем дело с ребенком.Разумно сказать ребенку: «Смотри , это 6, помните? Это 8, верно?». Разговаривая с моей сестрой, у которой есть дети, она сказала мне, что дети учат цифры к 4–6 годам. По совпадению Косой и соавт. также изучали детей именно этого возраста (4–6 лет) в своей статье 2022 года, связывая развитие и обучение детей со стратегиями обучения с подкреплением.

Эти результаты, эффективность освежения памяти как инструмента для обобщения, а также вероятный возраст ребенка, в котором эта стратегия эффективна, очень похожи на результаты Moely et al. (1992). По их словам, «дети 2–3-х классов вряд ли будут генерировать эффективные стратегии во всем, но [...] также очень хорошо поддаются обучению использованию стратегий запоминания». Получается, что дети 7–8 лет уже чувствительны к стимуляции памяти, но с учетом MNIST, задачи на числа, мы получили возрастной интервал 4–6 лет. Возможно ли, что эта чувствительность к стимуляции памяти начинается годами раньше? Вероятно, да.

Моэли и др. обнаружили, что «инструкции [для студентов], которые способствуют обобщению стратегии, встречались редко. Поскольку предложения учителей по стратегии обычно были довольно специфичными для конкретной задачи, возможно, неудивительно, что было найдено так мало инструкций по обобщению». Это проблема моделей обучения с подкреплением (Kosoy, 2022).

Возьмем, к примеру, трансформаторы. Хотя они могут выполнять разные задачи, такие как машинный перевод (Vaswani et al., 2017), классификация текста и даже компьютерное зрение (Khan et al., 2022), они зависят от конкретной задачи, потому что вам в основном нужно изменить их структурировать по разным задачам, не обобщая. В этом отношении Gato из DeepMind (Reed et al., 2022) кажется первым шагом в решении этой проблемы обобщения, учитывая, что это мультимодальная, многозадачная нейронная сеть, которая использует одну и ту же сеть с одинаковыми весами. для каждой из возможных задач, которые он призван решать. Единственная необходимая адаптация — предварительная обработка входных данных.

Согласно Форсбергу, Адамсу и Коуэну (2021), кажется, что «способность рабочей памяти связана с различными показателями уровня образования». По словам авторов, нехватка памяти кажется «узким местом для длительного обучения, ограничивающим способность усваивать значение новых понятий и кодировать новую информацию». Вероятно, это происходит из-за отношений, которые мы обычно устанавливаем с различными понятиями. Кодирование новой информации означает обучение, то есть использование концепций из других областей и прошлого опыта, памяти для понимания новых концепций и идей. Для нейронных сетей это может означать возможность обновлять веса с учетом градиента.

Этот эксперимент добавил человеческую рациональность в нейронную сеть посредством модификации ядра, а также обновил память нейронной сети через остаточный слой. Нейронная сеть вела себя как ребенок 4–5 лет. Для меня это открытие очень интересно, потому что оно было совершенно непреднамеренным, и потому что MNIST — такая тривиальная задача, полностью подходящая для ребенка.

Тогда мой последний вопрос: если мы будем относиться к нашим моделям глубокого обучения как к пятилетним детям и применять психологию младенцев, чтобы заставить их учиться, сможем ли мы добиться лучших результатов и большей способности к обобщению? Доказательства говорят, что да. Некоторые исследователи уже изучают эту взаимосвязь в моделях обучения с подкреплением, например Kosoy et al. из Беркли, DeepMind и Массачусетского технологического института (2020, 2022).

Полный код этого эксперимента, включая контрольную точку обученной нейронной сети, доступен на моем Github

Благодарности

Автор благодарит следующие организации за их поддержку и предоставленные идеи: Universidade Mackenzie за стипендии во время учебы в магистратуре и докторантуре, Wolfram Research за стипендию во время моей докторской диссертации, Google Cloud и Google Developers за спонсорство и постоянную поддержку моих усилий и DeepMind за идеи.

Ссылки

А. Ачара, А. Хашеми, У. Топку, С. Сангхави, И. Диллон, П. Джайн. Надежное обучение в больших измерениях с помощью геометрического медианного спуска по блочным координатам. Архив:.2106.08882, 2021.

Л. Берталанфи. Очерк общей теории систем. Британский журнал философии науки, 1950 г.

Ю. Бенжио, Т. Делеу, Э.Дж. Ху, С. Лахлоу, М. Тивари, Э. Бенжио. Основы GFlowNet. архив: 2111.09266, 2021.

Л.Дж.М. Култхард. Измерение качества обслуживания: обзор и критика исследований с использованием

СЕРВУАЛЬ. Международный журнал маркетинговых исследований, т. 46, н. 4, 2004.

А. Форсберг, Э. Адамс, Н. Коуэн. Роль рабочей памяти в долгосрочном обучении: последствия для развития детства. Психология обучения и мотивации. Том 74, 2021 г., страницы 1–45, Elsevier, 2021 г.

П. Гоял, К. Дюваль, И. Зессель, М. Карон, И. Мишра, Л. Сагун, А. Жоулен, П. Бояновски. Модели Vision более надежны и справедливы, если предварительно обучены на некурируемых изображениях без присмотра. архив: 2202.08360, 2022.

С. Хан, М. Насир, М. Хаят, С.В. Замир, Ф.С. Хан, М. Шах. Трансформеры в видении: обзор. архив: 2101.01169, 2022.

Э. Косой, А. Лю, Дж. Коллинз, Д. Чан, Дж. Хэмрик, Н.Р. Ке, С.Х. Хуанг, Б. Кауфманн, Дж. Канни, А. Гопник. Изучение причинно-следственных сверхгипотез посредством исследования детей и вычислительных моделей. архив: 2005.02880v2, 2022 г.

Э. Косой, Дж. Коллинз, Д.М. Чан, С. Хуанг, Д. Патхак, П. Агравал, Дж. Канни, А. Гопник, Дж. Б. Хамрик. Изучение исследования: сравнение детей с агентами RL в унифицированных средах. архив: 2005.02880v2, 2020.

Дж. Ф. Нэш-младший. Точки равновесия в играх с участием n человек. Труды Национальной академии наук США 36, 48–9, 1950.

Н. Паккард, С. Вольфрам. Двумерные клеточные автоматы. Журнал статистической физики, том 38, страницы 901–946, 1985.

М. Митчелл. Введение в генетические алгоритмы. Кембридж, Массачусетс: MIT Press, 1996.

БЫТЬ. Моэли, С.С. Харт, Л. Лил, К.А. Сантулли, Н. Рао, Т. Джонсон, Л.Б. Гамильтон. Роль учителя в содействии запоминанию и разработке стратегии обучения в классе начальной школы. Развитие ребенка, том 63, выпуск 3, 1992.

А. Мордвинцев, Э. Рандаццо, Э. Никлассон, М. Левин. Growing Neural Cellular Automata, 2020. Доступно по адресу: https://distill.pub/2020/growing-ca/

К.С. Нарендра, А.Л. Татачар. Изучение автоматов: введение. Прентис-Холл, Инк., 1989.

А. Парасураман, В.А. Zeithaml, Л. Л. Берри. Концептуальная модель обслуживания

качество и его последствия для будущих исследований. Журнал маркетинга, т. 49, осень 1985 г.

А. Парасураман, В.А. Zeithaml, Л. Л. Берри. Servqual: многоуровневая шкала для измерения восприятия потребителями качества обслуживания. Журнал розничной торговли, т. 64, н. 1, весна 1988 г.

С. Рид, К. Жолна, Э. Паризотто, С.Г. Колменарехо, А. Новиков, Г. Барт-Марон, М. Хименес, Ю. Сульски, Дж. Кей, Дж.Т. Спрингенберг, Т. Экклс, Дж. Брюс, А. Разави, А. Эдвардс, Н. Хесс, Ю. Чен, Р. Хадселл, О. Виньялс, М. Бордбар, Н. де Фрейтас. Универсальный агент. архив: 2205.06175, 2022.

Х.А. Саймон. Модели ограниченной рациональности. Кембридж, Массачусетс: MIT Press, 1978.

А. Васвани, Н. Шазир, Н. Пармар, Дж. Ушкорейт, Л. Джонс, А.Н. Гомес, Л. Кайзер, И. Полосухин. Внимание — это все, что вам нужно. архив: 1706.03762, 2017.

С. Вольфрам. Новый вид науки. Канада: Wolfram Media Inc., 2002.

Х. Сяо, К. Расул и Р. Фоллграф. Fashion-mnist: новый набор данных изображений для сравнительного анализа алгоритмов машинного обучения. архив: 1708.07747, 2017.

Р.А. Зимбрес, П.П.Б. Оливейра. Динамика восприятия качества в социальной сети: модель на основе клеточного автомата в эстетических услугах. Электронные заметки по теоретической информатике. Том 252, 1, страницы 157–180, 2009 г.

Р.А. Зимбры. A dinâmica da percepção de qualidade em serviços estéticos sob uma perspectiva diádica, 2009 Английский: Dynamics of Quality Percepção de qualidade em serviços estéticos sob uma perspectiva diádica, 2009 Английский: Dynamics of Quality Percepção de qualidade em serviços estéticos sob uma perspectiva diádica, 2009. Английский: Динамика восприятия качества эстетических услуг с точки зрения диады, 2009.Доступно по адресу: https://dspace.mackenzie. бр/ручка/10899/23257