Часть 1 из 2

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

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

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

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

Это не похоже на то, как учатся маленькие дети (и животные).

  • обучение на основе единственного фрагмента информации (однократное обучение)
  • ассоциации и решения объяснимы (самоанализ)
  • новые знания могут быть постепенными и возникать в результате ошибок

В недавней исследовательской статье Массачусетского технологического института лаконично описана идея однократного обучения:

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

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

Изучение причин, по которым было принято решение, поскольку оно возникает из-за сознательного медлительного мышления, неотделимо от цикла продуктивного обучения. Ребенка спрашивают: Принадлежит ли эта вещь?, Она отвечает да и может объяснить, почему. Она рассказывает историю о том, почему. Учитель объясняет ответ, и в процессе ученик формирует новое понимание или подкрепляет существующие концепции.

«Почему?» - самый важный вопрос учащегося - это рассказ.

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

«Бесконечный цикл» для обучения

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

а. Получение шаблона:

a.1 учащийся усваивает набор символов (изображения, формы,…)

a.2 шаблону соответствует какой-то предмет (имя)

б. Понимание закономерностей:

b.1 учащегося спрашивают, «принадлежит» ли образец какой-либо вещи.

b.2 учащийся дает лучший ответ с учетом усвоенных закономерностей.

b.3 учитель дает подкрепление или исправление, в результате чего он получает больше информации.

То, что шаблон не принадлежит чему-то, - это элемент обучения.

Дети учатся на примерах, которые «не принадлежат».

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

Символы

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

Символ - это простая строка.

символ: a

и другой

символ: x

Внутри символа могут быть другие символы более низкого уровня абстракции.

символ: x, (x1)

И еще глубже ...

символ: x, (x1, (x1a, (x1a!)))

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

символическая структура: a b c

А теперь представим еще одно:

символьная структура: x y z i j k

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

Вещи можно рассматривать как воплощение других вещей.

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

Сопоставление с образцом

Шаблоны могут быть сопоставлены, чтобы создать маску их сходства, если таковое имеется. Мы можем использовать математические приемы (теория множеств), чтобы найти сходство.

символьная структура: a b c и символьная структура: x y c

поделитесь символом: c на третьей позиции

символьная структура: 1 1 9 и символьная структура: 9 8 7 6 5

поделитесь символом: 9

символьная структура: 1 0 1 и символьная структура: 1 1 1

поделиться: 1 (в позиции 0) и 1 (в позиции 2). Позиции уведомлений отсчитываются от нуля.

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

Атрибуция паттерна

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

Примечание. Теперь мы представляем символический узор в виде упорядоченного [ списка символов ].

символьная структура: [a b c] a ‘foo’

символьная структура: [x y z i j k] не ‘foo’

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

Конечно, изображение кролика - гораздо более сложный символ, чем отдельный алфавитный символ, но, тем не менее, оба они символичны.

Именно с детьми у нас больше всего шансов изучить развитие логических, математических, физических знаний и так далее. - Жан Пиаже

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

Узоры и отличительные черты

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

символьная структура: [a b c]

символьная структура: [x y c]

символьная структура: [нет]

и вам сообщают, что эти шаблоны являются репрезентативными для объекта "foo", т.е. каждый из них имеет суффикс "is a" foo "

В чем отличительная черта ‘foo’?

Ответ: символ ‘c’ в последней позиции.

Опять же: ‘foo’ это:

символьная структура: [x b c c a]

символьная структура: [x c c y]

символьная структура: [y n c c x]

В чем отличительная черта ‘foo’?

Ответ: наличие символов ‘c’ вместе. Эта комбинация символов сама по себе является символической. Вы также могли заметить, что у всех шаблонов есть "x"

Теперь, если вам впоследствии показали другой шаблон:

символический шаблон: [x p q n c c o p]

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

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

Как вы думаете, почему это «фу»?

Потому что он демонстрирует шаблон ‘c’ и ‘x’, который встречается во всех остальных, обозначенных как ‘foo’.

Когда вы просмотрели приведенные выше шаблоны и поняли заданный вопрос, ваш мозг сознательно искал общие шаблоны. Вы просканировали первые 2 шаблона, заметили, что оба они начинаются с символа 'x', а затем сразу же заметили, что в третьем шаблоне эта функция отсутствует, но все еще содержится этот символ 'x' ( конструкция AND). Быстрое повторное сканирование показало, что все 3 шаблона содержат «c c», и вы, вероятно, восприняли эту пару как совокупный символ (больше не обязательно два отдельных символа).

Сделайте это еще раз и по ходу следите за своими умственными процессами. Нетрудно исследовать собственные мыслительные процессы в процессе рассуждений, или так называемое медленное мышление.

Теперь вам дан еще один шаблон, который является ‘foo’

символическая структура: [i t c o v]

В чем теперь отличительная черта ‘foo’?

Ответ: отличительной чертой является наличие символической структуры ‘c’. Символ «x» больше не является отличительной чертой.

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

Отличительные черты могут быть выражены с помощью логики И, ИЛИ. Это было бы так, если бы символические структуры атрибута были помещены в подгруппы, чтобы поддерживать пересечение powerset.

Учимся на отрицательных примерах

До сих пор мы узнали, что «foo» представлено несколькими символическими образцами:

это ‘foo’:

символьная структура: [x b c c a]

символьная структура: [x c c y]

символьная структура: [y n c c x]

символьная структура: [x p q n c c o p]

символическая структура: [i t c o v]

Теперь предположим, что в приведенной выше последовательности вам сообщили, что символический шаблон: [xpqnccop] НЕ является 'foo', и вам даны несколько других шаблонов, представляющих вещь, не являющуюся ' foo '.

не foo:

символьная структура: [x p q n c c o p]

символьная структура: [o p a t g]

символьная структура: [w q o p i]

Отличительной чертой того, чтобы не быть «foo», является символ «o p».

Теперь у нас есть более четкое представление о том, является ли символический узор «фу» или нет.

Абстракции

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

символ: терьер, (собака)

символ: форель, (рыба)

символ: ворона (птица)

символ: Робин, (птица)

символическая структура: [(терьер, [собака]), (форель, [рыба]), (ворона, [птица])]

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

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

Алгоритмы машинного обучения и когнитивные системы

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

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

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

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

Немецкий философ Мартин Хайдеггер писал: Интерпретации вещности вещи, которые преобладали в ходе западной мысли, давно стали самоочевидными и теперь используются в повседневной жизни…

Вещь вещи - вещь - это то, «вокруг чего собраны свойства». - Мартин Хайдеггер

Если у нас есть примеры вещей (кролик, рукописное письмо, форма и т. Д.), Мы формируем образцы того, что это за вещь.

  • Что это за штука? Какие закономерности ему приписываются?
  • Что это не так?
  • Что в этой вещи делает ее похожей или непохожей на другие вещи?
  • Что в том, что мы понимаем в этой вещи, дает нам уверенность в том, что другая вещь похожа на нее или не похожа на нее?
  • Что мы можем рассказать о нашем понимании этого явления?

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

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

Часть 2: реализация.