Python Argmax — искусственный интеллект + | GPTMain News

Введение

Функция Argmax широко используется при построении алгоритмов машинного обучения: она часто служит окончательным правилом прогнозирования в алгоритмах классификации. В этой статье мы начнем с обоснования необходимости функции argmax. Затем мы опишем работу встроенной функции argmax в Numpy (Python Argmax). Будет описана работа функции numpy с одномерными и двумерными массивами вместе с примерами кода.

Читайте также: Что такое Argmax в машинном обучении?

питон Аргмакс

Аргмакс означает Аргумент максимума. Это математическая функция, которая принимает на вход функцию е(х) и возвращает точки из домена (аргумента) ф где функция максимальна. В Python функция argmax обычно работает с массивами, которые потенциально могут быть многомерными. Общая идея заключается в том, что позиция максимального элемента возвращается функциями Argmax в Python.

пустой Argmax

Python изначально не поддерживает операцию argmax. В библиотеке Numpy, с другой стороны, есть функция np.argmax(), которую можно использовать для извлечения индексов максимальных элементов массивов Numpy. Рассмотрим одномерный массив numpy, как показано ниже.

Что такое Аргмакс

В этом иллюстративном примере элементы массива обозначают значения вероятности, выдаваемые классификатором. Индексы массива numpy также показаны ниже. Максимальный элемент равен 0,613 и имеет индекс 2. Таким образом, функция argmax возвращает значение 2, индекс максимального элемента в массиве.

Функция argmax Numpy также применяется к многомерным массивам. Мы проиллюстрируем работу с двумерным массивом, как показано ниже.

Понимание Аргмакс

Двумерные массивы имеют две оси для операций argmax: строки и столбцы. По соглашению строки принадлежат оси 0, а столбцы принадлежат оси 1. Каждая запись двумерного массива на рисунке является значением вероятности и может представлять результат трех классификаторов (строк), которые решают задачу классификации 5 классов ( столбцы). Таким образом, сумма строк равна 1, поскольку каждый классификатор выводит 5 значений вероятности. Максимальный элемент в строках подчеркнут, а максимальный элемент в столбцах выделен курсивом. Обратите внимание, что одно и то же значение может представлять максимальные значения как для строк, так и для столбцов. Например, значение 0,553 является максимальным элементом как для его строки, так и для его столбца. В результате значение будет подчеркнуто и выделено курсивом.

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

Читайте также: Что такое разреженная матрица? Как это используется в машинном обучении?

Случай 1: параметр оси = 1 (столбцы)

Функция просканирует столбцы и вернет индексы максимальных значений для каждой строки. Таким образом, возвращается значение для каждой строки. На рисунке выше мы ищем подчеркнутые записи, в результате чего выводится [2, 0, 4].

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

Случай 2: Параметр оси = 0 (строки)

В этом случае функция просканирует строки и вернет индекс максимального значения для каждого столбца. Поэтому для каждого столбца будет возвращен один индекс, номер строки. На рисунке выше мы ищем записи, выделенные курсивом, в результате чего выводится [1, 2, 0, 2, 2].

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

Если параметр оси не указан, то поведение по умолчанию состоит в том, чтобы сгладить входной тензор и вернуть argmax сглаженного массива. В нашем примере сглаженный массив [0.115, 0.337, 0.613, 0.021, 0.014, 0.553, 0.138, 0.215, 0.002, 0.092, 0.02, 0.388, 0.002, 0.113, 0.477] и его argmax равен 2, индекс максимального элемента 0,613.

Наконец, функция np.argmax также позволяет напрямую вставлять выходные данные в выходной массив с помощью параметра out.

Чем полезен Аргмакс

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

Аргмакс

Правило принятия решения состоит в том, чтобы затем назначить класс, соответствующий наибольшей вероятности. Функция Argmax используется для программного выбора метки класса на основе значений вероятности. В нашем случае, скажем, метки классов расположены в массиве [‘C1’, ‘C2’, ‘C3’]. Argmax вероятностей можно использовать для прямого индексирования этого массива и возврата метки класса.

Эксперимент с numpy Argmax

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

import numpy as np

X = np.array([[0.115, 0.337, 0.613, 0.021, 0.014], # A 2-D input array
              [0.553, 0.138, 0.215, 0.002, 0.092],
              [0.020, 0.388, 0.002, 0.113, 0.477]])

print(np.argmax(X, axis = 1)) # Column-wise

# Output
[2 0 4]


print(np.argmax(X, axis = 0)) # Row-wise

# Output
[1 2 0 2 2]


print(X.flatten()) # Flatten to get a 1D array

# Output
[0.115 0.337 0.613 0.021 0.014 0.553 0.138 0.215 0.002 0.092 0.02 0.388
0.002 0.113 0.477]


print(np.argmax(X.flatten())) # argmax of the flattened 1-D array

# Output
2

print(np.argmax(X)) # When no axis param is specified, argmax is on the flattened array

# Output
2
Источник: YouTube

Читайте также: Rectified Linear Unit (ReLU): введение и использование в машинном обучении

Машинное обучение Python: машинное обучение и глубокое обучение с помощью Python, scikit-learn и TensorFlow 2.

Заключение

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

Ссылка

Numpy.Argmax — Руководство по NumPy v1.24. https://numpy.org/doc/stable/reference/generated/numpy.argmax.html. По состоянию на 3 февраля 2023 г.

«Numpy.Argmax в Python». GeeksforGeeks, 22 августа 2017 г., https://www.geeksforgeeks.org/numpy-argmax-python/. По состоянию на 6 февраля 2023 г.

Эбнер, Джошуа. «Numpy Argmax, объяснение». Sharp Sight, Inc., 9 ноября 2020 г., https://www.sharpsightlabs.com/blog/numpy-argmax/. По состоянию на 6 февраля 2023 г.

Последние статьи

Related articles

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь

hentai lou nicehentai.com ahegeo hentai pron v bigztube.mobi kannada school girl sex videos sxsi com pornoko.net indian porn xnxx.com سكس.جماعي pornigh.com سكس لوسي bangali sex in kompoz2.com ganapa kannada movie songs
سكس مع المعلمة matureporni.com سكس كس مفتوح desi clip.com foxporns.info girls sexy pictures хентай манга hentaitale.net hentai zombie girl little sister doujin justhentaiporn.com kasumi tendo hentai افلام جيانا مايكلز gratisfucktube.com foto sex
desi gay porn vedio momyporn.mobi nepali x video مدام شرموطه freetube18x.com ايناس الدغيدي سكس tony tony chopper hentai hentaimangaz.com naruto new hentai manga الكس والزبر pornarabic.net احلى بزاز ميلفاية arabgrid.net فلم\سكس