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

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

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

Необходимые предварительные знания:

Фильтрация изображений, Нейроны, Матрицы (на эту ссылку я не добавляю, информацию о матрицах можно найти везде)

Хорошо знать:

Классификация в машинном обучении, деревья решений, наивные байесовские классификаторы, AdaBoost, случайный лес, нейронные сети

1. Ссылка на GitHub для кода алгоритма .

2. Ссылка GitHub на код алгоритма (улучшенная версия)

Абстрактный

Эта статья посвящена структуре алгоритмов фильтрации, используемых при обработке изображений. Новый алгоритм основан на двоичных матрицах входных данных для создания подкластеров, которые позже используются в качестве фильтров при классификации. Эти подкластеры называются ядрами вероятности. Разработанный алгоритм был протестирован с использованием различных наборов данных и показывает различную степень точности, которая зависит от разнообразия наборов данных и значения соответствия, которое используется для сравнения матриц. Набор данных о диабете, набор данных о раке молочной железы и набор данных ионосферы используются для сравнения производительности разработанного алгоритма и уже известных алгоритмов, таких как Naïve Bayes, AdaBoost, Random Forest и Multilayer Perceptron. Результаты тестирования на точность подтверждают преимущества предложенного алгоритма.

Если вы хотите напрямую перейти к алгоритму, перейдите в раздел «Как вообще работает алгоритм?»

Что делает алгоритм?

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

Какова философия алгоритма?

Алгоритм основан на понимании того, как работает человеческий мозг. Предположение о том, как работает человеческий мозг, упоминается ниже.

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

Предположение о том, как работает мозг:

Атрибуты:

  • A1, A2,… относится к атрибуту.
  • V1, V2,… относятся к значению связанного атрибута.

Концепции:

  • C1, C2,… относятся к концепции.
  • R1, R2,… относятся к результату концепции.
  • Пример: C1: Прогноз погоды R1: Дождь, C1: Прогноз погоды, R2: Солнечно

Подключения:

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

  • C1-R1: A1-V1, A2-V1, A3-V3/A3-V4, A4-V2
  • C1-R2: A1-V2/ A1-V3, A2-V2, A3-V1/A3-V2, A4-V1
  • C2-R1: A1-V1/ A1-V2, A2-V1, A3-V4, C1-R2
  • C2-R2: A1-Нет, A2-V2, A3-V2, C1-R1

Правила:

  • Тип понятия имеет определенные атрибуты. разные результаты понятий не могут иметь разных атрибутов. Как мы видим в приведенном выше примере, концепция C1 имеет атрибуты A1, A2, A3 и A4.
  • Для концептов может отсутствовать информация об атрибутах. Как мы видим в примере выше, C2-R2 не имеет информации об атрибуте A1.
  • У концепции могут быть разные значения одного и того же атрибута.
  • Как объяснялось выше в заголовке «Связи», концепции могут вести себя как атрибут для другого концепта.

Выводы:

Каждый элемент и атрибут в теории предполагается нейроном в человеческом мозгу. Каждое соединение относится к аксону между нейронами.

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

  • Неиспользуемым нейронам присваиваются условия для концепта. Если условие для концепции известно ранее, то это условие не назначается новому нейрону.
  • После присвоения условий нейронам концепция, которая будет изучена, назначается новому, неиспользуемому нейрону.
  • После того, как все задания выполнены, соответствующие условия с усвоенными ценностями связываются с концепцией в процессе обучения.
  • Изучена новая концепция.

Условия использования нового нейрона: использование нового нейрона определяется логическим элементом ИЛИ.

Условия использования нового нейрона: использование нового нейрона определяется логическим элементом ИЛИ:

Упраздненные понятия и атрибуты:

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

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

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

Как вообще работает алгоритм?

1. Алгоритм преобразует записи с одной строкой в ​​двумерные матрицы.

2. Алгоритм сравнивает созданные двумерные матрицы между собой.

2.1. Сравниваются только матрицы одного класса.

3. По результату сравнения алгоритм объединяет похожие матрицы.

3.1. Объединенные матрицы будут вести себя как ядро ​​фильтрации в алгоритме. Объединенные матрицы называются в алгоритме ядрами вероятностей.

3.2. После завершения процесса объединения матриц созданные ядра вероятностей используются для тестирования.

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

5. По окончании процесса тестирования мы получаем массив результатов тестирования. Для исправления обучения сохраняются только результаты тестирования неверно классифицированных записей.

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

7. После того, как ошибочные ядра вероятности удалены из списка ядер вероятностей, мы вернемся к процессу 4.

7.1. Этот процесс продолжается до тех пор, пока у нас не будет больше ядер вероятности.

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

8. Ядра вероятности на шаге, определенном выше, создаются снова.

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

Как подробно работает алгоритм?

Алгоритм преобразует записи с одной строкой в ​​двухмерные матрицы.

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

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

2. Создайте матрицу нулей с размерами: Строка - Максимальное значение в записях, Столбец - Количество столбцов в записи.

3. Выберите запись, выберите порядок первого столбца (C) и значение в этом столбце (V). Поместите 1 в матрицу в индексе: Строка - Значение, которое мы взяли (V), Столбец - Порядок столбца, который мы взяли ©.

4. Продолжайте описанный выше процесс, пока не завершите отображение всех значений в записи.

Алгоритм сравнивает созданные двумерные матрицы между собой.

1. Создайте функцию сравнения.

2. В функции сравнения необходимо иметь 2 входа. Входными данными являются матрицы, которые будут сравниваться.

3. В функции сравнения возьмите входные матрицы и умножьте их друг на друга.

4. В функции сравнения просуммируйте новую матрицу, созданную умножением.

5. В функции сравнения разделите новую матрицу, созданную суммированием, на количество единиц в первой входной матрице. Результат будет от 0 до 1. 1 означает «наиболее похожий», 0 означает «совсем не похожи».

По результату сравнения алгоритм объединяет похожие матрицы.

1. Возьмите похожие матрицы и просуммируйте их все.

2. Разделите новую матрицу, созданную суммированием всех похожих матриц, на максимальное значение в той же матрице.

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

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

1. Умножьте тестовую матрицу на каждое вероятностное ядро.

2. Просуммируйте все значения в новой матрице, созданной вышеупомянутым умножением. Это будет результат соответствия.

3. Добавьте результат сопоставления и класс вероятностного ядра в список.

4. Отсортируйте список по убыванию в соответствии с результатами сопоставления.

5. Возьмите класс первого элемента в упомянутом выше отсортированном списке (SL).

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

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

1. Сохраните результат сопоставления ошибочно классифицированных результатов теста и порядок ядра вероятности из SL.

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

1. Определите индекс вероятностных ядер (TPK), который дает истинный класс в отсортированном списке (SL).

2. Удалите все ядра вероятности, которые дают более высокие результаты сопоставления, чем TPK в SL, из списка ядер вероятностей.

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

Эксперименты:

Для выполнения других алгоритмов используется инструмент Weka 3.7.

Характеристики бывшего в употреблении компьютера:

ЦП: Intel® Core ™ i7–6700HQ 2,6 ГГц (6 МБ кэш-памяти, до 3,5 ГГц)

Оперативная память: 16 ГБ DDR4

Используемый язык программирования для нового алгоритма:

Питон

Используемые модули в Python:

Нумпи, ПИЛ, Панды

Используемые наборы данных для экспериментов:

Набор данных по диабету: обучающий набор 500 записей, тестовый набор 276 записей.

Рак молочной железы (исходный) набор данных: обучающий набор 465 записей, тестовый набор 233 записи.

Набор данных ионосферы: обучающий набор 234 записи, тестовый набор 116 записей.

Результат экспериментов представлен ниже:

Таблицы и рисунки алгоритма: