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

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

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

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

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

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

Философско-семантический подход к обобщению понятий


Философия имеет дело с семантическими конструкциями. Проще говоря, выражает и записывает свои утверждения фразами на естественном языке. Философско-семантический подход к обобщению заключается в следующем. Имея понятия, объединенные неким видовым признаком, требуется перейти к новому понятию, которое дает более широкое, но менее конкретное толкование, свободное от видового признака.

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

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

Задача чистого обобщения


В формулировке Френка Розенблатта задача чистого обобщения звучит так: «В эксперименте по «чистому обобщению» от модели мозга или персептрона требуется перейти от избирательной реакции на один стимул (допустим, квадрат, находящийся в левой части сетчатки) к подобному ему стимулу, который не активирует ни одного из тех же сенсорных окончаний (квадрат в правой части сетчатки)» (Rosenblatt, 1962).

Акцент на «чистое» обобщение подразумевает отсутствие «подсказок». Если бы нам предварительно показали квадрат во всех возможных позициях сетчатки и дали возможность все это запомнить, то узнавание кадрата стало бы тривиальным. Но по условию квадрат нам показали в одном месте, а узнать мы должны его совсем в другом. Сверточные сети решают эту задачу за счет того, что в них изначально заложены правила «перетаскивания» любой фигуры по всему пространству сетчатки. За счет знания того как «перемещать» изображение они могут взять квадрат, увиденный в одном месте и «примерить» его ко всем возможным позициям на сетчатке.


Поиск паттерна в форме буквы «T» в разных позициях изображения (Fukushima K., 2013)

Ту же задачу мы в нашей модели решаем за счет создания пространства контекстов. Отличие от сверточных сетей в том, кто к кому идет — «гора к Магомеду» или «Магомед к горе». В сверточных сетях при анализе новой картинки каждый предварительно известный образ варьируется по всем возможным позициям и «примеряется» к анализируемой картинке. В контекстной модели каждый контекст трансформирует (перемешает, поворачивает, масштабирует) анализируемую картинку так как ему предписывают его правила, а затем «сдвинутая» картинка сравнивается с «неподвижными» заранее известными образами. Эта, на первый взгляд, небольшая разница дает последующее очень сильное различее в подходах и их возможностях.

Родственна задаче чистого обобщения задача инвариантного представления. Имея явление, предстающее перед нами в разных формах, требуется инвариантно описать эти представления с целью узнавания явления в любых его проявлениях.

Задача классификации


Есть множество объектов. Есть предварительно заданные классы. Есть обучающая выборка – набор объектов, про которые известно к каким классам они относятся. Требуется построить алгоритм, который обоснованно отнесет любые объекты из исходного множества к одному из классов. В математической статистике задачи классификации относят к задачам дискриминантного анализа.

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

Алгоритм решение задачи классификации зависит от характера входных данных и типов получаемых классов. О том, как решается задача классификации в нейронных сетях и как происходит обучение с учителем в нашей модели мы говорили в предыдущей части.

Задача кластеризации


Предположим у нас есть множество объектов и нам известна степень похожести их друг на друга, заданная матрицей расстояний. Требуется разбить это множество на подмножества, называемые кластерами, так, чтобы каждый кластер объединял схожие объекты, а объекты разных кластеров сильно отличались друг от друга. Вместо матрицы расстояний могут быть заданы описания этих объектов и указан способ, как искать расстояние между объектами по этим описаниям.

В машинном обучении, кластеризация попадает под обучение без учителя.

Кластеризация – очень соблазнительная процедура. Удобно разбить множество объектов на относительное небольшое количество классов и впоследствии использовать не исходные, возможно громоздкие описания, а описания через классы. Если при разбиении заранее известно какие признаки важны для решаемой задачи, то кластеризация может «делать акцент» на эти признаки и получать классы удобные для последующего принятия решений.

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

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

Даже если мы решим на что стоит сделать акцент при кластеризации все равно останется вопрос об оптимальной детализации. Дело в том, что в общем случае нет априорной информации о том на сколько классов надо поделить исходное множество объектов.

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

Факторный анализ


Предположим, что мы имеем множество объектов в котором все объекты снабжены признаковыми описаниями. Такие описания можно записать соответствующими векторами. Далее предположим, что признаки имеют количественную природу.

Удобно центрировать описания, то есть рассчитать среднее для каждого признака и скорректировать признаки на их среднее значение. Это равносильно переносу начала координат в «центр масс». Можно посчитать корреляции между признаками. Если записать корреляционную матрицу признаков и найти ее собственные вектора, то эти вектора будут являться новым ортогональным базисом, в котором можно описать исходное множество объектов.

В базисе из исходных признаков за счет их возможной коррелированности линейные закономерности были «размазаны» между признаками. При переходе к ортогональному базису начинает четче проступать внутренняя структура закономерностей. Так как ортогональный базис определен с точностью до вращения, то можно так повернуть базис из собственных векторов, чтобы направления осей наилучшим образом соответствовали тем направлениям, вдоль которых данные имеют наибольший разброс.

Собственные числа, соответствующие собственным векторам, показывают какой процент от общей дисперсии приходится на какой собственный вектор. Собственные вектора, на которые приходится наиболее существенный процент дисперсии называют главными компонентами. Часто бывает удобно перейти от описания в исходных признаках к описанию в главных компонентах.

Так как главные компоненты отражают наиболее существенные линейные закономерности, свойственные исходному множеству, то они могут называться определенным обобщением исходных данных.

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

Если сравнивать обобщения, которые получаются через классы и которые получаются через факторы, то условно можно сказать, что классы выделяют «области», а факторы – «направления».

Часто для отнесения объекта к классу смотрят не столько на близость объекта к центру класса, а на соответствие объекта параметрам распределения, свойственным классу (на этом, например, построен EM алгоритм). То есть если в пригороде города стоит тюрьма, то человек которого вы встретите рядом с тюрьмой скорее всего горожанин, а не заключенный, хотя расстояние до центра города значительно выше чем до центра тюрьмы. «Области» стоит понимать с учетом этого замечания.

Ниже приведена картинка, по которой можно приблизительно соотнести обобщение классами и факторами.


Графики распределения роста и веса игроков американской футбольной лиги (NFL). Сверху игроки защиты, снизу игроки нападения. Цветами выделены позиции игроков (Dr. Craig M. Booth).

Все множество игроков можно разбить на классы по их роли на поле. По параметрам «вес — рост» можно выделить глобальные факторы (не показаны) или факторы для каждого из классов.

Цветные линии соответствуют первому главному фактору в каждом из классов. Этот фактор можно интерпретировать как «размер игрока». Он определяется как проекция точки игрока на эту ось. Значение проекции дает значение, которое отбрасывает «не идеальность» игрока. Если к первой оси провести вторую ортогональную, то она будет описывать второй фактор «тип телосложения», проще говоря, худой игрок или толстый.

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

Проведем факторный анализ корреляционной матрицы и затем вращение осей для удобной интерпретации факторов. Окажется, что существенную роль играют первые пять-шесть факторов. Они соответствуют наиболее общим закономерностям. Это, конечно, жанры фильмов: «боевик», «комедия», «мелодрама». Кроме того, выделятся факторы: «русское кино» (если люди будут из России) и «авторское кино». Последующие факторы тоже можно интерпретировать, но их вклад в объяснение дисперсии будет все меньше и меньше.

Первые пять самых существенных факторов объясняют порядка 30 процентов общей дисперсии. Это не особо много, учитывая, что дисперсия – это квадрат среднеквадратического отклонения. Соответственно, основные факторы объясняют всего 17 процентов общего разброса оценок. Если посмотреть на остальные факторы, то многие из них объясняют всего лишь десятые или сотые доли процента общей дисперсии и вроде бы несущественны.

Но каждый мелкий фактор, как правило, соответствует некой локальной закономерности. Он объединяет фильмы одного режиссера, одного сценариста или одного актера. Оказывается, что когда мы хотим что-либо понять про конкретный фильм, то основные факторы объясняют свои 30 процентов дисперсии и при этом процентов 40-50 дисперсии объясняют один-два мелких фактора, которые несущественны для общей массы, но оказываются чрезвычайно важны именно для этого фильма.

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

Формирование понятий


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

Задача идеализации


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

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

Логическая индукция


Логическая индукция подразумевает получение общего закона по множеству частных случаев.

Разделяют полную индукцию:

Множество А состоит из элементов: А1А2А3, …, Аn.

  • А1 имеет признак В
  • А2 имеет признак В
  • Все элементы от А3 до Аn также имеют признак В

Следовательно, все элементы множества А имеют признак В.

И неполную индукцию:

Множество А состоит из элементов: А1А2А3, …, Аn.

  • А1 имеет признак В
  • А2 имеет признак В
  • Все элементы от А3 до Аk также имеют признак B

Следовательно, вероятно, Аk+1 и остальные элементы множества А имеют признак В.

Неполная индукция имеет дело с вероятностью и может быть ошибочной (проблема индукции).

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

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

Например, мы обнаруживаем, что существуют механические приборы с характерным циферблатом и стрелками. По внешнему сходству мы делаем обобщение и относим их к классу часы, и формируем соответствующее понятие.

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

Теперь мы можем сделать следующий шаг обобщения. Мы можем сказать, что к «часам» можно отнести вообще все, что позволяет следить за временем. Теперь часами мы можем назвать и солнце, которое отмеряет сутки и школьные звонки, отсчитывающие уроки.

Логическая индукция имеет много общего с семантическим обобщением понятий. Но семантическое обобщение делает несколько иной акцент. Семантический подход говорит о признаках, которые составляют описание понятия, и возможности отбрасывания их части для получения более общей формулировки. При этом остается открытым вопрос — откуда должны взяться такие определения понятий, которые позволят выполнить переход к обобщению «через отбрасывание». Неполная логическая индукция как раз и показывает путь формирования таких описательных признаков.

Задача дискретизации


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

Соотнесение понятий


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

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

При использовании описания чего-либо через факторы используют набор факторных весов. Факторные веса принимают вещественные значения. Эти значения можно аппроксимировать набором дискретных понятий. При этом для этих дискретных понятий будет характерна система отношений «больше – меньше».

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

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


Пример семантической сети (Автор: Знанибус — собственная работа, CC BY-SA 3.0, commons.wikimedia.org/w/index.php?curid=11912245)

Говорят, что в правильной постановке задачи содержится три четверти верного ответа. Очень похоже, что это справедливо и для задачи обобщения. Что мы хотим видеть результатом обобщения? Устойчивые классы? Но где границы этих классов? Факторы? Какие и сколько? Закономерности? Редкие, но сильные совпадения или нечеткие, но подкрепленные большим числом примеров зависимости? Если мы накопили данные и провели обобщения, то как из множества возможных понятий выбрать те, что лучше всего подходят для описания конкретной ситуации? Что вообще есть обобщения? Как выглядит система соотнесения обобщений между собой?

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

Алексей Редозубов

Логика сознания. Часть 1. Волны в клеточном автомате
Логика сознания. Часть 2. Дендритные волны
Логика сознания. Часть 3. Голографическая память в клеточном автомате
Логика сознания. Часть 4. Секрет памяти мозга
Логика сознания. Часть 5. Смысловой подход к анализу информации
Логика сознания. Часть 6. Кора мозга как пространство вычисления смыслов
Логика сознания. Часть 7. Самоорганизация пространства контекстов
Логика сознания. Пояснение «на пальцах»
Логика сознания. Часть 8. Пространственные карты коры мозга
Логика сознания. Часть 9. Искусственные нейронные сети и миниколонки реальной коры
Логика сознания. Часть 10. Задача обобщения
Логика сознания. Часть 11. Естественное кодирование зрительной и звуковой информации
Поделиться с друзьями
-->

Комментарии (31)


  1. artemonster
    01.02.2017 00:31
    -3

    Вода, вода, вода и высосанные из пальца выводы. Алексей, может хватит? :)


    1. olegchir
      02.02.2017 11:34

      Слышу это каждый раз на показе высокоуровневой архитектуры :)


  1. Deosis
    01.02.2017 07:38
    +1

    Логическая индукция — фигня какая-то.
    Рассмотрим все круглые предметы.
    Футбольный мяч может катиться и подпрыгивать. Колесо может катиться и подпрыгивать.
    Можно обобщить, что все круглые предметы могут катиться и подпрыгивать. Например Солнце.

    ПС, с каких пор рыбы стали млекопитающими?


    1. napa3um
      01.02.2017 08:15
      +1

      Судя по позвоночнику там должны были быть позвоночные. Но, конечно, мозг не содержит таких онтологий, они являются временным продуктом высшей психической деятельности, сознания, а не являются его фундаментальным свойством. Отношения между словами могут быть невыразимыми формально, т.к. включают огромное количество эволюционных факторов («так язык повернулся»), и сегодня эти отношения одни, а завтра другие, а в особенном контексте — третьи. Сам процесс установления отношений между словами — продукт высшей психической деятельности в познавании мира и создании культурной информации в виде мифов, рецептов, биологических систематик и прочих «карт человеческих проблем» (сами форматы карт тоже развиваются, не стоят на месте), а не спонтанная деятельность речевого центра мозга, которую можно бы было изучать in vitro, в отрыве от культурного «эгрегора», кодирующего отношения «индивид — общество» и управляющего поведением человека. Кажется, автор статьи пытается редуцировать свою модель до абсолютной онтологии, имеющей объективный, универсальный смысл и физически определяющий устройство реальности (и потому, мол, мозг приспособлен для возможности выражать отношения между элементами этой «объективной онтологии», а все остальные онтологии — лишь проекции этого Абсолюта). Позитивисты-релятивисты давно похоронили эту идею, но переодически откапывать её человечество не перестанет, конечно.


      1. AlexeyR
        01.02.2017 12:18
        +1

        Нет, об абсолютной антологии речь не пойдет. Будет показана, именно модель обобщения, которая обучается на поступающей информации.


        1. napa3um
          01.02.2017 19:33

          (Я об онтологии, а не антологии, если это не опечатка.)


          1. AlexeyR
            01.02.2017 19:38

            Опечатка.


    1. shabanovd
      01.02.2017 10:41
      +1

      ПС, с каких пор рыбы стали млекопитающими?

      Вот скоректированная схема:
      image

      Почему первую не выпилят из вики не понимаю.

      Можно обобщить, что все круглые предметы могут катиться и подпрыгивать. Например Солнце.

      Совершенно правильный вывод, та же аналогия — «Дайте мне точку опоры, и я подниму Землю». Возможно Солнце и катится в гравитационном поле -)


    1. AlexeyR
      01.02.2017 12:16
      +1

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

      Рыбы — млекопитающие — это и есть ошибка неполной индукции.


  1. Whiteha
    01.02.2017 10:47
    +1

    А что с кодом примеров?


    1. shabanovd
      01.02.2017 10:57
      +1

      Это вводная часть, с перечислением того, что известного на сегодня. Будет продолжение.


  1. Karth
    01.02.2017 13:05
    +2

    Спасибо за ваш труд.
    Я как-раз столкнулся с проблемой «универсальной» классификации поступающих сигналов, когда пытался закодить контекстную сеть на основе ваших предыдущих статей.
    Очень жду продолжения.


  1. artbataev
    01.02.2017 15:29

    Спасибо за статьи! Очень интересно, хотелось бы добраться до кода и попробовать реализацию.

    Вопрос по задаче кластеризации/обобщения: как правило, в постановке задачи кластеризации подразумевается некая «оптимальность», хотя бы до уровня иерархии (предметы -> часы -> наручные часы/настенные часы и т.д.)
    Т.е. один раз находим какую-то кластеризацию, ей дальше пользуемся.

    Однако:
    — мозг умеет быстро строить обобщения, которые раньше не запрашивались: можно назвать, например, «все красные предметы» (или это просто хороший способ индексирования?)
    — можно быстро построить обобщение — ответ на вопрос «что общего у <двух предметов>?» (так строятся многие анекдоты, подобные обобщения часто можно увидеть в художественных произведениях)
    — разные обобщения абсолютно необязательно обладают иерархией («собака» у многих не всегда «опасное существо»)
    — мозг может мгновенно отдавать приоритет как минимум одному из факторов (если птица ест ядовитое насекомое, она быстро «осознает», что то, что яркой окраски — скорее всего «ядовитое» и больше не ест)

    Похоже, что мозг хранит обобщения, индексирует их («все красные объекты», «все опасные существа») и еще мгновенно может перестроить систему (ну или сделать некий «костыль», который будет работать для какого-то конкретного случая).

    Получается, что задача кластеризации не сводится к единичной задаче выявления важных факторов и разделения на оптимальные классы? Или же для мозга задача более жесткая, перестроение системы всегда сложно, а все разнообразие обобщений — результат скорее наличия большого количества людей, чем работы одного конкретного мозга (у каждого мозг обобщил по-разному => получили разные системы)?


    1. AlexeyR
      01.02.2017 17:38
      +1

      Именно к этому я и подвожу, что частные задачи, перечисленные в статье, не только имеют «внутренние дефекты», но и не образуют замкнутой системы в котрой могут реализовываться перечисленные вами возможности мозга. То есть нужен совсем другой подход, но такой, что будет включать все существующие задачи, как частные случаи.
      Похоже, что такой подход удалось найти. Далее он будет описан.


      1. napa3um
        01.02.2017 19:32

        И это решение принципиально превосходит фреймовую систему Минского, как раз и являющейся «нечёткой» семантической сетью, допускающей неполноту, противоречивость и локальную уточняемость данных? Для каких задач и почему?


        1. AlexeyR
          01.02.2017 19:38

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


          1. napa3um
            03.02.2017 00:47

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


            1. AlexeyR
              03.02.2017 00:51

              Согласен. Вопрос в том, как сделать «процедуру» универсальной, не зависящей от типов данных и не требующей участия эксперта.


              1. napa3um
                03.02.2017 01:06

                Фрейм как раз и описывает «любые» данные и «любые» связи и «любые» преобразования. Но как автоматизировано заполнять эти структуры — это, действительно, более острый вопрос. И он, кажется, не решается магически, участие эксперта оказывается неустранимым (для естественного интеллекта таким экспертом выступают родители, воспитатели, учителя). Сложных стратегий поведения без эволюционирующего социума не родится, «мозг в банке», какой бы он ни был структуры, без взаимодействия с правильно сконфигурированной (экспертом) средой ничего полезного воспроизвести не сможет. И вот конфигурация среды (преобразование практических задач эксперта в план обучения ИИ для их решения) — более относящийся к механизму сознания и других функций психики вопрос, на мой взгляд, чем формализация палочек и колбочек нейронов, в которых эта фреймовую модель реализуется (или чем попытки вывести «универсальную семантику», которая всё равно будет математически эквивалентна фреймовой структуре ввиду её максимальной абстракции).


                1. AlexeyR
                  03.02.2017 01:23

                  Одной магической процедурой все, конечно, не решить. Но несколько «магий» вмете творят чудеса. В этом цикле я попробую показать весь «конструктор».


                  1. napa3um
                    03.02.2017 11:33

                    И хотя бы одну решённую этим конструктором задачу пусть не сильно хуже, чем существующие подходы, да? Или конструктор пока только лишь пророчит перспективы полезной применимости в будущем? Есть хоть одна формализованная задача, которую ваша модель решает?


                    1. AlexeyR
                      03.02.2017 13:39

                      До демонстрации всего конструктора пока далеко. Но отдельные части и их взаимодействие, конечно, покажу. В следующей части будет пример относительно автоматического построения семантических пространств. Через часть будет пример использования контекстов, бинарного кодирования и универсального обобщения.


                      1. michael_vostrikov
                        03.02.2017 18:33

                        Вы бы сначала рабочий экзешник показали, а потом уже объясняли, как он работает.


              1. realbtr
                03.02.2017 18:14

                Тоже работаю над универсальным классификатором, и мне кажется, что взаимодействие с «экспертами» — очень важно, только необходимо делать систему проактивной (обучающейся, а не обучаемой). Все интересное что мы знаем о мире у нас произведено взаимодействием и используется во взаимодействии (не только общение, но, в том числе). Поэтому в своей модели мой универсальный классификатор постоянно находится в цикле движения внимания, которое полностью обуславливает все поведение системы. Полагаю, без проактивности универсальная процедура будет строить классификации мало интересные людям. Возможно, полезные, но трудно применимые. Просто — другой мир, воспринимаемый классификатором и не воспринимаемый человеком.


                1. AlexeyR
                  03.02.2017 20:28

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


      1. kay7
        01.02.2017 22:38

        Вопросы к вашей системе:
        1) Как можно решить задачу не зная ее полных условий («где мы?» = на земле, под водой или в вакууме?)? и не сформулировав условия, которым должно соответствовать «правильного решение»? а также «точки зрения» (ТЗ) с которой решается задача? пример ТЗ: Сила, ум, опыт, качество исполнения, разумное время…
        2) Как можно сделать «верный» логический вывод, не имея достаточного и достоверного массива знаний? а не слов и онтологий.
        3) Как можно быть правым, если не знаешь верных ли те данные, на которых ты строишь свое решение в данной конкретной задаче?
        4) Как можно сделать логический вывод, не пользуясь _контекстно_ корректными свертками фактов/логики и эвристиками?
        5) К какой реалистичной и достижимой цели(ям) должна стремиться создаваемая система на текущем и последующих этапах?
        6) Каким образом можно сделать, чтобы система сама себе развивала? ставила себе мини-цели, их достигала и демонстрировала ментору? Виртуальный логико-аналитический эксперимент?! ;) Или все-таки логико-когнитивно-семантический? :)
        7) Как системе передавать обратную связь об ошибках и неточностях ее «хода мыслей» от ментора? (Закольцованное обучение. Изменение весов факторов и значимости контекстов в КОНКРЕТНОЙ задаче, «гашение» малозначимых контектов )
        8) Как научить ее использовать при решении прошлый опыт решения задач (ходы, подходы, стратегии) и подходящие аналоги задач, без перебора данных с нуля до решения? Думаю, успешное решение надо сохранять и использовать в новых задачах.
        9) Как решить проблему достоверности знаний и выбора правильного угла взгляда на имеющиеся факты для решения задачи («просев знаний», через фильтры стратегии или стратегий решения задачи)?
        10) Что важнее для решаемой задачи: достоверность или частота использования знания (иначе можно сказать «типичность знания для выбранного контекста»)?
        11) Как «выжать» максимум смысла из 1 абзаца данных?
        12) Если я скажу, что пространство/множество «признаков понятий» — конечно. Вы мне поверите?
        13) Как можно использовать при работе системы знание об неверности факта, утверждения, понятия? Например: «яблоки растут на сосне», «вратарь забивает больше всех в команде».

        И самый интересный: Каким образом система сама может стать «умнее», чем была вчера? что она должна уметь делать для этого?


        1. AlexeyR
          01.02.2017 22:48
          +1

          Хорошие вопросы. Ответы на них будут несколько позже. Сейчас мы говорим только об обобщении. Большая часть вопросов относится к тому, что дальше с этим обобщением делать.


  1. Evander83
    03.02.2017 00:17

    Когда ждать следующую статью?


    1. AlexeyR
      03.02.2017 00:17
      +1

      Послезавтра.


  1. Vlad_fox
    03.02.2017 16:01
    -1

    позанудствую: если каждый элемент множества А имеет признак В, то все элементы этого множества имеют признак В.

    замена термина «каждый» на «всякий» дает нам тождество, а не индукцию…

    и вообще тема осталась нераскрыта.
    показали бы как например на анализе данных мобильного оператора ИИ может вывести понятие сексуальной ориентации абонента или профессии


    1. AlexeyR
      03.02.2017 20:30

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