Не по теме
Я очень интересовался искусственным интеллектом очень рано. Я помню свою дипломную работу в университете, которая заключалась в решении классической задачи поиска пути с помощью генетического алгоритма. Я всегда испытывал трепет и восхищение человеческой классикой, такой как традиционные проблемы алгоритмов компьютерных структур данных, такие как классические алгоритмы сортировки или идеи динамического программирования, которые превращают некоторые, казалось бы, сложные проблемы всего в дюжину строк или даже в цикл. решена, что заставляет меня чувствовать себя эстетом и в то же время восхищаться великими идеями человека.
Но традиционный компьютерный алгоритм на самом деле по-прежнему заключается в том, что человек пишет код, а человек решает проблему с помощью полной и решающей идеи. Но если у машины может быть собственный разум, если она может «научиться» решать проблему самостоятельно, разве это не было бы очень здорово.
Но в моем нынешнем понимании текущий искусственный интеллект больше похож на инструмент, «математический инструмент», «статистический инструмент», который обобщает «правило» из большого количества данных для решения практических задач. До реального мышления компьютеров еще далеко, и даже с современной точки зрения это может быть не одно и то же. Машины могут иметь мышление, и необходимы прорывы в других дисциплинах, таких как человеческие когнитивные механизмы и наука о мозге. Хаха далеко.
Во-первых, позвольте мне представить некоторые простые знания о себе.
линейный
- Что такое линейность?
Существует класс геометрических объектов, таких как линии, плоскости и кубы, которые выглядят угловатыми и «прямыми» и в математике называются линейными.
Очень просто решить связанные с ними проблемы. Например, в старших классах я узнал, что две прямые можно представить двумя линейными уравнениями.Если вы хотите найти их пересечение:
Одновременно получить систему уравнений двух и найти решение системы уравнений, чтобы получить точку пересечения
- Зачем изучать линейность
(1) Мир и вселенная, в которых мы живем, слишком сложны, и многие явления невозможно понять, не говоря уже о том, чтобы описать с помощью математики;
(2) Существуют сложные задачи, которые удовлетворяют определенным условиям и могут быть преобразованы в простые линейные задачи. Линейные задачи могут быть полностью поняты и полностью описаны математикой.
возвращение
Насколько я понимаю, есть две основные задачи машинного обучения. Во-первых, это задачи классификации, такие как
- Определить, является ли изображение кошкой или собакой (бинарная классификация, потому что яопределениеЦелевых выводов два, а именно кошка или собака)
- Определить, будет ли акция расти или падать завтра
- Определить, сколько цифр на картинке (мультиклассификация. Потому что яопределениеЕсть 10 целевых выводов, от 0 до 9)
То есть результатом классификации являетсяискусственныйодин из предопределенных диапазонов результатов
Второй тип задачи — это задача регрессии, и результатом является значение непрерывного числа, а не категории. Например
- Предсказать цены на жилье
- прогнозировать цены на акции
что такое машинное обучение
Это мое текущее простое понимание. Машинное обучение в настоящее время, на мой взгляд, является математическим инструментом. Подавая на машину большое количество обучающих материалов, машина затем запускает алгоритм машинного обучения для обучения модели. Затем закидываем задачу в машину, и машина через эту модельную операцию вычисляет результат.
Предварительное перцептивное понимание линейной регрессии
Например, я собрал два набора данных с x, y (например, возраст и рост) и хочу знать, существует ли линейная связь между этими двумя наборами переменных. Затем я сначала рисую такую диаграмму рассеяния с одной переменной в качестве оси x и другой переменной в качестве оси y.
Тогда я смогу найти такую прямую линию. Характеристика этой прямой такова: она максимально близка ко всем дискретным точкам, а также может быть выражена как наименьшая сумма разностей расстояний между каждой дискретной точкой и прямой линией. Затем я могу предсказать неизвестное значение y по известному значению x на основе вычисленной линии. Если существует линейная зависимость между x и y, то эффект предсказания все еще очень хорош. Итак, основная задача линейной регрессии — найти эту прямую.
Одномерная линейная регрессия
Давайте начнем с одномерной линейной регрессии, предполагая, что x имеет только одну характеристику (например, концентрацию оксида азота), а y — это цена дома. Согласно упомянутому выше пониманию восприятия, наша цель — найти наилучшее уравнение прямой линии:
По сути, это процесс нахождения параметров a и b. На самом деле, наша цель состоит в том, чтобы сделать по каждой точке x, сделать
минимум. Это уравнение называется функцией потерь. Вы можете спросить, почему сумма разностей квадратов минимальна? Вместо абсолютной величины разности и наименьшей или наименьшей в 3-й или 4-й степени разности? Минимальная сумма квадратов разностей называется в математике методом наименьших квадратов, вот ссылкаУуху. Call.com/question/24…, здесь нет подробностей.
Поэтому основная идея класса алгоритмов машинного обучения состоит в том, чтобы получить модель машинного обучения путем определения функции потерь задачи и последующей оптимизации функции потерь. Как найти минимальное значение этой функции потерь, то есть найти значения a и b. Затем вам нужно дифференцировать a и b отдельно. Точки, в которых производная равна 0, являются крайними точками. Теперь дифференцируем (цепное правило вывода составных функций):
Для упрощения:
Согласно тому же процессу получения a, процесс упрощения опускается:
Затем python реализует это: Проще говоря, мне нужно определить два метода.
- метод подгонки. Или метод обучения, который мы часто говорим. Путем передачи обучающих данных в качестве параметров этому методу получаются различные параметры модели.
- метод предсказания предсказания. Внесите значение x в этот метод, чтобы получить прогнозируемое значение.
Здесь следует отметить: вместо зацикливания используется векторизация для поиска a. Мы видим, что числитель и знаменатель можно найти с помощью цикла, Но на самом деле числитель и знаменатель a можно рассматривать как скалярное произведение вектора (то есть каждый компонент вектора a умножается на каждый компонент вектора b). В этом есть два преимущества:
- код понятнее
- Векторы — это параллельные операции. (вызов потокового процессора графического процессора для параллельных операций) намного быстрее, чем зацикливание в процессоре.
Когда параметры этого a и b вычисляются, у нас есть модель (y = ax + b в этом примере), и тогда мы можем делать прогнозы.Вводя x в это уравнение, мы можем получить это значение y после прогноза.
Множественная линейная регрессия
После понимания одномерной линейной регрессии нам нужно решить, как предсказать, когда есть несколько функций? То есть множественная линейная регрессия. Мы можем понять, что на самом деле требуется множественная линейная регрессия, это такое уравнение
То есть перед каждым признаком стоит постоянный коэффициент плюс константа (перехват). Здесь мы организуем эти коэффициенты в вектор (столбец)
Затем мы установили x0, x0 равными 1 для удобства, затем мы, наконец, упростили до скалярного произведения следующих двух векторов
Затем объедините все векторы x (выборки) в матрицу и организуйте тета в вектор-столбец. Тогда y(vector) является прогнозируемым значением для всех векторов x. Здесь используется умножение матриц и векторов (ха-ха, если вы забудете, вам придется повторить линейную алгебру).
Тогда по методу наименьших квадратов наша цель состоит в том, чтобы сделать
минимум. Другими словами, вся матрица должна быть получена, а конкретный процесс вывода опущен.Вот решение конечной теты:
То есть мы можем напрямую получить математическое решение параметров посредством математического вывода.Однако, как правило, существует несколько методов машинного обучения, которые могут напрямую получить математическое решение параметров.Может потребоваться использование других методов, таких как как градиентный спуск для получения математического решения по параметрам.
Реализация множественной линейной регрессии
Следующим шагом является реализация этого математического решения.
Простая линейная регрессия на практике (прогноз цен на жилье в Бостоне)
Этот набор данных о ценах на жилье в Бостоне представляет собой набор данных, который поставляется со sklearn (платформой машинного обучения).
На самом деле, я тоже был сбит с толку, когда увидел этот набор данных: позволяет ли этот пример прогнозировать цены на жилье? Прогноз цены на жилье в Шэньчжэне завтра? Я думаю, это можно понять так: собрав некоторые характеристики (учебные материалы), как показано на рисунке ниже, и среднюю цену дома в определенных районах Бостона (целевой вывод), более рентабельно рассуждать о том, как вы или застройщик должен оценить дом при продаже. Другими словами, с помощью этого набора данных мы можем понять, какой фактор оказывает большее влияние на цены на жилье.
Введение данных
Этот набор данных содержит данные о жилье в пригородах Бостона, штат Массачусетс, из базы знаний UCI по машинному обучению (набор данных отключен), начатой в 1978 году, включая 506 образцов, каждый образец включает 12 переменных признаков и среднюю цену на жилье в регионе.
Значение поля
Видно, что исследователи надеются выяснить важные факторы, влияющие на цены на жилье, такие как факторы окружающей среды (концентрация закиси азота), факторы местоположения (взвешенное расстояние до 5 центральных районов Бостона) и т. д. (но я считаю, что факторов влияющих на цены на жилье в китае больше Это сложнее)
После решения (или изучения) значений каждого параметра, если застройщик хочет установить цену, он может собрать эти функции, а затем использовать метод прогнозирования модели, чтобы получить эталонное значение цены дома.
Затем мы также можем увидеть, какие факторы положительно коррелируют с ценами на жилье, а какие отрицательно. Тогда чем больше параметр, тем сильнее он влияет на цену жилья, а именно на интерпретируемость результатов методом линейной регрессии (некоторые методы машинного обучения не поддерживаются).